Przeglądaj źródła

Merge branch 'for_member_only' of https://git.youlane.cn/server/formallProject into for_member_only

release_toaliyun_real
xhxu 5 lat temu
rodzic
commit
e24c37ae45
13 zmienionych plików z 136 dodań i 64 usunięć
  1. +8
    -0
      mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql
  2. +14
    -11
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  3. +62
    -30
      mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java
  4. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java
  5. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java
  7. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  8. +15
    -8
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  9. +4
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  10. +6
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  11. +8
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  12. +2
    -0
      mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java
  13. +9
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java

+ 8
- 0
mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql Wyświetl plik

@@ -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); 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 '备注';


+ 14
- 11
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java Wyświetl plik

@@ -69,27 +69,30 @@ public class WxMicroPayController extends BaseController {
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
String authCode = paramMap.get("authCode"); String authCode = paramMap.get("authCode");
String totalFeeStr = paramMap.get("totalFee"); 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不能为空"); logger.error("authCode不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "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)) { if (!checkAuthCode(authCode)) {
logger.error("authCode不符合规则"); logger.error("authCode不符合规则");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "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(); WxMerchantBUser user = getUser();


WxOrder order = null; WxOrder order = null;
try { try {
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr);
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr,payWay);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error("saveMicopayOrder 1" + e.getMessage()); logger.error("saveMicopayOrder 1" + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage());
@@ -104,9 +107,8 @@ public class WxMicroPayController extends BaseController {
record.setAuthCode(authCode); record.setAuthCode(authCode);
record.setPayAmount(order.getPayment()); record.setPayAmount(order.getPayment());
record.setIp(ipStr); record.setIp(ipStr);

try { try {
return wxPayOrderService.createMicroPayOrder(user, record, EnumPayWay.PAY_WAY_WECHAT_MA, null);
return wxPayOrderService.createMicroPayOrder(user, record, payWay, null);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage());
return new ResultData(e.getErrorCode(), 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()); return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage());
} }
} }

@ApiOperation(value = "查询付款码支付订单", notes = "{\"payOrderId\":\"String\",\"orderId\":\"String\"}") @ApiOperation(value = "查询付款码支付订单", notes = "{\"payOrderId\":\"String\",\"orderId\":\"String\"}")
@PostMapping("order_query") @PostMapping("order_query")
public ResultData queryMicopayOrder(@RequestBody Map<String, String> paramMap) { public ResultData queryMicopayOrder(@RequestBody Map<String, String> paramMap) {


+ 62
- 30
mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java Wyświetl plik

@@ -1,30 +1,51 @@
package com.iformall.controller; 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.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; 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.domain.vo.WxCardSpendVo;
import com.iformall.enums.EnumCreditLockedStatus; import com.iformall.enums.EnumCreditLockedStatus;
import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumMerchantStatus;
import com.iformall.enums.EnumPayWay;
import com.iformall.exception.MallinkException; 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 com.iformall.utils.Constant;

import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; 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 * @author Stormeye Wu wuguoqiang@iformall.com
@@ -53,27 +74,28 @@ public class WxCardPayController extends BaseController {
@Autowired @Autowired
WxCUserBasicInfoService wxCUserBasicInfoService; 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") @PostMapping("order_create")
public ResultData saveCardPayOrder(@RequestBody Map<String, String> paramMap, HttpServletRequest request) { public ResultData saveCardPayOrder(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
String ipStr = getIpAddr();
logger.info("saveCardPayOrder: " + ipStr + " :" + paramMap.toString());

WxCUser user = getUser(); WxCUser user = getUser();
if (!user.isBasicInfo()) { if (!user.isBasicInfo()) {
logger.error("暂未成为会员,请授权手机号"); logger.error("暂未成为会员,请授权手机号");
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); 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 cardIdStr = paramMap.get("cardId");
String merchantStr = paramMap.get("merchantId"); String merchantStr = paramMap.get("merchantId");
String totalFeeStr = paramMap.get("totalFee"); 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)) { if (StringUtils.isBlank(cardIdStr) || cardIdStr.equalsIgnoreCase(Constant.UNDEFINED)) {
logger.error("cardId不能为空"); logger.error("cardId不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "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); WxCouponOrder couponOrder = wxCouponOrderService.getById(cardId);
if (!couponOrder.getOwnerId().equals(user.getUserId())) {
if (!couponOrder.getOwnerId().equals(cUserId)) {
logger.error("卡已被领取: " + cardIdStr); logger.error("卡已被领取: " + cardIdStr);
return new ResultData(ErrorCode.CARD_TRANSFERED); return new ResultData(ErrorCode.CARD_TRANSFERED);
} }
@@ -138,7 +160,7 @@ public class WxCardPayController extends BaseController {


WxOrder order = null; WxOrder order = null;
try { try {
order = wxOrderService.saveCardPayOrder(merchant, user.getUserId(), totalFeeStr, payment);
order = wxOrderService.saveCardPayOrder(merchant, cUserId, totalFeeStr, payment,payWay);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error("saveCardPayOrder 1" + e.getMessage()); logger.error("saveCardPayOrder 1" + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage());
@@ -150,11 +172,12 @@ public class WxCardPayController extends BaseController {
WxCardSpend record = new WxCardSpend(); WxCardSpend record = new WxCardSpend();
record.updateTenantInfo(merchant); record.updateTenantInfo(merchant);
record.setCardId(cardId); record.setCardId(cardId);
record.setOwnerId(user.getUserId());
record.setOwnerId(cUserId);
record.setMerchantId(merchantId); record.setMerchantId(merchantId);
record.setOrderId(order.getId()); record.setOrderId(order.getId());
record.setIp(ipStr); record.setIp(ipStr);
record.setDeductionAmount(payment); record.setDeductionAmount(payment);
record.setRemark("操作于["+payWay.getMessage()+"("+payWay.getCode()+")]");


try { try {
return wxCardSpendService.createCardSpend(record, order, couponMerchant); return wxCardSpendService.createCardSpend(record, order, couponMerchant);
@@ -166,7 +189,8 @@ public class WxCardPayController extends BaseController {
return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage());
} }
} }

@ApiOperation("C端扫B端储值卡交易流水列表接口") @ApiOperation("C端扫B端储值卡交易流水列表接口")
@GetMapping("list") @GetMapping("list")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -180,9 +204,13 @@ public class WxCardPayController extends BaseController {
logger.error("暂未成为会员,请授权手机号"); logger.error("暂未成为会员,请授权手机号");
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); 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.updateTenantInfo(getTenantInfo());
wxCardSpend.setOwnerId(user.getUserId());
wxCardSpend.setOwnerId(cUserId);
final PageInfo<WxCardSpendVo> page = wxCardSpendService.listAsPage(wxCardSpend, pageNum, pageSize); final PageInfo<WxCardSpendVo> page = wxCardSpendService.listAsPage(wxCardSpend, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);
} }
@@ -197,9 +225,13 @@ public class WxCardPayController extends BaseController {
logger.error("暂未成为会员,请授权手机号"); logger.error("暂未成为会员,请授权手机号");
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); 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.updateTenantInfo(getTenantInfo());
wxCardSpend.setOwnerId(user.getUserId());
wxCardSpend.setOwnerId(cUserId);
final List<Map<String, Object>> mapList = wxCardSpendService.sumCardSpendForOwner(wxCardSpend); final List<Map<String, Object>> mapList = wxCardSpendService.sumCardSpendForOwner(wxCardSpend);
return new ResultData(mapList); return new ResultData(mapList);
} }


+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java Wyświetl plik

@@ -61,6 +61,9 @@ public class WxCardSpend extends TenantEntity {


@io.swagger.annotations.ApiModelProperty(value="来源(0:C端小程序扫一扫, 1:POS支付)",name="payFrom") @io.swagger.annotations.ApiModelProperty(value="来源(0:C端小程序扫一扫, 1:POS支付)",name="payFrom")
private Integer payFrom; private Integer payFrom;
@io.swagger.annotations.ApiModelProperty(value="说明",name="remark")
private String remark;


@TableField(exist = false) @TableField(exist = false)
@Excel(name = "消费金额(元)", width = 20, orderNum = "7") @Excel(name = "消费金额(元)", width = 20, orderNum = "7")


+ 2
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java Wyświetl plik

@@ -42,7 +42,8 @@ public class WxCouponOrder extends TenantEntity {
private Date updateDate; private Date updateDate;
@io.swagger.annotations.ApiModelProperty(value = "单券实际购买价格", name = "couponPrice") @io.swagger.annotations.ApiModelProperty(value = "单券实际购买价格", name = "couponPrice")
private Integer 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") @io.swagger.annotations.ApiModelProperty(value="过期退款(0:正常,1不退)",name="autoRefund")
private Integer autoRefund; private Integer autoRefund;




+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/WxPayOrderMapper.java Wyświetl plik

@@ -9,7 +9,7 @@ public interface WxPayOrderMapper extends CommonMapper<WxPayOrder, Long> {


List<WxPayOrder> findList(WxPayOrder wxPayOrder); List<WxPayOrder> findList(WxPayOrder wxPayOrder);


List<WxPayOrderVo> findListOfPaidOrderByDate(Map dateMap);
//List<WxPayOrderVo> findListOfPaidOrderByDate(Map dateMap);


List<WxPayOrder> findListForUnPs(WxPayOrder wxPayOrder); List<WxPayOrder> findListForUnPs(WxPayOrder wxPayOrder);




+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java Wyświetl plik

@@ -6,6 +6,7 @@ import com.iformall.common.ResultData;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.*; import com.iformall.domain.vo.*;
import com.iformall.enums.EnumPayWay;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -207,7 +208,7 @@ public interface WxCouponOrderService {


WxPayOrder microPayPreVerify(WxOrder microOrder, WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price); WxPayOrder microPayPreVerify(WxOrder microOrder, WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price);


Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId);
Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay);


/** /**
* 尚安停车 * 尚安停车


+ 15
- 8
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Wyświetl plik

@@ -1,20 +1,27 @@
package com.iformall.service; 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.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.dto.OrderSaveDto; 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.po.base.TenantEntity;
import com.iformall.domain.vo.WxCouponSendVo; import com.iformall.domain.vo.WxCouponSendVo;
import com.iformall.domain.vo.WxOrderCouponPressVo; import com.iformall.domain.vo.WxOrderCouponPressVo;
import com.iformall.domain.vo.WxOrderCouponVo; import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.domain.vo.WxOrderQueryVo; import com.iformall.domain.vo.WxOrderQueryVo;
import com.iformall.enums.EnumOrderStatus; 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 { public interface WxOrderService {


@@ -51,7 +58,7 @@ public interface WxOrderService {
* @param totalFeeStr * @param totalFeeStr
* @return 订单id * @return 订单id
*/ */
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr);
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay);


/** /**
* 付款码支付v2 * 付款码支付v2
@@ -70,7 +77,7 @@ public interface WxOrderService {
* @param payment * @param payment
* @return 订单id * @return 订单id
*/ */
WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment);
WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment,EnumPayWay payWay);


/** /**
* 免费券订单接口 * 免费券订单接口


+ 4
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Wyświetl plik

@@ -543,6 +543,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
merchantSubsidy.setRealPayment(couponOrder.getCouponPrice()); merchantSubsidy.setRealPayment(couponOrder.getCouponPrice());
merchantSubsidy.setSubsidy(couponOrder.getCouponPrice()); merchantSubsidy.setSubsidy(couponOrder.getCouponPrice());
merchantSubsidy.setRealSubsidy(couponOrder.getCouponPrice()); merchantSubsidy.setRealSubsidy(couponOrder.getCouponPrice());
couponOrder.getPayVendor();
11111111111
merchantSubsidy.setType(EnumMerchantSubsidyType.WECHAT.getCode()); merchantSubsidy.setType(EnumMerchantSubsidyType.WECHAT.getCode());
merchantSubsidy.setCreateDate(curDate); merchantSubsidy.setCreateDate(curDate);
merchantSubsidy.setUpdateDate(curDate); merchantSubsidy.setUpdateDate(curDate);
@@ -1387,12 +1389,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @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(); WxCouponOrder updateCouponOrder = new WxCouponOrder();
updateCouponOrder.setId(couponOrderId); updateCouponOrder.setId(couponOrderId);
updateCouponOrder.setBUserId(bUser.getId()); updateCouponOrder.setBUserId(bUser.getId());
updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
updateCouponOrder.setUpdateDate(new Date()); updateCouponOrder.setUpdateDate(new Date());
updateCouponOrder.setPayVendor(payWay.getCode());
// 核销状态更新 // 核销状态更新
int num = wxCouponOrderMapper.updateById(updateCouponOrder); int num = wxCouponOrderMapper.updateById(updateCouponOrder);
if (num == 1) { if (num == 1) {


+ 6
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Wyświetl plik

@@ -89,6 +89,7 @@ import com.iformall.enums.EnumOrderType;
import com.iformall.enums.EnumPayShare; import com.iformall.enums.EnumPayShare;
import com.iformall.enums.EnumPayStatus; import com.iformall.enums.EnumPayStatus;
import com.iformall.enums.EnumPayType; import com.iformall.enums.EnumPayType;
import com.iformall.enums.EnumPayWay;
import com.iformall.enums.EnumProfitSharingOrderType; import com.iformall.enums.EnumProfitSharingOrderType;
import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumScoreType;
import com.iformall.enums.EnumUserType; import com.iformall.enums.EnumUserType;
@@ -821,7 +822,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @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) { if (user == null) {
logger.error("用户不存在"); logger.error("用户不存在");
@@ -853,7 +854,7 @@ public class WxOrderServiceImpl implements WxOrderService {


// body // body
// tenant_id + merchant_id + title + subtitle // tenant_id + merchant_id + title + subtitle
String bodyStr = "刷卡支付, 金额:" + totalFeeStr;
String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]刷卡支付, 金额:" + totalFeeStr;


record.setId(orderNumber); record.setId(orderNumber);
record.updateTenantInfo(user); record.updateTenantInfo(user);
@@ -937,7 +938,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @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(); Date curr = new Date();


final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
@@ -945,7 +946,7 @@ public class WxOrderServiceImpl implements WxOrderService {


// body // body
// tenant_id + merchant_id + title + subtitle // tenant_id + merchant_id + title + subtitle
String bodyStr = "C扫B储值卡支付, 金额:" + totalFeeStr;
String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]C扫B储值卡支付, 金额:" + totalFeeStr;


WxOrder record = new WxOrder(); WxOrder record = new WxOrder();
record.setId(orderNumber); record.setId(orderNumber);
@@ -1054,6 +1055,7 @@ public class WxOrderServiceImpl implements WxOrderService {
couponOrder.setAutoRefund(coupon.getAutoRefund()); couponOrder.setAutoRefund(coupon.getAutoRefund());
couponOrder.setOrderId(order.getOrderNumber()); couponOrder.setOrderId(order.getOrderNumber());
couponOrder.setExpiredTime(valid_date); couponOrder.setExpiredTime(valid_date);
couponOrder.setPayVendor(payOrder.getPayVendor());
if (!isCard) { if (!isCard) {
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode());
} else { } else {


+ 8
- 7
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Wyświetl plik

@@ -50,7 +50,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
WxAppinfoMapper wxAppinfoMapper; WxAppinfoMapper wxAppinfoMapper;


@Autowired @Autowired
WxCUserMapper wxCUserMapper;
WxCUserBasicInfoMapper wxCUserBasicInfoMapper;


@Autowired @Autowired
WxCUserService wxCUserService; WxCUserService wxCUserService;
@@ -1119,8 +1119,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
// B端收银台核销券处理, 收银台支付和券支付可能不是同一个人 // B端收银台核销券处理, 收银台支付和券支付可能不是同一个人
WxPayOrder payOrderQ = new WxPayOrder(); WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setOrderId(order.getId()); 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 { try {
WxPayOrder unPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper<>(payOrderQ)); WxPayOrder unPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper<>(payOrderQ));
if (unPayOrder != null) { if (unPayOrder != null) {
@@ -1128,6 +1128,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
try { try {
unPayOrder.setOrderId(order.getId()); unPayOrder.setOrderId(order.getId());
unPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); unPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
unPayOrder.setPayVendor(payWay.getCode());
wxPayOrderMapper.updateById(unPayOrder); wxPayOrderMapper.updateById(unPayOrder);
} catch (Exception e) { } catch (Exception e) {
logger.error("支付订单数据库更新失败: " + e.getMessage()); logger.error("支付订单数据库更新失败: " + e.getMessage());
@@ -1135,12 +1136,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
} }
if (unPayOrder.getPosPayOrderId() != null) { if (unPayOrder.getPosPayOrderId() != null) {
try { try {
wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId());
wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} }
// 更新后处理 // 更新后处理
wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getId());
wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getId(),payWay);
} }
} }
} catch (Exception e) { } catch (Exception e) {
@@ -1310,7 +1311,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND);
} }
if (order.getType().equals(EnumOrderType.COUPON.getCode())) { if (order.getType().equals(EnumOrderType.COUPON.getCode())) {
WxCUser user = wxCUserMapper.selectById(order.getCUserId());
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(order.getCUserId());
if (user == null) { if (user == null) {
logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo());
throw new MallinkException(ErrorCode.USER_IS_EMPTY); throw new MallinkException(ErrorCode.USER_IS_EMPTY);
@@ -1404,7 +1405,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND);
} }
if (order.getType().equals(EnumOrderType.COUPON.getCode())) { if (order.getType().equals(EnumOrderType.COUPON.getCode())) {
WxCUser user = wxCUserMapper.selectById(order.getCUserId());
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(order.getCUserId());
if (user == null) { if (user == null) {
logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); logger.error("pay handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo());
throw new MallinkException(ErrorCode.USER_IS_EMPTY); throw new MallinkException(ErrorCode.USER_IS_EMPTY);


+ 2
- 0
mallinkService/src/main/java/com/iformall/service/pay/PayServiceFactory.java Wyświetl plik

@@ -74,4 +74,6 @@ public class PayServiceFactory {
return serviceMap; return serviceMap;
} }
} }

+ 9
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/PayShareAdapterService.java Wyświetl plik

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

/**
* 分账接口
* @author alascor
*/
public interface PayShareAdapterService {

}

Ładowanie…
Anuluj
Zapisz