|  |  |  | 
|---|
|  |  |  | package com.doumee.service.system.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
|---|
|  |  |  | import com.doumee.core.constants.ResponseStatus; | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.dao.business.web.response.MiniProgrammeDTO; | 
|---|
|  |  |  | import com.doumee.dao.system.SystemDictMapper; | 
|---|
|  |  |  | import com.doumee.dao.system.model.SystemDict; | 
|---|
|  |  |  | import com.fasterxml.jackson.core.JsonProcessingException; | 
|---|
|  |  |  | import com.github.pagehelper.PageHelper; | 
|---|
|  |  |  | import com.github.pagehelper.PageInfo; | 
|---|
|  |  |  | import com.doumee.core.model.PageData; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.doumee.service.system.SystemDictDataService; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.Wrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.UUID; | 
|---|
|  |  |  | import java.io.IOException; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.doumee.core.constants.Constants; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataMapper systemDictDataMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictMapper systemDictMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public String create(SystemDictData systemDictData) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public SystemDictData findOne(SystemDictData systemDictData) { | 
|---|
|  |  |  | Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData); | 
|---|
|  |  |  | Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData).last(" limit 1"); | 
|---|
|  |  |  | return systemDictDataMapper.selectOne(wrapper ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData).orderByAsc("sort"); | 
|---|
|  |  |  | return systemDictDataMapper.selectList(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageData<SystemDictDataListVO> findPage(PageWrap<QuerySystemDictDataDTO> pageWrap) { | 
|---|
|  |  |  | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return systemDictDataMapper.selectCount(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public MiniProgrammeDTO getMiniProgrammeDTO() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | String jasonStr = MiniProgrammeDTO.toUnderlineJSONString(new MiniProgrammeDTO()); | 
|---|
|  |  |  | JSONObject parse = (JSONObject) JSONObject.parse(jasonStr); | 
|---|
|  |  |  | List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList()); | 
|---|
|  |  |  | QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | wrapper.lambda() | 
|---|
|  |  |  | .in(SystemDictData::getLabel,collect); | 
|---|
|  |  |  | List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper); | 
|---|
|  |  |  | if (CollectionUtils.isEmpty(systemDictData)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | systemDictData.forEach(s->{ | 
|---|
|  |  |  | parse.put(s.getLabel().toLowerCase(),s.getCode()); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | String s = parse.toJSONString(); | 
|---|
|  |  |  | MiniProgrammeDTO miniProgrammeDTO = MiniProgrammeDTO.toSnakeObject(s, MiniProgrammeDTO.class); | 
|---|
|  |  |  | return miniProgrammeDTO; | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"字典值解析有误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateMiniProgrammeDTO(MiniProgrammeDTO miniProgrammeDTO) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | String jasonStr = MiniProgrammeDTO.toUnderlineJSONString(miniProgrammeDTO); | 
|---|
|  |  |  | JSONObject parse = (JSONObject) JSONObject.parse(jasonStr); | 
|---|
|  |  |  | parse.entrySet().forEach(s->{ | 
|---|
|  |  |  | //                if (StringUtils.isNotBlank((String)s.getValue())){ | 
|---|
|  |  |  | UpdateWrapper<SystemDictData> wrapper = new UpdateWrapper<>(); | 
|---|
|  |  |  | wrapper.lambda() | 
|---|
|  |  |  | .eq(SystemDictData::getLabel,s.getKey().toUpperCase()) | 
|---|
|  |  |  | .set(SystemDictData::getCode,s.getValue()); | 
|---|
|  |  |  | systemDictDataMapper.update(null,wrapper); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } catch (JsonProcessingException e) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"字典值解析有误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|