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); } } src/main/java/cc/mrbird/febs/mall/dto/BangCardSignDto.java
New file @@ -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; } 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; src/main/java/cc/mrbird/febs/mall/entity/MallMemberBankSign.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/mapper/MallMemberBankSignMapper.java
New file @@ -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); } 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); } 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(); } } } 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); src/main/java/cc/mrbird/febs/pay/model/AgreementSignDto.java
@@ -12,4 +12,6 @@ // 签约短信验证码 private String smsCode; private Long bankId; } src/main/resources/mapper/modules/MallMemberBankSignMapper.xml
New file @@ -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>