liukangdong
2024-09-29 b2d360d9113b6955287108ca9e90d76a1f3c1419
server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -1,24 +1,26 @@
package com.doumee.biz.system.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.vo.UnitCodeVo;
import com.doumee.dao.system.model.SystemDict;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.system.SystemDictDataService;
import com.doumee.service.system.SystemDictService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.*;
@Service
public class SystemDictDataBizImpl implements SystemDictDataBiz {
@@ -33,11 +35,11 @@
    public Integer create(SystemDictData systemDictData) {
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setCode(systemDictData.getCode());
        queryDto.setLabel(systemDictData.getLabel());
        queryDto.setDeleted(Boolean.FALSE);
        SystemDictData dictData = systemDictDataService.findOne(queryDto);
        if (dictData != null) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值已存在");
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据标签已存在");
        }
        return systemDictDataService.create(systemDictData);
    }
@@ -46,19 +48,44 @@
    public void updateById(SystemDictData systemDictData) {
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setCode(systemDictData.getLabel());
        queryDto.setLabel(systemDictData.getLabel());
        queryDto.setDeleted(Boolean.FALSE);
        SystemDictData dictData = systemDictDataService.findOne(queryDto);
        if (dictData != null && !dictData.getId().equals(systemDictData.getId())) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值已存在");
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据标签已存在");
        }
        systemDictDataService.updateById(systemDictData);
    }
    @Override
    public  String getUnitName(String unitCode, List<UnitCodeVo> unitCodeVoList) {
        if(unitCodeVoList!=null){
            for(UnitCodeVo  c :unitCodeVoList){
                if(StringUtils.equals(c.getCode(),unitCode)){
                    return  c.getName();
                }
            }
        }
        return null;
    }
    @Override
    public void updateByIdNew(SystemDictData systemDictData) {
        systemDictDataService.updateById(systemDictData);
    }
    @Override
    public   List<UnitCodeVo> getUnitList(){
        List<UnitCodeVo> list = new ArrayList<>();
        try {
            String  temp =  queryByCode(Constants.ZBOM,Constants.UNIT_CODE).getCode();
            JSONArray array  = JSONObject.parseArray(temp);
            if(array!=null ){
                for (int i = 0; i < array.size(); i++) {
                    list.add(JSONObject.toJavaObject(array.getJSONObject(i),UnitCodeVo.class));
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return list;
    }
    @Override
@@ -157,6 +184,27 @@
        String targetPath = list.stream().filter(s -> s.getLabel().equals(targetCode)).findFirst().map(s -> s.getCode()).orElse("");
        return resourcePath+targetPath;
    }
    @Override
    public  void updWxMiniToken() {
        updWxMiniTokenDo(Constants.WX_APPID_CUSTOMER,Constants.WX_SECRET_CUSTOMER,Constants.WX_TOKEN_CUSTOMER);
        updWxMiniTokenDo(Constants.WX_APPID_PERSONNEL,Constants.WX_SECRET_PERSONNEL,Constants.WX_TOKEN_PERSONNEL);
    }
    public  void updWxMiniTokenDo(String  appIdKey,String secretKey,String tokenKey) {
        DefaultSecurityManager securityManager = new DefaultSecurityManager();
        SecurityUtils.setSecurityManager(securityManager);
        String appId = queryByCode(Constants.WX_MINI_CONFIG,appIdKey).getCode();
        String appSecret = queryByCode(Constants.WX_MINI_CONFIG,secretKey).getCode();
        SystemDictData systemDictData = this.queryByCode(Constants.WX_MINI_CONFIG,tokenKey);
        //生成微信token
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret;
        String response = HttpsUtil.sendGet(url);
        JSONObject json = JSONObject.parseObject(response);
        systemDictData.setCode(json.getString("access_token"));
        systemDictData.setUpdateTime(new Date());
        systemDictDataService.updateById(systemDictData);
    }
}