Commit 60f323bb authored by shiyu's avatar shiyu

估价发消息

parent cbbea973
package com.wwdz.ch.admin.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.entity.vo.CoinVo;
import com.wwdz.ch.admin.entity.vo.ConsignSaleDetailVo;
......@@ -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.service.ConsignSaleService;
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.ItemStateEnum;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.entity.ConsignSaleVo;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.db.dao.ConsignSaleDao;
import com.wwdz.ch.db.dao.ConsignSaleRecordDao;
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.dao.*;
import com.wwdz.ch.db.domain.*;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRecordRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
......@@ -56,6 +55,15 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Autowired
ItemService itemService;
@Autowired
OfficialAccountApi officialAccountApi;
@Autowired
OfficialAccountSubscribeRecordDao officialAccountSubscribeRecordDao;
@Autowired
UserDao userDao;
@Override
public Result findList(ConsignSaleRequestDto dto) {
......@@ -161,10 +169,12 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("估价金额: " + dto.getImgValuation() + " 元");
consignSaleRecord.setContent("初步估价: " + dto.getImgValuation() + " 元");
consignSaleRecord.setRemark(dto.getRemark());
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.VALUATE.getCode());
consignSaleRecordDao.insert(consignSaleRecord);
//发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent().replaceAll(" ", ""));
return Result.success();
} catch (Exception e) {
logger.error("图文估价error:{}", e);
......@@ -172,6 +182,37 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
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
public Result identify(ConsignSaleRequestDto dto) {
try {
......@@ -184,7 +225,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("实物鉴定: " + dto.getValuation() + " 元");
consignSaleRecord.setContent("建议寄售价: " + dto.getValuation() + " 元");
consignSaleRecord.setRemark(dto.getRemark());
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.IDENTIFY.getCode());
consignSaleRecordDao.insert(consignSaleRecord);
......@@ -195,6 +236,9 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
saleRecord.setCreateTime(new Date());
saleRecord.setType(ConsignSaleEnum.OperateTypeEnum.SALEING.getCode());
consignSaleRecordDao.insert(saleRecord);
//发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent().replaceAll(" ", ""));
return Result.success();
} catch (Exception e) {
logger.error("实物鉴定 error:{}", e);
......@@ -222,9 +266,11 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("成交金额: " + dto.getDealPrice() + " 元");
consignSaleRecord.setRemark("成交平台: " + (dto.getRemark() == null ? "" : dto.getRemark()));
consignSaleRecord.setRemark("成交平台: " + (dto.getRemark() == null ? "" : dto.getRemark()));
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.FINISH.getCode());
consignSaleRecordDao.insert(consignSaleRecord);
/* //发送公众号消息
sendTempletMsg(dto.getSaleId(), consignSaleRecord.getContent());*/
return Result.success();
} catch (Exception 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.util.OkHttpUtil;
import com.wwdz.ch.core.util.RedisUtils;
import com.wwdz.ch.wx.manager.WxLoginManager;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils;
import org.slf4j.Logger;
......@@ -11,7 +10,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
......@@ -53,8 +51,8 @@ public class OfficialAccountApi {
@Autowired
RedisUtils redisUtils;
@Autowired
WxLoginManager wxLoginManager;
/* @Autowired
WxLoginManager wxLoginManager;*/
public String getAccessToken() {
//测试环境
......
......@@ -3,9 +3,8 @@ package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
@Data
public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
......@@ -30,6 +29,14 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
*/
private String time;
public ConsignSaleSubscribeMsg() {
}
public ConsignSaleSubscribeMsg(String saleId, String itemName, String time) {
this.saleId = saleId;
this.itemName = itemName;
this.time = time;
}
@Override
public Map<String, Object> getTempletParam() {
......@@ -40,6 +47,19 @@ public class ConsignSaleSubscribeMsg implements Entity, AbstractSubscribeMsg{
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
public String getTempletId() {
return templetId;
......
......@@ -23,6 +23,9 @@ public interface UserDao {
*/
User queryByOid(String openId);
User getUserByUnionId(String unionId);
/**
* 通过手机号查询未删除的记录
*
......
......@@ -48,6 +48,16 @@ public class UserDaoImpl implements UserDao {
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
public User queryByMobile(String mobile) {
CloudServerResponse<com.wwdz.user.api.model.user.User> cloudServerResponse = userReadService.getByPhone(mobile);
......
......@@ -72,7 +72,7 @@
<javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper"
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" />
</table>
......
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.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.type.Result;
......@@ -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.WXBizMsgCrypt;
import com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.StringUtils;
import com.xxdxxs.utils.XmlUtils;
import io.swagger.annotations.ApiOperation;
......@@ -100,7 +100,7 @@ public class OfficialAccountCallbackController {
//只有关注了公众号,才可以通过根据openid获取unionid
String unionid = officialAccountApi.getUnionidByOpenid(userOpenId);
//根据unionid查询手机号
User user = userDao.queryByOid(unionid);
User user = userDao.getUserByUnionId(unionid);
if (user != null) {
logger.info("根据unionid查询手机号, unionid :{}, phone : {}", unionid, user.getMobile());
officialAccountSubscribeRecord.setPhone(user.getMobile());
......
......@@ -15,11 +15,10 @@ import com.wwdz.ch.db.bean.ItemOfEs;
import com.wwdz.ch.db.dao.*;
import com.wwdz.ch.db.domain.*;
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.FollowFansRecordRequestDto;
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.constant.CacheCodeConstants;
import com.wwdz.ch.wx.constant.LoginTypeEnum;
......@@ -62,7 +61,6 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.System;
import java.net.URL;
import java.text.MessageFormat;
import java.time.LocalDateTime;
......
......@@ -3,14 +3,12 @@ package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSON;
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.db.domain.User;
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.UserService;
import com.xxdxxs.utils.DateUtils;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -18,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
@RestController
@RequestMapping("/wx/officialAccount")
public class OfficialAccountController {
......
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.OfficialAccountFollowSubscribeMsg;
import com.xxdxxs.utils.DateUtils;
import org.junit.Test;
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