From 988d4ba6d992138c2133d0fb71e5cf54ec6bebee Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 9 Apr 2019 18:15:24 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=B6=88=E6=81=AF][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF?= =?UTF-8?q?,=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=BB=9F=E4=B8=80=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxFlowAbleController.java | 5 - .../iformall/controller/WxMsgController.java | 2 +- .../controller/WxMsgRecordController.java | 9 +- .../java/com/iformall/mq/MqBaseConsumer.java | 9 +- .../iformall/controller/HomeController.java | 5 +- .../schedule/BillNotificationSchedule.java | 2 +- .../iformall/schedule/MsgSendingSchedule.java | 2 +- .../java/com/iformall/common/ErrorCode.java | 4 +- .../iformall/domain/po/msg/AppUniformMsg.java | 37 ++++++ .../iformall/domain/po/{ => msg}/BaseMsg.java | 2 +- .../iformall/domain/po/{ => msg}/MailMsg.java | 3 +- .../domain/po/{ => msg}/MpAppMsg.java | 7 +- .../domain/po/{ => msg}/SmartAppMsg.java | 3 +- .../iformall/domain/po/{ => msg}/WxMsg.java | 6 +- .../domain/po/{ => msg}/WxMsgRecord.java | 3 +- .../com/iformall/domain/vo/WxWeappInfo.java | 10 +- .../com/iformall/enums/EnumMsgRecordType.java | 3 +- .../mapper/WxAuthorizerInfoMapper.java | 2 + .../java/com/iformall/mapper/WxMsgMapper.java | 2 +- .../iformall/mapper/WxMsgRecordMapper.java | 4 +- .../java/com/iformall/mq/MqBaseProducer.java | 2 +- .../mq/impl/RabbitMqMessageProducer.java | 2 +- .../mq/impl/RocketMqMessageProducer.java | 5 +- .../iformall/service/WxMsgRecordService.java | 4 +- .../com/iformall/service/WxMsgService.java | 2 +- .../service/impl/WxBillAllServiceImpl.java | 10 +- .../impl/WxCouponInjectServiceImpl.java | 1 + .../impl/WxCouponOrderServiceImpl.java | 110 ++++++++++++++++-- .../service/impl/WxFlowServiceImpl.java | 4 +- .../service/impl/WxMallApplyServiceImpl.java | 3 +- .../service/impl/WxMsgRecordServiceImpl.java | 2 +- .../service/impl/WxMsgServiceImpl.java | 1 + .../service/{ => msg}/MsgSendService.java | 4 +- .../impl/SendCallBackSmsServiceImpl.java | 6 +- .../{ => msg}/impl/SendEmailServiceImpl.java | 8 +- .../{ => msg}/impl/SendMpMsgServiceImpl.java | 6 +- .../impl/SendSmartAppMsgServiceImpl.java | 6 +- .../{ => msg}/impl/SendSmsServiceImpl.java | 6 +- .../impl/SendWeappUniformMsgServiceImpl.java | 72 ++++++++++++ .../mapper/WxAuthorizerInfoMapper.xml | 13 ++- .../src/main/resources/mapper/WxMsgMapper.xml | 4 +- .../resources/mapper/WxMsgRecordMapper.xml | 8 +- .../java/com/iformall/mq/AmqpMsgConsumer.java | 4 +- 43 files changed, 308 insertions(+), 95 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/msg/AppUniformMsg.java rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/BaseMsg.java (97%) rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/MailMsg.java (90%) rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/MpAppMsg.java (86%) rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/SmartAppMsg.java (94%) rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/WxMsg.java (97%) rename mallinkService/src/main/java/com/iformall/domain/po/{ => msg}/WxMsgRecord.java (96%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/MsgSendService.java (58%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/impl/SendCallBackSmsServiceImpl.java (96%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/impl/SendEmailServiceImpl.java (95%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/impl/SendMpMsgServiceImpl.java (93%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/impl/SendSmartAppMsgServiceImpl.java (94%) rename mallinkService/src/main/java/com/iformall/service/{ => msg}/impl/SendSmsServiceImpl.java (96%) create mode 100644 mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java index f48a5acd3..a028de0a4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java @@ -2,18 +2,13 @@ package com.iformall.controller; import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxCUserTags; import com.iformall.domain.po.WxFlowRecord; -import com.iformall.domain.po.WxMsgRecord; import com.iformall.enums.EnumFlowRecordStatus; -import com.iformall.enums.EnumMsgRecordStatus; import com.iformall.service.WxFlowService; -import com.iformall.service.WxMsgRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.flowable.engine.RuntimeService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java index 05dd9d310..844a46b54 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java @@ -7,7 +7,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.PushLimit; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxMsg; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.domain.po.WxMsgConfig; import com.iformall.enums.EnumMsgSend; import com.iformall.enums.EnumMsgStatus; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgRecordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgRecordController.java index cc6739071..0a928117e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgRecordController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgRecordController.java @@ -2,20 +2,21 @@ package com.iformall.controller; import com.alibaba.fastjson.JSONArray; import com.iformall.common.ResultData; -import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.MailMsg; +import com.iformall.domain.po.msg.SmartAppMsg; +import com.iformall.domain.po.msg.WxMsg; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.*; import com.iformall.mapper.WxMsgMapper; import com.iformall.mq.MqBaseProducer; -import com.iformall.service.MsgSendService; import com.iformall.service.WxMsgRecordService; -import com.iformall.service.impl.SendCallBackSmsServiceImpl; +import com.iformall.service.msg.impl.SendCallBackSmsServiceImpl; import com.iformall.utils.DateUtils; import com.iformall.utils.JsonUtil; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index 697888ba5..65a843b28 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -1,9 +1,9 @@ package com.iformall.mq; -import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.*; import com.iformall.enums.*; import com.iformall.mapper.WxMsgRecordMapper; -import com.iformall.service.impl.*; +import com.iformall.service.msg.impl.*; import com.iformall.utils.JsonUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,6 +28,8 @@ public class MqBaseConsumer { private SendSmartAppMsgServiceImpl sendSmartAppMsgService; @Autowired private SendMpMsgServiceImpl sendMpMsgService; + @Autowired + private SendWeappUniformMsgServiceImpl sendWeappUniformMsgService; // @Autowired // private MqBaseProducer mqBaseProducer; @@ -53,6 +55,9 @@ public class MqBaseConsumer { } else if(EnumMsgRecordType.PUBLIC.getCode().equals(baseMsg.getMsgType())) { //公众号-模板消息 sendMpMsgService.send((MpAppMsg)JsonUtil.readValue(message,MpAppMsg.class)); + } else if(EnumMsgRecordType.SMART_APP_UNIFORM.getCode().equals(baseMsg.getMsgType())) { + //微信小程序-统一消息 + sendWeappUniformMsgService.send((AppUniformMsg)JsonUtil.readValue(message,AppUniformMsg.class)); } baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_SUCC.getCode()); wxMsgRecordMapper.update(baseMsg); diff --git a/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java b/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java index 0631ecf61..7a401beca 100644 --- a/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java @@ -1,18 +1,15 @@ package com.iformall.controller; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxMsgRecord; -import com.iformall.mq.MQConfig; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.mq.MqBaseProducer; import com.iformall.mq.impl.RabbitMqMessageProducer; -import com.iformall.mq.impl.RocketMqMessageProducer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Profile; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java index 3f0a46bea..066565405 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java @@ -1,7 +1,7 @@ package com.iformall.schedule; import com.alibaba.fastjson.JSONObject; -import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java index 03d245f8b..358747bbe 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java @@ -1,7 +1,7 @@ package com.iformall.schedule; import com.alibaba.fastjson.JSONArray; -import com.iformall.domain.po.WxMsg; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.enums.*; import com.iformall.mapper.WxMsgConfigMapper; import com.iformall.mapper.WxMsgMapper; diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index ac6a2715e..30bc38ca6 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -186,8 +186,10 @@ public enum ErrorCode{ NICK_NAME_NOT_FOUND(11004, "nickName,unionId未授权"), PHONE_NOT_FOUND(11005, "Phone未授权"), PHONE_IS_ENCRYPTED(11006, "Phone已加密"), - TEMPLATE_SEND_FAILED(11007, "模板消息发送失败"), + TEMPLATE_SEND_FAILED(11007, "小程序模板消息发送失败"), WE_RUN_DATA_DECODE_ERR(11008, "运动信息解密失败"), + MP_TEMPLATE_SEND_FAILED(11009, "公众号模板消息发送失败"), + UNIFORM_SEND_FAILED(11010, "小程序统一消息发送失败"), /** diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/AppUniformMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/AppUniformMsg.java new file mode 100644 index 000000000..5a289f05c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/AppUniformMsg.java @@ -0,0 +1,37 @@ +package com.iformall.domain.po.msg; + +import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +/** + * 微信公众号-模板消息 + * @author Stormeye + * @date 2019/4/9 13:55 + */ +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class AppUniformMsg extends BaseMsg { + private static final long serialVersionUID = 223232132183760321L; + + @io.swagger.annotations.ApiModelProperty(value="小程序AppId",name="appId") + private String appId; + @io.swagger.annotations.ApiModelProperty(value="小程序openid",name="to") + private String to; + @io.swagger.annotations.ApiModelProperty(value="小程序路径",name="pagePath") + private String pagePath; + @io.swagger.annotations.ApiModelProperty(value="formId",name="formId") + private String formId; + @io.swagger.annotations.ApiModelProperty(value="模板类型",name="templateType") + private Integer templateType; + @io.swagger.annotations.ApiModelProperty(value="公众号AppId",name="mpAppId") + private String mpAppId; + @io.swagger.annotations.ApiModelProperty(value="公众号url",name="url") + private String url; + @io.swagger.annotations.ApiModelProperty(value="公众号模板主体",name="templateDataList") + private List templateDataList; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java similarity index 97% rename from mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java index 5ce31b32c..62379cfec 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java @@ -1,4 +1,4 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; import lombok.Data; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/MailMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/MailMsg.java similarity index 90% rename from mallinkService/src/main/java/com/iformall/domain/po/MailMsg.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/MailMsg.java index 5e2287bcd..b031ccafc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/MailMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/MailMsg.java @@ -1,5 +1,6 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; +import com.iformall.domain.po.msg.BaseMsg; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/MpAppMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/MpAppMsg.java similarity index 86% rename from mallinkService/src/main/java/com/iformall/domain/po/MpAppMsg.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/MpAppMsg.java index 1f8d694dc..0dea4f57a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/MpAppMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/MpAppMsg.java @@ -1,5 +1,6 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; +import com.iformall.domain.po.msg.BaseMsg; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -8,7 +9,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import java.util.List; /** - * 微信公众号模板消息 + * 微信公众号-模板消息 * @author Stormeye * @date 2019/4/9 13:55 */ @@ -28,8 +29,6 @@ public class MpAppMsg extends BaseMsg { private String miniAppId; @io.swagger.annotations.ApiModelProperty(value="小程序路径",name="miniPagePath") private String miniPagePath; - @io.swagger.annotations.ApiModelProperty(value="公众号AppId",name="appId") - private String emphasisKeyword; @io.swagger.annotations.ApiModelProperty(value="公众号模板主体",name="templateDataList") private List templateDataList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/SmartAppMsg.java similarity index 94% rename from mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/SmartAppMsg.java index fac78419b..fdf749256 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/SmartAppMsg.java @@ -1,6 +1,7 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; +import com.iformall.domain.po.msg.BaseMsg; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsg.java similarity index 97% rename from mallinkService/src/main/java/com/iformall/domain/po/WxMsg.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsg.java index 56004d379..e68c94bb4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsg.java @@ -1,5 +1,8 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; +import com.iformall.domain.po.WxCouponInject; +import com.iformall.domain.po.WxMsgConfig; +import com.iformall.domain.po.WxTags; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -7,7 +10,6 @@ import lombok.ToString; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; -import java.io.Serializable; import java.util.Date; import java.util.List; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMsgRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsgRecord.java similarity index 96% rename from mallinkService/src/main/java/com/iformall/domain/po/WxMsgRecord.java rename to mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsgRecord.java index d4cf64a94..07119578c 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMsgRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsgRecord.java @@ -1,5 +1,6 @@ -package com.iformall.domain.po; +package com.iformall.domain.po.msg; +import com.iformall.domain.po.msg.BaseMsg; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappInfo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappInfo.java index 9838377f0..c277b12e3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxWeappInfo.java @@ -10,11 +10,11 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) public class WxWeappInfo extends WxAuthorizerInfo { - - /**小程序类型(1-B端 2-C端)*/ - @io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端)",name="type") + + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") + private String tenantId; + @io.swagger.annotations.ApiModelProperty(value="小程序类型(1-B端 2-C端 3-服务号 4-订阅号)",name="type") private Integer type; - /**小程序名称*/ @io.swagger.annotations.ApiModelProperty(value="小程序名称",name="name") private String name; @@ -22,7 +22,6 @@ public class WxWeappInfo extends WxAuthorizerInfo { { Id_ASC("ai.`id` ASC"),Id_DESC("ai.`id` DESC") ,AuthorizerAppid_ASC("ai.`authorizer_appid` ASC"),AuthorizerAppid_DESC("ai.`authorizer_appid` DESC") - ,HeadImg_ASC("ai.`head_img` ASC"),HeadImg_DESC("ai.`head_img` DESC") ,Alias_ASC("ai.`alias` ASC"),Alias_DESC("ai.`alias` DESC") ,QrcodeUrl_ASC("ai.`qrcode_url` ASC"),QrcodeUrl_DESC("ai.`qrcode_url` DESC") @@ -44,6 +43,7 @@ public class WxWeappInfo extends WxAuthorizerInfo { ,OpenAppid_ASC("ai.`open_appid` ASC"),OpenAppid_DESC("ai.`open_appid` DESC") ,BindOpenTime_ASC("ai.`bind_open_time` ASC"),BindOpenTime_DESC("ai.`bind_open_time` DESC") ,Name_ASC("a.`name` ASC"),Name_DESC("a.`name` DESC") + ,TenantID_ASC("a.`tenant_id` ASC"),TenantID_DESC("a.`tenant_id` DESC") ,Type_ASC("a.`type` ASC"),Type_DESC("a.`type` DESC") ; private String value; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java index 6459462ca..325eb8545 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java @@ -10,7 +10,8 @@ public enum EnumMsgRecordType { SMART_APP(4, "小程序"), PUBLIC(5, "公众号"), SYSTEM(6, "系统通知"), - WEBSOCKET_APP(7, "小程序websocket"), + SMART_APP_UNIFORM(7, "小程序统一消息"), + WEBSOCKET_APP(8, "小程序websocket"), ; public static EnumMsgRecordType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java index 51df5195e..2ffbe185a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxAuthorizerInfoMapper.java @@ -17,6 +17,8 @@ public interface WxAuthorizerInfoMapper extends CommonMapper { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMsgRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMsgRecordMapper.java index 0cc02bf2d..bfaff6bbb 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMsgRecordMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMsgRecordMapper.java @@ -1,8 +1,8 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; -import com.iformall.domain.po.BaseMsg; -import com.iformall.domain.po.WxMsgRecord; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.WxMsgRecord; import java.util.List; diff --git a/mallinkService/src/main/java/com/iformall/mq/MqBaseProducer.java b/mallinkService/src/main/java/com/iformall/mq/MqBaseProducer.java index 505e04406..93c836a64 100644 --- a/mallinkService/src/main/java/com/iformall/mq/MqBaseProducer.java +++ b/mallinkService/src/main/java/com/iformall/mq/MqBaseProducer.java @@ -1,6 +1,6 @@ package com.iformall.mq; -import com.iformall.domain.po.BaseMsg; +import com.iformall.domain.po.msg.BaseMsg; public interface MqBaseProducer { diff --git a/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java b/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java index 5dddd82bd..f9dd20ffd 100644 --- a/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java +++ b/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java @@ -1,6 +1,6 @@ package com.iformall.mq.impl; -import com.iformall.domain.po.BaseMsg; +import com.iformall.domain.po.msg.BaseMsg; import com.iformall.enums.EnumMsgRecordStatus; import com.iformall.mapper.WxMsgRecordMapper; import com.iformall.mq.MQConfig; diff --git a/mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java b/mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java index 63e328acb..25ac16e20 100644 --- a/mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java +++ b/mallinkService/src/main/java/com/iformall/mq/impl/RocketMqMessageProducer.java @@ -1,15 +1,12 @@ package com.iformall.mq.impl; -import com.iformall.domain.po.BaseMsg; -import com.iformall.domain.po.WxMsg; -import com.iformall.domain.po.WxMsgRecord; +import com.iformall.domain.po.msg.BaseMsg; import com.iformall.enums.EnumMsgRecordStatus; import com.iformall.mapper.WxMsgRecordMapper; import com.iformall.mq.MQConfig; import com.iformall.mq.MqBaseProducer; import com.iformall.service.WxMsgRecordService; import com.iformall.utils.JsonUtil; -import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java index 252e9b9c5..14b4fb542 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java @@ -1,7 +1,7 @@ package com.iformall.service; -import com.iformall.domain.po.BaseMsg; -import com.iformall.domain.po.WxMsgRecord; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.WxMsgRecord; import java.util.List; public interface WxMsgRecordService { diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgService.java index e692a830c..4b7e2b4d9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMsgService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgService.java @@ -3,7 +3,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCouponInject; -import com.iformall.domain.po.WxMsg; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.domain.po.WxMsgConfig; public interface WxMsgService { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 86dd114fd..c1459ee31 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.MailMsg; import com.iformall.domain.vo.WxBillAll; import com.iformall.domain.vo.WxBillAllVo; import com.iformall.enums.*; @@ -13,26 +14,17 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; -import com.iformall.utils.Constant; -import com.iformall.utils.DateUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.HashedMap; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java index bf3b6d8a7..7037147ea 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java @@ -7,6 +7,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxCouponInjectMapper; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index a19e70d3a..70ff8e839 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -3,9 +3,7 @@ package com.iformall.service.impl; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; -import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -16,6 +14,9 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.AppUniformMsg; +import com.iformall.domain.po.msg.MpAppMsg; +import com.iformall.domain.po.msg.SmartAppMsg; import com.iformall.domain.vo.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; @@ -24,8 +25,7 @@ import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.Constant; import com.iformall.utils.DateUtils; -import com.iformall.utils.MaUtil; -import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.slf4j.Logger; @@ -106,6 +106,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Autowired MqBaseProducer mqBaseProducer; + @Autowired + WxAuthorizerInfoMapper authorizerInfoMapper; + @Override public PageInfo listAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findList(record)); @@ -590,15 +593,97 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponDetail = "满" + coupon.getUsePriceStr() + "减" + coupon.getPriceStr(); } - SmartAppMsg smartAppMsg; + boolean bUsed = false; + String gotopage = "pages/index/index"; + String notes = ""; if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) { - String gotopage = "pages/index/index"; - String notes = ""; if (hadSentCoupon) { gotopage = "pages/couponorder/index/index"; notes = "您有新的券"; } + bUsed = true; + } + + // 7. 公众号消息 + if(StringUtils.isNotBlank(user.getMpAppId()) && StringUtils.isNotBlank(user.getMpOpenId())) { + /** + * 卡券核销通知 + * {{first.DATA}} + * 卡券类型:{{keyword1.DATA}} + * 卡券号码:{{keyword2.DATA}} + * 核销时间:{{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.setTenantId(couponOrder.getTenantId()); + mpAppMsg.setTemplateType(EnumTemplateType.VERIFY_RESULT.getCode()); + mpAppMsg.setTemplateDataList(Lists.newArrayList( + new WxMpTemplateData("first", "商家"+merchant.getName()+"的券被核销", "#173177"), + new WxMpTemplateData("keyword1", EnumCouponType.getEnum(coupon.getType()).getMessage(), "#173177"), + new WxMpTemplateData("keyword2", couponOrder.getId().toString(), "#173177"), + new WxMpTemplateData("keyword3", dateFormat.format(new Date()), "#173177"), + new WxMpTemplateData("remark", "更多优惠等您来!", "#173177") + )); + + 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); + } + return; + } else { + // 8. 微信小程序-统一消息 + // 获取小程序关联的服务号 + WxWeappInfo weappInfoQ = new WxWeappInfo(); + weappInfoQ.setAuthorizerAppid(user.getAppId()); + weappInfoQ.setTenantId(user.getTenantId()); + WxWeappInfo weappInfo = authorizerInfoMapper.findMp(weappInfoQ); + if(weappInfo != null) { + AppUniformMsg appUniformMsg = new AppUniformMsg(); + 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.setUrl("http://iformall.com"); + appUniformMsg.setMpAppId(weappInfo.getAuthorizerAppid()); + appUniformMsg.setTemplateDataList(Lists.newArrayList( + new WxMaTemplateData("first", "商家"+merchant.getName()+"的券被核销", "#173177"), + new WxMaTemplateData("keyword1", EnumCouponType.getEnum(coupon.getType()).getMessage(), "#173177"), + new WxMaTemplateData("keyword2", couponOrder.getId().toString(), "#173177"), + new WxMaTemplateData("keyword3", dateFormat.format(new Date()), "#173177"), + new WxMaTemplateData("remark", "更多优惠等您来!", "#173177") + )); + 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; + } + } + + // 9. 微信小程序-模板消息 + SmartAppMsg smartAppMsg; + if (bUsed) { //mq发送小程序消息 - 核销成功消息 + /** + * 核销成功消息 + * 核销金额 {{keyword1.DATA}} + * 商家名称 {{keyword2.DATA}} + * 商品 {{keyword3.DATA}} + * 商品描述 {{keyword4.DATA}} + * 订单金额 {{keyword5.DATA}} + * 核销时间 {{keyword6.DATA}} + * 温馨提示 {{keyword7.DATA}} + */ smartAppMsg = new SmartAppMsg(); smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode()); smartAppMsg.setAppId(user.getAppId()); @@ -617,13 +702,20 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { new WxMaTemplateData("keyword7", notes, "#173177"))); smartAppMsg.setEmphasisKeyword("keyword1.DATA"); } else { - //mq发送小程序消息 - 核销失败消息 + // mq发送小程序消息 - 核销失败消息 + /** + * 核销失败消息 + * 商品名称 {{keyword1.DATA}} + * 核销时间 {{keyword2.DATA}} + * 失败原因 {{keyword3.DATA}} + * 备注 {{keyword4.DATA}} + */ smartAppMsg = new SmartAppMsg(); smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode()); smartAppMsg.setAppId(user.getAppId()); smartAppMsg.setTenantId(couponOrder.getTenantId()); smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_FAIL.getCode()); - smartAppMsg.setGotopage("pages/index/index"); + smartAppMsg.setGotopage(gotopage); smartAppMsg.setTo(user.getOpenId()); smartAppMsg.setReceiver(user.getOpenId()); smartAppMsg.setFormId(formId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 7bc8aa365..f010ec715 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -10,6 +10,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.MailMsg; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; @@ -36,8 +38,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; -import java.text.SimpleDateFormat; -import java.util.*; /** * @author luozukai diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallApplyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallApplyServiceImpl.java index d424e5c4c..c9f70f001 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallApplyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallApplyServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -8,6 +7,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.*; import com.iformall.mapper.WxMallApplyMapper; import com.iformall.mapper.WxMsgConfigMapper; @@ -15,7 +15,6 @@ import com.iformall.mapper.WxMsgValidationcodeMapper; import com.iformall.mapper.WxMsgValidationcodeModelMapper; import com.iformall.mq.MqBaseProducer; import com.iformall.service.WxMallApplyService; -import com.iformall.utils.*; import org.apache.commons.collections.map.HashedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java index e36876db1..714ff5b00 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java @@ -1,7 +1,7 @@ package com.iformall.service.impl; import com.iformall.common.IdWorker; -import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.*; import com.iformall.enums.EnumMsgRecordStatus; import com.iformall.mapper.*; import com.iformall.service.WxMsgRecordService; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index 34f294f17..5aeea5dec 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -6,6 +6,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; diff --git a/mallinkService/src/main/java/com/iformall/service/MsgSendService.java b/mallinkService/src/main/java/com/iformall/service/msg/MsgSendService.java similarity index 58% rename from mallinkService/src/main/java/com/iformall/service/MsgSendService.java rename to mallinkService/src/main/java/com/iformall/service/msg/MsgSendService.java index 264ef6088..52b1143dc 100644 --- a/mallinkService/src/main/java/com/iformall/service/MsgSendService.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/MsgSendService.java @@ -1,6 +1,6 @@ -package com.iformall.service; +package com.iformall.service.msg; -import com.iformall.domain.po.BaseMsg; +import com.iformall.domain.po.msg.BaseMsg; /** * 发送消息 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SendCallBackSmsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java similarity index 96% rename from mallinkService/src/main/java/com/iformall/service/impl/SendCallBackSmsServiceImpl.java rename to mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java index ccc37620c..17f7883d7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SendCallBackSmsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java @@ -1,15 +1,17 @@ -package com.iformall.service.impl; +package com.iformall.service.msg.impl; import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.enums.EnumMsgSendStatus; import com.iformall.enums.EnumMsgStatus; import com.iformall.enums.EnumVerifyCode; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; -import com.iformall.service.MsgSendService; +import com.iformall.service.msg.MsgSendService; import com.iformall.service.WxMsgService; import com.iformall.service.WxMsgValidationcodeService; import com.iformall.utils.DateUtils; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SendEmailServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java similarity index 95% rename from mallinkService/src/main/java/com/iformall/service/impl/SendEmailServiceImpl.java rename to mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java index ec688ce68..a9669d416 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SendEmailServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java @@ -1,10 +1,10 @@ -package com.iformall.service.impl; +package com.iformall.service.msg.impl; -import com.iformall.domain.po.BaseMsg; -import com.iformall.domain.po.MailMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.MailMsg; import com.iformall.domain.po.WxMsgModel; import com.iformall.mapper.WxMsgModelMapper; -import com.iformall.service.MsgSendService; +import com.iformall.service.msg.MsgSendService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SendMpMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendMpMsgServiceImpl.java similarity index 93% rename from mallinkService/src/main/java/com/iformall/service/impl/SendMpMsgServiceImpl.java rename to mallinkService/src/main/java/com/iformall/service/msg/impl/SendMpMsgServiceImpl.java index 6db4232e5..c85cfb8e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SendMpMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendMpMsgServiceImpl.java @@ -1,10 +1,12 @@ -package com.iformall.service.impl; +package com.iformall.service.msg.impl; import com.iformall.common.ErrorCode; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.MpAppMsg; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxTemplateMsgMapper; -import com.iformall.service.MsgSendService; +import com.iformall.service.msg.MsgSendService; import com.iformall.service.wechat.FmOpenService; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SendSmartAppMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java similarity index 94% rename from mallinkService/src/main/java/com/iformall/service/impl/SendSmartAppMsgServiceImpl.java rename to mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java index 5231903d0..a64ce8a01 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SendSmartAppMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java @@ -1,12 +1,14 @@ -package com.iformall.service.impl; +package com.iformall.service.msg.impl; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage; import com.iformall.common.ErrorCode; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.SmartAppMsg; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxTemplateMsgMapper; -import com.iformall.service.MsgSendService; +import com.iformall.service.msg.MsgSendService; import com.iformall.service.WxAppinfoService; import com.iformall.service.wechat.FmOpenService; import com.iformall.utils.MaUtil; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SendSmsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java similarity index 96% rename from mallinkService/src/main/java/com/iformall/service/impl/SendSmsServiceImpl.java rename to mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java index 6b681dd52..befcc01a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SendSmsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java @@ -1,15 +1,17 @@ -package com.iformall.service.impl; +package com.iformall.service.msg.impl; import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.EnumVerifyCode; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxMsgConfigMapper; import com.iformall.mapper.WxMsgValidationcodeMapper; import com.iformall.mapper.WxMsgValidationcodeModelMapper; -import com.iformall.service.MsgSendService; +import com.iformall.service.msg.MsgSendService; import com.iformall.service.WxMsgValidationcodeService; import com.iformall.utils.WiwideUtil; import org.apache.commons.collections.CollectionUtils; diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java new file mode 100644 index 000000000..05bf0f71b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java @@ -0,0 +1,72 @@ +package com.iformall.service.msg.impl; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage; +import com.iformall.common.ErrorCode; +import com.iformall.domain.po.msg.AppUniformMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.MpAppMsg; +import com.iformall.domain.po.WxTemplateMsg; +import com.iformall.exception.MallinkException; +import com.iformall.mapper.WxTemplateMsgMapper; +import com.iformall.service.msg.MsgSendService; +import com.iformall.service.wechat.FmOpenService; +import me.chanjar.weixin.mp.api.WxMpService; +import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 发送微信小程序-统一消息 + * @author Stormeye + * @date 2019/4/9 13:51 + */ +@Service +public class SendWeappUniformMsgServiceImpl implements MsgSendService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private WxTemplateMsgMapper wxTemplateMsgMapper; + + @Autowired + private FmOpenService openService; + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + AppUniformMsg appUniformMsg = (AppUniformMsg)baseMsg; + WxTemplateMsg msg = null; + + WxMaService wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appUniformMsg.getAppId()); + + // 查询信息模板 + WxTemplateMsg msgQ = new WxTemplateMsg(); + msgQ.setTenantId(appUniformMsg.getTenantId()); + msgQ.setType(appUniformMsg.getTemplateType()); + try { + msg = wxTemplateMsgMapper.selectOne(msgQ); + } catch (Exception e) { + logger.error("公众号消息模板错误: " + e.getMessage()); + } + if (msg == null) { + logger.error("找不到模板Id"); + throw new MallinkException(ErrorCode.TEMPLATE_NOT_FOUND); + } + + WxMaUniformMessage.MiniProgram miniprogram = new WxMaUniformMessage.MiniProgram(); + miniprogram.setAppid(appUniformMsg.getAppId()); + miniprogram.setPagePath(appUniformMsg.getPagePath()); + miniprogram.setUsePath(true); + + WxMaUniformMessage uniformMessage = WxMaUniformMessage.builder() + .toUser(appUniformMsg.getTo()) + .appid(appUniformMsg.getMpAppId()) + .templateId(msg.getTemplateId()) + .url(appUniformMsg.getUrl()) + .miniProgram(miniprogram) + .formId(appUniformMsg.getFormId()) + .data(appUniformMsg.getTemplateDataList()) + .build(); + wxMaService.getMsgService().sendUniformMsg(uniformMessage); + } +} diff --git a/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml index 13e351fe9..ae5a589ba 100644 --- a/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAuthorizerInfoMapper.xml @@ -254,7 +254,7 @@ where ai.`authorizer_appid` = #{authorizerAppid} - select from wx_authorizer_info ai @@ -262,7 +262,7 @@ where a.type = 1 or a.type = 2 - select from wx_authorizer_info ai @@ -270,5 +270,14 @@ where a.type = 3 or a.type = 4 + + diff --git a/mallinkService/src/main/resources/mapper/WxMsgMapper.xml b/mallinkService/src/main/resources/mapper/WxMsgMapper.xml index 3d8ce43ae..8ae0678a5 100644 --- a/mallinkService/src/main/resources/mapper/WxMsgMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMsgMapper.xml @@ -1,7 +1,7 @@ - + @@ -125,7 +125,7 @@ order by ${sortColumns} - select from wx_msg diff --git a/mallinkService/src/main/resources/mapper/WxMsgRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxMsgRecordMapper.xml index 8cb067a8d..988a00c7f 100644 --- a/mallinkService/src/main/resources/mapper/WxMsgRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMsgRecordMapper.xml @@ -1,7 +1,7 @@ - + @@ -54,7 +54,7 @@ order by createtime desc - + update wx_msg_record set updatetime = now() ,msg_status = #{msgStatus} ,status_message = #{statusMessage} @@ -63,12 +63,12 @@ - select from wx_msg_record - + INSERT INTO wx_msg_record( id,tenant_id,`uuid`, `msg_type`, `domain`, `msg`, `send_time`, `model_id`, `model_type`, `signature`, `sender`, `sender_user_id`, `sender_user_name`, diff --git a/mallinkWebSocketServer/src/main/java/com/iformall/mq/AmqpMsgConsumer.java b/mallinkWebSocketServer/src/main/java/com/iformall/mq/AmqpMsgConsumer.java index 9a27d3cda..3acb4901a 100644 --- a/mallinkWebSocketServer/src/main/java/com/iformall/mq/AmqpMsgConsumer.java +++ b/mallinkWebSocketServer/src/main/java/com/iformall/mq/AmqpMsgConsumer.java @@ -1,12 +1,10 @@ package com.iformall.mq; -import com.alibaba.fastjson.JSON; -import com.iformall.domain.po.*; +import com.iformall.domain.po.msg.BaseMsg; import com.iformall.enums.EnumMsgRecordDomain; import com.iformall.enums.EnumMsgRecordStatus; import com.iformall.mapper.WxMsgRecordMapper; import com.iformall.service.UserService; -import com.iformall.util.Constance; import com.iformall.utils.JsonUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory;