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

//msg ttpay

release_toaliyun_real
xhxu 3 лет назад
Родитель
Сommit
830f2771b7
27 измененных файлов: 647 добавлений и 48 удалений
  1. +19
    -8
      mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java
  2. +4
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java
  3. +145
    -16
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  4. +82
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/WxMsgModelSchedule.java
  5. +7
    -0
      mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java
  6. +36
    -0
      mallinkService/src/main/java/com/iformall/domain/po/TtPoiTakeRate.java
  7. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMsgModel.java
  8. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java
  9. +3
    -2
      mallinkService/src/main/java/com/iformall/enums/EnumMsgModelStatus.java
  10. +40
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMsgModelType.java
  11. +16
    -0
      mallinkService/src/main/java/com/iformall/mapper/TtPoiTakeRateMapper.java
  12. +5
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxMsgModelMapper.java
  13. +4
    -0
      mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java
  14. +3
    -0
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  15. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java
  16. +34
    -0
      mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java
  17. +8
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java
  18. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java
  19. +56
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  20. +51
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  21. +5
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java
  22. +1
    -1
      mallinkService/src/main/java/com/iformall/sms/SMSExcutor.java
  23. +4
    -0
      mallinkService/src/main/java/com/iformall/sms/SMSFactory.java
  24. +17
    -1
      mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java
  25. +5
    -0
      mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java
  26. +72
    -0
      mallinkService/src/main/resources/mapper/TtPoiTakeRateMapper.xml
  27. +16
    -2
      mallinkService/src/main/resources/mapper/WxMsgModelMapper.xml

+ 19
- 8
mallinkAdmin/src/main/java/com/iformall/controller/basic/TtPoiPlanController.java Просмотреть файл

@@ -1,19 +1,15 @@
package com.iformall.controller.basic;


import com.github.pagehelper.PageInfo;
import com.iformall.annotation.SystemControllerLog;
import com.iformall.annotation.TenantIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.TtCouponChannelPoi;
import com.iformall.domain.po.TtMerchantPoi;
import com.iformall.douyin.web.api.TtWebService;
import com.iformall.douyin.web.bean.PoiPlan;
import com.iformall.enums.EnumSupplierMathStatus;
import com.iformall.domain.po.TtPoiTakeRate;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.service.TtCouponGoodsService;
import com.iformall.service.TtGoodsCategoryService;
import com.iformall.service.TtMerchantPoiService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@@ -110,6 +106,21 @@ public class TtPoiPlanController extends BaseController {
return ttCouponGoodsService.poiPlanUpdateStatus(getTenantInfo(),planId,status);
}

@ApiOperation("分页列表接口")
@GetMapping("takeRate")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "列表")
public ResultData takeRateList(@ModelAttribute TtPoiTakeRate record, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::list");
if (null == record) record = new TtPoiTakeRate();
record.updateTenantInfo(getTenantInfo());
record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
final PageInfo<TtPoiTakeRate> page = ttCouponGoodsService.takeRateListAsPage(record, pageNum, pageSize);
return new ResultData(page);
}

@ApiOperation("商品达人分佣配置")
@PostMapping("takeRate")
@SystemControllerLog(description = "更新")


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

@@ -7,6 +7,7 @@ import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.WxMsgModel;
import com.iformall.enums.EnumMsgModelType;
import com.iformall.service.WxMsgModelService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -47,6 +48,9 @@ public class WxMsgModelController extends BaseController {
//Assert.notNull(wxMsgModel.getName(), "角色名不能为空");
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
wxMsgModel.updateTenantInfo(getTenantInfo());
if(wxMsgModel.getTemplateType() == null){
wxMsgModel.setTemplateType(EnumMsgModelType.TZ.getCode());
}
return wxMsgModelService.saveOrUpdate(wxMsgModel);

}


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

@@ -171,10 +171,10 @@ public class WxOrderController extends BaseController {
header.setNonce(request.getHeader("Byte-Nonce-Str"));
header.setSigned(request.getHeader("Byte-Signature"));

logger.info("支付2.0预下单回调---header{}"+header.toString());
// logger.info("支付2.0预下单回调---header{}"+header.toString());

String body = ((BodyReaderHttpServletRequestWrapper) request).getBody();
logger.info("支付2.0预下单回调---body{}"+body);
// logger.info("支付2.0预下单回调---body{}"+body);
try {
JSONObject jsonObject = JSONObject.parseObject(body);
String msg = jsonObject.getString("msg");
@@ -183,7 +183,7 @@ public class WxOrderController extends BaseController {
String app_id = msgObject.getString("app_id");
String open_id = msgObject.getString("open_id");
//透传字段
Map<String,String> couponMap = new HashMap<>();
Long composeOrderId = null;
try{
String cp_extra = msgObject.getString("cp_extra");
if(StringUtils.isBlank(cp_extra)){
@@ -191,10 +191,12 @@ public class WxOrderController extends BaseController {
map.put("err_tips","缺少透传字段");
return map;
}
couponMap = JSONObject.parseObject(cp_extra, Map.class);
Map<String,String> couponMap = JSONObject.parseObject(cp_extra, Map.class);
String idstr = couponMap.get("composeOrderId");
composeOrderId = Long.parseLong(idstr);
}catch(Exception e){
}
if(couponMap.isEmpty()){
if(composeOrderId == null){
map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode());
map.put("err_tips","透传字段格式不正确");
return map;
@@ -231,23 +233,15 @@ public class WxOrderController extends BaseController {

TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount);
CreateOrderCallback createOrderCallback = ttPayService.parseOrderNotifyV2Result(body, header);

JSONObject allExtParam = new JSONObject();
allExtParam.put("order_id",createOrderCallback.getOrderId());
allExtParam.put("total_amount",createOrderCallback.getTotalAmount());
allExtParam.put("discount",createOrderCallback.getDiscount());
allExtParam.put("open_id",createOrderCallback.getOpenId());

List<PlatPushOrderSaveDto> list = new ArrayList<>();
for (CreateOrderCallback.Good good:createOrderCallback.getGoods()) {
PlatPushOrderSaveDto dto = new PlatPushOrderSaveDto();
dto.setCouponChannelId(Long.parseLong(couponMap.get(good.getGoodsId())));
dto.setCount(good.getQuantity());
dto.setExtParam(JSON.toJSONString(good.getItemOrderInfoList()));
list.add(dto);
}

ResultData resultData = wxOrderService.platPushSaveOrder(true, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH, allExtParam.toJSONString(), list, memberId, EnumPayWay.PAY_WAY_TT, tenantEntity);
logger.info("resultData{}"+JSON.toJSONString(resultData));
ResultData resultData = wxOrderService.handlerPushOrder(tenantEntity,composeOrderId,allExtParam.toString(),createOrderCallback.getGoods());
if(resultData.code == 200){
WxComposeOrder order = (WxComposeOrder) resultData.data;
Map<String, Object> data = new HashMap<>();
@@ -294,6 +288,141 @@ public class WxOrderController extends BaseController {
}
}

// @AuthIgnore
// @ApiOperation(value = "抖音支付2.0与下单回调推送订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}")
// @PostMapping("douyinPushOrder")
// public Map<String,Object> douyinPushOrder(HttpServletRequest request) {
//
// Map<String, Object> map = new HashMap();
//
// SignatureHeader header = new SignatureHeader();
// header.setTimeStamp(request.getHeader("Byte-Timestamp"));
// header.setNonce(request.getHeader("Byte-Nonce-Str"));
// header.setSigned(request.getHeader("Byte-Signature"));
//
// logger.info("支付2.0预下单回调---header{}"+header.toString());
//
// String body = ((BodyReaderHttpServletRequestWrapper) request).getBody();
// logger.info("支付2.0预下单回调---body{}"+body);
// try {
// JSONObject jsonObject = JSONObject.parseObject(body);
// String msg = jsonObject.getString("msg");
//
// JSONObject msgObject = JSONObject.parseObject(msg);
// String app_id = msgObject.getString("app_id");
// String open_id = msgObject.getString("open_id");
// //透传字段
// Map<String,String> couponMap = new HashMap<>();
// try{
// String cp_extra = msgObject.getString("cp_extra");
// if(StringUtils.isBlank(cp_extra)){
// map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode());
// map.put("err_tips","缺少透传字段");
// return map;
// }
// couponMap = JSONObject.parseObject(cp_extra, Map.class);
// }catch(Exception e){
// }
// if(couponMap.isEmpty()){
// map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode());
// map.put("err_tips","透传字段格式不正确");
// return map;
// }
//
// //验证app
// WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id);
// if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat())
// || !EnumAppType.C.getCode().equals(appinfo.getType())){
// map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode());
// map.put("err_tips",ErrorCode.APP_ID_NOT_FOUND.getMessage());
// return map;
// }
// WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId());
// if(payAccount == null){
// map.put("err_no",ErrorCode.API_KEY_NOT_FOUND.getCode());
// map.put("err_tips","未找到支付配置");
// return map;
// }
// TenantEntity tenantEntity = new TenantEntity();
// tenantEntity.updateTenantInfo(appinfo);
// //验证用户
// Long memberId = null;
// TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId());
// if(cuser != null && cuser.getUserId() != null){
// memberId = cuser.getUserId();
// }
// if(memberId == null){
// map.put("err_no",ErrorCode.USER_NOT_MEMBER.getCode());
// map.put("err_tips",ErrorCode.USER_NOT_MEMBER.getMessage());
// return map;
// }
//
//
// TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount);
// CreateOrderCallback createOrderCallback = ttPayService.parseOrderNotifyV2Result(body, header);
// JSONObject allExtParam = new JSONObject();
// allExtParam.put("order_id",createOrderCallback.getOrderId());
// allExtParam.put("total_amount",createOrderCallback.getTotalAmount());
// allExtParam.put("discount",createOrderCallback.getDiscount());
// allExtParam.put("open_id",createOrderCallback.getOpenId());
//
// List<PlatPushOrderSaveDto> list = new ArrayList<>();
// for (CreateOrderCallback.Good good:createOrderCallback.getGoods()) {
// PlatPushOrderSaveDto dto = new PlatPushOrderSaveDto();
// dto.setCouponChannelId(Long.parseLong(couponMap.get(good.getGoodsId())));
// dto.setCount(good.getQuantity());
// dto.setExtParam(JSON.toJSONString(good.getItemOrderInfoList()));
// list.add(dto);
// }
//
// ResultData resultData = wxOrderService.platPushSaveOrder(true, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH, allExtParam.toJSONString(), list, memberId, EnumPayWay.PAY_WAY_TT, tenantEntity);
// logger.info("resultData{}"+JSON.toJSONString(resultData));
// if(resultData.code == 200){
// WxComposeOrder order = (WxComposeOrder) resultData.data;
// Map<String, Object> data = new HashMap<>();
// data.put("out_order_no",order.getMainOrderId().toString());
// data.put("pay_expire_seconds",15*60);
// data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(order.getMainOrderId()));
//// List<Map<String,Object>> goodsValid = new ArrayList<>();
//// for (Long couponChannelId:order.getCouponChannelMap().keySet()) {
//// Map<String,Object> goodsValidMap = new HashMap<>();
//// WxCouponChannel couponChannel = order.getCouponChannelMap().get(couponChannelId);
//// goodsValidMap.put("goods_id",couponChannel.getTtSpuId());
//// WxCoupon wxCoupon = order.getCouponMap().get(couponChannel.getCouponId());
//// if(EnumCouponValidType.BETWEEN_TWO_TIME.getCode().equals(wxCoupon.getValidType())){
//// goodsValidMap.put("valid_start_time",wxCoupon.getValidStartDate().getTime());
//// goodsValidMap.put("valid_end_time",wxCoupon.getValidEndDate().getTime());
//// }else{
//// goodsValidMap.put("valid_duration",(long)wxCoupon.getValidDays()*24*3600*1000);
//// }
//// goodsValid.add(goodsValidMap);
//// }
//// data.put("order_valid_time",goodsValid);
//
// map.put("data",data);
// map.put("err_no",0);
// map.put("err_tips",resultData.message);
// logger.info("resultData{}"+JSON.toJSONString(map));
// return map;
// }else{
// map.put("err_no",resultData.code);
// map.put("err_tips",resultData.message);
// return map;
// }
//
// } catch (TtPayException e) {
// logger.error(e.getMessage());
// map.put("err_no",ErrorCode.SYS_BEAN_EMPTY_PROPERTY_ERROR.getCode());
// map.put("err_tips",e.getMessage());
// return map;
// } catch (Exception e){
// logger.error(e.getMessage());
// map.put("err_no",ErrorCode.SYS_SERVER_ERROR.getCode());
// map.put("err_tips",e.getMessage());
// return map;
// }
// }

@ApiOperation(value = "继续支付", notes = "{\"composeOrderId\":\"string\"}")
@PostMapping("/continueToPay")
public ResultData continueToPay(@RequestBody Map<String, Object> paramMap) {


+ 82
- 0
mallinkSchedule/src/main/java/com/iformall/schedule/WxMsgModelSchedule.java Просмотреть файл

@@ -0,0 +1,82 @@
package com.iformall.schedule;

import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxMsgConfig;
import com.iformall.domain.po.WxMsgModel;
import com.iformall.enums.EnumMsgModelStatus;
import com.iformall.mapper.WxMsgConfigMapper;
import com.iformall.mapper.WxMsgModelMapper;
import com.iformall.sms.SMSFactory;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

import static java.util.stream.Collectors.groupingBy;


@Component
public class WxMsgModelSchedule {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
WxMsgModelMapper WxMsgModelMapper;

@Autowired
WxMsgConfigMapper wxMsgConfigMapper;

@Async
@Scheduled(cron = "0 * 1/* * * ?") //
public void querySmsTemplate() {
WxMsgModel msgModel = new WxMsgModel();
msgModel.setStatus(EnumMsgModelStatus.AUDITING.getCode());
List<WxMsgModel> aliYunList = WxMsgModelMapper.findAliYunList(msgModel);
if(!aliYunList.isEmpty()){
Map<String, List<WxMsgModel>> collect = aliYunList.stream().collect(groupingBy(WxMsgModel::getTenantId));
for (String tenantId:collect.keySet()) {
WxMsgConfig wxMsgConfig = new WxMsgConfig();
wxMsgConfig.setTenantId(tenantId);
List<WxMsgConfig> wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig);
if (wxMsgConfigs.size() == 0){
logger.error("您还未接入短信运营商,请联系平台管理员");
}else{
wxMsgConfig = wxMsgConfigs.get(0);
List<WxMsgModel> wxMsgModels = collect.get(tenantId);
for (WxMsgModel model:wxMsgModels) {
try{
String result = SMSFactory.querySmsTemplate(wxMsgConfig, model.getModelCode());
if(StringUtils.isNotBlank(result)){
JSONObject jsonObjectResult = JSONObject.parseObject(result);
String templateCode = jsonObjectResult.getString("templateCode");
Integer templateStatus = jsonObjectResult.getInteger("templateStatus");
String reason = jsonObjectResult.getString("reason");
if(templateStatus.intValue() == 1 || templateStatus.intValue() == 2) {//0:审核中。1:审核通过。2:审核失败
WxMsgModel updModel = new WxMsgModel();
updModel.setTenantId(tenantId);
updModel.setStatus(templateStatus.intValue() == 1?EnumMsgModelStatus.SUCCESS.getCode():EnumMsgModelStatus.FAIL.getCode());
updModel.setReason(reason);
updModel.setModelCode(templateCode);
WxMsgModelMapper.updateByCode(updModel);
}
}
}catch (Exception e){
logger.error("查询模板审核状态失败"+e.getMessage());
}
}
}

}
}





}
}

+ 7
- 0
mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java Просмотреть файл

@@ -54,6 +54,13 @@ public class BaseMyBatisConfiguration {
wxCouponrSharding.setRule(EnumShardingRule.HASH.getCode());
shardingList.add(wxCouponrSharding);

ShardingSphere ttPoiTakeRateSharding = new ShardingSphere();
ttPoiTakeRateSharding.setColumn("tenant_id");
ttPoiTakeRateSharding.setTableName("tt_poi_take_rate");
ttPoiTakeRateSharding.setCount(100);
ttPoiTakeRateSharding.setRule(EnumShardingRule.HASH.getCode());
shardingList.add(ttPoiTakeRateSharding);

ShardingSphere wxCouponrMerchantSharding = new ShardingSphere();
wxCouponrMerchantSharding.setColumn("tenant_id");
wxCouponrMerchantSharding.setTableName("wx_coupon_merchant");


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

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

import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;

@TableName(value = "tt_poi_take_rate")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class TtPoiTakeRate extends TenantEntity {

protected Long id;
@io.swagger.annotations.ApiModelProperty(value="商品ID",name="couponId")
private Long couponId;

@io.swagger.annotations.ApiModelProperty(value="抖音ID",name="douyinId")
private String douyinId;

@io.swagger.annotations.ApiModelProperty(value="分佣率",name="takeRate")
private Integer takeRate;

@io.swagger.annotations.ApiModelProperty(value="状态",name="status")
private Integer status;

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

}

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

@@ -28,8 +28,14 @@ public class WxMsgModel extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="审核状态 0未通过 1 通过 2审核中",name="status")
private Integer status;

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

@io.swagger.annotations.ApiModelProperty(value="modelid",name="modelId")
private Integer modelId;

@io.swagger.annotations.ApiModelProperty(value="templateType",name="templateType")
private Integer templateType;
@io.swagger.annotations.ApiModelProperty(value="aliyun模板code",name="modelCode")
private String modelCode;



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

@@ -57,6 +57,8 @@ public class WxPayOrder extends TenantEntity {
private String payOrderNo;
@io.swagger.annotations.ApiModelProperty(value="支付状态: 0-支付中;1-支付成功;2-支付失败",name="payOrderStatus")
private Integer payOrderStatus;
@TableField(exist = false)
private boolean creatPay;
@io.swagger.annotations.ApiModelProperty(value="支付额外参数",name="payParam")
private String payParam;
@io.swagger.annotations.ApiModelProperty(value="分账状态: 0-未分账;1-分账",name="payOrderStatus")


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

@@ -4,8 +4,9 @@ package com.iformall.enums;
* Created by Stormeye on 2018/08/09.
*/
public enum EnumMsgModelStatus {
SUCCESS(1, "创建模板成功"),
FAIL(0, "创建模板失败"),
SUCCESS(1, "已通过"),
FAIL(0, "失败"),
AUDITING(2, "审核中"),
REPEAT(-6, "模板已存在"),
NOT_FOUND(-5, "短信模板不存在"),
SINATURE_CONTENT_ERROR(-4, "短信签名或内容错误"),


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

@@ -0,0 +1,40 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumMsgModelType {

//说明推广短信和国际/港澳台消息仅支持企业用户。

YZM(0, "验证码"),
TZ(1, "短信通知"),
TG(2, "推广短信"),
GJ(3, "国际/港澳台消息"),
;

public static EnumMsgModelType getEnum(Integer code) {
for (EnumMsgModelType value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumMsgModelType(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

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

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.OrderCps;
import com.iformall.domain.po.TtPoiTakeRate;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TtPoiTakeRateMapper extends CommonMapper<TtPoiTakeRate, Long> {

TtPoiTakeRate selectByCouponAndDouyin(@Param("tenantId")String tenantId,@Param("couponId")Long couponId,@Param("douyinId")String douyinId);
List<TtPoiTakeRate> findList(TtPoiTakeRate takeRate);

}

+ 5
- 1
mallinkService/src/main/java/com/iformall/mapper/WxMsgModelMapper.java Просмотреть файл

@@ -8,9 +8,13 @@ public interface WxMsgModelMapper extends CommonMapper<WxMsgModel, String> {

List<WxMsgModel> findList(WxMsgModel wxMsgModel);

List<WxMsgModel> findAliYunList(WxMsgModel msgModel);


WxMsgModel findOneByModelId(WxMsgModel wxMsgModel);


void updateByCode(WxMsgModel wxMsgModel);
int updateByCode(WxMsgModel wxMsgModel);


}

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

@@ -1,7 +1,9 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.TtCouponChannelPoi;
import com.iformall.domain.po.TtPoiTakeRate;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.TtCouponChannelVo;
@@ -36,4 +38,6 @@ public interface TtCouponGoodsService {
ResultData poiPlanUpdateStatus(TenantEntity tenantInfo, Long planId, Integer status);

ResultData poiTakeRate(TenantEntity tenantInfo, Long couponId, String douyinId, Integer takeRate, Integer status);

PageInfo<TtPoiTakeRate> takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize);
}

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

@@ -19,6 +19,7 @@ import com.iformall.domain.vo.WxCouponSendVo;
import com.iformall.domain.vo.WxOrderCouponPressVo;
import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.domain.vo.WxOrderQueryVo;
import com.iformall.douyin.payv2.result.CreateOrderCallback;
import com.iformall.enums.EnumComposeOrder;
import com.iformall.enums.EnumOrderStatus;
import com.iformall.enums.EnumPayWay;
@@ -267,4 +268,6 @@ public interface WxOrderService {
Map<String,String> getOrderEntrySchema(Long mainOrderId);

int updateCpsStatus(WxOrder order);

ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods);
}

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

@@ -38,7 +38,7 @@ public interface WxPayOrderService {
*/
ResultData createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user, WxPayOrder record, EnumPayWay payWay,PayExtraParam params,boolean isCreatePay);

PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder,
PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder,List<WxOrder> childOrders,
String productName, EnumPayWay payWay,PayExtraParam params,boolean isCreatePay);

/**


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

@@ -63,6 +63,9 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService {
@Autowired
WxAppinfoService wxAppinfoService;

@Autowired
TtPoiTakeRateMapper ttPoiTakeRateMapper;

@Override
public ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) {
PageInfo<TtCouponVo> pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.ttCouponList(ttCouponVo));
@@ -538,6 +541,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService {

String spu_id = ttMerchantPoiService.getTtWebService(tenantInfo).getPoiPlanService().poiTakeRate(poiTakeRate);
if(StringUtils.isNotBlank(spu_id) && spu_id.equals(ttCouponChannelPoi.getSpuId())){
TtPoiTakeRate ttPoiTakeRate = new TtPoiTakeRate();
ttPoiTakeRate.updateTenantInfo(tenantInfo);
ttPoiTakeRate.setCouponId(couponId);
ttPoiTakeRate.setDouyinId(douyinId);
ttPoiTakeRate.setTakeRate(takeRate);
ttPoiTakeRate.setStatus(status);
this.saveorupdate(ttPoiTakeRate);
return new ResultData();
}else{
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"设置达人分佣错误");
@@ -548,5 +558,29 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService {
}
}

@Override
public PageInfo<TtPoiTakeRate> takeRateListAsPage(TtPoiTakeRate record, Integer pageNum, Integer pageSize) {
return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> ttPoiTakeRateMapper.findList(record));
}


private int saveorupdate(TtPoiTakeRate takeRate){
TtPoiTakeRate ttPoiTakeRate = ttPoiTakeRateMapper.selectByCouponAndDouyin(takeRate.getTenantId(), takeRate.getCouponId(), takeRate.getDouyinId());
Date now = new Date();
if(ttPoiTakeRate == null){
final IdWorker idWorker = IdWorker.get();
takeRate.setId(idWorker.nextId());
takeRate.setCreateDate(now);
takeRate.setUpdateDate(now);
return ttPoiTakeRateMapper.insert(takeRate);
}else{
ttPoiTakeRate.setTakeRate(takeRate.getTakeRate());
ttPoiTakeRate.setStatus(takeRate.getStatus());
ttPoiTakeRate.setUpdateDate(new Date());
return ttPoiTakeRateMapper.updateById(ttPoiTakeRate);
}

}


}

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

@@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumCouponPasswordStatus;
import com.iformall.enums.EnumMsgModelStatus;
import com.iformall.enums.EnumMsgSendStatus;
import com.iformall.mapper.*;
import com.iformall.service.WxMsgCallbackService;
@@ -174,15 +175,19 @@ public class WxMsgCallbackServiceImpl implements WxMsgCallbackService {
//approved:审核通过
//rejected:审核未通过
String templateStatus = param.get("template_status");

String reason = param.get("reason");
if("approving".equalsIgnoreCase(templateStatus)){
wxMsgModel.setStatus(2);
return;
// wxMsgModel.setStatus(2);
}else if("approved".equalsIgnoreCase(templateStatus)){
wxMsgModel.setStatus(1);
wxMsgModel.setStatus(EnumMsgModelStatus.SUCCESS.getCode());
}else if("rejected".equalsIgnoreCase(templateStatus)){
wxMsgModel.setStatus(0);
wxMsgModel.setStatus(EnumMsgModelStatus.FAIL.getCode());
}else{
wxMsgModel.setStatus(-1);
}
wxMsgModel.setReason(reason);
wxMsgModelMapper.updateByCode(wxMsgModel);

WxMsgValidationcodeModel wxMsgValidationcodeModel = new WxMsgValidationcodeModel();


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

@@ -74,7 +74,7 @@ public class WxMsgModelServiceImpl implements WxMsgModelService {
}

String result = SMSFactory.addTemplate(wxMsgConfig, signature,content, EnumVerifyCode.NO.getCode().toString(),
wxMsgModel.getName(),1,wxMsgModel.getName());
wxMsgModel.getName(),wxMsgModel.getTemplateType(),wxMsgModel.getName());
JSONObject jsonObjectResult = JSONObject.parseObject(result);
String ret = jsonObjectResult.get("ret").toString();
logger.info("短信模板创建结果:" + result);
@@ -90,7 +90,7 @@ public class WxMsgModelServiceImpl implements WxMsgModelService {
wxMsgModel.setModelCode(jsonObjectResult.get("aliyunModelCode").toString());
}
wxMsgModel.setCreatetime(new Date());
wxMsgModel.setStatus(2);//审核中
wxMsgModel.setStatus(EnumMsgModelStatus.AUDITING.getCode());//审核中
wxMsgModelMapper.insert(wxMsgModel);
} else {
if(jsonObjectResult.get("data") != null){
@@ -100,7 +100,7 @@ public class WxMsgModelServiceImpl implements WxMsgModelService {
if(jsonObjectResult.get("aliyunModelCode") != null){
wxMsgModel.setModelCode(jsonObjectResult.get("aliyunModelCode").toString());
}
wxMsgModel.setStatus(2);//审核中
wxMsgModel.setStatus(EnumMsgModelStatus.AUDITING.getCode());//审核中
wxMsgModelMapper.updateById(wxMsgModel);
}
return new ResultData(Result.SUCCESS, "创建模板成功");
@@ -109,7 +109,7 @@ public class WxMsgModelServiceImpl implements WxMsgModelService {
final IdWorker idWorker = IdWorker.get();
wxMsgModel.setId(idWorker.nextId());
wxMsgModel.setCreatetime(new Date());
wxMsgModel.setStatus(1);
wxMsgModel.setStatus(EnumMsgModelStatus.SUCCESS.getCode());
wxMsgModelMapper.insert(wxMsgModel);
} else {
wxMsgModelMapper.updateById(wxMsgModel);
@@ -138,7 +138,7 @@ public class WxMsgModelServiceImpl implements WxMsgModelService {
public ResultData getModelList(TenantEntity tenantEntity) {
WxMsgModel wxMsgModel = new WxMsgModel();
wxMsgModel.updateTenantInfo(tenantEntity);
wxMsgModel.setStatus(1);
wxMsgModel.setStatus(EnumMsgModelStatus.SUCCESS.getCode());
List<WxMsgModel> list = wxMsgModelMapper.findList(wxMsgModel);
return new ResultData(list);
}


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

@@ -11,6 +11,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;

import javax.servlet.http.HttpServletRequest;
@@ -23,6 +24,7 @@ import com.iformall.domain.po.*;
import com.iformall.domain.po.msg.*;
import com.iformall.domain.po.tt.TtCUser;
import com.iformall.domain.vo.*;
import com.iformall.douyin.payv2.result.CreateOrderCallback;
import com.iformall.enums.*;
import com.iformall.mapper.*;
import com.iformall.service.*;
@@ -66,6 +68,8 @@ import com.iformall.domain.po.base.TenantEntity;
import com.iformall.exception.MallinkException;
import com.iformall.mq.MqBaseProducer;

import static java.util.stream.Collectors.groupingBy;


@Service
public class WxOrderServiceImpl implements WxOrderService {
@@ -197,6 +201,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired
WxBatchOrderMapper wxBatchOrderMapper;

@Autowired
TtCouponChannelPoiMapper ttCouponChannelPoiMapper;

@Autowired
@Qualifier("couponDetailRedisTemplate")
RedisTemplate<String, WxCouponCVo> cdRedisTemplate;
@@ -2831,6 +2838,7 @@ public class WxOrderServiceImpl implements WxOrderService {
if (EnumComposeOrder.isSingle(composeOrderType.getCode())) {
composeOrder.setSingleOrder(lastOrder);
}
List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId());
WxPayOrder record = new WxPayOrder();
record.updateTenantInfo(tenantEntity);
record.setOrderId(composeOrder.getMainOrderId());
@@ -2838,7 +2846,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.setOpenId((String) composeOrder.getMainOrder().getExpParamValue("open_id"));
String productName = orderAdapterService.getPayProductName(lastCoupon);
WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity, payWay.getPlat());
PayAdapterResult payResult = wxPayOrderService.createPayOrder(cAppInfo, user, record,composeOrder,productName, payWay, new PayExtraParam("openId",record.getOpenId()),false);
PayAdapterResult payResult = wxPayOrderService.createPayOrder(cAppInfo, user, record,composeOrder,orderList,productName, payWay, new PayExtraParam("openId",record.getOpenId()),false);
if(payResult.isSuccess()){
return composeOrder;
}else{
@@ -3614,6 +3622,53 @@ public class WxOrderServiceImpl implements WxOrderService {
return wxOrderMapper.updateById(refOrder);
}

@Override
public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods) {
WxBatchOrder wxBatchOrder = this.getWxBatchOrder(tenantEntity, composeOrderId);
if(wxBatchOrder == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到订单");
}
WxBatchOrder updBatchOrder = new WxBatchOrder();
updBatchOrder.updateTenantInfo(tenantEntity);
updBatchOrder.setId(wxBatchOrder.getId());
updBatchOrder.setExtParam(batchExtParam);
updBatchOrder.setUpdateDate(new Date());
wxBatchOrderMapper.updateById(updBatchOrder);

OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(wxBatchOrder.getOrderType());
WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(wxBatchOrder.getId(), tenantEntity.getTenantId());
List<WxOrder> childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId());
Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId));
Map<String, CreateOrderCallback.Good> maps = goods.stream().collect(Collectors.toMap(CreateOrderCallback.Good::getGoodsId, Function.identity()));
if(collect.keySet().size() == goods.size()){
for (Long key: collect.keySet()) {
List<WxOrder> wxOrders = collect.get(key);
TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(tenantEntity.getTenantId(),key);
CreateOrderCallback.Good good = maps.get(ttCouponChannelPoi.getSpuId());
if(wxOrders.size() == good.getItemOrderInfoList().size()){
for(int i=0;i<wxOrders.size();i++){
WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(wxOrders.get(i).getId());
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(i)));
wxOrderMapper.updateById(updOrder);
}
}else if(wxOrders.size() == 1){
WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(wxOrders.get(0).getId());
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList()));
wxOrderMapper.updateById(updOrder);
}else{
return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常");
}
}
return new ResultData(composeOrder);
}else{
return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常");
}
}

private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){
WxOrder recordQ = new WxOrder();
recordQ.updateTenantInfo(tenantEntity);


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

@@ -12,6 +12,7 @@ import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.douyin.payv2.request.TtPayUnifiedOrderV2Request;
import com.iformall.douyin.payv2.result.TtPayOrderQueryV2Result;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
@@ -49,6 +50,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.util.*;

import static java.util.stream.Collectors.groupingBy;

@Service
public class WxPayOrderServiceImpl implements WxPayOrderService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -77,6 +80,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
@Autowired
WxCouponMapper wxCouponMapper;

@Autowired
WxCouponChannelMapper wxCouponChannelMapper;

@Autowired
TtCouponChannelPoiMapper ttCouponChannelPoiMapper;

@Autowired
WxPayOrderMapper wxPayOrderMapper;

@@ -224,7 +233,20 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
}
}
return oldRecord;
}
}else if(EnumPayStatus.PAY_STATUS_ORDER_NOT_EXISTS.getCode()==wxpaystatus){
oldRecord.setCreatPay(true);
if (repeatPay) {
if (oldRecord.getPayOrderStatus()!=EnumPayStatus.PAY_STATUS_WAIT.getCode()) {
oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode());
int sqlRow0 =wxPayOrderMapper.updateById(oldRecord);
if (sqlRow0 != 1) {
logger.error("pay order update error: " + oldRecord.toString());
throw new MallinkException(ErrorCode.DB_FAIL);
}
}
}
return oldRecord;
}
return null;
}
@@ -248,7 +270,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
lastCoupon = checkSinglePayOrder(o, user, payWay);
}
String productName = orderAdapterService.getPayProductName(lastCoupon);
PayAdapterResult payResult = createPayOrder(appInfo, user, record,composeOrder,productName, payWay, params,isCreatePay);
PayAdapterResult payResult = createPayOrder(appInfo, user, record,composeOrder,orderList,productName, payWay, params,isCreatePay);
if (payResult.isSuccess()) {
// wxOrderService.sendInsideOrderPushMsg(composeOrder,composeOrder.getMainOrderId());
return new ResultData(Result.SUCCESS,"创建支付单成功",payResult.getData());
@@ -323,8 +345,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
return wxCoupon;
}
@Override
public PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder,
String productName, EnumPayWay payWay,PayExtraParam params,boolean isCreatePay) {
public PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder,List<WxOrder> childOrders,
String productName,EnumPayWay payWay,PayExtraParam params,boolean isCreatePay) {
IdWorker idworker = IdWorker.get();
EnumPayShare isShare = EnumPayShare.NO;
@@ -435,8 +457,31 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
if(!isCreatePay){
PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);
Map<String,String> map = new HashMap<>();
map.put("outOrderNo",record.getOrderId().toString());
Map<String,Object> map = new HashMap<>();
map.put("outOrderNo",record.getOrderId());
map.put("createPay",record.isCreatPay());
if(record.isCreatPay()){
Map<String,Integer> payment = new HashMap();
payment.put("totalAmount",composeOrder.getPayment());
map.put("payment",payment);
List<Map<String,Object>> goodsList = new ArrayList<>();
Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId));
for (Long key: collect.keySet()) {
Map<String,Object> good = new HashMap<>();
Long couponId = wxCouponChannelMapper.findCouponIdById(key, record.getTenantId());
WxCoupon wxCoupon = wxCouponMapper.selectById(couponId, record.getTenantId());
TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(appInfo.getTenantId(), couponId);
int quantity = collect.get(key).size();
good.put("quantity",quantity);
good.put("price",wxCoupon.getSalePrice()*quantity);
good.put("goodsName",wxCoupon.getTitle());
good.put("goodsPhoto",wxCoupon.getCoverImg());
good.put("goodsId",ttCouponChannelPoi.getSpuId());
good.put("goodsType",1);
goodsList.add(good);
}
map.put("goodsList",goodsList);
}
par.setData(map);
return par;
}


+ 5
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java Просмотреть файл

@@ -67,7 +67,11 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen

@Override
public PayAdapterResult pay(WxPayAccount payAccount, WxPayOrder record,WxComposeOrder composeOrder,String productName,EnumPayShare isShare,WxAppinfo appInfo,Date currentDate, PayExtraParam params) throws Exception {
if(StringUtils.isNotBlank(record.getPayParam())){

if(!record.isCreatPay()){
if(StringUtils.isBlank(record.getPayParam())){
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
}
record.setUpdateTime(new Date());
PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);


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

@@ -11,5 +11,5 @@ public interface SMSExcutor {
String remark);


String querySmsTemplate(String templateCode);
}

+ 4
- 0
mallinkService/src/main/java/com/iformall/sms/SMSFactory.java Просмотреть файл

@@ -64,4 +64,8 @@ public class SMSFactory {
verifysms,templateName,templateType,remark);
}

public static String querySmsTemplate(WxMsgConfig wxMsgConfig, String templateCode) {
return getSendExcutor(wxMsgConfig).querySmsTemplate(templateCode);
}

}

+ 17
- 1
mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.sms.aliyun;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.*;
@@ -63,6 +64,21 @@ public class AliyunSMS implements SMSExcutor {
return JSON.toJSONString(SMSResult);
}

@Override
public String querySmsTemplate(String templateCode) {
SMSTemplate smsTemplate = new SMSTemplate();
smsTemplate.setTemplateCode(templateCode);
QuerySmsTemplateResponse querySmsTemplateResponse = this.querySmsTemplate(smsTemplate);
if(querySmsTemplateResponse.getCode() != null && querySmsTemplateResponse.getCode().equalsIgnoreCase("ok")){
JSONObject obj = new JSONObject();
obj.put("templateCode",querySmsTemplateResponse.getTemplateCode());
obj.put("templateStatus",querySmsTemplateResponse.getTemplateStatus());//0:审核中。1:审核通过。2:审核失败
obj.put("reason",querySmsTemplateResponse.getReason());
return obj.toJSONString();
}
return null;
}

/**
* 发送短信
* @param sms
@@ -317,7 +333,7 @@ public class AliyunSMS implements SMSExcutor {
e.getErrCode(), e.getMessage(), e.getRequestId(), e.getErrMsg(), e.getErrorType());
}
QuerySmsTemplateRequest request = new QuerySmsTemplateRequest();
request.setTemplateCode("SMS_244430122");
request.setTemplateCode("SMS_244585929");

DefaultAcsClient acsClient = new DefaultAcsClient(profile);
QuerySmsTemplateResponse response = null;


+ 5
- 0
mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java Просмотреть файл

@@ -36,6 +36,11 @@ public class WiwideUtil implements SMSExcutor {
return addTemplate(secret, bid, publickey, signature, content, notifyUrl,verifysms);
}

@Override
public String querySmsTemplate(String templateCode) {
return null;
}

public static String addTemplate(String secret, String bid, String publickey, String signature, String content, String notifyUrl, String verifysms) {
//请求api数据排序
TreeMap<String, String> message = new TreeMap<>();


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

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iformall.mapper.TtPoiTakeRateMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.TtPoiTakeRate">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/>
<result column="coupon_id" jdbcType="BIGINT" property="couponId"/>
<result column="douyin_id" jdbcType="VARCHAR" property="douyinId" />
<result column="take_rate" jdbcType="INTEGER" property="takeRate"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`douyin_id`,
`take_rate`,`status`,
`create_date`,`update_date`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

<if test=" null != id ">
and `id` = #{id}
</if>

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>

<if test=" null != couponId ">
and `coupon_id` = #{couponId}
</if>

<if test=" null != douyinId and '' != douyinId">
and `douyin_id` = #{douyinId}
</if>

<if test=" null != status ">
and `status` = #{status}
</if>

<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>

<select id="selectByCouponAndDouyin" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select <include refid="allColumns"/>
from tt_poi_take_rate
where tenant_id = #{tenantId}
and `coupon_id` = #{couponId}
and `douyin_id` = #{douyinId}
</select>

<select id="findList" parameterType="com.iformall.domain.po.TtPoiTakeRate" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from tt_poi_take_rate
<include refid="dynamicWhereConditions"/>
</select>
</mapper>

+ 16
- 2
mallinkService/src/main/resources/mapper/WxMsgModelMapper.xml Просмотреть файл

@@ -10,13 +10,15 @@
<result column="content" jdbcType="VARCHAR" property="content"/>
<result column="createtime" jdbcType="TIMESTAMP" property="createtime"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="reason" jdbcType="INTEGER" property="reason"/>
<result column="model_id" jdbcType="INTEGER" property="modelId"/>
<result column="template_type" jdbcType="INTEGER" property="templateType"/>
<result column="model_code" jdbcType="VARCHAR" property="modelCode"/>

</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`name`,`signature`,`content`,`createtime`,`status`,`model_id`,`model_code`
`id`,`tenant_id`,`parent_tenant_id`,`name`,`signature`,`content`,`createtime`,`status`,`reason`,`model_id`,`template_type`,`model_code`
</sql>

<sql id="dynamicWhereConditions">
@@ -55,6 +57,9 @@
<if test=" null != modelId">
and `model_id` = #{modelId}
</if>
<if test=" null != templateType">
and `template_type` = #{templateType}
</if>
<if test=" null != modelCode">
and `model_code` = #{modelCode}
</if>
@@ -74,6 +79,15 @@
<include refid="dynamicWhereConditions"/>
</select>


<select id="findAliYunList" parameterType="com.iformall.domain.po.WxMsgModel" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_msg_model
where ifnull(model_code,'') != '';
and `status` = #{status}
</select>

<select id="findOneByModelId" parameterType="com.iformall.domain.po.WxMsgModel" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
@@ -92,7 +106,7 @@
</select>

<update id="updateByCode" parameterType="com.iformall.domain.po.WxMsgModel">
update wx_msg_model set status=#{status} where `model_code` = #{modelCode}
update wx_msg_model set status=#{status},reason=#{reason} where `model_code` = #{modelCode}
</update>

</mapper>


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