From 099883c15e815a2b37c15ad9e21ee2a30fe0289c Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 18 Sep 2023 17:49:56 +0800 Subject: [PATCH] //..temp --- .../controller/msg/WxMsgController.java | 25 -- .../controller/CallbackSmController.java | 2 + .../controller/UserBasicImageController.java | 11 - .../controller/WxTemplateMsgController.java | 45 ++++ .../com/iformall/domain/po/WxTemplateMsg.java | 7 +- .../com/iformall/enums/EnumTemplateType.java | 20 +- .../com/iformall/mapper/TtCUserMapper.java | 2 +- .../com/iformall/mapper/WxCUserMapper.java | 2 +- .../iformall/mapper/WxTemplateMsgMapper.java | 1 + .../service/UserBasicPropertyService.java | 1 + .../com/iformall/service/WxMsgService.java | 2 +- .../service/WxTemplateMsgService.java | 6 +- .../service/cuser/CUserServiceApapter.java | 2 + .../cuser/tt/TtCUserServiceAdapter.java | 5 + .../cuser/wx/WxCUserServiceAdapter.java | 5 + .../impl/UserBasicImageServiceImpl.java | 7 +- .../impl/UserBasicPropertyServiceImpl.java | 7 +- .../impl/WxCouponOrderServiceImpl.java | 171 ++++---------- .../impl/WxCreditHistoryServiceImpl.java | 72 +++--- .../service/impl/WxMsgServiceImpl.java | 193 ++++++--------- .../service/impl/WxOrderPressServiceImpl.java | 42 ---- .../service/impl/WxOrderServiceImpl.java | 220 +++++------------- .../impl/WxTemplateMsgServiceImpl.java | 121 ++++------ .../msg/impl/AfterCarInOutMsgServiceImpl.java | 2 +- .../msg/impl/SendSmartAppMsgServiceImpl.java | 142 +++++------ .../service/pay/PayServiceFactory.java | 20 +- .../pay/service/pay/PayAdapterService.java | 11 + .../douyin/v1/BaseTtPayAdapterService.java | 1 + .../miniApp/TtMiniAppPayAdapterService.java | 17 ++ .../pay/wx/BaseWxPayAdapterService.java | 44 +++- .../appPay/WxMiniAppPayV3AdapterService.java | 5 + .../sm/UserDigitalAvatarOrderService.java | 1 + .../UserDigitalAvatarOrderServiceImpl.java | 31 +++ .../main/resources/mapper/TtCUserMapper.xml | 4 +- .../main/resources/mapper/WxCUserMapper.xml | 2 +- .../resources/mapper/WxTemplateMsgMapper.xml | 10 +- 36 files changed, 559 insertions(+), 700 deletions(-) create mode 100644 suimangCApi/src/main/java/com/iformall/controller/WxTemplateMsgController.java diff --git a/suimangAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java b/suimangAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java index cef65c7..7d0ec1e 100644 --- a/suimangAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java +++ b/suimangAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java @@ -72,10 +72,6 @@ public class WxMsgController extends BaseController { logger.debug("[" + getIpAddr() + "] WxMsgController::list"); if (null == wxTemplateMsg) wxTemplateMsg = new WxTemplateMsg(); wxTemplateMsg.updateTenantInfo(getTenantInfo()); - List types = new ArrayList<>(); - types.add(EnumTemplateType.ACTIVITY_REMIND.getCode()); - types.add(EnumTemplateType.LIVE_REMIND.getCode()); - wxTemplateMsg.setTypes(types); final PageInfo page = wxTemplateMsgService.listAsPageForMiniApp(wxTemplateMsg, pageNum, pageSize); return new ResultData(page); } @@ -90,12 +86,6 @@ public class WxMsgController extends BaseController { logger.debug("[" + getIpAddr() + "] WxMsgController::list"); if (null == wxTemplateMsg) wxTemplateMsg = new WxTemplateMsg(); wxTemplateMsg.updateTenantInfo(getTenantInfo()); - List types = new ArrayList<>(); - types.add(EnumTemplateType.ACTIVITY_REMIND.getCode()); - types.add(EnumTemplateType.LIVE_REMIND.getCode()); - types.add(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); - types.add(EnumTemplateType.SEND_COUPON_REMIND.getCode()); - wxTemplateMsg.setTypes(types); final PageInfo page = wxTemplateMsgService.listAsPageForMiniApp(wxTemplateMsg, pageNum, pageSize); return new ResultData(page); } @@ -116,21 +106,6 @@ public class WxMsgController extends BaseController { return new ResultData(); } - @ApiOperation("推送模板") - @PostMapping("pushTemp") - @SystemControllerLog(description = "moban tuisong") - public ResultData pushTemp(@RequestBody WxTemplateMsg wxTemplateMsg) { - logger.debug("[" + getIpAddr() + "] WxMsgController::tuisong"); - if(wxTemplateMsg.getId() == null){ - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); - } - wxTemplateMsg.updateTenantInfo(getTenantInfo()); -// if(null == wxTemplateMsg.getOnOff()){ -// wxTemplateMsg.setOnOff(1); -// } - return wxTemplateMsgService.pushTemp(wxTemplateMsg); - } - @ApiOperation("新增接口") @PostMapping("add") @SystemControllerLog(description = "标签短信-新增") diff --git a/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java b/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java index cc35a95..9151894 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java @@ -189,6 +189,8 @@ public class CallbackSmController extends BaseController { imgList.add(data.get("img_2")); imgList.add(data.get("img_3")); userDigitalAvatarPhotoService.handlePhoto(userDigitalAvatarOrder,imgList); + + userDigitalAvatarOrderService.sendPhotoSuccess(userDigitalAvatarOrder); }else{ UserDigitalAvatarOrder updOrder = new UserDigitalAvatarOrder(); updOrder.setId(userDigitalAvatarOrder.getId()); diff --git a/suimangCApi/src/main/java/com/iformall/controller/UserBasicImageController.java b/suimangCApi/src/main/java/com/iformall/controller/UserBasicImageController.java index f5c0844..36290a7 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/UserBasicImageController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/UserBasicImageController.java @@ -1,27 +1,17 @@ package com.iformall.controller; -import com.github.pagehelper.PageInfo; import com.iformall.annotation.AuthIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; -import com.iformall.domain.po.Product; -import com.iformall.domain.po.ProductOrder; import com.iformall.domain.po.UserBasicImage; -import com.iformall.domain.po.base.BaseEntity; -import com.iformall.domain.po.sm.UserMouldVideo; -import com.iformall.enums.EnumVideoStatus; -import com.iformall.service.ProductService; import com.iformall.service.UserBasicImageService; import com.iformall.sm.AiCheckPhotoParam; import com.iformall.sm.AiCheckPhotoResult; import com.iformall.sm.AiDigitalAvatarHelper; -import com.iformall.sm.AiVideoHelper; import com.iformall.utils.Base64Util; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -47,7 +37,6 @@ public class UserBasicImageController extends BaseController { logger.debug("[" + getIpAddr() + "] UserBasicImageController::findImage"); UserBasicImage userBasicImage = userBasicImageService.findById(getMemberId()); - return new ResultData(userBasicImage); } diff --git a/suimangCApi/src/main/java/com/iformall/controller/WxTemplateMsgController.java b/suimangCApi/src/main/java/com/iformall/controller/WxTemplateMsgController.java new file mode 100644 index 0000000..6b852dd --- /dev/null +++ b/suimangCApi/src/main/java/com/iformall/controller/WxTemplateMsgController.java @@ -0,0 +1,45 @@ +package com.iformall.controller; + +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxTemplateMsg; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.service.WxTemplateMsgService; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author gongbiao + */ +@RestController +@RequestMapping("/api/templateMsg") +public class WxTemplateMsgController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxTemplateMsgService wxTemplateMsgService; + + + @ApiOperation("模板列表接口") + @GetMapping("list") + @ApiImplicitParams({}) + public ResultData templateList(@ModelAttribute WxTemplateMsg wxTemplateMsg) { + logger.debug("[" + getIpAddr() + "] WxTemplateMsgController::list"); + if(wxTemplateMsg.getProjectType() == null || wxTemplateMsg.getPlat() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + wxTemplateMsg.updateTenantInfo(getTenantInfo()); + wxTemplateMsg.setOnOff(EnumYesOrNo.YES.getCode()); + List list = wxTemplateMsgService.findList(wxTemplateMsg); + //todo 微信订阅消息一次只支持3个 + + return new ResultData(list); + } + +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java b/suimangService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java index 97d53e2..d6af2f2 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java +++ b/suimangService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java @@ -18,7 +18,7 @@ public class WxTemplateMsg extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="模板ID",name="templateId") private String templateId; - @io.swagger.annotations.ApiModelProperty(value="模板类型1:核销成功消息,2:核销失败消息, 101:公众号审核结果消息, 102:公众号卡券核销消息",name="type") + @io.swagger.annotations.ApiModelProperty(value="EnumTemplateType",name="type") private Integer type; @io.swagger.annotations.ApiModelProperty(value="自定义参数",name="customParam") private String customParam; @@ -29,14 +29,15 @@ public class WxTemplateMsg extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="消息开关(0/1)",name="onOff") private Integer onOff; - @io.swagger.annotations.ApiModelProperty(value="模板类型1:核销成功消息,2:核销失败消息, 101:公众号审核结果消息, 102:公众号卡券核销消息",name="type") + private Integer projectType; + private Integer plat; + @TableField(exist = false) private String typeName; @TableField(exist = false) private List types; - public String getTypeName(){ if(this.getType() != null) { this.typeName = EnumTemplateType.getEnum(this.getType()).getMessage(); diff --git a/suimangService/src/main/java/com/iformall/enums/EnumTemplateType.java b/suimangService/src/main/java/com/iformall/enums/EnumTemplateType.java index 3759b43..0c08dd4 100644 --- a/suimangService/src/main/java/com/iformall/enums/EnumTemplateType.java +++ b/suimangService/src/main/java/com/iformall/enums/EnumTemplateType.java @@ -5,25 +5,9 @@ package com.iformall.enums; */ public enum EnumTemplateType { - // 1-核销成功消息, 2-核销失败消息 + // - VERIFY_SUCCESS(1, "核销成功消息",""), // 小程序(作废) - VERIFY_FAIL(2, "核销失败消息",""), // 小程序(作废) - PRESS_SUCCESS(3, "砍价成功消息",""), // 小程序(作废) - - /** - * - */ - ACTIVITY_REMIND(4, "活动开始提醒","386"), // 小程序 - LIVE_REMIND(5, "直播开播提醒","8501"), // 小程序 - CREDIT_UPD_REMIND(50, "积分变更提醒","310"), // 小程序 - SEND_COUPON_REMIND(51, "优惠券到账提醒","3209"), // 小程序 - - TT_SEND_COUPON_REMIND(60, "优惠券到账提醒",""), // 抖音小程序 - - AUDIT_MESSAGE(101, "公众号审核结果通知",""), // 公众号 - VERIFY_RESULT(102, "公众号卡券核销通知",""), // 公众号 - GIFT_MESSAGE(103, "公众号购票成功通知",""), // 公众号 + PHOTO_SUCCESS(1, "AI写真完成通知",""), ; public static EnumTemplateType getEnum(Integer code) { diff --git a/suimangService/src/main/java/com/iformall/mapper/TtCUserMapper.java b/suimangService/src/main/java/com/iformall/mapper/TtCUserMapper.java index 0f58655..e8f7ace 100644 --- a/suimangService/src/main/java/com/iformall/mapper/TtCUserMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/TtCUserMapper.java @@ -40,7 +40,7 @@ public interface TtCUserMapper extends CommonMapper { // void updateMsgCountDown(@Param("tenantId")String tenantId, @Param("openId")String openId); - List findOpenIdList(@Param("userId")Long userId, @Param("tenantId")String tenantId); + String findOpenId(@Param("userId")Long userId); List findTokenList(@Param("id")Long id,@Param("userId")Long userId, @Param("tenantId")String tenantId); diff --git a/suimangService/src/main/java/com/iformall/mapper/WxCUserMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxCUserMapper.java index fe9c779..4392ddc 100644 --- a/suimangService/src/main/java/com/iformall/mapper/WxCUserMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/WxCUserMapper.java @@ -40,7 +40,7 @@ public interface WxCUserMapper extends CommonMapper { // void updateMsgCountDown(@Param("tenantId")String tenantId, @Param("openId")String openId); - String findOpenId(@Param("userId")Long userId, @Param("tenantId")String tenantId); + String findOpenId(@Param("userId")Long userId); Long findCuserId(@Param("userId")Long userId, @Param("tenantId")String tenantId); diff --git a/suimangService/src/main/java/com/iformall/mapper/WxTemplateMsgMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxTemplateMsgMapper.java index fca40f6..e408f93 100644 --- a/suimangService/src/main/java/com/iformall/mapper/WxTemplateMsgMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/WxTemplateMsgMapper.java @@ -3,6 +3,7 @@ package com.iformall.mapper; import java.util.*; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxTemplateMsg; +import org.apache.ibatis.annotations.Param; public interface WxTemplateMsgMapper extends CommonMapper { diff --git a/suimangService/src/main/java/com/iformall/service/UserBasicPropertyService.java b/suimangService/src/main/java/com/iformall/service/UserBasicPropertyService.java index 74c4560..9b25f0f 100644 --- a/suimangService/src/main/java/com/iformall/service/UserBasicPropertyService.java +++ b/suimangService/src/main/java/com/iformall/service/UserBasicPropertyService.java @@ -29,4 +29,5 @@ public interface UserBasicPropertyService { void updUserGlod(Long userId, Integer projectType,Integer propertyLogType, Long extraId, Integer glod, Date now); UserBasicProperty findById(Long id); + } diff --git a/suimangService/src/main/java/com/iformall/service/WxMsgService.java b/suimangService/src/main/java/com/iformall/service/WxMsgService.java index 629ceda..d08605c 100644 --- a/suimangService/src/main/java/com/iformall/service/WxMsgService.java +++ b/suimangService/src/main/java/com/iformall/service/WxMsgService.java @@ -41,7 +41,7 @@ public interface WxMsgService { void addMsgCallback(WxMsg wxmsg, String batchNo); void batchSendAppinfo(WxMsg wxMsg); - void batchSendTtAppinfo(WxMsg msg); +// void batchSendTtAppinfo(WxMsg msg); void batchSendMsg(WxMsg wxMsg, WxMsgConfig wxMsgConfig, WxCouponInject couponInject); diff --git a/suimangService/src/main/java/com/iformall/service/WxTemplateMsgService.java b/suimangService/src/main/java/com/iformall/service/WxTemplateMsgService.java index b5d420c..ee3c84f 100644 --- a/suimangService/src/main/java/com/iformall/service/WxTemplateMsgService.java +++ b/suimangService/src/main/java/com/iformall/service/WxTemplateMsgService.java @@ -2,9 +2,11 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxTemplateMsg; import java.util.List; +import java.util.Map; public interface WxTemplateMsgService { @@ -59,7 +61,7 @@ public interface WxTemplateMsgService { void deleteById(Long id); - ResultData pushTemp(WxTemplateMsg wxTemplateMsg); - PageInfo listAsPageForMiniApp(WxTemplateMsg wxTemplateMsg, Integer pageNum, Integer pageSize); + + void sendTemplateMsg(WxAppinfo appinfo, Long userId, String toPage, Map param); } diff --git a/suimangService/src/main/java/com/iformall/service/cuser/CUserServiceApapter.java b/suimangService/src/main/java/com/iformall/service/cuser/CUserServiceApapter.java index 22c2314..88e51c3 100644 --- a/suimangService/src/main/java/com/iformall/service/cuser/CUserServiceApapter.java +++ b/suimangService/src/main/java/com/iformall/service/cuser/CUserServiceApapter.java @@ -50,4 +50,6 @@ public interface CUserServiceApapter { String updateQrCode(CUser user); List findCountData(WxCUserBasicInfoDto dto); + + String getOpenId(Long userId); } diff --git a/suimangService/src/main/java/com/iformall/service/cuser/tt/TtCUserServiceAdapter.java b/suimangService/src/main/java/com/iformall/service/cuser/tt/TtCUserServiceAdapter.java index b297e90..726baba 100644 --- a/suimangService/src/main/java/com/iformall/service/cuser/tt/TtCUserServiceAdapter.java +++ b/suimangService/src/main/java/com/iformall/service/cuser/tt/TtCUserServiceAdapter.java @@ -350,6 +350,11 @@ public class TtCUserServiceAdapter extends BasicCUserService implements CUserSer return ttCUserMapper.findCountData(dto); } + @Override + public String getOpenId(Long userId) { + return ttCUserMapper.findOpenId(userId); + } + private void delForUserIdOnly(Long id, Long userId, String tenantId) { List tokenList = ttCUserMapper.findTokenList(id,userId, tenantId); diff --git a/suimangService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java b/suimangService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java index 5d1e0e3..be28ae5 100644 --- a/suimangService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java +++ b/suimangService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java @@ -361,6 +361,11 @@ public class WxCUserServiceAdapter extends BasicCUserService implements CUserSer return wxCUserMapper.findCountData(dto); } + @Override + public String getOpenId(Long userId) { + return wxCUserMapper.findOpenId(userId); + } + private WxMaService getWxMaService(WxAppinfo wxAppinfo, Boolean isFmOpen) { WxMaService wxMaService = null; if (isFmOpen) { diff --git a/suimangService/src/main/java/com/iformall/service/impl/UserBasicImageServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/UserBasicImageServiceImpl.java index 95d625d..d13ed99 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/UserBasicImageServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/UserBasicImageServiceImpl.java @@ -56,7 +56,12 @@ public class UserBasicImageServiceImpl implements UserBasicImageService { @Override public UserBasicImage findById(Long userId) { - return userBasicImageMapper.selectById(userId); + UserBasicImage userBasicImage = userBasicImageMapper.selectById(userId); + if(userBasicImage == null){ + userBasicImage = new UserBasicImage(); + userBasicImage.setId(userId); + } + return userBasicImage; } diff --git a/suimangService/src/main/java/com/iformall/service/impl/UserBasicPropertyServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/UserBasicPropertyServiceImpl.java index ec1d9d7..c38bcc6 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/UserBasicPropertyServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/UserBasicPropertyServiceImpl.java @@ -103,7 +103,12 @@ public class UserBasicPropertyServiceImpl implements UserBasicPropertyService { @Override public UserBasicProperty findById(Long id) { - return userBasicPropertyMapper.selectById(id); + UserBasicProperty userBasicProperty = userBasicPropertyMapper.selectById(id); + if(userBasicProperty == null){ + userBasicProperty = new UserBasicProperty(); + userBasicProperty.setId(id); + } + return userBasicProperty; } private Integer handGlodNum(Integer projectType, Integer propertyLogType, Integer glod){ diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index d7a53a6..d37e746 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -2122,131 +2122,58 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { * 核销时间:{{keyword3.DATA}} * {{remark.DATA}} */ - MpAppMsg mpAppMsg = new MpAppMsg(); - mpAppMsg.setMsgType(EnumMsgRecordType.PUBLIC.getCode()); - mpAppMsg.setAppId(user.getMpAppId()); - mpAppMsg.setTo(user.getMpOpenId()); - mpAppMsg.setMiniAppId(user.getAppId()); - mpAppMsg.setMiniPagePath(gotopage); - mpAppMsg.updateTenantInfo(couponOrder); - mpAppMsg.setTemplateType(EnumTemplateType.VERIFY_RESULT.getCode()); - mpAppMsg.setDataList(Lists.newArrayList( - merchant.getName(), - EnumCouponType.getEnum(coupon.getType()).getMessage(), - couponOrder.getId().toString(), - dateFormat.format(new Date()), - user.getNickName() - )); - - try { - mqBaseProducer.sendMessage(mpAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("核销-公众号-模板消息发送失败: " + e.getMessage()); - throw new MallinkException(ErrorCode.MP_TEMPLATE_SEND_FAILED); - } +// MpAppMsg mpAppMsg = new MpAppMsg(); +// mpAppMsg.setMsgType(EnumMsgRecordType.PUBLIC.getCode()); +// mpAppMsg.setAppId(user.getMpAppId()); +// mpAppMsg.setTo(user.getMpOpenId()); +// mpAppMsg.setMiniAppId(user.getAppId()); +// mpAppMsg.setMiniPagePath(gotopage); +// mpAppMsg.updateTenantInfo(couponOrder); +// mpAppMsg.setTemplateType(EnumTemplateType.VERIFY_RESULT.getCode()); +// mpAppMsg.setDataList(Lists.newArrayList( +// merchant.getName(), +// EnumCouponType.getEnum(coupon.getType()).getMessage(), +// couponOrder.getId().toString(), +// dateFormat.format(new Date()), +// user.getNickName() +// )); +// +// try { +// mqBaseProducer.sendMessage(mpAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +// } catch (Exception e) { +// logger.error("核销-公众号-模板消息发送失败: " + e.getMessage()); +// throw new MallinkException(ErrorCode.MP_TEMPLATE_SEND_FAILED); +// } } private void doVerifyAppUniformMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) { - WxAuthorizerInfo authQ = new WxAuthorizerInfo(); - authQ.setAuthorizerAppid(user.getAppId()); - authQ.updateTenantInfo(couponOrder); - WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ); - if (weappInfo != null) { - AppUniformMsg appUniformMsg = new AppUniformMsg(); - appUniformMsg.setTenantId(coupon.getTenantId()); - appUniformMsg.setMsgType(EnumMsgRecordType.SMART_APP_UNIFORM.getCode()); - appUniformMsg.setAppId(user.getAppId()); - appUniformMsg.setTo(user.getOpenId()); - appUniformMsg.setTemplateType(EnumTemplateType.VERIFY_RESULT.getCode()); - appUniformMsg.setPagePath(gotopage); - appUniformMsg.setMpAppId(weappInfo.getAuthorizerAppid()); - appUniformMsg.setDataList(Lists.newArrayList( - merchant.getName(), - EnumCouponType.getEnum(coupon.getType()).getMessage(), - couponOrder.getId().toString(), - dateFormat.format(new Date()), - user.getNickName() - )); - try { - mqBaseProducer.sendMessage(appUniformMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("核销-公众号-模板消息发送失败: " + e.getMessage()); - throw new MallinkException(ErrorCode.UNIFORM_SEND_FAILED); - } - } - } - - private void doVerifySuccessMsg(WxCouponOrder couponOrder, String formId, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String couponDetail, String gotopage) { - SmartAppMsg smartAppMsg; - /** - * 核销成功消息 - * 核销金额 {{keyword1.DATA}} - * 商家名称 {{keyword2.DATA}} - * 商品 {{keyword3.DATA}} - * 商品描述 {{keyword4.DATA}} - * 订单金额 {{keyword5.DATA}} - * 核销时间 {{keyword6.DATA}} - * 温馨提示 {{keyword7.DATA}} - */ - smartAppMsg = new SmartAppMsg(); -// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode()); - smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode()); - smartAppMsg.setAppId(user.getAppId()); - smartAppMsg.updateTenantInfo(couponOrder); - smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_SUCCESS.getCode()); - smartAppMsg.setGotopage(gotopage); - smartAppMsg.setTo(user.getOpenId()); - smartAppMsg.setFormId(formId); - smartAppMsg.setDataList(Lists.newArrayList( - coupon.getPriceStr(), - merchant.getName(), - coupon.getTitle(), - couponDetail, - coupon.getSalePriceStr(), - dateFormat.format(new Date()), - user.getNickName() - )); - - try { - //mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("支付通知发送失败: " + e.getMessage()); - throw new MallinkException(ErrorCode.TEMPLATE_SEND_FAILED); - } - } - - private void doVerifyFailMsg(WxCouponOrder couponOrder, String formId, WxCoupon coupon, WxCUser user, SimpleDateFormat dateFormat, String couponDetail, String gotopage) { - - SmartAppMsg smartAppMsg; /** - * 核销失败消息 - * 商品名称 {{keyword1.DATA}} - * 核销时间 {{keyword2.DATA}} - * 失败原因 {{keyword3.DATA}} - * 备注 {{keyword4.DATA}} - */ - smartAppMsg = new SmartAppMsg(); -// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode()); - smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode()); - smartAppMsg.setAppId(user.getAppId()); - smartAppMsg.updateTenantInfo(couponOrder); - smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_FAIL.getCode()); - smartAppMsg.setGotopage(gotopage); - smartAppMsg.setTo(user.getOpenId()); - smartAppMsg.setReceiver(user.getOpenId()); - smartAppMsg.setFormId(formId); - smartAppMsg.setDataList(Lists.newArrayList( - coupon.getTitle(), - dateFormat.format(new Date()), - "核销失败", - user.getNickName() - )); - - try { -// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("支付通知发送失败: " + e.getMessage()); - throw new MallinkException(ErrorCode.TEMPLATE_SEND_FAILED); - } +// WxAuthorizerInfo authQ = new WxAuthorizerInfo(); +// authQ.setAuthorizerAppid(user.getAppId()); +// authQ.updateTenantInfo(couponOrder); +// WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ); +// if (weappInfo != null) { +// AppUniformMsg appUniformMsg = new AppUniformMsg(); +// appUniformMsg.setTenantId(coupon.getTenantId()); +// appUniformMsg.setMsgType(EnumMsgRecordType.SMART_APP_UNIFORM.getCode()); +// appUniformMsg.setAppId(user.getAppId()); +// appUniformMsg.setTo(user.getOpenId()); +// appUniformMsg.setTemplateType(EnumTemplateType.VERIFY_RESULT.getCode()); +// appUniformMsg.setPagePath(gotopage); +// appUniformMsg.setMpAppId(weappInfo.getAuthorizerAppid()); +// appUniformMsg.setDataList(Lists.newArrayList( +// merchant.getName(), +// EnumCouponType.getEnum(coupon.getType()).getMessage(), +// couponOrder.getId().toString(), +// dateFormat.format(new Date()), +// user.getNickName() +// )); +// try { +// mqBaseProducer.sendMessage(appUniformMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +// } catch (Exception e) { +// logger.error("核销-公众号-模板消息发送失败: " + e.getMessage()); +// throw new MallinkException(ErrorCode.UNIFORM_SEND_FAILED); +// } +// } } diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index 8060df8..2ab55b8 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -657,42 +657,42 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { } private void sendCreditUpdRemind(WxCUserBasicInfo wxCUserBasicInfo,WxCreditHistory record,String tenantId){ - try { - WxTemplateMsg temp = new WxTemplateMsg(); -// temp.updateTenantInfo(record); - temp.setTenantId(tenantId); - temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); - temp = wxTemplateMsgService.getByObj(temp); - if(temp.getId() != null){ - String openId = wxCUserMapper.findOpenId(wxCUserBasicInfo.getId(),tenantId); - if(StringUtils.isNotBlank(openId)){ - WxMsg msg = new WxMsg(); -// msg.updateTenantInfo(record); - msg.setTenantId(tenantId); -// msg.setWay(EnumSendWay.APPINFOR.getCode()); -// msg.setIsright(EnumMsgSend.MSG_SEND_IMMEDIATELY.getCode()); -// msg.setStatus(EnumMsgStatus.MSG_STATUS_NOT_SEND.getCode()); - msg.setPhones(openId); - msg.setModelId(temp.getId()); - Map 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("积分消息发送异常"); - } +// try { +// WxTemplateMsg temp = new WxTemplateMsg(); +//// temp.updateTenantInfo(record); +// temp.setTenantId(tenantId); +// temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); +// temp = wxTemplateMsgService.getByObj(temp); +// if(temp.getId() != null){ +// String openId = wxCUserMapper.findOpenId(wxCUserBasicInfo.getId(),tenantId); +// if(StringUtils.isNotBlank(openId)){ +// WxMsg msg = new WxMsg(); +//// msg.updateTenantInfo(record); +// msg.setTenantId(tenantId); +//// msg.setWay(EnumSendWay.APPINFOR.getCode()); +//// msg.setIsright(EnumMsgSend.MSG_SEND_IMMEDIATELY.getCode()); +//// msg.setStatus(EnumMsgStatus.MSG_STATUS_NOT_SEND.getCode()); +// msg.setPhones(openId); +// msg.setModelId(temp.getId()); +// Map 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("积分消息发送异常"); +// } } @Override diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index a371a80..b5b4747 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -404,59 +404,16 @@ public class WxMsgServiceImpl implements WxMsgService { goToPage = "pages/index/index?type=in";//默认首页 } smartAppMsg.setGotopage(goToPage); - if(wxTemplateMsg.getType() == EnumTemplateType.ACTIVITY_REMIND.getCode()){ + if(wxTemplateMsg.getType() == EnumTemplateType.PHOTO_SUCCESS.getCode()){ /** - * 活动名称:{{thing13.DATA}} - * 活动时间:{{date5.DATA}} - * 商户名称:{{thing12.DATA}} - * 活动内容:{{thing1.DATA}} - * 温馨提示:{{thing11.DATA}}" + * {{thing1.DATA}} + * {{character_string3.DATA}} + * {{time4.DATA}} */ smartAppMsg.setDataList(Lists.newArrayList( - customParam.getString("thing13"), - customParam.getString("date5"), - customParam.getString("thing12"), customParam.getString("thing1"), - customParam.getString("thing11") - )); - }else if(wxTemplateMsg.getType() == EnumTemplateType.LIVE_REMIND.getCode()){ - /** - * 直播标题:{{thing1.DATA}} - * 开播时间:{{date3.DATA}} - * 主播昵称:{{thing4.DATA}} - * 温馨提示:{{thing5.DATA}} - */ - smartAppMsg.setDataList(Lists.newArrayList( - customParam.getString("thing1"), - customParam.getString("date3"), - customParam.getString("thing4"), - customParam.getString("thing5") - )); - }else if(wxTemplateMsg.getType() == EnumTemplateType.CREDIT_UPD_REMIND.getCode()){ - /** - * 变更数量{{character_string1.DATA}} - * 积分余额{{character_string2.DATA}} - * 变动时间{{time4.DATA}} - * 变更原因{{thing3.DATA}} - */ - smartAppMsg.setDataList(Lists.newArrayList( - customParam.getString("character_string1"), - customParam.getString("character_string2"), - customParam.getString("time4"), - customParam.getString("thing3") - )); - }else if(wxTemplateMsg.getType() == EnumTemplateType.SEND_COUPON_REMIND.getCode()){ - /** - * 券名称{{thing1.DATA}} - * 获取时间{{time3.DATA}} - * 过期日期{{time4.DATA}} - * 备注{{thing5.DATA}} - */ - smartAppMsg.setDataList(Lists.newArrayList( - customParam.getString("thing1"), - customParam.getString("time3"), - customParam.getString("time4"), - customParam.getString("thing5") + customParam.getString("character_string3"), + customParam.getString("time4") )); }else{ return; @@ -509,81 +466,81 @@ public class WxMsgServiceImpl implements WxMsgService { } - @Override - public void batchSendTtAppinfo(WxMsg msg) { - TenantEntity tenantEntity = new TenantEntity(); - tenantEntity.setTenantId(msg.getTenantId()); - tenantEntity.setParentTenantId(msg.getParentTenantId()); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumAppPlat.TOUTIAO); - SmartAppMsg smartAppMsg = new SmartAppMsg(); - smartAppMsg.updateTenantInfo(tenantEntity); - smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode()); - smartAppMsg.setAppId(cAppInfo.getAppId()); - - WxTemplateMsg wxTemplateMsg = wxTemplateMsgMapper.selectById(msg.getModelId()); -// if(1 == wxTemplateMsg.getOnOff().intValue()){ -// logger.error("订阅消息模板关闭。"); +// @Override +// public void batchSendTtAppinfo(WxMsg msg) { +// TenantEntity tenantEntity = new TenantEntity(); +// tenantEntity.setTenantId(msg.getTenantId()); +// tenantEntity.setParentTenantId(msg.getParentTenantId()); +// WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumAppPlat.TOUTIAO); +// SmartAppMsg smartAppMsg = new SmartAppMsg(); +// smartAppMsg.updateTenantInfo(tenantEntity); +// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode()); +// smartAppMsg.setAppId(cAppInfo.getAppId()); +// +// WxTemplateMsg wxTemplateMsg = wxTemplateMsgMapper.selectById(msg.getModelId()); +//// if(1 == wxTemplateMsg.getOnOff().intValue()){ +//// logger.error("订阅消息模板关闭。"); +//// return; +//// } +// +// smartAppMsg.setTemplateType(wxTemplateMsg.getType()); +// JSONObject customParam = JSON.parseObject(msg.getMsg()); +// String goToPage = customParam.getString("goToPage"); +// if(StringUtils.isBlank(goToPage)){ +// goToPage = "pages/index/index?type=in";//默认首页 +// } +// smartAppMsg.setGotopage(goToPage); +// if(wxTemplateMsg.getType() == EnumTemplateType.TT_SEND_COUPON_REMIND.getCode()){ +// smartAppMsg.setDataJson(msg.getMsg()); +// }else{ // return; // } - - smartAppMsg.setTemplateType(wxTemplateMsg.getType()); - JSONObject customParam = JSON.parseObject(msg.getMsg()); - String goToPage = customParam.getString("goToPage"); - if(StringUtils.isBlank(goToPage)){ - goToPage = "pages/index/index?type=in";//默认首页 - } - smartAppMsg.setGotopage(goToPage); - if(wxTemplateMsg.getType() == EnumTemplateType.TT_SEND_COUPON_REMIND.getCode()){ - smartAppMsg.setDataJson(msg.getMsg()); - }else{ - return; - } - - if(StringUtils.isNotBlank(msg.getPhones())){ - - smartAppMsg.setTo(msg.getPhones()); - mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - -// String[] split = wxMsg.getPhones().split(","); -// int length = split.length; -// int extra = length % 1000; -// int extracount = extra > 0 ? (length / 1000 + 1) : (length / 1000); -// int index = extracount - 1; -// for (int i = 0; i < extracount; i++) { -// if (extra > 0 && i == index) { -// List phoneList = Arrays.asList(split).subList(i * 1000, length); -// String phones = StringUtils.join(phoneList, ","); -// smartAppMsg.setTo(phones); -// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); -// } else { -// List phoneList = Arrays.asList(split).subList(i * 1000, (i + 1) * 1000); -// String phones = StringUtils.join(phoneList, ","); +// +// if(StringUtils.isNotBlank(msg.getPhones())){ +// +// smartAppMsg.setTo(msg.getPhones()); +// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +// +//// String[] split = wxMsg.getPhones().split(","); +//// int length = split.length; +//// int extra = length % 1000; +//// int extracount = extra > 0 ? (length / 1000 + 1) : (length / 1000); +//// int index = extracount - 1; +//// for (int i = 0; i < extracount; i++) { +//// if (extra > 0 && i == index) { +//// List phoneList = Arrays.asList(split).subList(i * 1000, length); +//// String phones = StringUtils.join(phoneList, ","); +//// smartAppMsg.setTo(phones); +//// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +//// } else { +//// List phoneList = Arrays.asList(split).subList(i * 1000, (i + 1) * 1000); +//// String phones = StringUtils.join(phoneList, ","); +//// smartAppMsg.setTo(phones); +//// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +//// } +//// } +// }else{ +// TtCUser ttCUserQ = new TtCUser(); +// ttCUserQ.updateTenantInfo(tenantEntity); +// PageInfo openIdPage = ttCUserService.listOpenIdAsPage(ttCUserQ, 1, 1000); +// msg.setExpectSendNumber((int) openIdPage.getTotal()); +// if(openIdPage.getTotal() == 0){ +// return; +// } +// String phones = StringUtils.join(openIdPage.getList(), ","); +// smartAppMsg.setTo(phones); +// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); +// if(openIdPage.getPages() > 1){ +// for(int i=2;i<=openIdPage.getPages();i++){ +// openIdPage = ttCUserService.listOpenIdAsPage(ttCUserQ, i, 1000); +// phones = StringUtils.join(openIdPage.getList(), ","); // smartAppMsg.setTo(phones); // mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); // } // } - }else{ - TtCUser ttCUserQ = new TtCUser(); - ttCUserQ.updateTenantInfo(tenantEntity); - PageInfo openIdPage = ttCUserService.listOpenIdAsPage(ttCUserQ, 1, 1000); - msg.setExpectSendNumber((int) openIdPage.getTotal()); - if(openIdPage.getTotal() == 0){ - return; - } - String phones = StringUtils.join(openIdPage.getList(), ","); - smartAppMsg.setTo(phones); - mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - if(openIdPage.getPages() > 1){ - for(int i=2;i<=openIdPage.getPages();i++){ - openIdPage = ttCUserService.listOpenIdAsPage(ttCUserQ, i, 1000); - phones = StringUtils.join(openIdPage.getList(), ","); - smartAppMsg.setTo(phones); - mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } - } - - } - } +// +// } +// } @Override diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java index 62bd244..7568be5 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java @@ -208,48 +208,6 @@ public class WxOrderPressServiceImpl implements WxOrderPressService { // // mq发送小程序消息 - 核销成功消息 // doPressSuccessMsg(coupon, user, formId, gotopage); } - - private void doPressSuccessMsg(WxCoupon coupon, WxCUser user, String formId, String gotopage) { - SmartAppMsg smartAppMsg; - /** - * 砍价成功消息 - * 商品名称 {{keyword1.DATA}} - * 商品原价 {{keyword2.DATA}} - * 付款剩余时间 {{keyword3.DATA}} - * 支付截止时间 {{keyword4.DATA}} - * 支付金额 {{keyword5.DATA}} - * 温馨提示 {{keyword6.DATA}} - */ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) +1);// 让日期加1h - System.out.println(calendar.get(Calendar.DATE));// 加1之后的日期Top - System.out.println(); - smartAppMsg = new SmartAppMsg(); -// smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode()); - smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP_TO.getCode()); - smartAppMsg.setAppId(user.getAppId()); - smartAppMsg.setTenantId(user.getTenantId()); - smartAppMsg.setTemplateType(EnumTemplateType.PRESS_SUCCESS.getCode()); - smartAppMsg.setGotopage(gotopage); - smartAppMsg.setTo(user.getOpenId()); - smartAppMsg.setFormId(formId); - smartAppMsg.setDataList(Lists.newArrayList( - coupon.getTitle(), - coupon.getPriceStr(), - "1小时", - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()), - coupon.getSalePriceStr(), - user.getNickName() - )); - - try { -// mqBaseProducer.sendMessage(smartAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("砍价成功通知发送失败: " + e.getMessage()); - throw new MallinkException(ErrorCode.TEMPLATE_SEND_FAILED); - } - } diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index c2b6c71..0260c7b 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1665,170 +1665,70 @@ public class WxOrderServiceImpl implements WxOrderService { } private void sendCouponRemind(WxCouponOrder couponOrder,WxCoupon coupon,WxCUser cuser){ - try { - WxTemplateMsg temp = new WxTemplateMsg(); - temp.updateTenantInfo(coupon); - 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"); - WxMsg msg = new WxMsg(); - msg.updateTenantInfo(coupon); - msg.setPhones(cuser.getOpenId()); - msg.setModelId(temp.getId()); - Map map = new HashMap<>(); - map.put("thing1",coupon.getTitle()); - map.put("time3",dateFormat.format(couponOrder.getCreateDate())); - map.put("time4",dateFormat.format(couponOrder.getExpiredTime())); - map.put("thing5","你的优惠券已到账!请立即使用"); - if(EnumCouponType.COUPON_TINGCHE.getCode().equals(couponOrder.getCouponType()) - || EnumCouponType.COUPON_CREDIT_PARK.getCode().equals(couponOrder.getCouponType())){ - map.put("goToPage","pages/index/index?type=pc"); - }else{ - map.put("goToPage","pages/index/index?type=mc"); - } - - msg.setMsg(JSONObject.toJSONString(map)); - wxMsgService.batchSendAppinfo(msg); - } - } catch (Exception e) { -// e.printStackTrace(); - logger.error("发卷消息发送异常"); - } +// try { +// WxTemplateMsg temp = new WxTemplateMsg(); +// temp.updateTenantInfo(coupon); +// 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"); +// WxMsg msg = new WxMsg(); +// msg.updateTenantInfo(coupon); +// msg.setPhones(cuser.getOpenId()); +// msg.setModelId(temp.getId()); +// Map map = new HashMap<>(); +// map.put("thing1",coupon.getTitle()); +// map.put("time3",dateFormat.format(couponOrder.getCreateDate())); +// map.put("time4",dateFormat.format(couponOrder.getExpiredTime())); +// map.put("thing5","你的优惠券已到账!请立即使用"); +// if(EnumCouponType.COUPON_TINGCHE.getCode().equals(couponOrder.getCouponType()) +// || EnumCouponType.COUPON_CREDIT_PARK.getCode().equals(couponOrder.getCouponType())){ +// map.put("goToPage","pages/index/index?type=pc"); +// }else{ +// map.put("goToPage","pages/index/index?type=mc"); +// } +// +// msg.setMsg(JSONObject.toJSONString(map)); +// wxMsgService.batchSendAppinfo(msg); +// } +// } catch (Exception e) { +//// e.printStackTrace(); +// logger.error("发卷消息发送异常"); +// } } private void sendCouponRemind(WxCouponOrder couponOrder,WxCoupon coupon,TtCUser cuser){ - try { - WxTemplateMsg temp = new WxTemplateMsg(); - temp.updateTenantInfo(coupon); - temp.setType(EnumTemplateType.TT_SEND_COUPON_REMIND.getCode()); - temp = wxTemplateMsgService.getByObj(temp); - if(temp.getId() != null){ - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - WxMsg msg = new WxMsg(); - msg.updateTenantInfo(coupon); - msg.setPhones(cuser.getOpenId()); - msg.setModelId(temp.getId()); - Map map = new HashMap<>(); - map.put("优惠券名称",coupon.getTitle()); - map.put("剩余时间","至"+ dateFormat.format(couponOrder.getExpiredTime())); - map.put("备注","你的优惠券已到账!请立即使用"); - if(EnumCouponType.COUPON_TINGCHE.getCode().equals(couponOrder.getCouponType()) - || EnumCouponType.COUPON_CREDIT_PARK.getCode().equals(couponOrder.getCouponType())){ - map.put("goToPage","pages/index/index?type=in"); - }else{ - map.put("goToPage","pages/index/index?type=mc"); - } - - msg.setMsg(JSONObject.toJSONString(map)); - wxMsgService.batchSendTtAppinfo(msg); - } - } catch (Exception e) { -// e.printStackTrace(); - logger.error("发卷消息发送异常"); - } - } - - private boolean sendMpMsgForSendCoupon(WxCouponOrder couponOrder,WxCoupon coupon, WxCUser user) { - // 发送 公众号 模板消息 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String gotopage = Constant.mainPageUrl + "?type=mc"; - // 7. 公众号消息 - if (StringUtils.isNotBlank(user.getMpAppId()) && - StringUtils.isNotBlank(user.getMpOpenId()) && - user.getMpSubscribe().equals(EnumUserIsSubscribe.YES.getCode())) { - // 检查是否超限 - WxMsgLimit msgLimit = new WxMsgLimit(); - msgLimit.updateTenantInfo(couponOrder); - msgLimit.setType(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode()); - msgLimit.setLimitId(user.getMpOpenId()); - if (wxMsgLimitService.checkIsLimit(msgLimit)) { - logger.error("用户公众号模板消息超限" + user.getId()); - return true; - } - - // 已关注公众号 - /** - * 购票成功通知 - * {first.DATA}} - * 订单号:{{keyword1.DATA}} - * 兑换券:{{keyword2.DATA}} - * 订单详情:{{keyword3.DATA}} - * 有效期至:{{keyword4.DATA}} - * 购买数量:{{keyword5.DATA}} - * {{remark.DATA}} - */ - MpAppMsg mpAppMsg = new MpAppMsg(); - mpAppMsg.setMsgType(EnumMsgRecordType.PUBLIC.getCode()); - mpAppMsg.setAppId(user.getMpAppId()); - mpAppMsg.setTo(user.getMpOpenId()); - mpAppMsg.setMiniAppId(user.getAppId()); - mpAppMsg.setMiniPagePath(gotopage); - mpAppMsg.updateTenantInfo(couponOrder); - mpAppMsg.setTemplateType(EnumTemplateType.GIFT_MESSAGE.getCode()); - mpAppMsg.setDataList(Lists.newArrayList( - user.getNickName(), - String.valueOf(couponOrder.getOrderId()), - couponOrder.getId().toString(), - coupon.getTitle(), - dateFormat.format(couponOrder.getExpiredTime()), - "1", - user.getNickName() - - )); - - try { - mqBaseProducer.sendMessage(mpAppMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("购票成功-公众号-模板消息发送失败: " + e.getMessage()); - //throw new MallinkException(ErrorCode.MP_TEMPLATE_SEND_FAILED); - } - } else { - // 可能未关注公众号, 用户可能收不到 - // 8. 微信小程序-统一消息 - // 检查是否超限 - WxMsgLimit msgLimit = new WxMsgLimit(); - msgLimit.updateTenantInfo(couponOrder); - msgLimit.setType(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode()); - msgLimit.setLimitId(user.getOpenId()); - if (wxMsgLimitService.checkIsLimit(msgLimit)) { - logger.error("用户小程序统一模板消息超限:" + user.getId()); - return true; - } - // 获取小程序关联的服务号 - WxAuthorizerInfo authQ = new WxAuthorizerInfo(); - authQ.setAuthorizerAppid(user.getAppId()); - authQ.updateTenantInfo(couponOrder); - WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ); - if (weappInfo != null) { - AppUniformMsg appUniformMsg = new AppUniformMsg(); - appUniformMsg.setTenantId(coupon.getTenantId()); - appUniformMsg.setMsgType(EnumMsgRecordType.SMART_APP_UNIFORM.getCode()); - appUniformMsg.setAppId(user.getAppId()); - appUniformMsg.setTo(user.getOpenId()); - appUniformMsg.setTemplateType(EnumTemplateType.GIFT_MESSAGE.getCode()); - appUniformMsg.setPagePath(gotopage); - appUniformMsg.setMpAppId(weappInfo.getAuthorizerAppid()); - appUniformMsg.setDataList(Lists.newArrayList( - user.getNickName(), - String.valueOf(couponOrder.getOrderId()), - couponOrder.getId().toString(), - coupon.getTitle(), - dateFormat.format(couponOrder.getExpiredTime()), - "1", - user.getNickName() - )); - try { - mqBaseProducer.sendMessage(appUniformMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - } catch (Exception e) { - logger.error("核销-公众号-模板消息发送失败: " + e.getMessage()); - //throw new MallinkException(ErrorCode.UNIFORM_SEND_FAILED); - } - } - } - return false; +// try { +// WxTemplateMsg temp = new WxTemplateMsg(); +// temp.updateTenantInfo(coupon); +// temp.setType(EnumTemplateType.TT_SEND_COUPON_REMIND.getCode()); +// temp = wxTemplateMsgService.getByObj(temp); +// if(temp.getId() != null){ +// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// WxMsg msg = new WxMsg(); +// msg.updateTenantInfo(coupon); +// msg.setPhones(cuser.getOpenId()); +// msg.setModelId(temp.getId()); +// Map map = new HashMap<>(); +// map.put("优惠券名称",coupon.getTitle()); +// map.put("剩余时间","至"+ dateFormat.format(couponOrder.getExpiredTime())); +// map.put("备注","你的优惠券已到账!请立即使用"); +// if(EnumCouponType.COUPON_TINGCHE.getCode().equals(couponOrder.getCouponType()) +// || EnumCouponType.COUPON_CREDIT_PARK.getCode().equals(couponOrder.getCouponType())){ +// map.put("goToPage","pages/index/index?type=in"); +// }else{ +// map.put("goToPage","pages/index/index?type=mc"); +// } +// +// msg.setMsg(JSONObject.toJSONString(map)); +// wxMsgService.batchSendTtAppinfo(msg); +// } +// } catch (Exception e) { +//// e.printStackTrace(); +// logger.error("发卷消息发送异常"); +// } } - + @Override @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) public WxCouponOrder sendFreeCouponToUser(Long userId,TenantEntity tenantinfo, Long couponId, WxCouponSendVo wxCouponSendVo,EnumPayWay payWay,EnumPayVersion payVersion,Long merchantId,Long bUserId) { diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java index 4d4f79e..a951f42 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java @@ -13,9 +13,12 @@ import com.iformall.domain.po.WxTemplateMsg; import com.iformall.enums.EnumAppPlat; import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumTemplateType; +import com.iformall.enums.EnumYesOrNo; import com.iformall.mapper.WxTemplateMsgMapper; import com.iformall.service.WxAppinfoService; import com.iformall.service.WxTemplateMsgService; +import com.iformall.service.cuser.CUserServiceFactory; +import com.iformall.service.pay.PayServiceFactory; import com.iformall.service.wechat.FmOpenService; import com.iformall.utils.MaUtil; import me.chanjar.weixin.common.error.WxErrorException; @@ -27,6 +30,7 @@ import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; +import java.util.Map; @Service public class WxTemplateMsgServiceImpl implements WxTemplateMsgService { @@ -42,6 +46,12 @@ public class WxTemplateMsgServiceImpl implements WxTemplateMsgService { @Autowired private FmOpenService openService; + + @Autowired + private PayServiceFactory payServiceFactory; + + @Autowired + private CUserServiceFactory cuserFactory; @Autowired MaUtil maUtil; @@ -49,26 +59,26 @@ public class WxTemplateMsgServiceImpl implements WxTemplateMsgService { @Override public void wxTemplateMsgInit(String tenantId) { - WxTemplateMsg wxTemplateMsg = new WxTemplateMsg(); - wxTemplateMsg.setTenantId(tenantId); - wxTemplateMsg.setTemplateId(""); - wxTemplateMsg.setType(EnumTemplateType.ACTIVITY_REMIND.getCode()); - wxTemplateMsg.setCustomParam("{\"index\": [\"thing13\", \"date5\", \"thing12\", \"thing1\", \"thing11\"], \"emphasis\": \"\"}"); - wxTemplateMsg.setCreateDate(new Date()); - wxTemplateMsg.setUpdateDate(new Date()); - wxTemplateMsgMapper.insert(wxTemplateMsg); +// WxTemplateMsg wxTemplateMsg = new WxTemplateMsg(); +// wxTemplateMsg.setTenantId(tenantId); +// wxTemplateMsg.setTemplateId(""); +// wxTemplateMsg.setType(EnumTemplateType.ACTIVITY_REMIND.getCode()); +// wxTemplateMsg.setCustomParam("{\"index\": [\"thing13\", \"date5\", \"thing12\", \"thing1\", \"thing11\"], \"emphasis\": \"\"}"); +// wxTemplateMsg.setCreateDate(new Date()); +// wxTemplateMsg.setUpdateDate(new Date()); +// wxTemplateMsgMapper.insert(wxTemplateMsg); +//// wxTemplateMsg.setId(null); +//// wxTemplateMsg.setType(EnumTemplateType.LIVE_REMIND.getCode()); +//// wxTemplateMsg.setCustomParam("{\"index\": [\"thing1\", \"date3\", \"thing4\", \"thing5\"], \"emphasis\": \"\"}"); +//// wxTemplateMsgMapper.insert(wxTemplateMsg); // wxTemplateMsg.setId(null); -// wxTemplateMsg.setType(EnumTemplateType.LIVE_REMIND.getCode()); -// wxTemplateMsg.setCustomParam("{\"index\": [\"thing1\", \"date3\", \"thing4\", \"thing5\"], \"emphasis\": \"\"}"); +// wxTemplateMsg.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); +// wxTemplateMsg.setCustomParam("{\"index\": [\"character_string1\", \"character_string2\", \"time4\", \"thing3\"], \"emphasis\": \"\"}"); +// wxTemplateMsgMapper.insert(wxTemplateMsg); +// wxTemplateMsg.setId(null); +// wxTemplateMsg.setType(EnumTemplateType.SEND_COUPON_REMIND.getCode()); +// wxTemplateMsg.setCustomParam("{\"index\": [\"thing1\", \"time3\", \"time4\", \"thing5\"], \"emphasis\": \"\"}"); // wxTemplateMsgMapper.insert(wxTemplateMsg); - wxTemplateMsg.setId(null); - wxTemplateMsg.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); - wxTemplateMsg.setCustomParam("{\"index\": [\"character_string1\", \"character_string2\", \"time4\", \"thing3\"], \"emphasis\": \"\"}"); - wxTemplateMsgMapper.insert(wxTemplateMsg); - wxTemplateMsg.setId(null); - wxTemplateMsg.setType(EnumTemplateType.SEND_COUPON_REMIND.getCode()); - wxTemplateMsg.setCustomParam("{\"index\": [\"thing1\", \"time3\", \"time4\", \"thing5\"], \"emphasis\": \"\"}"); - wxTemplateMsgMapper.insert(wxTemplateMsg); } @Override @@ -114,63 +124,32 @@ public class WxTemplateMsgServiceImpl implements WxTemplateMsgService { } @Override - public ResultData pushTemp(WxTemplateMsg wxTemplateMsg) { - WxTemplateMsg byId = this.getById(wxTemplateMsg.getId()); - if(byId == null){ - return new ResultData(ErrorCode.TEMPLATE_NOT_FOUND); - } - WxAppinfo appinfo = wxAppinfoService.getCAppInfo(wxTemplateMsg, EnumAppPlat.WX); - WxMaService wxMaService = null; - if(isFmOpen) { - wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appinfo.getAppId()); - } else { - wxMaService = maUtil.getWeappService(appinfo); + public PageInfo listAsPageForMiniApp(WxTemplateMsg record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxTemplateMsgMapper.findListForMiniApp(record)); + } + + @Override + public void sendTemplateMsg(WxAppinfo appinfo, Long userId, String toPage, Map param) { + WxTemplateMsg templateMsgQ = new WxTemplateMsg(); + templateMsgQ.setType(EnumTemplateType.PHOTO_SUCCESS.getCode()); + templateMsgQ.setProjectType(appinfo.getProjectType()); + templateMsgQ.setPlat(appinfo.getPlat()); + templateMsgQ.setOnOff(EnumYesOrNo.YES.getCode()); + WxTemplateMsg wxTemplateMsg = wxTemplateMsgMapper.selectOne(new QueryWrapper<>(templateMsgQ)); + if(wxTemplateMsg == null){ + return; } - String s = ""; - if(byId.getType() == EnumTemplateType.ACTIVITY_REMIND.getCode()){ - try { - s = wxMaService.getSubscribeService().addTemplate(EnumTemplateType.ACTIVITY_REMIND.getTid(), - Lists.newArrayList(13, 5, 12, 1, 11), EnumTemplateType.ACTIVITY_REMIND.getMessage()); - } catch (WxErrorException e) { - return new ResultData(ErrorCode.TEMPLATE_ADD_ERROR); - } - - }else if(byId.getType() == EnumTemplateType.LIVE_REMIND.getCode()){ - try { - s = wxMaService.getSubscribeService().addTemplate(EnumTemplateType.LIVE_REMIND.getTid(), - Lists.newArrayList(1, 3, 4, 5),EnumTemplateType.LIVE_REMIND.getMessage()); - } catch (WxErrorException e) { - return new ResultData(ErrorCode.TEMPLATE_ADD_ERROR); - } - }else if(byId.getType() == EnumTemplateType.CREDIT_UPD_REMIND.getCode()){ - try { - s = wxMaService.getSubscribeService().addTemplate(EnumTemplateType.CREDIT_UPD_REMIND.getTid(), - Lists.newArrayList(1, 2, 4, 3),EnumTemplateType.CREDIT_UPD_REMIND.getMessage()); - } catch (WxErrorException e) { - return new ResultData(ErrorCode.TEMPLATE_ADD_ERROR); - } - }else if(byId.getType() == EnumTemplateType.SEND_COUPON_REMIND.getCode()){ - try { - s = wxMaService.getSubscribeService().addTemplate(EnumTemplateType.SEND_COUPON_REMIND.getTid(), - Lists.newArrayList(1, 3, 4, 5),EnumTemplateType.SEND_COUPON_REMIND.getMessage()); - } catch (WxErrorException e) { - return new ResultData(ErrorCode.TEMPLATE_ADD_ERROR); - } - }else{ - return new ResultData(ErrorCode.TEMPLATE_NOT_FOUND); + String openId = cuserFactory.getCUserService(EnumAppPlat.getByCode(appinfo.getPlat())).getOpenId(userId); + if(StringUtils.isBlank(openId)){ + return; } - if(StringUtils.isBlank(s)){ - return new ResultData(ErrorCode.TEMPLATE_ADD_ERROR); + try{ + payServiceFactory.getMsgService(appinfo.getPlat()).sendSubscribeMsg(appinfo,wxTemplateMsg,openId,toPage,param); + }catch(Exception e){ + logger.error("发送订阅消息失败"+ e); + return; } - wxTemplateMsg.setTemplateId(s); - this.saveOrUpdate(wxTemplateMsg); - return new ResultData(); - } - - @Override - public PageInfo listAsPageForMiniApp(WxTemplateMsg record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxTemplateMsgMapper.findListForMiniApp(record)); } diff --git a/suimangService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java b/suimangService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java index b60736e..c55621f 100644 --- a/suimangService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java @@ -94,7 +94,7 @@ public class AfterCarInOutMsgServiceImpl implements MsgSendService { logger.error("车牌未找到用户{}"+plateNumber); return; } - String openId = wxCUserMapper.findOpenId(userCar.getCUserId(), tenantEntity.getTenantId()); + String openId = wxCUserMapper.findOpenId(userCar.getCUserId()); if(StringUtils.isBlank(openId)){ logger.error("车牌未找到用户{}"+plateNumber); return; diff --git a/suimangService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java b/suimangService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java index c0cb893..b991274 100644 --- a/suimangService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java @@ -75,77 +75,77 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService { // throw new MallinkException(ErrorCode.TEMPLATE_NOT_FOUND); return; } - if(0 == msg.getOnOff().intValue()){ - WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(smartAppMsg.getAppId()); - if(EnumTemplateType.TT_SEND_COUPON_REMIND.getCode().equals(msg.getType())){ - //发抖音 - TtMaService ttappService = maUtil.getTtMaService(appInfo); - TtMaSubscribeMessage subscribeMessage; - String[] split = smartAppMsg.getTo().split(","); - for (String to:split) { - try { - subscribeMessage = TtMaSubscribeMessage.builder() - .appId(appInfo.getAppId()) - .tplId(msg.getTemplateId()) - .openId(to) - .page(smartAppMsg.getGotopage()) - .data(new JsonParser().parse(smartAppMsg.getDataJson()).getAsJsonObject()) - .build(); - - ttappService.getMsgService().sendSubscribeMsg(subscribeMessage); -// wxCUserMapper.updateMsgCountDown(tenantEntity.getTenantId(),to); - } catch (Exception e) { - logger.error("openId:"+to+"-----发送订阅消息失败"); - } - } - }else -// if(EnumTemplateType.ACTIVITY_REMIND.getCode().equals(msg.getType()) -// || EnumTemplateType.LIVE_REMIND.getCode().equals(msg.getType()) -// || EnumTemplateType.CREDIT_UPD_REMIND.getCode().equals(msg.getType()) -// || EnumTemplateType.SEND_COUPON_REMIND.getCode().equals(msg.getType())) - - { - WxMaService wxMaService = null; - if(isFmOpen) { - wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(smartAppMsg.getAppId()); - } else { - wxMaService = maUtil.getWeappService(appInfo); - } - //发微信 - JSONObject customParam = JSON.parseObject(msg.getCustomParam()); - List dataList = smartAppMsg.getDataList(); - JSONArray indexArr = customParam.getJSONArray("index"); - - List dataTempList = new ArrayList<>(); - for(int i=0;i dataList = smartAppMsg.getDataList(); +// JSONArray indexArr = customParam.getJSONArray("index"); +// +// List dataTempList = new ArrayList<>(); +// for(int i=0;i payVendorServiceMap = null; private Map payVendorShareMap = null; private Map platQrcodeMap = null; + private Map platMsgMap = null; @Autowired WxMiniAppPayAdapterService wxMiniAppPayService; @@ -133,6 +134,15 @@ public class PayServiceFactory { return platQrcodeMap; } + private Map getPlatMsgMap() { + if (null == platMsgMap) { + platMsgMap = new ConcurrentHashMap(); + platMsgMap.put(EnumAppPlat.WX.getCode()+"_", wxMiniAppPayV3AdapterService); + platMsgMap.put(EnumAppPlat.TOUTIAO.getCode()+"_",ttMiniAppPayService); + } + return platMsgMap; + } + private Map getPayVendorServiceMap() { if (null == payVendorServiceMap) { payVendorServiceMap = new ConcurrentHashMap(); @@ -259,7 +269,15 @@ public class PayServiceFactory { public PayAdapterService getQrcodeService(Integer type) throws MallinkException{ PayAdapterService service = getPlatQrcodeMap().get(type+"_"); if (null == service) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"payWay["+type+"] 二维码service未找到"); + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"plat["+type+"] 二维码service未找到"); + } + return service; + } + + public PayAdapterService getMsgService(Integer type) throws MallinkException{ + PayAdapterService service = getPlatMsgMap().get(type+"_"); + if (null == service) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"plat["+type+"] 消息service未找到"); } return service; } diff --git a/suimangService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java b/suimangService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java index 84b4beb..029c5aa 100644 --- a/suimangService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java +++ b/suimangService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java @@ -123,4 +123,15 @@ public interface PayAdapterService { * @return */ PayAdapterResult noCreatePay(WxPayOrder record, WxComposeOrder composeOrder, List childOrders); + + /** + * 发小程序订阅消息 + * @param appinfo + * @param wxTemplateMsg + * @param openId + * @param toPage + * @param param + */ + void sendSubscribeMsg(WxAppinfo appinfo, WxTemplateMsg wxTemplateMsg, String openId, String toPage, Map param)throws Exception; + } diff --git a/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java b/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java index 9ec9d93..7d0a92a 100644 --- a/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java +++ b/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java @@ -116,4 +116,5 @@ public class BaseTtPayAdapterService { final File codeFile = ttappService.getQrcodeService().createTtaCode("douyin", pathStr, QRCodeUtils.QR_WIDTH); return codeFile; } + } diff --git a/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index 694e182..a007d5c 100644 --- a/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -3,12 +3,15 @@ package com.iformall.service.pay.service.pay.douyin.v1.miniApp; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.gson.Gson; +import com.google.gson.JsonParser; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.domain.vo.WxOrderCouponVo; import com.iformall.douyin.miniapp.api.TtMaService; +import com.iformall.douyin.miniapp.api.bean.TtMaSubscribeMessage; import com.iformall.douyin.pay.DouYinPayHelper; import com.iformall.douyin.pay.TtPayService; import com.iformall.douyin.pay.orderQuery.OrderQueryResult; @@ -526,4 +529,18 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen return par; } + @Override + public void sendSubscribeMsg(WxAppinfo appinfo, WxTemplateMsg wxTemplateMsg, String openId, String toPage, Map param) throws Exception{ + TtMaService ttappService = maUtil.getTtMaService(appinfo); + TtMaSubscribeMessage subscribeMessage = TtMaSubscribeMessage.builder() + .appId(appinfo.getAppId()) + .tplId(wxTemplateMsg.getTemplateId()) + .openId(openId) + .page(toPage) + .data(new Gson().toJsonTree(param).getAsJsonObject()) + .build(); + ttappService.getMsgService().sendSubscribeMsg(subscribeMessage); + + } + } diff --git a/suimangService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java b/suimangService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java index 5118e01..0bced8f 100644 --- a/suimangService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java +++ b/suimangService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java @@ -1,11 +1,13 @@ package com.iformall.service.pay.service.pay.wx; import java.io.File; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; +import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; import cn.binarywang.wx.miniapp.bean.scheme.WxMaGenerateSchemeRequest; +import cn.binarywang.wx.miniapp.constant.WxMaConstants; +import com.alibaba.fastjson.JSONArray; +import com.iformall.domain.po.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -16,13 +18,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.PosCouponOrderVerify; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBatchOrder; -import com.iformall.domain.po.WxCouponOrder; -import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumOrderFrom; import com.iformall.enums.EnumOrderStatus; @@ -105,6 +100,35 @@ public class BaseWxPayAdapterService { } } + protected void subscribeMsg(WxAppinfo appinfo, WxTemplateMsg wxTemplateMsg, String openId, String toPage, Map param) throws WxErrorException { + boolean isFmOpen = false; + WxMaService wxMaService; + if(isFmOpen) { + wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appinfo.getAppId()); + } else { + wxMaService = maUtil.getWeappService(appinfo); + } + JSONObject customParam = JSON.parseObject(wxTemplateMsg.getCustomParam()); + JSONArray indexArr = customParam.getJSONArray("index"); + List dataTempList = new ArrayList<>(); + for(int i=0;i param) throws Exception { + super.subscribeMsg(appinfo,wxTemplateMsg,openId,toPage,param); + } + } diff --git a/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarOrderService.java b/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarOrderService.java index 6085c12..02f1899 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarOrderService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarOrderService.java @@ -60,5 +60,6 @@ public interface UserDigitalAvatarOrderService { void createPhoto(UserDigitalAvatarOrder record); + void sendPhotoSuccess(UserDigitalAvatarOrder record); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java index c4ef153..f8e358e 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java @@ -6,6 +6,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.UserBasicProperty; +import com.iformall.domain.po.WxAppinfo; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.domain.po.sm.DigitalAvatarMould; import com.iformall.domain.po.sm.UserDigitalAvatarOrder; import com.iformall.domain.po.sm.UserDigitalAvatarPhoto; @@ -14,11 +16,14 @@ import com.iformall.exception.MallinkException; import com.iformall.file.aliyun.AliyunOSS; import com.iformall.mapper.*; import com.iformall.service.UserBasicPropertyService; +import com.iformall.service.WxAppinfoService; +import com.iformall.service.WxTemplateMsgService; import com.iformall.service.impl.ProductOrderServiceImpl; import com.iformall.service.sm.UserDigitalAvatarOrderService; import com.iformall.service.sm.UserDigitalAvatarPhotoService; import com.iformall.sm.*; import com.iformall.utils.Base64Util; +import com.iformall.utils.DateUtils; import com.iformall.utils.RedisLock; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -34,7 +39,9 @@ import org.springframework.transaction.annotation.Transactional; import java.io.InputStream; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.Future; @@ -60,6 +67,12 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder @Autowired UserBasicPropertyService userBasicPropertyService; + @Autowired + WxAppinfoService wxAppinfoService; + + @Autowired + WxTemplateMsgService wxTemplateMsgService; + @Autowired private AliyunOSS aliyunOSS; @@ -290,4 +303,22 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder } + @Async + @Override + public void sendPhotoSuccess(UserDigitalAvatarOrder record) { + UserDigitalAvatarOrder userDigitalAvatarOrder = userDigitalAvatarOrderMapper.selectById(record.getId()); + if(!EnumDigitalAvatarOrderStatus.finish.getCode().equals(userDigitalAvatarOrder.getStatus())){ + return; + } + //默认先发微信订阅消息 + WxAppinfo appinfo = wxAppinfoService.getProjectCAppInfoFromRedis(EnumProject.PROJECT_5.getCode(), EnumAppPlat.WX.getCode()); + String toPage = "/pages/lookPhoto/index?id="+record.getId(); + Map param = new HashMap<>(); + param.put("thing1",record.getTitle()); + param.put("character_string3",record.getId().toString()); + param.put("time4", DateUtils.date2String(record.getUpdateDate())); + + wxTemplateMsgService.sendTemplateMsg(appinfo,record.getUserId(),toPage,param); + } + } diff --git a/suimangService/src/main/resources/mapper/TtCUserMapper.xml b/suimangService/src/main/resources/mapper/TtCUserMapper.xml index 3fb9041..c70ba58 100644 --- a/suimangService/src/main/resources/mapper/TtCUserMapper.xml +++ b/suimangService/src/main/resources/mapper/TtCUserMapper.xml @@ -441,7 +441,7 @@ - + select open_id from tt_c_user where user_id=#{userId} diff --git a/suimangService/src/main/resources/mapper/WxCUserMapper.xml b/suimangService/src/main/resources/mapper/WxCUserMapper.xml index 85b05ba..5242e52 100644 --- a/suimangService/src/main/resources/mapper/WxCUserMapper.xml +++ b/suimangService/src/main/resources/mapper/WxCUserMapper.xml @@ -446,7 +446,7 @@