From 9a7df3839465ec038b8b017c2dcc357e7cb60de0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 29 Aug 2022 10:19:50 +0800 Subject: [PATCH] 20220822 --- src/main/java/cc/mrbird/febs/mall/dto/BangCardSignDto.java | 13 ++++ src/main/java/cc/mrbird/febs/mall/mapper/MallMemberBankSignMapper.java | 11 +++ src/main/java/cc/mrbird/febs/mall/dto/PayOrderDto.java | 4 src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java | 6 ++ src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java | 3 + src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 59 ++++++++++++------- src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java | 2 src/main/java/cc/mrbird/febs/mall/entity/MallMemberBankSign.java | 15 +++++ src/main/resources/mapper/modules/MallMemberBankSignMapper.xml | 15 +++++ src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java | 46 ++++++++++++++- 10 files changed, 146 insertions(+), 28 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java index 0260de6..4fce1a9 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java @@ -110,4 +110,10 @@ return new FebsResponse().success().message("评价成功"); } + @ApiOperation(value = "查看银行卡是否签约", notes = "查看银行卡是否签约") + @PostMapping(value = "/bangCardSign") + public FebsResponse bangCardSign(@RequestBody BangCardSignDto bangCardSignDto) { + return mallOrderInfoService.bangCardSign(bangCardSignDto); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/BangCardSignDto.java b/src/main/java/cc/mrbird/febs/mall/dto/BangCardSignDto.java new file mode 100644 index 0000000..99bfd93 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/BangCardSignDto.java @@ -0,0 +1,13 @@ +package cc.mrbird.febs.mall.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "BangCardSignDto", description = "银行卡是否签约") +public class BangCardSignDto { + + @ApiModelProperty(value = "银行卡号") + private String bankCard; +} diff --git a/src/main/java/cc/mrbird/febs/mall/dto/PayOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/PayOrderDto.java index e2b1290..fd0ab92 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/PayOrderDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/PayOrderDto.java @@ -32,8 +32,8 @@ @ApiModelProperty(value = "支付凭证") private String payImage; - @ApiModelProperty(value = "签约短信验证码") - private String smsCode; +// @ApiModelProperty(value = "签约短信验证码") +// private String smsCode; @ApiModelProperty(value = "银行卡号") private String bankNo; diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberBankSign.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberBankSign.java new file mode 100644 index 0000000..e824e93 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberBankSign.java @@ -0,0 +1,15 @@ +package cc.mrbird.febs.mall.entity; + +import cc.mrbird.febs.common.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("mall_member_bank_sign") +public class MallMemberBankSign extends BaseEntity { + + // 银行卡号 + private String bankCardNo; + + private Long memberId; +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberBankSignMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberBankSignMapper.java new file mode 100644 index 0000000..228af0b --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberBankSignMapper.java @@ -0,0 +1,11 @@ +package cc.mrbird.febs.mall.mapper; + +import cc.mrbird.febs.mall.entity.MallMemberBankSign; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +public interface MallMemberBankSignMapper extends BaseMapper<MallMemberBankSign> { + + MallMemberBankSign selectOneByMemberIdAndBankCardNo(@Param("memberId")Long memberId, @Param("bankCard")String bankCard); + +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java index 8b63908..91bd897 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java @@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.service; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.MallOrderInfo; import cc.mrbird.febs.mall.vo.OrderDetailVo; @@ -32,4 +33,6 @@ void autoCancelOrder(Long id); void goodsComment(ApiAddCommentDtos addCommentDtos); + + FebsResponse bangCardSign(BangCardSignDto bangCardSignDto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index 0739eab..cb29bb9 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -73,6 +73,8 @@ private final IMallAchieveService mallAchieveService; private final UnipayService unipayService; + private final MallMemberBankSignMapper mallMemberBankSignMapper; + @Override @Transactional(rollbackFor = Exception.class) public Long createOrder(AddOrderDto addOrderDto) { @@ -334,27 +336,27 @@ mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); break; case "5": - AgreementSignDto agreementSignDto = new AgreementSignDto(); - agreementSignDto.setOrderNo(orderInfo.getOrderNo()); - agreementSignDto.setSmsCode(payOrderDto.getSmsCode()); - String agreementSignStr = unipayService.agreementSign(agreementSignDto); - if("fail".equals(agreementSignStr)){ - throw new FebsException("支付失败"); - }else{ - JSONObject jsonObject = JSONUtil.parseObj(agreementSignStr); - payResultStr = (String) jsonObject.get("biz_code"); - String signData = (String) jsonObject.get("data"); - String signBizMsg = (String) jsonObject.get("biz_msg"); - - JSONObject signDatajsonObject = JSONUtil.parseObj(signData); - String err_msg = (String) signDatajsonObject.get("err_msg"); - if(!"JS000000".equals(payResultStr)){ - throw new FebsException(signBizMsg); - } - if(ObjectUtil.isNotNull(signDatajsonObject.get("err_code"))){ - throw new FebsException(err_msg); - } - } +// AgreementSignDto agreementSignDto = new AgreementSignDto(); +// agreementSignDto.setOrderNo(orderInfo.getOrderNo()); +// agreementSignDto.setSmsCode(payOrderDto.getSmsCode()); +// String agreementSignStr = unipayService.agreementSign(agreementSignDto); +// if("fail".equals(agreementSignStr)){ +// throw new FebsException("支付失败"); +// }else{ +// JSONObject jsonObject = JSONUtil.parseObj(agreementSignStr); +// payResultStr = (String) jsonObject.get("biz_code"); +// String signData = (String) jsonObject.get("data"); +// String signBizMsg = (String) jsonObject.get("biz_msg"); +// +// JSONObject signDatajsonObject = JSONUtil.parseObj(signData); +// String err_msg = (String) signDatajsonObject.get("err_msg"); +// if(!"JS000000".equals(payResultStr)){ +// throw new FebsException(signBizMsg); +// } +// if(ObjectUtil.isNotNull(signDatajsonObject.get("err_code"))){ +// throw new FebsException(err_msg); +// } +// } AgreementPayDto agreementPayDto = new AgreementPayDto(); agreementPayDto.setOrderNo(orderInfo.getOrderNo()); @@ -373,7 +375,7 @@ agreementPayDto.setBankNo(payOrderDto.getBankNo()); String agreementPayStr = unipayService.agreementPay(agreementPayDto); - if("fail".equals(agreementSignStr)){ + if("fail".equals(agreementPayStr)){ throw new FebsException("支付失败"); }else{ JSONObject jsonObject = JSONUtil.parseObj(agreementPayStr); @@ -645,4 +647,17 @@ } } + @Override + public FebsResponse bangCardSign(BangCardSignDto bangCardSignDto) { + MallMember member = LoginUserUtil.getLoginUser(); + Long memberId = member.getId(); + String bankCard = bangCardSignDto.getBankCard(); + MallMemberBankSign mallMemberBankSign = mallMemberBankSignMapper.selectOneByMemberIdAndBankCardNo(memberId,bankCard); + if(ObjectUtil.isNotEmpty(mallMemberBankSign)){ + return new FebsResponse().success().data(mallMemberBankSign); + }else{ + return new FebsResponse().success(); + } + } + } diff --git a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java index 4e1bcda..771ac7f 100644 --- a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java +++ b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java @@ -5,18 +5,18 @@ import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; +import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.dto.RegisterAppealDto; import cc.mrbird.febs.mall.entity.*; -import cc.mrbird.febs.mall.mapper.MallGoodsMapper; -import cc.mrbird.febs.mall.mapper.MallGoodsSkuMapper; -import cc.mrbird.febs.mall.mapper.MallMemberMapper; -import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; +import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallAchieveService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.pay.model.AgreeMentPayCallBackDto; import cc.mrbird.febs.pay.model.AgreeMentPaySmsDto; +import cc.mrbird.febs.pay.model.AgreementSignDto; import cc.mrbird.febs.pay.model.UniPayCallBackDto; import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.pay.util.JsonUtil; @@ -71,6 +71,10 @@ private MallMemberMapper memberMapper; @Autowired private UnipayService unipayService; + @Autowired + private MallMemberBankMapper mallMemberBankMapper; + @Autowired + private MallMemberBankSignMapper mallMemberBankSignMapper; @GetMapping(value = "/unipayCallBack") public String unipayCallBack(HttpServletRequest request, UniPayCallBackDto uniPayCallBackDto){ @@ -165,6 +169,40 @@ } } + @ApiOperation(value = "协议支付签约短信签约", notes = "协议支付签约短信签约") + @PostMapping(value = "agreeMentPaySmsSign") + public FebsResponse agreeMentPaySmsSign(@RequestBody AgreementSignDto agreementSignDto) { + String agreeMentPaySms = unipayService.agreementSign(agreementSignDto); + if("fail".equals(agreeMentPaySms)){ + return new FebsResponse().fail().message("签约失败,请重新下单"); + }else{ + JSONObject jsonObject = JSONUtil.parseObj(agreeMentPaySms); + String resultStr = (String) jsonObject.get("biz_code"); + String signData = (String) jsonObject.get("data"); + String signBizMsg = (String) jsonObject.get("biz_msg"); + + JSONObject signDatajsonObject = JSONUtil.parseObj(signData); + String err_msg = (String) signDatajsonObject.get("err_msg"); + if(ObjectUtil.isNotNull(signDatajsonObject.get("err_code"))){ + return new FebsResponse().fail().message(err_msg+"签约失败,请重新下单"); + } + if(!"JS000000".equals(resultStr)){ + return new FebsResponse().fail().message(signBizMsg+"签约失败,请重新下单"); + }else{ + + MallMember member = LoginUserUtil.getLoginUser(); + Long bankId = agreementSignDto.getBankId(); + MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(bankId); + String bankNo = mallMemberBank.getBankNo(); + MallMemberBankSign mallMemberBankSign = new MallMemberBankSign(); + mallMemberBankSign.setMemberId(member.getId()); + mallMemberBankSign.setBankCardNo(bankNo); + mallMemberBankSignMapper.insert(mallMemberBankSign); + return new FebsResponse().success().message(signBizMsg); + } + } + } + // public static void main(String[] args) { // String data = "{\\\"bank_trx_no\\\":\\\"0825144603229910\\\",\\\"jp_order_no\\\":\\\"100120220825446322447537651712\\\",\\\"mch_order_no\\\":\\\"2022082514435329133\\\",\\\"order_amount\\\":0.10,\\\"order_desc\\\":\\\"测试\\\",\\\"order_status\\\":\\\"P1000\\\",\\\"pay_success_time\\\":\\\"2022-08-25 14:46:04\\\"}"; // JSONObject jsonObject = JSONUtil.parseObj(data); diff --git a/src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java b/src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java index cbcb103..c2ff588 100644 --- a/src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java +++ b/src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java @@ -12,4 +12,6 @@ // 签约短信验证码 private String smsCode; + private Long bankId; + } diff --git a/src/main/resources/mapper/modules/MallMemberBankSignMapper.xml b/src/main/resources/mapper/modules/MallMemberBankSignMapper.xml new file mode 100644 index 0000000..b6a405c --- /dev/null +++ b/src/main/resources/mapper/modules/MallMemberBankSignMapper.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberBankSignMapper"> + + <select id="selectOneByMemberIdAndBankCardNo" resultType="cc.mrbird.febs.mall.entity.MallMemberBankSign"> + select + a.* + from mall_member_bank_sign a + where + a.memberId = #{member_id} + and a.bank_card_no = #{bankCard} + limit 1 + </select> + +</mapper> \ No newline at end of file -- Gitblit v1.9.1