| @@ -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 '备注'; | |||||
| @@ -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) { | ||||
| @@ -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); | ||||
| } | } | ||||
| @@ -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") | ||||
| @@ -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; | ||||
| @@ -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); | ||||
| @@ -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); | |||||
| /** | /** | ||||
| * 尚安停车 | * 尚安停车 | ||||
| @@ -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); | |||||
| /** | /** | ||||
| * 免费券订单接口 | * 免费券订单接口 | ||||
| @@ -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) { | ||||
| @@ -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 { | ||||
| @@ -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); | ||||
| @@ -74,4 +74,6 @@ public class PayServiceFactory { | |||||
| return serviceMap; | return serviceMap; | ||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,9 @@ | |||||
| package com.iformall.service.pay.service; | |||||
| /** | |||||
| * 分账接口 | |||||
| * @author alascor | |||||
| */ | |||||
| public interface PayShareAdapterService { | |||||
| } | |||||