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

Merge remote-tracking branch 'origin/develop' into develop

release_toaliyun_real
luozukai 7 лет назад
Родитель
Сommit
0efffea4f6
37 измененных файлов: 572 добавлений и 690 удалений
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java
  2. +1
    -13
      mallinkAdmin/src/main/java/com/iformall/controller/WxBusinessController.java
  3. +15
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java
  4. +10
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java
  5. +2
    -0
      mallinkAdmin/src/main/resources/db/migration/V201904091440__ADD_FORMID_FOR_ORDER.sql
  6. +0
    -9
      mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java
  7. +6
    -4
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  8. +10
    -8
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  9. +5
    -0
      mallinkService/pom.xml
  10. +11
    -73
      mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java
  11. +7
    -80
      mallinkService/src/main/java/com/iformall/domain/po/MailMsg.java
  12. +35
    -0
      mallinkService/src/main/java/com/iformall/domain/po/MpAppMsg.java
  13. +15
    -58
      mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java
  14. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java
  15. +23
    -195
      mallinkService/src/main/java/com/iformall/domain/po/WxMsg.java
  16. +23
    -165
      mallinkService/src/main/java/com/iformall/domain/po/WxMsgRecord.java
  17. +16
    -21
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  18. +2
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java
  19. +2
    -8
      mallinkService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java
  20. +17
    -5
      mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java
  21. +16
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantSimpleVo.java
  22. +1
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java
  23. +4
    -3
      mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java
  24. +17
    -0
      mallinkService/src/main/java/com/iformall/exception/BeanMappingException.java
  25. +8
    -0
      mallinkService/src/main/java/com/iformall/service/WxMerchantService.java
  26. +9
    -9
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  27. +65
    -0
      mallinkService/src/main/java/com/iformall/service/impl/SendMpMsgServiceImpl.java
  28. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/SendSmartAppMsgServiceImpl.java
  29. +27
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  30. +28
    -26
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  31. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  32. +26
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  33. +4
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  34. +2
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  35. +139
    -0
      mallinkService/src/main/java/com/iformall/utils/BeanMapping.java
  36. +6
    -0
      mallinkService/src/main/resources/mapper/WxMerchantMapper.xml
  37. +6
    -1
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java Просмотреть файл

@@ -66,7 +66,7 @@ public class AsyncTask {
public void importExcelData(File file, MallUserInfo user, String importKey, String tenantId) {
ImportParams params = new ImportParams();
// 需要验证
params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});
params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日","积分", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});
IExcelDataHandler<CUserBaseInfoT> handler = new AsyncTask.UserExcelHandler();
handler.setNeedHandlerFields(new String[] { "手机号" });
params.setNeedVerify(true);


+ 1
- 13
mallinkAdmin/src/main/java/com/iformall/controller/WxBusinessController.java Просмотреть файл

@@ -39,19 +39,7 @@ public class WxBusinessController extends BaseController {
final PageInfo<WxBusiness> page = wxBusinessService.listAsPage(wxBusiness, pageNum, pageSize);
return new ResultData(page);
}

@ApiOperation("成长值业态列表接口")
@GetMapping("busListForScore")
@SystemControllerLog(description = "成长值-业态-列表")
public ResultData getList() {
logger.debug("[" + getIpAddr() + "] WxBusinessController::getList");
WxBusiness wxBusiness = new WxBusiness();
final List<WxBusiness> busList = wxBusinessService.getList(wxBusiness);
// 业态 全部 不返回
List<WxBusiness> busList2 = busList.stream().filter(b -> !b.getId().equals(0L)).collect(Collectors.toList());
return new ResultData(busList2);
}

@ApiOperation("业态全列表接口")
@GetMapping("allist")
@SystemControllerLog(description = "业态-全列表")


+ 15
- 0
mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java Просмотреть файл

@@ -38,6 +38,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import static com.iformall.domain.po.WxCouponOrder.Field.CreateDate_DESC;
import static com.iformall.ueditor.define.AppInfo.info;

@RestController
@RequestMapping("wxCUserBasicInfo")
@@ -452,4 +453,18 @@ public class WxCUserBasicInfoController extends BaseController {
wxCUserBasicInfoService.exportCarPayData(record, request, response);

}

@ApiOperation("根据手机号查询接口")
@GetMapping("/findByPhone")
@ApiImplicitParam(name = "phone", value = "phone", dataType = "String", paramType = "query", required = true)
@SystemControllerLog(description = "根据手机号查询接口")
public ResultData findByPhone(String phone) {
logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::findByPhone");
List<WxCUserBasicInfo> wxCUserBasicInfoList = wxCUserBasicInfoService.findByPhone(getTenantId(),phone);
WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo();
if (wxCUserBasicInfoList != null && wxCUserBasicInfoList.size() > 0) {
wxCUserBasicInfo = wxCUserBasicInfoList.get(0);
}
return new ResultData(wxCUserBasicInfo);
}
}

+ 10
- 0
mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantController.java Просмотреть файл

@@ -7,11 +7,13 @@ import com.iformall.common.ResultData;
import com.iformall.domain.po.WxLevelConfig;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxProfitSharingReceiver;
import com.iformall.domain.vo.WxMerchantSimpleVo;
import com.iformall.service.WxMerchantService;
import com.iformall.service.WxProfitSharingReceiverService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -154,4 +156,12 @@ public class WxMerchantController extends BaseController {
return wxMerchantService.updateMerchantLevel(wxMerchant);
}

@ApiOperation("查询当前租户下商户名称列表")
@GetMapping("/name_list")
@SystemControllerLog(description = "查询当前租户下商户名称列表")
public ResultData nameList() {
logger.debug("[" + getIpAddr() + "] WxMerchantController::name_list");
return new ResultData(wxMerchantService.findList(getTenantId()));
}

}

+ 2
- 0
mallinkAdmin/src/main/resources/db/migration/V201904091440__ADD_FORMID_FOR_ORDER.sql Просмотреть файл

@@ -0,0 +1,2 @@
ALTER TABLE `wx_order`
ADD COLUMN `form_id` VARCHAR(64) NULL COMMENT 'formId' AFTER `order_group_id`;

+ 0
- 9
mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java Просмотреть файл

@@ -40,15 +40,6 @@ public class WxBusinessController extends BaseController {
return new ResultData(page);
}

@ApiOperation("成长值业态列表接口")
@GetMapping("busListForScore")
public ResultData getList(@ModelAttribute WxBusiness wxBusiness) {
if (null == wxBusiness) wxBusiness = new WxBusiness();
final List<WxBusiness> busList = wxBusinessService.getList(wxBusiness);
// 业态 全部 不返回
List<WxBusiness> busList2 = busList.stream().filter(b -> !b.getId().equals(0L)).collect(Collectors.toList());
return new ResultData(busList2);
}

@ApiOperation("业态全列表接口")
@GetMapping("allist")


+ 6
- 4
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Просмотреть файл

@@ -39,13 +39,14 @@ public class WxOrderController extends BaseController {
@Autowired
private WxOrderService wxOrderService;

@ApiOperation(value = "免费领取", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\"}")
@ApiOperation(value = "免费领取", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"formId\":\"String\"}")
@PostMapping("freeCoupon")
public ResultData freeCoupon(@RequestBody Map<String, String> paramMap) {
//Assert.notNull(wxOrders.getName(), "角色名不能为空");
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
String couponChannelIdStr = paramMap.get("couponChannelId");
String couponIdStr = paramMap.get("couponId");
String formId = paramMap.get("formId");
if (StringUtils.isBlank(couponChannelIdStr)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId不能为空");
}
@@ -72,7 +73,7 @@ public class WxOrderController extends BaseController {
WxOrder order = null;

try {
order = wxOrderService.saveFreeCouponOrder(getUserId(), couponChannelId, couponId);
order = wxOrderService.saveFreeCouponOrder(getUserId(), couponChannelId, couponId, formId);
return new ResultData(order);
} catch (MallinkException e) {
logger.error(e.getMessage());
@@ -83,7 +84,7 @@ public class WxOrderController extends BaseController {
}
}

@ApiOperation(value = "下订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\"}")
@ApiOperation(value = "下订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}")
@PostMapping("save")
public ResultData saveOrder(@RequestBody Map<String, String> paramMap) {
logger.info("OrderSave: " + paramMap.toString());
@@ -93,6 +94,7 @@ public class WxOrderController extends BaseController {
String couponIdStr = paramMap.get("couponId");
String pressStr = paramMap.get("press");
String orderGroupIdStr = paramMap.get("orderGroupId");
String formId = paramMap.get("formId");

if (StringUtils.isBlank(couponChannelIdStr)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId不能为空");
@@ -165,7 +167,7 @@ public class WxOrderController extends BaseController {

WxCUser user = getUser();
try {
WxOrder order = wxOrderService.saveCouponOrder(user, couponChannelId, couponId, isPress, orderGroupId);
WxOrder order = wxOrderService.saveCouponOrder(user, couponChannelId, couponId, isPress, orderGroupId, formId);
return new ResultData(order);
} catch (MallinkException e) {
logger.error(e.getMessage());


+ 10
- 8
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java Просмотреть файл

@@ -3,10 +3,7 @@ package com.iformall.mq;
import com.iformall.domain.po.*;
import com.iformall.enums.*;
import com.iformall.mapper.WxMsgRecordMapper;
import com.iformall.service.impl.SendCallBackSmsServiceImpl;
import com.iformall.service.impl.SendEmailServiceImpl;
import com.iformall.service.impl.SendSmartAppMsgServiceImpl;
import com.iformall.service.impl.SendSmsServiceImpl;
import com.iformall.service.impl.*;
import com.iformall.utils.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +26,8 @@ public class MqBaseConsumer {
private SendEmailServiceImpl sendEmailService;
@Autowired
private SendSmartAppMsgServiceImpl sendSmartAppMsgService;
@Autowired
private SendMpMsgServiceImpl sendMpMsgService;
// @Autowired
// private MqBaseProducer mqBaseProducer;

@@ -42,15 +41,18 @@ public class MqBaseConsumer {
if(EnumMsgRecordType.SMS.getCode().equals(baseMsg.getMsgType())){
//短信
sendSmsService.send((WxMsgRecord)JsonUtil.readValue(message,WxMsgRecord.class));
}else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(baseMsg.getMsgType())){
} else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(baseMsg.getMsgType())){
//业务短信
sendCallBackSmsService.send((WxMsg)JsonUtil.readValue(message,WxMsg.class));
}else if(EnumMsgRecordType.EMAIL.getCode().equals(baseMsg.getMsgType())){
} else if(EnumMsgRecordType.EMAIL.getCode().equals(baseMsg.getMsgType())){
//邮件
sendEmailService.send((MailMsg)JsonUtil.readValue(message,MailMsg.class));
}else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){
//微信小程序
} else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){
//微信小程序-模板消息
sendSmartAppMsgService.send((SmartAppMsg)JsonUtil.readValue(message,SmartAppMsg.class));
} else if(EnumMsgRecordType.PUBLIC.getCode().equals(baseMsg.getMsgType())) {
//公众号-模板消息
sendMpMsgService.send((MpAppMsg)JsonUtil.readValue(message,MpAppMsg.class));
}
baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_SUCC.getCode());
wxMsgRecordMapper.update(baseMsg);


+ 5
- 0
mallinkService/pom.xml Просмотреть файл

@@ -20,6 +20,11 @@
<scope>compile</scope>
</dependency>
-->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>
</dependencies>

</project>

+ 11
- 73
mallinkService/src/main/java/com/iformall/domain/po/BaseMsg.java Просмотреть файл

@@ -1,5 +1,7 @@
package com.iformall.domain.po;

import lombok.Data;

import javax.persistence.Transient;
import java.io.Serializable;

@@ -7,101 +9,37 @@ import java.io.Serializable;
* @author luozukai
* @date 2019/3/7 10:05
*/
@Data
public class BaseMsg implements Serializable {
private static final long serialVersionUID = 923764283764823L;

//域0全部 1sys 2a端 3c端 4b端
@io.swagger.annotations.ApiModelProperty(value="域0全部 1sys 2a端 3c端 4b端",name="domain")
private Integer domain = 0;

//租户id
@io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId")
private String tenantId;

//唯一标识
@io.swagger.annotations.ApiModelProperty(value="唯一标识",name="uuid")
@Transient
private String uuid;

//接收人,手机号邮件地址等
@io.swagger.annotations.ApiModelProperty(value="接收人,手机号邮件地址等",name="receiver")
@Transient
private String receiver;

//消息类型 1短信 2回调短信 3邮件 4微信小程序模板 5微信公众号模板 6系统通知
@io.swagger.annotations.ApiModelProperty(value="消息类型 1短信 2回调短信 3邮件 4微信小程序模板 5微信公众号模板 6系统通知 7websocket",name="msgType")
@Transient
private Integer msgType;

//消息状态 0默认1发送成功2消费成功3消费失败
@io.swagger.annotations.ApiModelProperty(value="消息状态 0默认1发送成功2消费成功3消费失败",name="msgStatus")
@Transient
private Integer msgStatus;

//结果信息
@io.swagger.annotations.ApiModelProperty(value="结果信息",name="statusMessage")
@Transient
private String statusMessage;

//rocketMQ延迟消息1s,5s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h
@io.swagger.annotations.ApiModelProperty(value="rocketMQ延迟消息1s,5s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h",name="delayTimeLevel")
@Transient
private Integer delayTimeLevel = 0;


public Integer getDomain() {
return domain;
}

public void setDomain(Integer domain) {
this.domain = domain;
}

public String getTenantId() {
return tenantId;
}

public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}

public String getReceiver() {
return receiver;
}

public void setReceiver(String receiver) {
this.receiver = receiver;
}

public Integer getDelayTimeLevel() {
return delayTimeLevel;
}

public void setDelayTimeLevel(Integer delayTimeLevel) {
this.delayTimeLevel = delayTimeLevel;
}

public String getStatusMessage() {
return statusMessage;
}

public void setStatusMessage(String statusMessage) {
this.statusMessage = statusMessage;
}

public String getUuid() {
return uuid;
}

public void setUuid(String uuid) {
this.uuid = uuid;
}

public Integer getMsgStatus() {
return msgStatus;
}

public void setMsgStatus(Integer msgStatus) {
this.msgStatus = msgStatus;
}

public Integer getMsgType() {
return msgType;
}

public void setMsgType(Integer msgType) {
this.msgType = msgType;
}
}

+ 7
- 80
mallinkService/src/main/java/com/iformall/domain/po/MailMsg.java Просмотреть файл

@@ -1,11 +1,18 @@
package com.iformall.domain.po;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Map;

/**
* @author luozukai
* @date 2019/3/7 10:05
*/
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class MailMsg extends BaseMsg {
private static final long serialVersionUID = 923764283760321L;
// 模板id
@@ -26,84 +33,4 @@ public class MailMsg extends BaseMsg {

//动态替换内容
private Map<String,String> dynamicContentMap;

public Map<String, String> getDynamicContentMap() {
return dynamicContentMap;
}

public void setDynamicContentMap(Map<String, String> dynamicContentMap) {
this.dynamicContentMap = dynamicContentMap;
}

public Integer getModelId() {
return modelId;
}

public void setModelId(Integer modelId) {
this.modelId = modelId;
}

public String[] getTo() {
return to;
}

public void setTo(String[] to) {
this.to = to;
}

public String getFrom() {
return from;
}

public void setFrom(String from) {
this.from = from;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public boolean isHtml() {
return isHtml;
}

public void setHtml(boolean html) {
isHtml = html;
}

public String getFilePath() {
return filePath;
}

public void setFilePath(String filePath) {
this.filePath = filePath;
}

public String getRscPath() {
return rscPath;
}

public void setRscPath(String rscPath) {
this.rscPath = rscPath;
}

public String getRscI() {
return rscI;
}

public void setRscI(String rscI) {
this.rscI = rscI;
}
}

+ 35
- 0
mallinkService/src/main/java/com/iformall/domain/po/MpAppMsg.java Просмотреть файл

@@ -0,0 +1,35 @@
package com.iformall.domain.po;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;

import java.util.List;

/**
* 微信公众号模板消息
* @author Stormeye
* @date 2019/4/9 13:55
*/
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class MpAppMsg 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="templateType")
private Integer templateType;
@io.swagger.annotations.ApiModelProperty(value="小程序AppId",name="miniAppId")
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<WxMpTemplateData> templateDataList;
}

+ 15
- 58
mallinkService/src/main/java/com/iformall/domain/po/SmartAppMsg.java Просмотреть файл

@@ -1,6 +1,10 @@
package com.iformall.domain.po;

import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

/**
@@ -8,71 +12,24 @@ import java.util.List;
* @author luozukai
* @date 2019/3/7 10:05
*/
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class SmartAppMsg extends BaseMsg {
private static final long serialVersionUID = 223232132183760321L;

//小程序的appId
@io.swagger.annotations.ApiModelProperty(value="小程序AppId",name="appId")
private String appId;
@io.swagger.annotations.ApiModelProperty(value="小程序用户openId",name="to")
private String to;
private String from;
@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="小程序路径",name="gotopage")
private String gotopage;
@io.swagger.annotations.ApiModelProperty(value="小程序模板消息标题",name="emphasisKeyword")
private String emphasisKeyword;
@io.swagger.annotations.ApiModelProperty(value="小程序模板实体",name="templateDataList")
private List<WxMaTemplateData> templateDataList;

public String getAppId() {
return appId;
}

public void setAppId(String appId) {
this.appId = appId;
}

public String getEmphasisKeyword() {
return emphasisKeyword;
}

public void setEmphasisKeyword(String emphasisKeyword) {
this.emphasisKeyword = emphasisKeyword;
}

public String getGotopage() {
return gotopage;
}

public void setGotopage(String gotopage) {
this.gotopage = gotopage;
}

public String getTo() {
return to;
}

public void setTo(String to) {
this.to = to;
}

public String getFrom() {
return from;
}

public void setFrom(String from) {
this.from = from;
}

public Integer getTemplateType() {
return templateType;
}

public void setTemplateType(Integer templateType) {
this.templateType = templateType;
}

public List<WxMaTemplateData> getTemplateDataList() {
return templateDataList;
}

public void setTemplateDataList(List<WxMaTemplateData> templateDataList) {
this.templateDataList = templateDataList;
}
}

+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java Просмотреть файл

@@ -97,6 +97,9 @@ public class WxMerchant implements Serializable {
@Transient
private List<WxLevelConfig> levelConfigList;

@Transient
private Integer rentShopType;

/*租户ID**/
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId;
@@ -399,6 +402,14 @@ public class WxMerchant implements Serializable {
this.isPublic = isPublic;
}

public Integer getRentShopType() {
return rentShopType;
}

public void setRentShopType(Integer rentShopType) {
this.rentShopType = rentShopType;
}

public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")


+ 23
- 195
mallinkService/src/main/java/com/iformall/domain/po/WxMsg.java Просмотреть файл

@@ -1,5 +1,9 @@
package com.iformall.domain.po;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@@ -8,6 +12,9 @@ import java.util.Date;
import java.util.List;

@Table(name = "wx_msg")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxMsg extends BaseMsg {
private static final long serialVersionUID = 1L;

@@ -19,66 +26,32 @@ public class WxMsg extends BaseMsg {
@Transient
protected String sortColumns;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getSortColumns() {
return sortColumns;
}

public List<String> getIds() {
return ids;
}

public void setIds(List<String> ids) {
this.ids = ids;
}

/*租户ID**/
@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId;
/*模板id**/
@io.swagger.annotations.ApiModelProperty(value = "模板id", name = "modelId")
private Long modelId;
/*内容**/
@io.swagger.annotations.ApiModelProperty(value = "内容", name = "msg")
private String msg;
/*发送时间**/
@io.swagger.annotations.ApiModelProperty(value = "发送时间", name = "sendtime")
private String sendtime;
/*发送时间**/
@io.swagger.annotations.ApiModelProperty(value = "发送时间", name = "createtime")
private Date createtime;
/*预计发送数量**/
@io.swagger.annotations.ApiModelProperty(value = "预计发送数量", name = "expectSendNumber")
private Integer expectSendNumber;
/*成功数量**/
@io.swagger.annotations.ApiModelProperty(value = "成功数量", name = "successNumber")
private Integer successNumber;
/*错误数量**/
@io.swagger.annotations.ApiModelProperty(value = "错误数量", name = "errorNumber")
private Integer errorNumber;
/***/
@io.swagger.annotations.ApiModelProperty(value = "", name = "returnResult")
private String returnResult;
/***/
@io.swagger.annotations.ApiModelProperty(value = "", name = "phones")
private String phones;
/***/
@io.swagger.annotations.ApiModelProperty(value = "", name = "signature")
private String signature;
/***/
@io.swagger.annotations.ApiModelProperty(value = "", name = "isright")
private Integer isright;
/***/
@io.swagger.annotations.ApiModelProperty(value = "", name = "name")
private String name;
/*发送状态0未发送 1已发送 2草稿箱**/
@io.swagger.annotations.ApiModelProperty(value = "发送状态0失败1成功", name = "sendstatus")
private Integer sendstatus;

@@ -121,168 +94,23 @@ public class WxMsg extends BaseMsg {
this.couponInject = couponInject;
}

public String getTenantId() {
return tenantId;
}

public void setTenantId(String _tenantId) {
tenantId = _tenantId;
}

public Long getModelId() {
return modelId;
}

public void setModelId(Long _modelId) {
modelId = _modelId;
}

public String getMsg() {
return msg;
}

public void setMsg(String _msg) {
msg = _msg;
}

public String getSendtime() {
return sendtime;
}

public void setSendtime(String _sendtime) {
sendtime = _sendtime;
}

public Date getCreatetime() {
return createtime;
}

public void setCreatetime(Date _createtime) {
createtime = _createtime;
}

public Integer getExpectSendNumber() {
return expectSendNumber;
}

public void setExpectSendNumber(Integer _expectSendNumber) {
expectSendNumber = _expectSendNumber;
}

public Integer getSuccessNumber() {
return successNumber;
}

public void setSuccessNumber(Integer _successNumber) {
successNumber = _successNumber;
}

public Integer getErrorNumber() {
return errorNumber;
}

public void setErrorNumber(Integer _errorNumber) {
errorNumber = _errorNumber;
}

public String getReturnResult() {
return returnResult;
}

public void setReturnResult(String _returnResult) {
returnResult = _returnResult;
}

public String getPhones() {
return phones;
}

public void setPhones(String _phones) {
phones = _phones;
}

public String getSignature() {
return signature;
}

public void setSignature(String _signature) {
signature = _signature;
}

public Integer getIsright() {
return isright;
}

public void setIsright(Integer _isright) {
isright = _isright;
}

public String getName() {
return name;
}

public void setName(String _name) {
name = _name;
}

public Integer getSendstatus() {
return sendstatus;
}

public void setSendstatus(Integer _sendstatus) {
sendstatus = _sendstatus;
}

public String getExcelpath() {
return excelpath;
}

public void setExcelpath(String excelpath) {
this.excelpath = excelpath;
}

public String getLabel() {
return label;
}

public void setLabel(String label) {
this.label = label;
}

public Integer getStatus() {
return status;
}

public void setStatus(Integer status) {
this.status = status;
}

public Integer getWay() {
return way;
}

public void setWay(Integer way) {
this.way = way;
}

public List<WxTags> getTagsList() {
return tagsList;
}

public void setTagsList(List<WxTags> tagsList) {
this.tagsList = tagsList;
}

public Long getCouponInjectId() {
return couponInjectId;
}

public void setCouponInjectId(Long couponInjectId) {
this.couponInjectId = couponInjectId;
}

public static enum Field {
Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), TenantId_ASC("`tenant_id` ASC"), TenantId_DESC("`tenant_id` DESC"), ModelId_ASC("`model_id` ASC"), ModelId_DESC("`model_id` DESC"), Msg_ASC("`msg` ASC"), Msg_DESC("`msg` DESC"), Sendtime_ASC("`sendtime` ASC"), Sendtime_DESC("`sendtime` DESC"), Createtime_ASC("`createtime` ASC"), Createtime_DESC("`createtime` DESC"), ExpectSendNumber_ASC("`expect_send_number` ASC"), ExpectSendNumber_DESC("`expect_send_number` DESC"), SuccessNumber_ASC("`success_number` ASC"), SuccessNumber_DESC("`success_number` DESC"), ErrorNumber_ASC("`error_number` ASC"), ErrorNumber_DESC("`error_number` DESC"), ReturnResult_ASC("`return_result` ASC"), ReturnResult_DESC("`return_result` DESC"), Phones_ASC("`phones` ASC"), Phones_DESC("`phones` DESC"), Signature_ASC("`signature` ASC"), Signature_DESC("`signature` DESC"), Isright_ASC("`isright` ASC"), Isright_DESC("`isright` DESC"), Name_ASC("`name` ASC"), Name_DESC("`name` DESC"), Sendstatus_ASC("`sendstatus` ASC"), Sendstatus_DESC("`sendstatus` DESC");
Id_ASC("`id` ASC"), Id_DESC("`id` DESC")
, TenantId_ASC("`tenant_id` ASC"), TenantId_DESC("`tenant_id` DESC")
, ModelId_ASC("`model_id` ASC"), ModelId_DESC("`model_id` DESC")
, Msg_ASC("`msg` ASC"), Msg_DESC("`msg` DESC")
, Sendtime_ASC("`sendtime` ASC"), Sendtime_DESC("`sendtime` DESC")
, Createtime_ASC("`createtime` ASC"), Createtime_DESC("`createtime` DESC")
, ExpectSendNumber_ASC("`expect_send_number` ASC"), ExpectSendNumber_DESC("`expect_send_number` DESC")
, SuccessNumber_ASC("`success_number` ASC"), SuccessNumber_DESC("`success_number` DESC")
, ErrorNumber_ASC("`error_number` ASC"), ErrorNumber_DESC("`error_number` DESC")
, ReturnResult_ASC("`return_result` ASC"), ReturnResult_DESC("`return_result` DESC")
, Phones_ASC("`phones` ASC"), Phones_DESC("`phones` DESC")
, Signature_ASC("`signature` ASC"), Signature_DESC("`signature` DESC")
, Isright_ASC("`isright` ASC"), Isright_DESC("`isright` DESC")
, Name_ASC("`name` ASC"), Name_DESC("`name` DESC")
, Sendstatus_ASC("`sendstatus` ASC"), Sendstatus_DESC("`sendstatus` DESC")
;
private String value;

Field(String value) {


+ 23
- 165
mallinkService/src/main/java/com/iformall/domain/po/WxMsgRecord.java Просмотреть файл

@@ -1,201 +1,59 @@
package com.iformall.domain.po;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.Map;

@Table(name = "wx_msg_record")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxMsgRecord extends BaseMsg {
private static final long serialVersionUID = 18957895653478L;

@Id
protected Long id;
//租户id
private String tenantId;
//msg 消息类型1短信 2回调短信 邮件 3微信小程序模板 4微信公众号模板 5系统通
@io.swagger.annotations.ApiModelProperty(value="消息类型 1短信 2回调短信 3邮件 4微信小程序模板 5微信公众号模板 6系统通知 7websocket",name="msg")
private String msg;
//发送时间
@io.swagger.annotations.ApiModelProperty(value="发送时间",name="sendTime")
private String sendTime;
//model_id
@io.swagger.annotations.ApiModelProperty(value="modelId",name="modelId")
private Long modelId;
//from,手机号邮件地址等
@io.swagger.annotations.ApiModelProperty(value="from,手机号邮件地址等",name="sender")
private String sender;
//发送人id
@io.swagger.annotations.ApiModelProperty(value="发送人id",name="senderUserId")
private Long senderUserId;
//发送人姓名
@io.swagger.annotations.ApiModelProperty(value="发送人姓名",name="senderUserName")
private String senderUserName;
//接收人用户id
@io.swagger.annotations.ApiModelProperty(value="接收人用户id",name="receiverUserId")
private Long receiverUserId;
//接收人姓名
@io.swagger.annotations.ApiModelProperty(value="接收人姓名",name="receiverUserName")
private String receiverUserName;
//签名
@io.swagger.annotations.ApiModelProperty(value="签名",name="signature")
private String signature;
//模板类型
@io.swagger.annotations.ApiModelProperty(value="模板类型",name="modelType")
private Integer modelType;
//消息json
@io.swagger.annotations.ApiModelProperty(value="消息json",name="msgJson")
private String msgJson;

@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime")
private Date createtime;
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime")
private Date updatetime;

@io.swagger.annotations.ApiModelProperty(value="消息状态",name="msgStatus")
private Integer msgStatus;
@io.swagger.annotations.ApiModelProperty(value="结果信息",name="statusMessage")
private String statusMessage;

//动态替换内容
@io.swagger.annotations.ApiModelProperty(value="动态替换内容",name="dynamicContentMap")
private Map<String,String> dynamicContentMap;

@Override
public Integer getMsgStatus() {
return msgStatus;
}

@Override
public void setMsgStatus(Integer msgStatus) {
this.msgStatus = msgStatus;
}

@Override
public String getStatusMessage() {
return statusMessage;
}

@Override
public void setStatusMessage(String statusMessage) {
this.statusMessage = statusMessage;
}

public String getMsgJson() {
return msgJson;
}

public void setMsgJson(String msgJson) {
this.msgJson = msgJson;
}

public Map<String, String> getDynamicContentMap() {
return dynamicContentMap;
}


public void setDynamicContentMap(Map<String, String> dynamicContentMap) {
this.dynamicContentMap = dynamicContentMap;
}


public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getSender() {
return sender;
}

public void setSender(String sender) {
this.sender = sender;
}

public Long getSenderUserId() {
return senderUserId;
}

public void setSenderUserId(Long senderUserId) {
this.senderUserId = senderUserId;
}

public String getSenderUserName() {
return senderUserName;
}

public void setSenderUserName(String senderUserName) {
this.senderUserName = senderUserName;
}

public Long getReceiverUserId() {
return receiverUserId;
}

public void setReceiverUserId(Long receiverUserId) {
this.receiverUserId = receiverUserId;
}

public String getReceiverUserName() {
return receiverUserName;
}

public void setReceiverUserName(String receiverUserName) {
this.receiverUserName = receiverUserName;
}

public Integer getModelType() {
return modelType;
}

public void setModelType(Integer modelType) {
this.modelType = modelType;
}

public String getSignature() {
return signature;
}

public void setSignature(String signature) {
this.signature = signature;
}


public String getTenantId() {
return tenantId;
}

public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}


public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String getSendTime() {
return sendTime;
}

public void setSendTime(String sendTime) {
this.sendTime = sendTime;
}

public Long getModelId() {
return modelId;
}

public void setModelId(Long modelId) {
this.modelId = modelId;
}

public Date getCreatetime() {
return createtime;
}

public void setCreatetime(Date createtime) {
this.createtime = createtime;
}

public Date getUpdatetime() {
return updatetime;
}

public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}


}

+ 16
- 21
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Просмотреть файл

@@ -48,65 +48,52 @@ public class WxOrder implements Serializable {
@Transient
private String phone;

/**订单码;正反向交易保持一致。**/
@io.swagger.annotations.ApiModelProperty(value="订单码;正反向交易保持一致。",name="orderNumber")
private Long orderNumber;
/**租户ID**/
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId;
/**c端用户id**/
@io.swagger.annotations.ApiModelProperty(value="c端用户id",name="cUserId")
private Long cUserId;
/**渠道ID**/
@io.swagger.annotations.ApiModelProperty(value="渠道ID",name="couponChannelId")
private Long couponChannelId;
/**产品ID,根据order type**/
@io.swagger.annotations.ApiModelProperty(value="产品ID(type-0:couponId, 1:buserId, 3:merchantId)",name="productId")
private Long productId;
/**类型0:券,1:B刷卡支付,2:C扫码支付,3:储值卡**/
@io.swagger.annotations.ApiModelProperty(value="类型",name="type")
@io.swagger.annotations.ApiModelProperty(value="类型(0:券,1:B刷卡支付,2:C扫码支付,3:储值卡)",name="type")
private Integer type;
/**0: 付款 1: 退款**/
@io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType")
private Integer paymentType;
/**支付金额(分):允许有负数,退款时为负值。**/
@io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment")
private Integer payment;
/**支付时间**/
@io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime")
private Date paymentTime;
/**订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-待退款;4-已退款,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败**/
@io.swagger.annotations.ApiModelProperty(value="订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-已退款; 4-退款失败,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败",name="orderStatus")
private Integer orderStatus;
/**创建时间/砍价开始时间**/
@io.swagger.annotations.ApiModelProperty(value="创建时间/砍价开始时间",name="createDate")
private Date createDate;
/**更新时间**/
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate;
/**支付描述,订单支付时用**/
@io.swagger.annotations.ApiModelProperty(value="支付描述,订单支付时用",name="detail")
private String detail;

/**砍价结束时间**/
@io.swagger.annotations.ApiModelProperty(value="砍价结束时间",name="pressEndDate")
private Date pressEndDate;

/**砍价人数**/
@io.swagger.annotations.ApiModelProperty(value="砍价人数",name="pressCurrentNum")
private Integer pressCurrentNum;
/**已砍价格**/
@io.swagger.annotations.ApiModelProperty(value="已砍价格",name="pressCurrentValue")
private Integer pressCurrentValue;

@io.swagger.annotations.ApiModelProperty(value = "拼团ID", name = "orderGroupId")
private Long orderGroupId;

@io.swagger.annotations.ApiModelProperty(value = "formId", name = "formId")
private String formId;

@Transient
protected List<Integer> statusS;

@Transient
protected String statusStr;

@io.swagger.annotations.ApiModelProperty(value = "拼团ID", name = "orderGroupId")
private Long orderGroupId;

public Long getOrderNumber() {
return orderNumber;
@@ -275,7 +262,15 @@ public class WxOrder implements Serializable {
this.orderGroupId = orderGroupId;
}

public static enum Field
public String getFormId() {
return formId;
}

public void setFormId(String formId) {
this.formId = formId;
}

public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,OrderNumber_ASC("`order_number` ASC"),OrderNumber_DESC("`order_number` DESC")


+ 2
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java Просмотреть файл

@@ -37,11 +37,11 @@ public class WxScoreRules implements Serializable {
" {\"businessId\":3,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":4,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":5,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":6,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":7,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":8,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":9,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":10,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}" +
" {\"businessId\":10,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}," +
" {\"businessId\":6,\"limit\":0,\"step\":1,\"score\":50 ,\"desc\":\"线上交易1元\"}" +
"]}," +
"{\"id\":3,\"limit\":1,\"step\":1,\"score\":100,\"desc\":\"绑定车牌1个\"}," +
"{\"id\":4,\"limit\":0,\"step\":1,\"score\":10 ,\"desc\":\"连接WIFI1次\"}," +


+ 2
- 8
mallinkService/src/main/java/com/iformall/domain/po/WxTemplateMsg.java Просмотреть файл

@@ -21,21 +21,15 @@ public class WxTemplateMsg implements Serializable {
protected List<Long> ids;
@Transient
protected String sortColumns;
/**租户ID**/

@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId;
/**模板ID**/
@io.swagger.annotations.ApiModelProperty(value="模板ID",name="templateId")
private String templateId;
/**模板类型1:核销成功消息, 2:核销失败消息**/
@io.swagger.annotations.ApiModelProperty(value="模板类型1:核销成功消息,2:核销失败消息",name="type")
@io.swagger.annotations.ApiModelProperty(value="模板类型1:核销成功消息,2:核销失败消息, 101:公众号审核结果消息, 102:公众号卡券核销消息",name="type")
private Integer type;
/**创建时间**/
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
private Date createDate;
/**更新时间**/
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate;



+ 17
- 5
mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java Просмотреть файл

@@ -34,27 +34,31 @@ public class CUserBaseInfoT implements Serializable {
@Excel(name="生日",width = 20,orderNum = "6")
@io.swagger.annotations.ApiModelProperty(value="出生日期",name="birthdate")
private String birthdate;
/**积分**/
@Excel(name="积分",width = 20,orderNum = "7")
@io.swagger.annotations.ApiModelProperty(value="积分",name="credit")
private String credit;
/**地址**/
@Excel(name="地址",width = 20,orderNum = "7")
@Excel(name="地址",width = 20,orderNum = "8")
@io.swagger.annotations.ApiModelProperty(value="地址",name="address")
private String address;

/**更新时间**/
@Excel(name="上次活跃时间",width = 20, orderNum = "8")
@Excel(name="上次活跃时间",width = 20, orderNum = "9")
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private String updateDate;

/**创建时间**/
@Excel(name="注册时间",width = 20, orderNum = "9")
@Excel(name="注册时间",width = 20, orderNum = "10")
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
private String createDate;

@Transient
@Excel(name="标签",width = 20,orderNum = "10")
@Excel(name="标签",width = 20,orderNum = "11")
private String tagNames;

@Transient
@Excel(name="成长值",width = 20,orderNum = "11")
@Excel(name="成长值",width = 20,orderNum = "12")
private String poins;

public String getName() {
@@ -144,4 +148,12 @@ public class CUserBaseInfoT implements Serializable {
public void setPoins(String poins) {
this.poins = poins;
}

public String getCredit() {
return credit;
}

public void setCredit(String credit) {
this.credit = credit;
}
}

+ 16
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantSimpleVo.java Просмотреть файл

@@ -0,0 +1,16 @@
package com.iformall.domain.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class WxMerchantSimpleVo {

/**id**/
@ApiModelProperty(value="id",name="id")
private Long id;

/**商户名**/
@ApiModelProperty(value="商户名",name="name")
private String merchantName;
}

+ 1
- 0
mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java Просмотреть файл

@@ -10,6 +10,7 @@ public enum EnumMsgRecordType {
SMART_APP(4, "小程序"),
PUBLIC(5, "公众号"),
SYSTEM(6, "系统通知"),
WEBSOCKET_APP(7, "小程序websocket"),
;

public static EnumMsgRecordType getEnum(Integer code) {


+ 4
- 3
mallinkService/src/main/java/com/iformall/enums/EnumTemplateType.java Просмотреть файл

@@ -7,9 +7,10 @@ public enum EnumTemplateType {

// 1-核销成功消息, 2-核销失败消息

VERIFY_SUCCESS(1, "核销成功消息"),
VERIFY_FAIL(2, "核销失败消息"),
AUDIT_MESSAGE(3, "审核结果通知")
VERIFY_SUCCESS(1, "核销成功消息"), // 小程序
VERIFY_FAIL(2, "核销失败消息"), // 小程序
AUDIT_MESSAGE(101, "公众号审核结果通知"), // 公众号
VERIFY_RESULT(102, "公众号卡券核销通知"), // 公众号
;

public static EnumTemplateType getEnum(Integer code) {


+ 17
- 0
mallinkService/src/main/java/com/iformall/exception/BeanMappingException.java Просмотреть файл

@@ -0,0 +1,17 @@
package com.iformall.exception;

public class BeanMappingException extends RuntimeException {
private static final long serialVersionUID = -3616240376550557648L;

public BeanMappingException() {
this("Bean对象映射异常");
}

public BeanMappingException(String message) {
super(message);
}

public BeanMappingException(Throwable cause) {
super(cause);
}
}

+ 8
- 0
mallinkService/src/main/java/com/iformall/service/WxMerchantService.java Просмотреть файл

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxLevelConfig;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.vo.WxMerchantSimpleVo;
import com.iformall.domain.vo.WxMerchantVo;

import java.util.HashMap;
@@ -39,6 +40,13 @@ public interface WxMerchantService {
* @return
*/
List<WxMerchant> etcpList(WxMerchant record);

/**
* 查询商户列表
* @param tenantId
* @return
*/
List<WxMerchantSimpleVo> findList(String tenantId);
/**
* 根据Id获得实体


+ 9
- 9
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -33,6 +33,14 @@ public interface WxOrderService {
ResultData microPayListOnDateAsPage(Long bUserId, Integer type, String date, Integer pageIndex, Integer pageSize);


/**
* 下免费券订单接口
* @param userId
* @param couponId
* @return WxOrder
*/
WxOrder saveFreeCouponOrder(Long userId, Long couponChannelId, Long couponId, String formId);

/**
* 提交订单
* @param user
@@ -40,7 +48,7 @@ public interface WxOrderService {
* @param orderGroupId
* @return 订单id
*/
WxOrder saveCouponOrder(WxCUser user, Long couponChannelId, Long couponId, boolean isPress, Long orderGroupId);
WxOrder saveCouponOrder(WxCUser user, Long couponChannelId, Long couponId, boolean isPress, Long orderGroupId, String formId);

/**
* 付款码支付
@@ -60,14 +68,6 @@ public interface WxOrderService {
*/
WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment);

/**
* 免费券订单接口
* @param userId
* @param couponId
* @return WxOrder
*/
WxOrder saveFreeCouponOrder(Long userId, Long couponChannelId, Long couponId);

/**
* 免费券订单接口
* @param userId


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

@@ -0,0 +1,65 @@
package com.iformall.service.impl;

import com.iformall.common.ErrorCode;
import com.iformall.domain.po.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxTemplateMsgMapper;
import com.iformall.service.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 SendMpMsgServiceImpl 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{
MpAppMsg mpAppMsg = (MpAppMsg)baseMsg;
WxTemplateMsg msg = null;

WxMpService wxMpService = openService.getWxOpenComponentService().getWxMpServiceByAppid(mpAppMsg.getAppId());

// 查询信息模板
WxTemplateMsg msgQ = new WxTemplateMsg();
msgQ.setTenantId(mpAppMsg.getTenantId());
msgQ.setType(mpAppMsg.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);
}

WxMpTemplateMessage.MiniProgram miniprogram = new WxMpTemplateMessage.MiniProgram();
miniprogram.setAppid(mpAppMsg.getMiniAppId());
miniprogram.setPagePath(mpAppMsg.getMiniPagePath());
miniprogram.setUsePath(true);

WxMpTemplateMessage mpTemplateMessage = WxMpTemplateMessage.builder()
.toUser(mpAppMsg.getTo())
.templateId(msg.getTemplateId())
.miniProgram(miniprogram)
.data(mpAppMsg.getTemplateDataList())
.build();
String retStr = wxMpService.getTemplateMsgService().sendTemplateMsg(mpTemplateMessage);
logger.info(retStr);
}
}

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

@@ -69,7 +69,7 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService {
*/
templateMessage = WxMaTemplateMessage.builder()
.toUser(smartAppMsg.getTo())
.formId(smartAppMsg.getFrom()) // 微信支付的formId是prepayId
.formId(smartAppMsg.getFormId()) // 微信支付的formId是prepayId
.page(smartAppMsg.getGotopage())
.data(smartAppMsg.getTemplateDataList())
.templateId(msg.getTemplateId())


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

@@ -300,6 +300,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
u1.setPhone("13900010001");
u1.setNickName("昵称");
u1.setEducation("本科");
u1.setCredit(10);
u1.setAddress("地址");
try {
u1.setBirthdate(sdf.parse("2018-09-10"));
@@ -310,7 +311,6 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
u1.setCreateDate(new Date());
u1.setUpdateDate(new Date());
}

u1.setTagNames("附近住户");
u1.setPoins(100);

@@ -319,6 +319,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
u2.setPhone("13900010002");
u2.setNickName("昵称");
u2.setEducation("本科");
u2.setCredit(20);
u2.setAddress("地址");

try {
@@ -339,6 +340,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
u3.setPhone("13900010003");
u3.setNickName("昵称");
u3.setEducation("本科");
u3.setCredit(30);
u3.setAddress("地址");

try {
@@ -566,6 +568,17 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
}
}

//积分
Integer credit = null;
if (StringUtils.isNotBlank(uBase.getCredit())) {
try {
credit = Integer.valueOf(uBase.getCredit());
userBase.setCredit(credit);
} catch (Exception e) {
logger.error(e.getMessage());
}
}

WxCUserBasicInfo oldUserBase = null;
WxCUserBasicInfo userBaseQ = new WxCUserBasicInfo();
userBaseQ.setTenantId(tenantId);
@@ -590,10 +603,18 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
if(points != null) {
oldUserBase.setPoins(points);
}
// 覆盖原积分
if(credit != null) {
oldUserBase.setCredit(credit);
}
} else {
userBase.setId(idWorker.nextId());
userBase.setUpdateDate(userBase.getUpdateDate() == null ? new Date() : userBase.getUpdateDate());
userBase.setCreateDate(userBase.getCreateDate() == null ? new Date() : userBase.getCreateDate());
//新增积分
if(credit != null) {
userBase.setCredit(credit);
}
}

// update 昵称
@@ -606,6 +627,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
if (userList.size() > 0) {
WxCUser user = userList.get(0);
if (user != null) {
//覆盖积分
if(credit != null) {
user.setCredit(credit);
wxCUserMapper.updateByPrimaryKey(user);
}
bHaveCUser = true;
if (oldUserBase != null) {
if(oldUserBase != null) {


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

@@ -26,6 +26,7 @@ import com.iformall.utils.Constant;
import com.iformall.utils.DateUtils;
import com.iformall.utils.MaUtil;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -535,16 +536,16 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
logger.error("找不到订单信息");
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND);
}
String formId = null;
if(StringUtils.isNotBlank(order.getFormId())) {
formId = order.getFormId();
}
// 2. get coupon info
WxCoupon coupon = wxCouponMapper.selectByPrimaryKey(couponOrder.getCouponId());
if (coupon == null) {
logger.error("找不到券信息");
throw new MallinkException(ErrorCode.COUPON_IS_EMPTY);
}
if(coupon.getSalePrice().equals(0)) {
logger.info("免费券不发模板消息!");
return;
}
// 3. merchant info
WxMerchant merchant = wxMerchantMapper.selectByPrimaryKey(bUser.getMerchantId());
if (merchant == null) {
@@ -562,26 +563,27 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
// WxAppinfo appInfo = wxAppinfoService.getByAppId(user.getAppId());

// 6. get payOrder info
WxPayOrder payOrder = null;
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setTenantId(couponOrder.getTenantId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
List<WxPayOrder> payList = wxPayOrderMapper.select(payOrderQ);
if (payList.size() > 0) {
payOrder = payList.get(0);
}
if (payOrder == null) {
logger.error("找不到payOrder信息");
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND);
}
if (payOrder.getPrepayId() == null) {
logger.error("payOrder信息中,prepay_id为空");
throw new MallinkException(ErrorCode.PREPAY_ID_IS_EMPTY);
if(StringUtils.isBlank(order.getFormId())) {
WxPayOrder payOrder = null;
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setTenantId(couponOrder.getTenantId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
List<WxPayOrder> payList = wxPayOrderMapper.select(payOrderQ);
if (payList.size() > 0) {
payOrder = payList.get(0);
}
if (payOrder == null) {
logger.error("找不到payOrder信息");
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND);
}
if (payOrder.getPrepayId() == null) {
logger.error("payOrder信息中,prepay_id为空");
throw new MallinkException(ErrorCode.PREPAY_ID_IS_EMPTY);
}
formId = payOrder.getPrepayId();
}

// WxMaService wxMaService = MaUtil.getWeappService(appInfo);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String couponDetail = "";
if (coupon.getType() == EnumCouponType.COUPON_MANJIAN.getCode()) {
@@ -596,7 +598,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
gotopage = "pages/couponorder/index/index";
notes = "您有新的券";
}
//mq发送小程序消息
//mq发送小程序消息 - 核销成功消息
smartAppMsg = new SmartAppMsg();
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
smartAppMsg.setAppId(user.getAppId());
@@ -604,7 +606,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_SUCCESS.getCode());
smartAppMsg.setGotopage(gotopage);
smartAppMsg.setTo(user.getOpenId());
smartAppMsg.setFrom(payOrder.getPrepayId());
smartAppMsg.setFormId(formId);
smartAppMsg.setTemplateDataList(Lists.newArrayList(
new WxMaTemplateData("keyword1", coupon.getPriceStr() + "元", "#173177"),
new WxMaTemplateData("keyword2", merchant.getName(), "#173177"),
@@ -615,7 +617,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
new WxMaTemplateData("keyword7", notes, "#173177")));
smartAppMsg.setEmphasisKeyword("keyword1.DATA");
} else {
//mq发送小程序消息
//mq发送小程序消息 - 核销失败消息
smartAppMsg = new SmartAppMsg();
smartAppMsg.setMsgType(EnumMsgRecordType.SMART_APP.getCode());
smartAppMsg.setAppId(user.getAppId());
@@ -624,7 +626,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
smartAppMsg.setGotopage("pages/index/index");
smartAppMsg.setTo(user.getOpenId());
smartAppMsg.setReceiver(user.getOpenId());
smartAppMsg.setFrom(payOrder.getPrepayId());
smartAppMsg.setFormId(formId);
smartAppMsg.setTemplateDataList(Lists.newArrayList(
new WxMaTemplateData("keyword1", coupon.getTitle(), "#173177"),
new WxMaTemplateData("keyword2", dateFormat.format(new Date()), "#173177"),


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

@@ -314,6 +314,7 @@ public class WxCouponServiceImpl implements WxCouponService {
//下架所有投放频道
wxCouponChannelService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode());
//下架所有场景投放
wxCouponSendService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponSendStatus.INVALID.getCode());
//下架所有已砍价券


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

@@ -7,11 +7,13 @@ import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxMerchantSimpleVo;
import com.iformall.domain.vo.WxMerchantVo;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*;
import com.iformall.service.*;
import com.iformall.utils.BeanMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -81,12 +83,9 @@ public class WxMerchantServiceImpl implements WxMerchantService {

@Override
public PageInfo<WxMerchant> listAsPage(WxMerchant record, Integer pageIndex, Integer pageSize) {


WxRentContract wxRentContract = new WxRentContract();
wxRentContract.setTenantId(record.getTenantId());
List<WxRentContract> list = wxRentContractMapper.findList(wxRentContract);

PageHelper.startPage(pageIndex, pageSize);
List<WxMerchant> merchants = wxMerchantMapper.findList(record);
for (WxMerchant merchant : merchants) {
@@ -98,8 +97,23 @@ public class WxMerchantServiceImpl implements WxMerchantService {
merchant.setRentalStartDate(collect.get(0).getRentalStartDate());
merchant.setRentalEndDate(collect.get(0).getRentalEndDate());
}
if (record.getRentShopType() != null) {
List<Map<String, Object>> shops = new ArrayList<>();
WxMerchantShop wxMerchantShop = new WxMerchantShop();
wxMerchantShop.setMerchantId(merchant.getId());
wxMerchantShop.setIsDel(EnumDelStatus.NOT_DEL.getCode());
List<WxMerchantShop> wxMerchantShopList = wxMerchantShopMapper.findList(wxMerchantShop);
for (WxMerchantShop merchantShop : wxMerchantShopList) {
WxShop shop = new WxShop();
shop.setId(merchantShop.getShopId());
List<Map<String, Object>> shoplist = wxShopMapper.findListMap(shop);
if (shoplist.size() > 0) {
shops.add(shoplist.get(0));
}
}
merchant.setShoplist(shops);
}
}

PageInfo<WxMerchant> pageInfo = new PageInfo<>(merchants);
return pageInfo;
}
@@ -121,6 +135,14 @@ public class WxMerchantServiceImpl implements WxMerchantService {
return wxMerchantMapper.findList(record);
}

@Override
public List<WxMerchantSimpleVo> findList(String tenantId) {
WxMerchant wxMerchant = new WxMerchant();
wxMerchant.setTenantId(tenantId);
List<WxMerchant> wxMerchantList = wxMerchantMapper.findList(wxMerchant);
return BeanMapping.mapList(wxMerchantList,WxMerchantSimpleVo.class,(s, t)->t.setMerchantName(s.getName()));
}

@Override
public WxMerchant getById(Long id) {
WxMerchant wxMerchant = wxMerchantMapper.selectByPrimaryKey(id);


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

@@ -337,7 +337,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveCouponOrder(WxCUser user, Long couponChannelId, Long couponId, boolean isPress, Long orderGroupId) {
public WxOrder saveCouponOrder(WxCUser user, Long couponChannelId, Long couponId, boolean isPress, Long orderGroupId, String formId) {
// 检查用户
if (user == null) {
logger.error("用户不存在");
@@ -428,6 +428,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.setCreateDate(curr);
record.setUpdateDate(curr);
record.setOrderGroupId(orderGroupId);
record.setFormId(formId);

if (isPress) {
// 初始砍价信息
@@ -688,7 +689,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveFreeCouponOrder(Long userId, Long couponChannelId, Long couponId) {
public WxOrder saveFreeCouponOrder(Long userId, Long couponChannelId, Long couponId, String formId) {
// check 用户状态
WxCUser user = null;
try {
@@ -750,6 +751,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.setDetail(bodyStr);
record.setCreateDate(curr);
record.setUpdateDate(curr);
record.setFormId(formId);

// 保存订单
try {


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

@@ -298,7 +298,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
ResultData resultData = getResultDataForUpdate(record, userId);

if (dbRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null) {
if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null
&& !record.getReceivePeriod().equals(0) && !record.getLease().equals(0) && !record.getPrice().equals(0)) {

//删除预账单,重新生成
wxBillRentMapper.deletePreviewBill(record);


+ 139
- 0
mallinkService/src/main/java/com/iformall/utils/BeanMapping.java Просмотреть файл

@@ -0,0 +1,139 @@
package com.iformall.utils;

import com.iformall.exception.BeanMappingException;
import lombok.extern.slf4j.Slf4j;
import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;
import org.dozer.MappingException;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.BiConsumer;

/**
* 不同类型的bean对象属性映射转化
* 基于Dozer封装, 对使用者透明
*/
@Slf4j
public class BeanMapping {

private static Mapper __instance__;

private static Lock lock = new ReentrantLock();

private BeanMapping() {

}

private static Mapper getInstance() {
// TODO 支持XML配置或者传入映射关系

if (__instance__ == null) {
lock.lock();
if (__instance__ == null) {
__instance__ = new DozerBeanMapper();
}
lock.unlock();
}
return __instance__;
}

/**
* 源对象 {@code source} 转换成目标bean对象 {@code D}; 将名称一致的属性进行转换
* @param source 源Bean
* @param dstClass 目标Bean的class
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @return 目标Bean对象
*/
public static <S, D> D map(S source, Class<D> dstClass) throws BeanMappingException {
return map(source, dstClass, null);
}

/**
* 源对象 {@code source} 转换成目标bean对象 {@code D}; 将名称一致的属性进行转换; 转换完成后进行回调后续处理
* @param source 源Bean
* @param dstClass 目标Bean的class
* @param biConsumer 目标Bean转换完成后的回调操作
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @return 目标Bean对象
* @throws BeanMappingException
*/
public static <S, D> D map(S source, Class<D> dstClass, BiConsumer<S, D> biConsumer) throws BeanMappingException {
if (source == null) {
return null;
}
try {
D dstObject = getInstance().map(source, dstClass);
if (dstObject != null && biConsumer != null) {
biConsumer.accept(source, dstObject);
}
return dstObject;
} catch (MappingException e) {
log.error("对象映射出错, 原对象类型: {}, 目标对象类型: {}", source.getClass(), dstClass);
throw new BeanMappingException(e);
}
}

/**
* 源对象集合 {@code source} 转换成目标bean对象后添加到传入的集合中 {@code D}; 将名称一致的属性进行转换
* @param source 源对象集合
* @param destination 目标对象集合
* @param dstClass 目标Bean的class
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @throws BeanMappingException
*/
public static <S, D> void map(Collection<S> source, Collection<D> destination, Class<D> dstClass) throws BeanMappingException {
map(source, destination, dstClass, null);
}

/**
* 源对象集合 {@code source} 转换成目标bean对象后添加到传入的集合中 {@code D}; 将名称一致的属性进行转换
* @param source 源对象集合
* @param destination 目标对象集合
* @param dstClass 目标Bean的class
* @param biConsumer 目标Bean转换完成后的回调操作
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @throws BeanMappingException
*/
public static <S, D> void map(Collection<S> source, Collection<D> destination, Class<D> dstClass, BiConsumer<S, D> biConsumer) throws BeanMappingException {
for (S s : source) {
destination.add(map(s, dstClass, biConsumer));
}
}

/**
* 源对象集合 {@code source} 转换成目标bean对象 {@code D}; 将名称一致的属性进行转换
* @param source 源对象集合
* @param dstClass 目标Bean的class
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @return 映射完的List集合, 默认返回ArrayList
* @throws BeanMappingException
*/
public static <S, D> List<D> mapList(Collection<S> source, Class<D> dstClass) throws BeanMappingException {
return mapList(source, dstClass, null);
}

/**
* 源对象集合 {@code source} 转换成目标bean对象 {@code D}; 将名称一致的属性进行转换
* @param source 源对象集合
* @param dstClass 目标Bean的class
* @param biConsumer 目标Bean转换完成后的回调操作
* @param <S> 原Bean的泛型定义
* @param <D> 目标Bean的泛型定义
* @return 映射完的List集合, 默认返回ArrayList
* @throws BeanMappingException
*/
public static <S, D> List<D> mapList(Collection<S> source, Class<D> dstClass, BiConsumer<S, D> biConsumer) throws BeanMappingException {
List<D> result = new ArrayList<>();
map(source, result, dstClass, biConsumer);
return result;
}
}

+ 6
- 0
mallinkService/src/main/resources/mapper/WxMerchantMapper.xml Просмотреть файл

@@ -84,6 +84,12 @@
<if test=" null != email ">
and `email` = #{email}
</if>
<if test=" null != rentShopType ">
and id not in(
select merchant_id from wx_rent_contract where tenant_id=#{tenantId} and rent_shop_type=1 and merchant_id is
not null and status in(1,2,3,4)
)
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">


+ 6
- 1
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Просмотреть файл

@@ -20,12 +20,13 @@
<result column="press_current_num" jdbcType="INTEGER" property="pressCurrentNum"/>
<result column="press_current_value" jdbcType="INTEGER" property="pressCurrentValue"/>
<result column="order_group_id" jdbcType="BIGINT" property="orderGroupId"/>
<result column="form_id" jdbcType="VARCHAR" property="formId"/>

</resultMap>

<sql id="allColumns">
`id`,`order_number`,`tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`type`,`payment_type`,`payment`,`payment_time`,`order_status`,`create_date`,`update_date`,`detail`,
`press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`
`press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`
</sql>

<sql id="dynamicWhereConditions">
@@ -102,6 +103,10 @@
<if test=" null != orderGroupId ">
and `order_group_id` = #{orderGroupId}
</if>

<if test=" null != formId ">
and `form_id` = #{formId}
</if>
<if test=" null != statusS ">
and `order_status` in


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