2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-27 a648f3e08210a1ed04bf819cccedc56e5afc24c3
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;
        //未设置支付参数,则使用默认支付参数
        config = getOne(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, pole.getClientId()).eq(WxConfigEntity::getState, 1));
        if (pole.getClientId() == null) {
            config = getById(0);
            config = getById(15);  // todo 暂时写死,后续需要改成配置文件
        }
        config = getOne(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId()));
        if (config == null) {
            throw new BusinessException("用户未配置支付配置,请配置后重试");
        }
@@ -60,11 +62,16 @@
        BeanUtil.copyProperties(configParam, config);
        config.setAppid(configParam.getAppId());
        config.setAppappid(configParam.getAppAppId());
        if(SecurityUtils.getClientId()!=null){
        if (SecurityUtils.getClientId() != null) {
            config.setCreateUserId(SecurityUtils.getUserId());
            if(clientService.findClientId()){
            if (clientService.findClientId()) {
                config.setClientId(clientService.getClientId());
            } else {
                config.setClientId(SecurityUtils.getUserId());
            }
        } else {
            config.setClientId(SecurityUtils.getUserId());
            config.setCreateUserId(SecurityUtils.getUserId());
        }
        return save(config);
    }
@@ -91,42 +98,106 @@
    }
    public List<WxConfigEntity> configList(BaseConditionVO baseConditionVO,String keyword) {
    public List<WxConfigEntity> configList(BaseConditionVO baseConditionVO, String keyword) {
        LambdaQueryWrapper<WxConfigEntity> wrapper = new LambdaQueryWrapper<>();
        System.out.println("----------------------------" + clientService.findClientId());
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        if (SecurityUtils.getClientId() != null) {//客户
            if (clientService.findClientId()) {//二级客户
        if (SecurityUtils.getClientId() != null) {
            //客户
            if (clientService.findClientId()) {
                //二级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                wrapper = Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
            } else if (!clientService.findClientId()) {//一级客户
            } else if (!clientService.findClientId()) {
                //一级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                wrapper = Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId());
            }
        } else {//管理
        } else {
            //管理
            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
            wrapper = Wrappers.lambdaQuery(WxConfigEntity.class);
        }
        if(!keyword.isEmpty()){
           wrapper= wrapper.like(WxConfigEntity::getConfigId,keyword).or(
                    appid->{
                        appid.like(WxConfigEntity::getAppid,keyword);
        if (keyword != null && !keyword.isEmpty()) {
            wrapper = wrapper.like(WxConfigEntity::getConfigId, keyword).or(
                    appid -> {
                        appid.like(WxConfigEntity::getAppid, keyword);
                    }
            ).or(
                    appappid->{
                        appappid.like(WxConfigEntity::getAppappid,keyword);
                    appappid -> {
                        appappid.like(WxConfigEntity::getAppappid, keyword);
                    }
            ).or(
                    mchId->{
                        mchId.like(WxConfigEntity::getMchId,keyword);
                    mchId -> {
                        mchId.like(WxConfigEntity::getMchId, keyword);
                    }
            ).or(
                    privateKey->{
                        privateKey.like(WxConfigEntity::getPrivateKey,keyword);
                    privateKey -> {
                        privateKey.like(WxConfigEntity::getPrivateKey, keyword);
                    }
            );
        }
        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支付配置
         */
        List<WxConfigEntity> configList;
        if (SecurityUtils.getClientId() != null) {
            //客户
            configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, SecurityUtils.getUserId())
                    .or(
                            user -> {
                                user.eq(WxConfigEntity::getCreateUserId, SecurityUtils.getUserId());
                            }
                    ));
        } else {
            //管理
            configList = list(Wrappers.lambdaQuery(WxConfigEntity.class).eq(WxConfigEntity::getClientId, byId.getCreateUserId())
                    .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);
    }
}