Просмотр исходного кода

订阅消息

release_toaliyun_real
xhxu 4 лет назад
Родитель
Сommit
a58a5e2059
2 измененных файлов: 71 добавлений и 34 удалений
  1. +35
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java
  2. +36
    -32
      mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java

+ 35
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.msg.AppUniformMsg;
import com.iformall.domain.po.msg.MpAppMsg;
import com.iformall.domain.po.msg.WxMsg;
import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.domain.vo.WxCouponSendVo;
import com.iformall.enums.*;
@@ -68,6 +69,10 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
WxMsgLimitService wxMsgLimitService;
@Autowired
WxCouponMerchantMapper wxCouponMerchantMapper;
@Autowired
WxTemplateMsgService wxTemplateMsgService;
@Autowired
WxMsgService wxMsgService;

@Override
public PageInfo<WxCouponSendVo> listAsPage(WxCouponSend record, Integer pageIndex, Integer pageSize) {
@@ -426,8 +431,9 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
setUserId(couponOrder.getCUserId());
}});
if(list != null && list.size() > 0){
WxCUser cuser = list.get(0);
if(cuser != null){
for (WxCUser cuser:list) {
//发订阅消息
sendCouponRemind(send, couponOrder, cuser);
// 发送微信模板消息(公众号模板消息/小程序统一消息/小程序模板消息)
sendMpMsgForSendCoupon(send, couponOrder, cuser);
}
@@ -475,6 +481,33 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
}
}

private void sendCouponRemind(WxCouponSend send, WxCouponOrder couponOrder,WxCUser cuser){
try {
WxTemplateMsg temp = new WxTemplateMsg();
temp.updateTenantInfo(send);
temp.setType(EnumTemplateType.SEND_COUPON_REMIND.getCode());
temp = wxTemplateMsgService.getByObj(temp);
if(temp.getId() != null){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
WxMsg msg = new WxMsg();
msg.updateTenantInfo(send);
msg.setPhones(cuser.getOpenId());
msg.setModelId(temp.getId());
Map<String,String> map = new HashMap<>();
map.put("thing1",send.getTitle());
map.put("time3",dateFormat.format(couponOrder.getCreateDate()));
map.put("time4",dateFormat.format(couponOrder.getExpiredTime()));
map.put("thing5","你的优惠卷已到账!请立即使用");
map.put("goToPage","pages/index/index?type=mc");
msg.setMsg(JSONObject.toJSONString(map));
wxMsgService.batchSendAppinfo(msg);
}
} catch (Exception e) {
// e.printStackTrace();
logger.error("发卷消息发送异常");
}
}

private boolean sendMpMsgForSendCoupon(WxCouponSend send, WxCouponOrder couponOrder, WxCUser user) {
// 发送 公众号 模板消息
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");


+ 36
- 32
mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java Просмотреть файл

@@ -316,47 +316,51 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService {
}

//发消息
try {
WxTemplateMsg temp = new WxTemplateMsg();
temp.updateTenantInfo(record);
temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode());
temp = wxTemplateMsgService.getByObj(temp);
if(temp.getId() != null){
List<String> openIds = wxCUserMapper.findOpenIdList(wxCUserBasicInfo.getId(),tenantId);
if(openIds != null && openIds.size() > 0){
WxMsg msg = new WxMsg();
msg.updateTenantInfo(record);
sendCreditUpdRemind(wxCUserBasicInfo,record,tenantId);


} else {
//wxCreditHistoryMapper.updateById(record);
}
}
return record;
}

private void sendCreditUpdRemind(WxCUserBasicInfo wxCUserBasicInfo,WxCreditHistory record,String tenantId){
try {
WxTemplateMsg temp = new WxTemplateMsg();
temp.updateTenantInfo(record);
temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode());
temp = wxTemplateMsgService.getByObj(temp);
if(temp.getId() != null){
List<String> openIds = wxCUserMapper.findOpenIdList(wxCUserBasicInfo.getId(),tenantId);
if(openIds != null && openIds.size() > 0){
WxMsg msg = new WxMsg();
msg.updateTenantInfo(record);
// msg.setWay(EnumSendWay.APPINFOR.getCode());
// msg.setIsright(EnumMsgSend.MSG_SEND_IMMEDIATELY.getCode());
// msg.setStatus(EnumMsgStatus.MSG_STATUS_NOT_SEND.getCode());
msg.setPhones(String.join(",", openIds));
msg.setModelId(temp.getId());
Map<String,String> map = new HashMap<>();
map.put("character_string1",record.getCreditNum().toString());
map.put("character_string2",record.getCreditAmount().toString());
map.put("time4",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(record.getCreateDate()));
map.put("thing3",EnumScoreType.getEnum(record.getCreditType()).getMessage());
map.put("goToPage","pages/index/index?type=jf");
msg.setMsg(JSONObject.toJSONString(map));
msg.setPhones(String.join(",", openIds));
msg.setModelId(temp.getId());
Map<String,String> map = new HashMap<>();
map.put("character_string1",record.getCreditNum().toString());
map.put("character_string2",record.getCreditAmount().toString());
map.put("time4",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(record.getCreateDate()));
map.put("thing3",EnumScoreType.getEnum(record.getCreditType()).getMessage());
map.put("goToPage","pages/index/index?type=jf");
msg.setMsg(JSONObject.toJSONString(map));
// msg.setName(EnumTemplateType.CREDIT_UPD_REMIND.name());
// msg.setSignature(EnumTemplateType.CREDIT_UPD_REMIND.name());
// wxMsgService.add(msg);
wxMsgService.batchSendAppinfo(msg);
}else{
logger.error("找不到微信用户");
}
}
} catch (Exception e) {
// e.printStackTrace();
logger.error("积分消息发送异常");
wxMsgService.batchSendAppinfo(msg);
}else{
logger.error("找不到微信用户");
}


} else {
//wxCreditHistoryMapper.updateById(record);
}
} catch (Exception e) {
// e.printStackTrace();
logger.error("积分消息发送异常");
}
return record;
}

@Override


Загрузка…
Отмена
Сохранить