2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-27 048c03f5df43bf0ebc5b2a122e95cfc52cfa23b5
ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wxpay/UsrWxPayConfigService.java
@@ -17,6 +17,7 @@
import com.sandu.ximon.dao.mapper.UsrWxPayConfigMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -39,10 +40,11 @@
            throw new BusinessException("灯杆id错误或灯杆不存在");
        }
        WxConfigEntity config;
        //未设置支付参数,则使用默认支付参数
        if (pole.getClientId() == null) {
            config = getById(0);
        }
        config = getOne(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId()));
        config = getOne(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, pole.getClientId()).eq(WxConfigEntity::getState, 1));
        if (config == null) {
            throw new BusinessException("用户未配置支付配置,请配置后重试");
        }
@@ -64,6 +66,8 @@
            config.setCreateUserId(SecurityUtils.getUserId());
            if(clientService.findClientId()){
                config.setClientId(clientService.getClientId());
            } else {
                config.setClientId(SecurityUtils.getUserId());
            }
        }
        return save(config);
@@ -126,7 +130,57 @@
                    }
            );
        }
        return list(wrapper);
        List<WxConfigEntity> list = list(wrapper);
        list.forEach(
                wxConfigEntity -> {
                    //设置支付参数中的appid和appappid  mchId和privateKey中的部分替换为*
                    wxConfigEntity.setAppid(wxConfigEntity.getAppid().replaceAll("(?<=.{4}).*(?=.{4})", "*"));
                    wxConfigEntity.setAppappid(wxConfigEntity.getAppappid().replaceAll("(?<=.{4}).*(?=.{4})", "*"));
                    wxConfigEntity.setMchId(wxConfigEntity.getMchId().replaceAll("(?<=.{4}).*(?=.{4})", "*"));
                    wxConfigEntity.setPrivateKey(wxConfigEntity.getPrivateKey().replaceAll("(?<=.{4}).*(?=.{4})", "*"));
                }
        );
        return list;
    }
    /**
     * 支付参数配置的停用/启用
     */
    @Transactional(rollbackFor = Exception.class)
    public boolean updateState(Long id, Integer state) {
        WxConfigEntity byId = getById(id);
        if (byId == null) {
            throw new BusinessException("配置id错误或配置不存在");
        }
        /**
         * 获取当前用户所有的wx支付配置
         */
        if (SecurityUtils.getClientId() != null) {
            //客户
            List<WxConfigEntity> configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId())
                    .or(
                            user -> {
                                user.eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
                            }
                    ));
            if (configList.size() == 1 && state == 0) {
                throw new BusinessException("当前用户只有一个支付配置,不能停用");
            }
            //设置当前用户所有的支付配置为停用
            configList.forEach(
                    wxConfigEntity -> {
                        wxConfigEntity.setState(0);
                    }
            );
            boolean b = updateBatchById(configList);
            if (!b) {
                throw new BusinessException("更新失败");
            }
        }
        WxConfigEntity config = new WxConfigEntity();
        config.setConfigId(id);
        config.setState(state);
        return updateById(config);
    }
}