From 1eec2ef822428b670b8a2a7d348d35dd7557001e Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Fri, 31 Jul 2020 16:59:15 +0800 Subject: [PATCH 1/2] update --- .../V202007311200__FOR_MEMBER_ONLY_001.sql | 8 ++ .../controller/WxCardPayController.java | 92 +++++++++++++------ .../com/iformall/domain/po/WxCardSpend.java | 3 + .../com/iformall/domain/po/WxCouponOrder.java | 3 +- .../com/iformall/service/WxOrderService.java | 21 +++-- .../service/impl/WxOrderServiceImpl.java | 6 +- .../service/impl/WxPayOrderServiceImpl.java | 6 +- 7 files changed, 96 insertions(+), 43 deletions(-) diff --git a/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql b/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql index ff6a788df..2a35750e2 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql @@ -19,3 +19,11 @@ ADD COLUMN `login_count` int(11) DEFAULT 0 COMMENT '登陆次数' AFTER `active update wx_c_user_basic_info wcubi set wcubi.login_count = (select wcu.login_count from wx_c_user wcu where wcu.id=wcubi.id); +ALTER TABLE `wx_coupon_order` +ADD COLUMN `pay_vendor` SMALLINT(3) DEFAULT NULL COMMENT '订单渠道,EnumPayWay.class'; + +UPDATE wx_coupon_order o INNER JOIN wx_pay_order po ON po.order_id = o.`id` SET o.pay_vendor = po.pay_vendor; + +ALTER TABLE `wx_card_spend` +ADD COLUMN `remark` VARCHAR(30) DEFAULT NULL COMMENT '备注'; + diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java index c637304d7..1f041d20a 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -1,30 +1,51 @@ package com.iformall.controller; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; -import com.iformall.domain.po.*; +import com.iformall.domain.po.WxCUser; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCardInfo; +import com.iformall.domain.po.WxCardSpend; +import com.iformall.domain.po.WxCouponMerchant; +import com.iformall.domain.po.WxCouponOrder; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxOrder; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.enums.EnumCreditLockedStatus; import com.iformall.enums.EnumMerchantStatus; +import com.iformall.enums.EnumPayWay; import com.iformall.exception.MallinkException; -import com.iformall.service.*; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxCardInfoService; +import com.iformall.service.WxCardSpendService; +import com.iformall.service.WxCouponOrderService; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxOrderService; import com.iformall.utils.Constant; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletRequest; -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; /** * @author Stormeye Wu wuguoqiang@iformall.com @@ -53,27 +74,28 @@ public class WxCardPayController extends BaseController { @Autowired WxCUserBasicInfoService wxCUserBasicInfoService; - @ApiOperation(value = "C端扫B端储值卡支付订单", notes = "params:{\"cardId\":\"String\",\"merchantId\":\"String\",\"totalFee\":\"String(元)\"}") + @ApiOperation(value = "微信C端扫B端储值卡支付订单", notes = "params:{\"cardId\":\"String\",\"merchantId\":\"String\",\"totalFee\":\"String(元)\"}") @PostMapping("order_create") public ResultData saveCardPayOrder(@RequestBody Map paramMap, HttpServletRequest request) { - String ipStr = getIpAddr(); - logger.info("saveCardPayOrder: " + ipStr + " :" + paramMap.toString()); - WxCUser user = getUser(); if (!user.isBasicInfo()) { logger.error("暂未成为会员,请授权手机号"); return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); } - WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(user.getUserId()); - if (null != wxCUserBasicInfo && EnumCreditLockedStatus.CLOSE.getCode().equals(wxCUserBasicInfo.getStatus())) { - logger.error(ErrorCode.MEMBER_IS_LOCKED.getMessage()); - return new ResultData(ErrorCode.MEMBER_IS_LOCKED); - } - String cardIdStr = paramMap.get("cardId"); String merchantStr = paramMap.get("merchantId"); String totalFeeStr = paramMap.get("totalFee"); + return saveCardPayOrder(user.getUserId(),cardIdStr,merchantStr,totalFeeStr,EnumPayWay.PAY_WAY_WECHAT); + } + private ResultData saveCardPayOrder(Long cUserId,String cardIdStr,String merchantStr,String totalFeeStr,EnumPayWay payWay) { + String ipStr = getIpAddr(); + logger.info("saveCardPayOrder: " + ipStr + " : cUserId:{} , cardIdStr:{},merchantStr:{},totalFeeStr:{}",cUserId,cardIdStr,cardIdStr,cardIdStr); + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(cUserId); + if (null != wxCUserBasicInfo && EnumCreditLockedStatus.CLOSE.getCode().equals(wxCUserBasicInfo.getStatus())) { + logger.error(ErrorCode.MEMBER_IS_LOCKED.getMessage()); + return new ResultData(ErrorCode.MEMBER_IS_LOCKED); + } if (StringUtils.isBlank(cardIdStr) || cardIdStr.equalsIgnoreCase(Constant.UNDEFINED)) { logger.error("cardId不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cardId不能为空"); @@ -119,7 +141,7 @@ public class WxCardPayController extends BaseController { //查看所有者与扫码者是否为一致 WxCouponOrder couponOrder = wxCouponOrderService.getById(cardId); - if (!couponOrder.getOwnerId().equals(user.getUserId())) { + if (!couponOrder.getOwnerId().equals(cUserId)) { logger.error("卡已被领取: " + cardIdStr); return new ResultData(ErrorCode.CARD_TRANSFERED); } @@ -138,7 +160,7 @@ public class WxCardPayController extends BaseController { WxOrder order = null; try { - order = wxOrderService.saveCardPayOrder(merchant, user.getUserId(), totalFeeStr, payment); + order = wxOrderService.saveCardPayOrder(merchant, cUserId, totalFeeStr, payment,payWay); } catch (MallinkException e) { logger.error("saveCardPayOrder 1" + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); @@ -150,11 +172,12 @@ public class WxCardPayController extends BaseController { WxCardSpend record = new WxCardSpend(); record.updateTenantInfo(merchant); record.setCardId(cardId); - record.setOwnerId(user.getUserId()); + record.setOwnerId(cUserId); record.setMerchantId(merchantId); record.setOrderId(order.getId()); record.setIp(ipStr); record.setDeductionAmount(payment); + record.setRemark("操作于["+payWay.getMessage()+"("+payWay.getCode()+")]"); try { return wxCardSpendService.createCardSpend(record, order, couponMerchant); @@ -166,7 +189,8 @@ public class WxCardPayController extends BaseController { return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); } } - + + @ApiOperation("C端扫B端储值卡交易流水列表接口") @GetMapping("list") @ApiImplicitParams({ @@ -180,9 +204,13 @@ public class WxCardPayController extends BaseController { logger.error("暂未成为会员,请授权手机号"); return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); } - if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); + return cardSpendList(wxCardSpend,user.getUserId(), pageNum, pageSize); + } + + private ResultData cardSpendList(WxCardSpendVo wxCardSpend,Long cUserId,Integer pageNum, Integer pageSize) { + if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); wxCardSpend.updateTenantInfo(getTenantInfo()); - wxCardSpend.setOwnerId(user.getUserId()); + wxCardSpend.setOwnerId(cUserId); final PageInfo page = wxCardSpendService.listAsPage(wxCardSpend, pageNum, pageSize); return new ResultData(page); } @@ -197,9 +225,13 @@ public class WxCardPayController extends BaseController { logger.error("暂未成为会员,请授权手机号"); return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); } - if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); + return sumCardSpendList(wxCardSpend, user.getUserId()); + } + + private ResultData sumCardSpendList(WxCardSpendVo wxCardSpend,Long cUserId) { + if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); wxCardSpend.updateTenantInfo(getTenantInfo()); - wxCardSpend.setOwnerId(user.getUserId()); + wxCardSpend.setOwnerId(cUserId); final List> mapList = wxCardSpendService.sumCardSpendForOwner(wxCardSpend); return new ResultData(mapList); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java index b444d4577..65ad8c499 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java @@ -61,6 +61,9 @@ public class WxCardSpend extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="来源(0:C端小程序扫一扫, 1:POS支付)",name="payFrom") private Integer payFrom; + + @io.swagger.annotations.ApiModelProperty(value="说明",name="remark") + private String remark; @TableField(exist = false) @Excel(name = "消费金额(元)", width = 20, orderNum = "7") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index 7d0887a65..3b860857e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -42,7 +42,8 @@ public class WxCouponOrder extends TenantEntity { private Date updateDate; @io.swagger.annotations.ApiModelProperty(value = "单券实际购买价格", name = "couponPrice") private Integer couponPrice; - + @io.swagger.annotations.ApiModelProperty(value = "支付渠道EnumPayWay", name = "pay_vendor") + private Integer payVendor; @io.swagger.annotations.ApiModelProperty(value="过期退款(0:正常,1不退)",name="autoRefund") private Integer autoRefund; diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index ba3be25f8..d27780fa7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -1,20 +1,27 @@ package com.iformall.service; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.OrderSaveDto; -import com.iformall.domain.po.*; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxCouponOrder; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxMerchantBUser; +import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.base.TenantEntity; 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.enums.EnumOrderStatus; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.List; -import java.util.Map; +import com.iformall.enums.EnumPayWay; public interface WxOrderService { @@ -70,7 +77,7 @@ public interface WxOrderService { * @param payment * @return 订单id */ - WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment); + WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment,EnumPayWay payWay); /** * 免费券订单接口 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index c14720cb2..8deb116e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -89,6 +89,7 @@ import com.iformall.enums.EnumOrderType; import com.iformall.enums.EnumPayShare; import com.iformall.enums.EnumPayStatus; import com.iformall.enums.EnumPayType; +import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumProfitSharingOrderType; import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumUserType; @@ -937,7 +938,7 @@ public class WxOrderServiceImpl implements WxOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment) { + public WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment,EnumPayWay payWay) { Date curr = new Date(); final IdWorker idWorker = IdWorker.get(); @@ -945,7 +946,7 @@ public class WxOrderServiceImpl implements WxOrderService { // body // tenant_id + merchant_id + title + subtitle - String bodyStr = "C扫B储值卡支付, 金额:" + totalFeeStr; + String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]C扫B储值卡支付, 金额:" + totalFeeStr; WxOrder record = new WxOrder(); record.setId(orderNumber); @@ -1054,6 +1055,7 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrder.setAutoRefund(coupon.getAutoRefund()); couponOrder.setOrderId(order.getOrderNumber()); couponOrder.setExpiredTime(valid_date); + couponOrder.setPayVendor(payOrder.getPayVendor()); if (!isCard) { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); } else { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 2f2bc6f6f..be86f783a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -50,7 +50,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { WxAppinfoMapper wxAppinfoMapper; @Autowired - WxCUserMapper wxCUserMapper; + WxCUserBasicInfoMapper wxCUserBasicInfoMapper; @Autowired WxCUserService wxCUserService; @@ -1310,7 +1310,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); } if (order.getType().equals(EnumOrderType.COUPON.getCode())) { - WxCUser user = wxCUserMapper.selectById(order.getCUserId()); + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(order.getCUserId()); if (user == null) { logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); throw new MallinkException(ErrorCode.USER_IS_EMPTY); @@ -1404,7 +1404,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); } if (order.getType().equals(EnumOrderType.COUPON.getCode())) { - WxCUser user = wxCUserMapper.selectById(order.getCUserId()); + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(order.getCUserId()); if (user == null) { logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); throw new MallinkException(ErrorCode.USER_IS_EMPTY); From 7af04aeda2b00d2594d893cac99a80860a713b35 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Fri, 31 Jul 2020 18:27:59 +0800 Subject: [PATCH 2/2] update --- .../controller/WxMicroPayController.java | 25 +++++++++++-------- .../com/iformall/mapper/WxPayOrderMapper.java | 2 +- .../service/WxCouponOrderService.java | 3 ++- .../com/iformall/service/WxOrderService.java | 2 +- .../impl/WxCouponOrderServiceImpl.java | 5 +++- .../service/impl/WxOrderServiceImpl.java | 4 +-- .../service/impl/WxPayOrderServiceImpl.java | 9 ++++--- .../service/pay/PayServiceFactory.java | 2 ++ .../pay/service/PayShareAdapterService.java | 9 +++++++ 9 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 3e3ae0fe5..0a3e1f9b6 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -69,27 +69,30 @@ public class WxMicroPayController extends BaseController { //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); String authCode = paramMap.get("authCode"); String totalFeeStr = paramMap.get("totalFee"); + return saveMicopayOrder(authCode, totalFeeStr, EnumPayWay.PAY_WAY_WECHAT_MA, request); + } - if (StringUtils.isBlank(authCode)) { + private ResultData saveMicopayOrder(String authCode,String totalFeeStr,EnumPayWay payWay,HttpServletRequest request) { + if (StringUtils.isBlank(authCode)) { logger.error("authCode不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不能为空"); } - if (StringUtils.isBlank(totalFeeStr)) { - logger.error("totalFee不能为空"); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "totalFee不能为空"); - } if (!checkAuthCode(authCode)) { logger.error("authCode不符合规则"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不符合规则"); } - - String ipStr = IPUtil.getIpAddr(request); + if (StringUtils.isBlank(totalFeeStr)) { + logger.error("totalFee不能为空"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "totalFee不能为空"); + } + + String ipStr = IPUtil.getIpAddr(request); WxMerchantBUser user = getUser(); WxOrder order = null; try { - order = wxOrderService.saveMicroPayOrder(user, totalFeeStr); + order = wxOrderService.saveMicroPayOrder(user, totalFeeStr,payWay); } catch (MallinkException e) { logger.error("saveMicopayOrder 1" + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); @@ -104,9 +107,8 @@ public class WxMicroPayController extends BaseController { record.setAuthCode(authCode); record.setPayAmount(order.getPayment()); record.setIp(ipStr); - try { - return wxPayOrderService.createMicroPayOrder(user, record, EnumPayWay.PAY_WAY_WECHAT_MA, null); + return wxPayOrderService.createMicroPayOrder(user, record, payWay, null); } catch (MallinkException e) { logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); @@ -115,7 +117,8 @@ public class WxMicroPayController extends BaseController { return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); } } - + + @ApiOperation(value = "查询付款码支付订单", notes = "{\"payOrderId\":\"String\",\"orderId\":\"String\"}") @PostMapping("order_query") public ResultData queryMicopayOrder(@RequestBody Map paramMap) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java index 59c5e1d21..b7620a4eb 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java @@ -9,7 +9,7 @@ public interface WxPayOrderMapper extends CommonMapper { List findList(WxPayOrder wxPayOrder); - List findListOfPaidOrderByDate(Map dateMap); + //List findListOfPaidOrderByDate(Map dateMap); List findListForUnPs(WxPayOrder wxPayOrder); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 758e2e036..6dd607849 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.*; +import com.iformall.enums.EnumPayWay; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -207,7 +208,7 @@ public interface WxCouponOrderService { WxPayOrder microPayPreVerify(WxOrder microOrder, WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price); - Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId); + Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay); /** * 尚安停车 diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index d27780fa7..10ae5762e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -58,7 +58,7 @@ public interface WxOrderService { * @param totalFeeStr * @return 订单id */ - WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr); + WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay); /** * 付款码支付v2 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b51ccff2d..f52d76a82 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -543,6 +543,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { merchantSubsidy.setRealPayment(couponOrder.getCouponPrice()); merchantSubsidy.setSubsidy(couponOrder.getCouponPrice()); merchantSubsidy.setRealSubsidy(couponOrder.getCouponPrice()); + couponOrder.getPayVendor(); + 11111111111 merchantSubsidy.setType(EnumMerchantSubsidyType.WECHAT.getCode()); merchantSubsidy.setCreateDate(curDate); merchantSubsidy.setUpdateDate(curDate); @@ -1387,12 +1389,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId) { + public Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay) { WxCouponOrder updateCouponOrder = new WxCouponOrder(); updateCouponOrder.setId(couponOrderId); updateCouponOrder.setBUserId(bUser.getId()); updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); updateCouponOrder.setUpdateDate(new Date()); + updateCouponOrder.setPayVendor(payWay.getCode()); // 核销状态更新 int num = wxCouponOrderMapper.updateById(updateCouponOrder); if (num == 1) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 8deb116e6..ef216254f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -822,7 +822,7 @@ public class WxOrderServiceImpl implements WxOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr) { + public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay) { // 检查用户 if (user == null) { logger.error("用户不存在"); @@ -854,7 +854,7 @@ public class WxOrderServiceImpl implements WxOrderService { // body // tenant_id + merchant_id + title + subtitle - String bodyStr = "刷卡支付, 金额:" + totalFeeStr; + String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]刷卡支付, 金额:" + totalFeeStr; record.setId(orderNumber); record.updateTenantInfo(user); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index be86f783a..1d165715b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1119,8 +1119,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // B端收银台核销券处理, 收银台支付和券支付可能不是同一个人 WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.setOrderId(order.getId()); - payOrderQ.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); - payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); + //payOrderQ.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); + //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); try { WxPayOrder unPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper<>(payOrderQ)); if (unPayOrder != null) { @@ -1128,6 +1128,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { try { unPayOrder.setOrderId(order.getId()); unPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); + unPayOrder.setPayVendor(payWay.getCode()); wxPayOrderMapper.updateById(unPayOrder); } catch (Exception e) { logger.error("支付订单数据库更新失败: " + e.getMessage()); @@ -1135,12 +1136,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } if (unPayOrder.getPosPayOrderId() != null) { try { - wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId()); + wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay); } catch (Exception e) { logger.error(e.getMessage()); } // 更新后处理 - wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getId(),payWay); } } } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java b/mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java index d07078b8e..6df0b3c28 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java @@ -74,4 +74,6 @@ public class PayServiceFactory { return serviceMap; } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java new file mode 100644 index 000000000..a6e774411 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java @@ -0,0 +1,9 @@ +package com.iformall.service.pay.service; + +/** + * 分账接口 + * @author alascor + */ +public interface PayShareAdapterService { + +}