package com.doumee.service.system.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.doumee.core.constants.Constants; import com.doumee.dao.system.SystemDictDataMapper; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.vo.SystemQrcodeListVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.system.SystemDictMapper; import com.doumee.dao.system.dto.QuerySystemDictDTO; import com.doumee.dao.system.model.SystemDict; import com.doumee.dao.system.vo.SystemDictListVO; import com.doumee.service.system.SystemDictService; 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.ArrayList; import java.util.List; /** * 字典Service实现 * @author dm * @since 2025/03/31 16:44 */ @Service public class SystemDictServiceImpl implements SystemDictService { @Autowired private SystemDictMapper systemDictMapper; @Autowired private SystemDictDataMapper systemDictDataMapper; @Override public Integer create(SystemDict systemDict) { systemDictMapper.insert(systemDict); return systemDict.getId(); } @Override public void deleteById(Integer id) { SystemDict systemDict = new SystemDict(); systemDict.setId(id); systemDict.setDeleted(Boolean.TRUE); this.updateById(systemDict); } @Override @Transactional public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) return; for (Integer id : ids) { this.deleteById(id); } } @Override public void updateById(SystemDict systemDict) { systemDictMapper.updateById(systemDict); } @Override @Transactional public void updateByIdInBatch(List systemDicts) { if (CollectionUtils.isEmpty(systemDicts)) return; for (SystemDict systemDict: systemDicts) { this.updateById(systemDict); } } @Override public SystemDict findById(Integer id) { return systemDictMapper.selectById(id); } @Override public SystemDict findOne(SystemDict systemDict) { Wrapper wrapper = new QueryWrapper<>(systemDict); return systemDictMapper.selectOne(wrapper); } @Override public List findList(SystemDict systemDict) { Wrapper wrapper = new QueryWrapper<>(systemDict); return systemDictMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); return PageData.from(new PageInfo<>(systemDictMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause()))); } @Override public List qrcodeList(QuerySystemDictDTO pageWrap) { List list = new ArrayList<>(); SystemDict dict =systemDictMapper.selectOne(new LambdaQueryWrapper(). eq(SystemDict::getCode,Constants.QRCODE_URLS) .last("limit 1")) ; if(dict!=null){ List dataList = systemDictDataMapper.selectList(new LambdaQueryWrapper(). eq(SystemDictData::getDictId,dict.getId())) ; if(dataList!=null && dataList.size()>0){ for(SystemDictData data :dataList){ SystemQrcodeListVO t = new SystemQrcodeListVO(); t.setId(data.getId()+""); t.setName(data.getRemark()); t.setUrl(data.getCode()); if(StringUtils.equals(data.getLabel(),Constants.SHE_QRCODES_URL) ||StringUtils.equals(data.getLabel(),Constants.DCA_QRCODES_URL) ||StringUtils.equals(data.getLabel(),Constants.DBH_QRCODES_URL)){ list.add(t); } } } } return list; } @Override public long count(SystemDict systemDict) { Wrapper wrapper = new QueryWrapper<>(systemDict); return systemDictMapper.selectCount(wrapper); } }