KKSU
2023-12-22 44d5373021f883b389d002c4c63a2b78bfbdfaf6
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
@@ -13,6 +13,7 @@
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallAppService;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.pay.service.IXcxCodePayService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -47,6 +48,7 @@
    private final MallOrderInfoMapper mallOrderInfoMapper;
    private final MallOrderItemMapper mallOrderItemMapper;
    private final MallMemberWalletMapper mallMemberWalletMapper;
    private final IXcxCodePayService xcxCodePayService;
    public static void main(String[] args) {
        System.out.println(SecureUtil.md5("a123456"));
@@ -102,8 +104,10 @@
    public FebsResponse createAppOrder(ApiAddOrderDto addOrderDto) {
        if(ObjectUtil.isNotEmpty(addOrderDto.getOrderId())){
            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(addOrderDto.getOrderId());
            mallOrderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
            mallOrderInfoMapper.updateById(mallOrderInfo);
            if(ObjectUtil.isNotEmpty(mallOrderInfo)){
                mallOrderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
                mallOrderInfoMapper.updateById(mallOrderInfo);
            }
        }
        MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(addOrderDto.getMemberId());
        if (ObjectUtil.isEmpty(mallMemberWallet)) {
@@ -241,8 +245,10 @@
    public FebsResponse normalInsure(ApiNormalInsureDto addOrderDto) {
        if(ObjectUtil.isNotEmpty(addOrderDto.getOrderId())){
            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(addOrderDto.getOrderId());
            mallOrderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
            mallOrderInfoMapper.updateById(mallOrderInfo);
            if(ObjectUtil.isNotEmpty(mallOrderInfo)){
                mallOrderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
                mallOrderInfoMapper.updateById(mallOrderInfo);
            }
        }
        String orderNo = MallUtils.getOrderNum();
        MallOrderInfo orderInfo = new MallOrderInfo();
@@ -315,6 +321,34 @@
        return new FebsResponse().success().message("订单已取消");
    }
    @Override
    public FebsResponse wxCodePay(ApiWxCodePayDto wxCodePayDto) {
        Long orderId = wxCodePayDto.getOrderId();
        String wxPayCode = wxCodePayDto.getWxPayCode();
        /**
         * auth_code 扫码支付付款码 微信付款码规则:18位纯数字,前缀以10、11、12、13、14、15开头
         */
        String regex = "^(10|11|12|13|14|15)\\d{16}$";
        boolean flag = wxPayCode.matches(regex);
        if(!flag){
            throw new FebsException("请打开微信付款码!");
        }
        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
        mallOrderInfo.setTakeCode(wxPayCode);
        List<ApiGetOrderOrderItemVo> appOrderItemByOrderId = mallOrderItemMapper.getAppOrderItemByOrderId(orderId);
        if(CollUtil.isEmpty(appOrderItemByOrderId)){
            mallOrderInfo.setName("商品");
        }else{
            mallOrderInfo.setName(appOrderItemByOrderId.get(0).getGoodsName());
        }
        mallOrderInfo.setPayResult("2");
        mallOrderInfoMapper.updateById(mallOrderInfo);
        // 发起付款码支付请求
        String payResult = xcxCodePayService.pay(mallOrderInfo);
        return new FebsResponse().success().message(payResult);
    }
    public String generateAsaToken(String token) {
        RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
        return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);