分账接口开发

This commit is contained in:
Jack 2025-05-24 00:26:05 +08:00
parent dd80552720
commit f73a82cdd6
9 changed files with 352 additions and 66 deletions

View File

@ -140,6 +140,8 @@ public class CommonUtil {
/**
* Double 四舍五入,不保留小数点
* 2.5=3
* 2.3=2
*
* @param d
* @return
@ -150,6 +152,8 @@ public class CommonUtil {
/**
* Decimal 四舍五入,不保留小数点
* 2.5=3
* 2.3=2
*
* @param d
* @return
@ -158,6 +162,18 @@ public class CommonUtil {
return d.setScale(0, RoundingMode.HALF_UP);
}
/**
* Decimal 不四舍五入,不保留小数点
* 2.5 = 2
* 2.2 = 2
*
* @param d
* @return
*/
public static BigDecimal DecimalRoundHalfDown(BigDecimal d) {
return d.setScale(0, RoundingMode.HALF_DOWN);
}
/**
* 根据上一个订单状态和当前状态获取订单状态变化备注

View File

@ -12,6 +12,7 @@ import cn.hutool.json.JSONObject;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.service.impl.BaseControllerImpl;
import com.suisung.mall.shop.lakala.service.LakalaApiService;
import com.suisung.mall.shop.message.service.ShopMessageTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.HttpStatus;
@ -23,6 +24,8 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Api(tags = "拉卡拉相关接口 - 前端控制器")
@RestController
@ -32,11 +35,20 @@ public class LakalaController extends BaseControllerImpl {
@Resource
private LakalaApiService lakalaPayService;
@Resource
private ShopMessageTemplateService shopMessageTemplateService;
@ApiOperation(value = "测试案例", notes = "测试案例")
@RequestMapping(value = "/testcase", method = RequestMethod.POST)
public Object testcase(@RequestBody JSONObject paramsJSON) {
return lakalaPayService.applyLedgerMerEc(paramsJSON.getStr("mchMobile"));
// return lakalaPayService.applyLedgerMerEc(paramsJSON.getStr("mchMobile"));
// return lakalaPayService.LedgerMerEcDownload(975790666910121984L);
Map<String, Object> tmplArgs = new HashMap<>(1);
tmplArgs.put("name", "桂平市厚德贸易有限公司"); // 商家公司名称
// 所有店铺管理员的发送邮件 提醒商家您有一笔新的订单 ${order_id}请及时处理
shopMessageTemplateService.aliyunSmsSend("17777525395", "SMS_486545331", tmplArgs);//SMS_479760276
return CommonResult.success();
}
@ApiOperation(value = "本地文件转base64", notes = "本地文件转base64")
@ -103,4 +115,16 @@ public class LakalaController extends BaseControllerImpl {
return new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR);
}
// https://mall.gpxscs.cn/api/mobile/shop/lakala/sacs/separateNotify
@ApiOperation(value = "订单分账异步回调通知", notes = "订单分账异步回调通知")
@RequestMapping(value = "/sacs/separateNotify", method = RequestMethod.POST)
public ResponseEntity<JSONObject> sacsSeparateNotify(HttpServletRequest request) {
JSONObject resp = lakalaPayService.sacsSeparateNotify(request);
if (resp != null && "SUCCESS".equals(resp.get("code"))) {
return new ResponseEntity<>(resp, HttpStatus.OK);
}
return new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR);
}
}

View File

@ -209,4 +209,13 @@ public interface LakalaApiService {
* @return
*/
Pair<Boolean, String> innerDoOrderSeparate(String orderId);
/**
* 分账结果通知
* 参考https://o.lakala.com/#/home/document/detail?id=393
*
* @param request
* @return
*/
JSONObject sacsSeparateNotify(HttpServletRequest request);
}

View File

@ -40,7 +40,24 @@ public interface LklLedgerMerReceiverBindService extends IBaseService<LklLedgerM
* @param isPlatform
* @return
*/
List<LklLedgerMerReceiverBind> selectByMerCupNo(String merCupNo, Boolean isPlatform);
List<LklLedgerMerReceiverBind> selectListByMerCupNo(String merCupNo, Boolean isPlatform);
/**
* 根据商户编号查询一条平台绑定记录
*
* @param merCupNo
* @return
*/
LklLedgerMerReceiverBind getPlatformByMerCupNo(String merCupNo);
/**
* 根据商户编号查询一条代理商绑定记录
*
* @param merCupNo
* @return
*/
List<LklLedgerMerReceiverBind> selectDistributorByMerCupNo(String merCupNo);
/**
* 更新审核结果

View File

@ -0,0 +1,23 @@
/*
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
* Vestibulum commodo. Ut rhoncus gravida arcu.
*/
package com.suisung.mall.shop.lakala.service;
import com.suisung.mall.common.modules.lakala.LklOrderSeparate;
import com.suisung.mall.core.web.service.IBaseService;
public interface LklOrderSeparateService extends IBaseService<LklOrderSeparate> {
/**
* 新增或更新记录
*
* @param record
* @return
*/
Boolean addOrUpdateByReceiverNo(LklOrderSeparate record);
}

View File

@ -26,10 +26,7 @@ import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.feignService.ShopService;
import com.suisung.mall.common.modules.lakala.LklLedgerEc;
import com.suisung.mall.common.modules.lakala.LklLedgerMember;
import com.suisung.mall.common.modules.lakala.LklLedgerMerReceiverBind;
import com.suisung.mall.common.modules.lakala.LklLedgerReceiver;
import com.suisung.mall.common.modules.lakala.*;
import com.suisung.mall.common.modules.order.ShopOrderLkl;
import com.suisung.mall.common.modules.store.ShopMchEntry;
import com.suisung.mall.common.modules.store.ShopStoreBase;
@ -144,6 +141,10 @@ public class LakalaApiServiceImpl implements LakalaApiService {
@Resource
private LklTkServiceImpl lklTkService;
@Lazy
@Resource
private LklOrderSeparateService lklOrderSeparateService;
@Resource
private OssService ossService;
@ -1969,80 +1970,99 @@ public class LakalaApiServiceImpl implements LakalaApiService {
initLKLSDK();
// 获取订单信息店铺信息商户信息分账信息
List<ShopOrderLkl> orderList = shopOrderLklService.selectByOrderId(orderId, "");
if (CollectionUtil.isEmpty(orderList)) {
List<ShopOrderLkl> shopOrderLklList = shopOrderLklService.selectByOrderId(orderId, "");
if (CollectionUtil.isEmpty(shopOrderLklList)) {
return Pair.of(false, "订单不存在");
}
for (ShopOrderLkl order : orderList) {
String merchantNo = order.getMerchant_no();
int successCnt = 0;
// 一个订单里包含了多个商家的时候需要处理
for (ShopOrderLkl shopOrderLkl : shopOrderLklList) {
String merchantNo = shopOrderLkl.getMerchant_no();
// 分账总金额
Integer paymentAmount = order.getTotal_amt();
Integer shoppingFee = order.getShopping_fee();
BigDecimal splitRatio = order.getSplit_ratio();
if (paymentAmount <= 0 || (shoppingFee != null && paymentAmount - shoppingFee <= 0)) {
return Pair.of(false, "订单金额有误");
Integer paymentAmount = shopOrderLkl.getTotal_amt();
Integer shoppingFee = shopOrderLkl.getShopping_fee();
BigDecimal splitRatioMch = shopOrderLkl.getSplit_ratio();
// 应付款金额大于零并且大于运费
if (paymentAmount <= 0
|| (shoppingFee != null && paymentAmount - shoppingFee <= 0)) {
log.error("店铺{}订单{}金额有误或运费高于分账金额,不会进行分账", shopOrderLkl.getStore_id(), orderId);
continue;
}
// 平台和代理商的分成比例
BigDecimal splitRatioNoMch = new BigDecimal("100").subtract(shopOrderLkl.getSplit_ratio());
LklLedgerMerReceiverBind platform = lklLedgerMerReceiverBindService.getPlatformByMerCupNo(merchantNo);
List<LklLedgerMerReceiverBind> distributorList = lklLedgerMerReceiverBindService.selectDistributorByMerCupNo(merchantNo);
if (platform == null) {
log.error("店铺{}订单{}未绑定平台方,不会进行分账", shopOrderLkl.getStore_id(), orderId);
continue;
}
boolean canSplit = true; // 能分账并扣运费
if (splitRatioMch == null || splitRatioMch.compareTo(new BigDecimal("100")) >= 0) {
log.warn("店铺{}分账比例为0只扣运费不会进行分账", shopOrderLkl.getStore_id());
canSplit = false; //不分账只扣运费
}
V3SacsSeparateRequest req = new V3SacsSeparateRequest();
req.setMerchantNo(merchantNo);
req.setLogNo(orderId);
req.setLogDate(order.getLog_date());
req.setMerchantNo(merchantNo); // 拉卡拉商户号
req.setLogNo(shopOrderLkl.getLog_no());
req.setLogDate(shopOrderLkl.getLog_date());
req.setOutSeparateNo(StringUtils.genLklOrderNo(18)); // 14+18=32位商户分账指令流水号每个商户号下唯一否则会校验失败
req.setTotalAmt(order.getTotal_amt().toString());
req.setTotalAmt(shopOrderLkl.getTotal_amt().toString());
req.setLklOrgNo(orgCode);
req.setCalType("0"); // 0- 按照指定金额1- 按照指定比例默认 0
req.setNotifyUrl(projectDomain + "/api/v1/lkl/order/separate/notify");
List<LklLedgerMerReceiverBind> platformList = lklLedgerMerReceiverBindService.selectByMerCupNo(merchantNo, true);
List<LklLedgerMerReceiverBind> distributorList = lklLedgerMerReceiverBindService.selectByMerCupNo(merchantNo, false);
if (CollectionUtil.isEmpty(platformList)) {
return Pair.of(false, "商户未绑定分账平台方");
}
req.setNotifyUrl(projectDomain + "/api/mobile/shop/lakala/sacs/separateNotify");
List<V3SacsSeparateRecvDatas> recvDatas = new ArrayList<>();
// 是否有运费
// 平台先代扣掉运费
if (shoppingFee != null && shoppingFee > 0) {
V3SacsSeparateRecvDatas recvData = new V3SacsSeparateRecvDatas();
recvData.setRecvNo(platformList.get(0).getReceiver_no());
recvData.setRecvNo(platform.getReceiver_no());
recvData.setSeparateValue(shoppingFee.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData);
}
Integer splitAmount = paymentAmount - shoppingFee;
if (!CollectionUtils.isEmpty(distributorList)
&& (splitRatio != null && splitRatio.compareTo(BigDecimal.ONE) > 0)) {
// 平台方分账
BigDecimal separateValue = new BigDecimal(splitAmount).multiply(new BigDecimal("0.01")); // 平台收取1%手续费
if (separateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData = new V3SacsSeparateRecvDatas();
recvData.setRecvNo(platformList.get(0).getReceiver_no());
recvData.setSeparateValue(separateValue.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData);
}
if (canSplit) { //扣完运费后还能能分账
// 代理方分账 100-1-splitRatio 1%是平台方的其余都是代理商的
BigDecimal separateValue2 = new BigDecimal(splitAmount).multiply(new BigDecimal(99).subtract(splitRatio).divide(new BigDecimal(100)));
if (separateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData2 = new V3SacsSeparateRecvDatas();
recvData2.setRecvNo(distributorList.get(0).getReceiver_no());
recvData2.setSeparateValue(separateValue2.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData2);
}
} else {
// 仅平台方一方分账
BigDecimal separateValue = new BigDecimal(splitAmount).multiply(new BigDecimal(100).subtract(splitRatio).divide(new BigDecimal(100)));
if (separateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData = new V3SacsSeparateRecvDatas();
recvData.setRecvNo(platformList.get(0).getReceiver_no());
recvData.setSeparateValue(separateValue.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData);
// 应付款扣除运费后得出实际分账的金额,单位
Integer splitAmount = paymentAmount - shoppingFee;
if (!CollectionUtils.isEmpty(distributorList)
&& (splitRatioMch != null && splitRatioNoMch.compareTo(BigDecimal.ONE) > 0)) { // 有平台和代理商并且分账比例大于1的情况
// 平台方分账
BigDecimal platformSeparateValue = CommonUtil.DecimalRoundHalfDown(new BigDecimal(splitAmount).multiply(new BigDecimal("0.01"))); // 平台收取1%手续费
if (platformSeparateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData = new V3SacsSeparateRecvDatas();
recvData.setRecvNo(platform.getReceiver_no());
recvData.setSeparateValue(platformSeparateValue.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData);
}
// TODO: 一级以上的代理商以后做处理
// 一级代理方分账 分账比例扣掉1%的平台方费其余都是代理商的
BigDecimal splitRatioDistributor = splitRatioNoMch.subtract(new BigDecimal("1")).divide(new BigDecimal(100));
BigDecimal distributorSeparateValue = CommonUtil.DecimalRoundHalfDown(new BigDecimal(splitAmount).multiply(splitRatioDistributor));
if (distributorSeparateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData2 = new V3SacsSeparateRecvDatas();
recvData2.setRecvNo(distributorList.get(0).getReceiver_no());
recvData2.setSeparateValue(distributorSeparateValue.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData2);
}
} else {
// 仅平台方一方分账
BigDecimal splitRatioPlatform = CommonUtil.DecimalRoundHalfDown(splitRatioNoMch.divide(new BigDecimal(100)));
BigDecimal separateValue = new BigDecimal(splitAmount).multiply(splitRatioPlatform);
if (separateValue.compareTo(BigDecimal.ZERO) > 0) {
V3SacsSeparateRecvDatas recvData = new V3SacsSeparateRecvDatas();
recvData.setRecvNo(platform.getReceiver_no());
recvData.setSeparateValue(separateValue.toString()); // 分账金额单位分分账金额不能大于订单金额分账金额不能小于0
recvDatas.add(recvData);
}
}
}
@ -2054,23 +2074,118 @@ public class LakalaApiServiceImpl implements LakalaApiService {
//3. 发送请求
String responseStr = LKLSDK.httpPost(req);
if (StrUtil.isBlank(responseStr)) {
return Pair.of(false, "服务器无返回值!");
log.error("服务器无返回值!");
continue;
}
log.debug("分账执行响应参数:{}", responseStr);
JSONObject lklRespJSON = JSONUtil.parseObj(responseStr);
if (lklRespJSON == null || !lklSacsSuccessCode.equals(lklRespJSON.getStr("code")) || lklRespJSON.get("resp_data") == null) {
if (lklRespJSON == null
|| !lklSacsSuccessCode.equals(lklRespJSON.getStr("code"))
|| lklRespJSON.getJSONObject("resp_data") == null) {
log.error("分账返回值有误!");
return Pair.of(false, "返回值有误!");
continue;
}
return Pair.of(true, "分账成功执行,处理中");
JSONObject respData = lklRespJSON.getJSONObject("resp_data");
// 4. 处理返回结果等待异步通知
LklOrderSeparate record = new LklOrderSeparate();
record.setMerchant_no(merchantNo);
record.setLog_no(shopOrderLkl.getLog_no());
record.setLog_date(shopOrderLkl.getLog_date());
record.setOrder_id(shopOrderLkl.getOrder_id());
record.setTotal_amt(shopOrderLkl.getTotal_amt().toString());
record.setOut_separate_no(req.getOutSeparateNo());// 必填参数
record.setNotify_url(req.getNotifyUrl());
record.setLkl_org_no(req.getLklOrgNo());
record.setRecv_datas(JSONUtil.toJsonStr(req.getRecvDatas()));
record.setSeparate_no(respData.getStr("separate_no")); // 必填参数
record.setStatus(respData.getStr("status"));
lklOrderSeparateService.addOrUpdateByReceiverNo(record);
successCnt++;
}
if (successCnt <= 0) {
return Pair.of(false, "分账失败");
} else if (successCnt != shopOrderLklList.size()) {
return Pair.of(true, "部分订单分账执行成功,处理中");
}
return Pair.of(true, "全部订单分账执行成功,处理中");
} catch (SDKException e) {
log.error("分账发生错误:", e);
return Pair.of(false, "分账发生错误");
}
}
return null;
/**
* 分账结果通知
* 参考https://o.lakala.com/#/home/document/detail?id=393
*
* @param request
* @return
*/
@Override
public JSONObject sacsSeparateNotify(HttpServletRequest request) {
log.debug("分账结果通知异步回调通知开始");
// 验签
String authorization = request.getHeader("Authorization");
String requestBody = LakalaUtil.getBody(request);
log.debug("分账结果通知异步回调返回requestbody 参数:{}\n authorization参数{}\n", requestBody, authorization);
if (!LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath)) {
log.error("分账结果通知异步回调:验签失败");
return JSONUtil.createObj().put("code", "FAIL").put("message", "验签失败!");
}
JSONObject paramsJSON = JSONUtil.parseObj(requestBody);
if (paramsJSON == null) {
log.error("分账结果通知异步回调:请求参数为空");
return JSONUtil.createObj().put("code", "FAIL").put("message", "请求参数为空");
}
String logNo = paramsJSON.getStr("log_no");
String separateNo = paramsJSON.getStr("separate_no");
String outSeparateNo = paramsJSON.getStr("out_separate_no");
String status = paramsJSON.getStr("status");
String finalStatus = paramsJSON.getStr("final_status");
if (StrUtil.isBlank(outSeparateNo) || StrUtil.isBlank(separateNo) || StrUtil.isBlank(status)) {
String errMsg = "分账结果通知异步回调缺少必要参数outSeparateNo/separateNo/status";
log.error(errMsg + "logNo={}, separateNo={}, status={}", outSeparateNo, separateNo, status);
return JSONUtil.createObj().put("code", "FAIL").put("message", "返回缺少必要参数");
}
try {
// 4. 处理返回结果等待异步通知
LklOrderSeparate record = new LklOrderSeparate();
record.setLog_no(logNo);
record.setSeparate_no(separateNo);
record.setOut_separate_no(paramsJSON.getStr("out_separate_no"));
record.setStatus(status);
record.setFinal_status(finalStatus);
record.setCal_type(paramsJSON.getStr("cal_type"));
record.setSeparate_type(paramsJSON.getStr("separate_type"));
record.setSeparate_date(paramsJSON.getStr("separate_date"));
record.setDetail_datas(paramsJSON.getJSONArray("detail_datas").toString());
Boolean success = lklOrderSeparateService.addOrUpdateByReceiverNo(record);
if (!success) {
return JSONUtil.createObj().put("code", "FAIL").put("message", "处理数据失败!");
}
log.debug("分账结果通知异步回调处理成功separateNo={}", separateNo);
return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功!");
} catch (Exception e) {
log.error("分账结果通知异步回调:处理数据异常", e);
return JSONUtil.createObj().put("code", "FAIL").put("message", "处理数据异常");
}
}

View File

@ -73,14 +73,14 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
}
/**
* 根据商户编号查询多条记录
* 根据商户编号查询多条平台或代理商记录
*
* @param merCupNo
* @param isPlatform 是否平台
* @return
*/
@Override
public List<LklLedgerMerReceiverBind> selectByMerCupNo(String merCupNo, Boolean isPlatform) {
public List<LklLedgerMerReceiverBind> selectListByMerCupNo(String merCupNo, Boolean isPlatform) {
if (StrUtil.isBlank(merCupNo)) {
return null;
}
@ -99,6 +99,38 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
return list(queryWrapper);
}
/**
* 根据商户编号查询一条平台绑定记录
*
* @param merCupNo
* @return
*/
@Override
public LklLedgerMerReceiverBind getPlatformByMerCupNo(String merCupNo) {
List<LklLedgerMerReceiverBind> list = selectListByMerCupNo(merCupNo, true);
if (CollectionUtil.isEmpty(list)) {
return null;
}
return list.get(0);
}
/**
* 根据商户编号查询一条代理商绑定记录
*
* @param merCupNo
* @return
*/
@Override
public List<LklLedgerMerReceiverBind> selectDistributorByMerCupNo(String merCupNo) {
List<LklLedgerMerReceiverBind> list = selectListByMerCupNo(merCupNo, false);
if (CollectionUtil.isEmpty(list)) {
return null;
}
return list;
}
/**
* 更新审核结果
*

View File

@ -0,0 +1,50 @@
/*
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
* Vestibulum commodo. Ut rhoncus gravida arcu.
*/
package com.suisung.mall.shop.lakala.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.suisung.mall.common.modules.lakala.LklOrderSeparate;
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
import com.suisung.mall.shop.lakala.mapper.LklOrderSeparateMapper;
import com.suisung.mall.shop.lakala.service.LklOrderSeparateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class LklOrderSeparateServiceImpl extends BaseServiceImpl<LklOrderSeparateMapper, LklOrderSeparate> implements LklOrderSeparateService {
/**
* 新增或更新记录
*
* @param record
* @return
*/
@Override
public Boolean addOrUpdateByReceiverNo(LklOrderSeparate record) {
if (record == null || (StrUtil.isBlank(record.getOut_separate_no()) && StrUtil.isBlank(record.getSeparate_no()))) {
return false;
}
QueryWrapper<LklOrderSeparate> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("separate_no", record.getSeparate_no()).eq("out_separate_no", record.getOut_separate_no());
if (StrUtil.isNotBlank(record.getSeparate_no())) {
queryWrapper.eq("log_no", record.getLog_no());
}
LklOrderSeparate existsRecord = getOne(queryWrapper);
if (existsRecord != null && existsRecord.getId() > 0) {
// 更新记录
record.setId(existsRecord.getId());
return updateById(record);
}
return add(record);
}
}

View File

@ -247,7 +247,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
Map<String, Object> tmplArgs = new HashMap<>(1);
tmplArgs.put("name", record.getBiz_license_company()); // 商家公司名称
// 所有店铺管理员的发送邮件 提醒商家您有一笔新的订单 ${order_id}请及时处理
shopMessageTemplateService.aliyunSmsSend(mobileAndLicenseNumber.getFirst(), "SMS_479760276", tmplArgs);//SMS_475836097
shopMessageTemplateService.aliyunSmsSend(mobileAndLicenseNumber.getFirst(), "SMS_486545331", tmplArgs);//SMS_479760276
}
return CommonResult.success();