Commit 60f323bb authored by shiyu's avatar shiyu

估价发消息

parent cbbea973
package com.wwdz.ch.admin.impl; package com.wwdz.ch.admin.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.entity.vo.CoinVo; import com.wwdz.ch.admin.entity.vo.CoinVo;
import com.wwdz.ch.admin.entity.vo.ConsignSaleDetailVo; import com.wwdz.ch.admin.entity.vo.ConsignSaleDetailVo;
...@@ -7,18 +8,16 @@ import com.wwdz.ch.admin.entity.vo.ConsignSaleRecordVo; ...@@ -7,18 +8,16 @@ import com.wwdz.ch.admin.entity.vo.ConsignSaleRecordVo;
import com.wwdz.ch.admin.entity.vo.ItemVo; import com.wwdz.ch.admin.entity.vo.ItemVo;
import com.wwdz.ch.admin.service.ConsignSaleService; import com.wwdz.ch.admin.service.ConsignSaleService;
import com.wwdz.ch.admin.service.ItemService; import com.wwdz.ch.admin.service.ItemService;
import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.core.consts.ConsignSaleEnum; import com.wwdz.ch.core.consts.ConsignSaleEnum;
import com.wwdz.ch.core.consts.ItemStateEnum; import com.wwdz.ch.core.consts.ItemStateEnum;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.entity.ConsignSaleVo; import com.wwdz.ch.core.entity.ConsignSaleVo;
import com.wwdz.ch.core.type.PageSearchResult; import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.MediaUtil; import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.db.dao.ConsignSaleDao; import com.wwdz.ch.db.dao.*;
import com.wwdz.ch.db.dao.ConsignSaleRecordDao; import com.wwdz.ch.db.domain.*;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.domain.ConsignSale;
import com.wwdz.ch.db.domain.ConsignSaleRecord;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.dto.request.CoinRequestDto; import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRecordRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRecordRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
...@@ -56,6 +55,15 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -56,6 +55,15 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Autowired @Autowired
ItemService itemService; ItemService itemService;
@Autowired
OfficialAccountApi officialAccountApi;
@Autowired
OfficialAccountSubscribeRecordDao officialAccountSubscribeRecordDao;
@Autowired
UserDao userDao;
@Override @Override
public Result findList(ConsignSaleRequestDto dto) { public Result findList(ConsignSaleRequestDto dto) {
...@@ -161,10 +169,12 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -161,10 +169,12 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord(); ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
consignSaleRecord.setSaleId(dto.getSaleId()); consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date()); consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("估价金额: " + dto.getImgValuation() + " 元"); consignSaleRecord.setContent("初步估价: " + dto.getImgValuation() + " 元");
consignSaleRecord.setRemark(dto.getRemark()); consignSaleRecord.setRemark(dto.getRemark());
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.VALUATE.getCode()); consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.VALUATE.getCode());
consignSaleRecordDao.insert(consignSaleRecord); consignSaleRecordDao.insert(consignSaleRecord);
//发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent().replaceAll(" ", ""));
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
logger.error("图文估价error:{}", e); logger.error("图文估价error:{}", e);
...@@ -172,6 +182,37 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -172,6 +182,37 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
return Result.failed(); return Result.failed();
} }
/**
* 估价完发送模板消息
* @param saleId
* @param price
*/
private void sendTempletMsg(String saleId, String price) {
try {
//先查询寄售单用户信息
ConsignSale userConsignSale = consignSaleDao.findById(saleId);
long userId = userConsignSale.getUserId();
User user = userDao.queryById(userId);
String unionId = user.getWeixinUnionid();
OfficialAccountSubscribeRecord officialAccountSubscribeRecord = officialAccountSubscribeRecordDao.findOne(unionId);
//没有订阅
if (officialAccountSubscribeRecord == null || officialAccountSubscribeRecord.getEnabled().intValue() == 0) {
logger.info(">>>>>>>>>> 用户 unionId = {} ,尚未订阅公众号,无法推送消息 <<<<<<<<<<<");
} else {
String openId = officialAccountSubscribeRecord.getOpenid();
long itemId = userConsignSale.getItemId();
Item item = itemDao.findById(itemId);
String itemName = item.getName();
String content = itemName.substring(0, 5) + "," + price;
ConsignSaleSubscribeMsg consignSaleSubscribeMsg = ConsignSaleSubscribeMsg.of(saleId, content, new Date());
officialAccountApi.sendModelMsg(openId, consignSaleSubscribeMsg);
}
} catch (Exception e) {
logger.error("图文估价发送公众号消息error:{}", e);
}
}
@Override @Override
public Result identify(ConsignSaleRequestDto dto) { public Result identify(ConsignSaleRequestDto dto) {
try { try {
...@@ -184,7 +225,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -184,7 +225,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord(); ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
consignSaleRecord.setSaleId(dto.getSaleId()); consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date()); consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("实物鉴定: " + dto.getValuation() + " 元"); consignSaleRecord.setContent("建议寄售价: " + dto.getValuation() + " 元");
consignSaleRecord.setRemark(dto.getRemark()); consignSaleRecord.setRemark(dto.getRemark());
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.IDENTIFY.getCode()); consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.IDENTIFY.getCode());
consignSaleRecordDao.insert(consignSaleRecord); consignSaleRecordDao.insert(consignSaleRecord);
...@@ -195,6 +236,9 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -195,6 +236,9 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
saleRecord.setCreateTime(new Date()); saleRecord.setCreateTime(new Date());
saleRecord.setType(ConsignSaleEnum.OperateTypeEnum.SALEING.getCode()); saleRecord.setType(ConsignSaleEnum.OperateTypeEnum.SALEING.getCode());
consignSaleRecordDao.insert(saleRecord); consignSaleRecordDao.insert(saleRecord);
//发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent().replaceAll(" ", ""));
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
logger.error("实物鉴定 error:{}", e); logger.error("实物鉴定 error:{}", e);
...@@ -222,9 +266,11 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -222,9 +266,11 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
consignSaleRecord.setSaleId(dto.getSaleId()); consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date()); consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("成交金额: " + dto.getDealPrice() + " 元"); consignSaleRecord.setContent("成交金额: " + dto.getDealPrice() + " 元");
consignSaleRecord.setRemark("成交平台: " + (dto.getRemark() == null ? "" : dto.getRemark())); consignSaleRecord.setRemark("成交平台: " + (dto.getRemark() == null ? "" : dto.getRemark()));
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.FINISH.getCode()); consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.FINISH.getCode());
consignSaleRecordDao.insert(consignSaleRecord); consignSaleRecordDao.insert(consignSaleRecord);
/* //发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent());*/
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
logger.error("实物鉴定 error:{}", e); logger.error("实物鉴定 error:{}", e);
......
package com.wwdz.ch.wx.api; package com.wwdz.ch.core.api;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg; import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.wwdz.ch.core.util.OkHttpUtil; import com.wwdz.ch.core.util.OkHttpUtil;
import com.wwdz.ch.core.util.RedisUtils; import com.wwdz.ch.core.util.RedisUtils;
import com.wwdz.ch.wx.manager.WxLoginManager;
import com.xxdxxs.utils.JsonUtils; import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils; import com.xxdxxs.utils.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -11,7 +10,6 @@ import org.slf4j.LoggerFactory; ...@@ -11,7 +10,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -53,8 +51,8 @@ public class OfficialAccountApi { ...@@ -53,8 +51,8 @@ public class OfficialAccountApi {
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Autowired /* @Autowired
WxLoginManager wxLoginManager; WxLoginManager wxLoginManager;*/
public String getAccessToken() { public String getAccessToken() {
//测试环境 //测试环境
......
...@@ -3,9 +3,8 @@ package com.wwdz.ch.core.entity; ...@@ -3,9 +3,8 @@ package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity; import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
import java.util.HashMap; import java.text.SimpleDateFormat;
import java.util.LinkedHashMap; import java.util.*;
import java.util.Map;
@Data @Data
public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
...@@ -30,6 +29,14 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{ ...@@ -30,6 +29,14 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
*/ */
private String time; private String time;
public ConsignSaleSubscribeMsg() {
}
public ConsignSaleSubscribeMsg(String saleId, String itemName, String time) {
this.saleId = saleId;
this.itemName = itemName;
this.time = time;
}
@Override @Override
public Map<String, Object> getTempletParam() { public Map<String, Object> getTempletParam() {
...@@ -40,6 +47,19 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{ ...@@ -40,6 +47,19 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
return map; return map;
} }
public static ConsignSaleSubscribeMsg of(String saleId, String content, Date time){
ConsignSaleSubscribeMsg consignSaleSubscribeMsg = new ConsignSaleSubscribeMsg();
consignSaleSubscribeMsg.setSaleId(saleId);
consignSaleSubscribeMsg.setItemName(content);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.CHINESE);
String formattedDate = sdf.format(time);
consignSaleSubscribeMsg.setTime(formattedDate);
return consignSaleSubscribeMsg;
}
@Override @Override
public String getTempletId() { public String getTempletId() {
return templetId; return templetId;
......
...@@ -23,6 +23,9 @@ public interface UserDao { ...@@ -23,6 +23,9 @@ public interface UserDao {
*/ */
User queryByOid(String openId); User queryByOid(String openId);
User getUserByUnionId(String unionId);
/** /**
* 通过手机号查询未删除的记录 * 通过手机号查询未删除的记录
* *
......
...@@ -48,6 +48,16 @@ public class UserDaoImpl implements UserDao { ...@@ -48,6 +48,16 @@ public class UserDaoImpl implements UserDao {
return User.of(wUser); return User.of(wUser);
} }
@Override
public User getUserByUnionId(String unionId) {
CloudServerResponse<com.wwdz.user.api.model.user.User> cloudServerResponse = userReadService.getUserByOpenIdOrUnionId(unionId, null);
if (cloudServerResponse.getCode() != 1001) {
return new User();
}
com.wwdz.user.api.model.user.User wUser = cloudServerResponse.getResult();
return User.of(wUser);
}
@Override @Override
public User queryByMobile(String mobile) { public User queryByMobile(String mobile) {
CloudServerResponse<com.wwdz.user.api.model.user.User> cloudServerResponse = userReadService.getByPhone(mobile); CloudServerResponse<com.wwdz.user.api.model.user.User> cloudServerResponse = userReadService.getByPhone(mobile);
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper" <javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper"
targetProject="ch-dao/src/main/java"/> targetProject="ch-dao/src/main/java"/>
<table tableName="syn_data_record" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <table tableName="consign_sale" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<generatedKey column="id" sqlStatement="Mysql" identity="true" /> <generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table> </table>
......
package com.wwdz.ch.wx.api; package com.wwdz.ch.wx.api;
import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.core.consts.OfficalAccountEnum; import com.wwdz.ch.core.consts.OfficalAccountEnum;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg; import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
...@@ -10,7 +11,6 @@ import com.wwdz.ch.db.domain.User; ...@@ -10,7 +11,6 @@ import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.wx.api.aes.AesException; import com.wwdz.ch.wx.api.aes.AesException;
import com.wwdz.ch.wx.api.aes.WXBizMsgCrypt; import com.wwdz.ch.wx.api.aes.WXBizMsgCrypt;
import com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService; import com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.StringUtils; import com.xxdxxs.utils.StringUtils;
import com.xxdxxs.utils.XmlUtils; import com.xxdxxs.utils.XmlUtils;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -100,7 +100,7 @@ public class OfficialAccountCallbackController { ...@@ -100,7 +100,7 @@ public class OfficialAccountCallbackController {
//只有关注了公众号,才可以通过根据openid获取unionid //只有关注了公众号,才可以通过根据openid获取unionid
String unionid = officialAccountApi.getUnionidByOpenid(userOpenId); String unionid = officialAccountApi.getUnionidByOpenid(userOpenId);
//根据unionid查询手机号 //根据unionid查询手机号
User user = userDao.queryByOid(unionid); User user = userDao.getUserByUnionId(unionid);
if (user != null) { if (user != null) {
logger.info("根据unionid查询手机号, unionid :{}, phone : {}", unionid, user.getMobile()); logger.info("根据unionid查询手机号, unionid :{}, phone : {}", unionid, user.getMobile());
officialAccountSubscribeRecord.setPhone(user.getMobile()); officialAccountSubscribeRecord.setPhone(user.getMobile());
......
...@@ -15,11 +15,10 @@ import com.wwdz.ch.db.bean.ItemOfEs; ...@@ -15,11 +15,10 @@ import com.wwdz.ch.db.bean.ItemOfEs;
import com.wwdz.ch.db.dao.*; import com.wwdz.ch.db.dao.*;
import com.wwdz.ch.db.domain.*; import com.wwdz.ch.db.domain.*;
import com.wwdz.ch.db.dto.request.CoinRequestDto; import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
import com.wwdz.ch.db.dto.request.EsSearchRequestDto; import com.wwdz.ch.db.dto.request.EsSearchRequestDto;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto; import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.es.ItemEsDao; import com.wwdz.ch.db.es.ItemEsDao;
import com.wwdz.ch.wx.api.OfficialAccountApi; import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.wx.api.WxAppletApi; import com.wwdz.ch.wx.api.WxAppletApi;
import com.wwdz.ch.wx.constant.CacheCodeConstants; import com.wwdz.ch.wx.constant.CacheCodeConstants;
import com.wwdz.ch.wx.constant.LoginTypeEnum; import com.wwdz.ch.wx.constant.LoginTypeEnum;
...@@ -62,7 +61,6 @@ import java.io.ByteArrayInputStream; ...@@ -62,7 +61,6 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.System;
import java.net.URL; import java.net.URL;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
......
...@@ -3,14 +3,12 @@ package com.wwdz.ch.wx.web; ...@@ -3,14 +3,12 @@ package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.domain.User; import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.dto.request.UserRequestDto; import com.wwdz.ch.db.dto.request.UserRequestDto;
import com.wwdz.ch.wx.api.OfficialAccountApi; import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService; import com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService;
import com.wwdz.ch.wx.service.UserService; import com.wwdz.ch.wx.service.UserService;
import com.xxdxxs.utils.DateUtils;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -18,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -18,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
@RestController @RestController
@RequestMapping("/wx/officialAccount") @RequestMapping("/wx/officialAccount")
public class OfficialAccountController { public class OfficialAccountController {
......
package com.wwdz.ch.wx.api; package com.wwdz.ch.wx.api;
import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg; import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.entity.OfficialAccountFollowSubscribeMsg;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment