|  |  |  | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|