feat():字典、部门、用户等业务使用MyBatis-Plus重构

boot3.0
dongzeliang 2025-02-13 18:13:32 +08:00
parent 52ce95f63b
commit 133ad7830f
16 changed files with 243 additions and 556 deletions

View File

@ -5,11 +5,14 @@ import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.DataPageResp; import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.log.annotation.Log; import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType; import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDictData; import com.muyu.common.system.domain.SysDictData;
import com.muyu.system.domain.model.SysDictDataPageQueryModel;
import com.muyu.system.domain.rep.SysDictDataListReq;
import com.muyu.system.service.SysDictDataService; import com.muyu.system.service.SysDictDataService;
import com.muyu.system.service.SysDictTypeService; import com.muyu.system.service.SysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -36,18 +39,21 @@ public class SysDictDataController extends BaseController {
@RequiresPermissions("system:dict:list") @RequiresPermissions("system:dict:list")
@PostMapping("/list") @PostMapping("/list")
public Result<DataPageResp<SysDictData>> list (@RequestBody SysDictData dictData) { public Result<DataPageResp<SysDictData>> list (@RequestBody SysDictDataListReq sysDictDataListReq) {
List<SysDictData> list = dictDataService.selectDictDataList(dictData); PageQueryModel<SysDictData> sysDictDataPageQueryModel = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq));
return Result.success(new DataPageResp<>(0,list)); return Result.success(
DataPageResp.of(sysDictDataPageQueryModel)
);
} }
@Log(title = "字典数据", businessType = BusinessType.EXPORT) @Log(title = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:dict:export") @RequiresPermissions("system:dict:export")
@PostMapping("/export") @PostMapping("/export")
public void export (HttpServletResponse response, SysDictData dictData) { public void export (HttpServletResponse response, SysDictDataListReq sysDictDataListReq) {
List<SysDictData> list = dictDataService.selectDictDataList(dictData); // TODO 需要重写导出查询
PageQueryModel<SysDictData> list = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq));
ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class); ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
util.exportExcel(response, list, "字典数据"); util.exportExcel(response, list.getDataList(), "字典数据");
} }
/** /**
@ -56,7 +62,7 @@ public class SysDictDataController extends BaseController {
@RequiresPermissions("system:dict:query") @RequiresPermissions("system:dict:query")
@GetMapping(value = "/{dictCode}") @GetMapping(value = "/{dictCode}")
public Result getInfo (@PathVariable("dictCode") Long dictCode) { public Result getInfo (@PathVariable("dictCode") Long dictCode) {
return success(dictDataService.selectDictDataById(dictCode)); return success(dictDataService.getOneById(dictCode));
} }
/** /**
@ -79,7 +85,8 @@ public class SysDictDataController extends BaseController {
@PostMapping @PostMapping
public Result add (@Validated @RequestBody SysDictData dict) { public Result add (@Validated @RequestBody SysDictData dict) {
dict.setCreateBy(SecurityUtils.getUsername()); dict.setCreateBy(SecurityUtils.getUsername());
return toAjax(dictDataService.insertDictData(dict)); dictDataService.insertDictData(dict);
return Result.success();
} }
/** /**
@ -90,7 +97,8 @@ public class SysDictDataController extends BaseController {
@PutMapping @PutMapping
public Result edit (@Validated @RequestBody SysDictData dict) { public Result edit (@Validated @RequestBody SysDictData dict) {
dict.setUpdateBy(SecurityUtils.getUsername()); dict.setUpdateBy(SecurityUtils.getUsername());
return toAjax(dictDataService.updateDictData(dict)); dictDataService.updateDictData(dict);
return Result.success();
} }
/** /**

View File

@ -64,7 +64,8 @@ public class SysDictTypeController extends BaseController {
return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
} }
dict.setCreateBy(SecurityUtils.getUsername()); dict.setCreateBy(SecurityUtils.getUsername());
return toAjax(dictTypeService.insertDictType(dict)); dictTypeService.insertDictType(dict);
return Result.success();
} }
/** /**
@ -78,7 +79,8 @@ public class SysDictTypeController extends BaseController {
return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
} }
dict.setUpdateBy(SecurityUtils.getUsername()); dict.setUpdateBy(SecurityUtils.getUsername());
return toAjax(dictTypeService.updateDictType(dict)); dictTypeService.updateDictType(dict);
return Result.success();
} }
/** /**

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.system.domain.SysConfig; import com.muyu.system.domain.SysConfig;
/** /**
*
* @author DongZl * @author DongZl
* @description: mybatis * @description: mybatis
* @Date 2023-11-13 10:05 * @Date 2023-11-13 10:05

View File

@ -13,14 +13,6 @@ import java.util.List;
* @author muyu * @author muyu
*/ */
public interface SysDeptMapper extends BaseMapper<SysDept> { public interface SysDeptMapper extends BaseMapper<SysDept> {
/**
*
*
* @param dept
*
* @return
*/
public List<SysDept> selectDeptList (SysDept dept);
/** /**
* ID * ID
@ -42,41 +34,6 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
*/ */
public int selectNormalChildrenDeptById (Long deptId); public int selectNormalChildrenDeptById (Long deptId);
/**
*
*
* @param deptId ID
*
* @return
*/
public int hasChildByDeptId (Long deptId);
/**
*
*
* @param deptId ID
*
* @return
*/
public int checkDeptExistUser (Long deptId);
/**
*
*
* @param deptName
* @param parentId ID
*
* @return
*/
public SysDept checkDeptNameUnique (@Param("deptName") String deptName, @Param("parentId") Long parentId);
/**
*
*
* @param deptIds ID
*/
public void updateDeptStatusNormal (Long[] deptIds);
/** /**
* *
* *
@ -86,12 +43,4 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
*/ */
public int updateDeptChildren (@Param("depts") List<SysDept> depts); public int updateDeptChildren (@Param("depts") List<SysDept> depts);
/**
*
*
* @param deptId ID
*
* @return
*/
public int deleteDeptById (Long deptId);
} }

View File

@ -12,95 +12,5 @@ import java.util.List;
* @author muyu * @author muyu
*/ */
public interface SysDictDataMapper extends BaseMapper<SysDictData> { public interface SysDictDataMapper extends BaseMapper<SysDictData> {
/**
*
*
* @param dictData
*
* @return
*/
public List<SysDictData> selectDictDataList (SysDictData dictData);
/**
*
*
* @param dictType
*
* @return
*/
public List<SysDictData> selectDictDataByType (String dictType);
/**
*
*
* @param dictType
* @param dictValue
*
* @return
*/
public String selectDictLabel (@Param("dictType") String dictType, @Param("dictValue") String dictValue);
/**
* ID
*
* @param dictCode ID
*
* @return
*/
public SysDictData selectDictDataById (Long dictCode);
/**
*
*
* @param dictType
*
* @return
*/
public int countDictDataByType (String dictType);
/**
* ID
*
* @param dictCode ID
*
* @return
*/
public int deleteDictDataById (Long dictCode);
/**
*
*
* @param dictCodes ID
*
* @return
*/
public int deleteDictDataByIds (Long[] dictCodes);
/**
*
*
* @param dictData
*
* @return
*/
public int insertDictData (SysDictData dictData);
/**
*
*
* @param dictData
*
* @return
*/
public int updateDictData (SysDictData dictData);
/**
*
*
* @param oldDictType
* @param newDictType
*
* @return
*/
public int updateDictDataType (@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
} }

View File

@ -11,82 +11,5 @@ import java.util.List;
* @author muyu * @author muyu
*/ */
public interface SysDictTypeMapper extends BaseMapper<SysDictType> { public interface SysDictTypeMapper extends BaseMapper<SysDictType> {
/**
*
*
* @param dictType
*
* @return
*/
public List<SysDictType> selectDictTypeList (SysDictType dictType);
/**
*
*
* @return
*/
public List<SysDictType> selectDictTypeAll ();
/**
* ID
*
* @param dictId ID
*
* @return
*/
public SysDictType selectDictTypeById (Long dictId);
/**
*
*
* @param dictType
*
* @return
*/
public SysDictType selectDictTypeByType (String dictType);
/**
* ID
*
* @param dictId ID
*
* @return
*/
public int deleteDictTypeById (Long dictId);
/**
*
*
* @param dictIds ID
*
* @return
*/
public int deleteDictTypeByIds (Long[] dictIds);
/**
*
*
* @param dictType
*
* @return
*/
public int insertDictType (SysDictType dictType);
/**
*
*
* @param dictType
*
* @return
*/
public int updateDictType (SysDictType dictType);
/**
*
*
* @param dictType
*
* @return
*/
public SysDictType checkDictTypeUnique (String dictType);
} }

View File

@ -3,9 +3,7 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysDictData; import com.muyu.common.system.domain.SysDictData;
import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictDataPageQueryModel; import com.muyu.system.domain.model.SysDictDataPageQueryModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import java.util.List; import java.util.List;
@ -18,11 +16,11 @@ public interface SysDictDataService extends IService<SysDictData> {
/** /**
* *
* *
* @param dictData * @param pageQueryModel
* *
* @return * @return
*/ */
public List<SysDictData> selectDictDataList (SysDictData dictData); public PageQueryModel<SysDictData> selectDictDataList (SysDictDataPageQueryModel pageQueryModel);
/** /**
* *
@ -41,7 +39,7 @@ public interface SysDictDataService extends IService<SysDictData> {
* *
* @return * @return
*/ */
public SysDictData selectDictDataById (Long dictCode); public SysDictData getOneById(Long dictCode);
/** /**
* *
@ -54,20 +52,48 @@ public interface SysDictDataService extends IService<SysDictData> {
* *
* *
* @param dictData * @param dictData
*
* @return
*/ */
public int insertDictData (SysDictData dictData); public void insertDictData (SysDictData dictData);
/** /**
* *
* *
* @param dictData * @param dictData
*
* @return
*/ */
public int updateDictData (SysDictData dictData); public void updateDictData (SysDictData dictData);
PageQueryModel<SysDictData> pageQuery(SysDictDataPageQueryModel sysDictDataPageQueryModel); PageQueryModel<SysDictData> pageQuery(SysDictDataPageQueryModel sysDictDataPageQueryModel);
/**
*
* @return
*/
List<SysDictData> findAllByEnable();
/**
*
* @param oldDictType
* @param newDictType
*/
void updateDictDataType(String oldDictType, String newDictType);
/**
*
* @param dictType
* @return
*/
List<SysDictData> selectDictDataByType(String dictType);
/**
*
* @param dictType
* @return
*/
long countDictDataByType(String dictType);
/**
*
* @param dictType
* @return true false
*/
boolean isChildByType(String dictType);
} }

View File

@ -86,16 +86,14 @@ public interface SysDictTypeService extends IService<SysDictType> {
* *
* @return * @return
*/ */
public int insertDictType (SysDictType dictType); public void insertDictType (SysDictType dictType);
/** /**
* *
* *
* @param dictType * @param dictType
*
* @return
*/ */
public int updateDictType (SysDictType dictType); public void updateDictType (SysDictType dictType);
/** /**
* *

View File

@ -229,4 +229,11 @@ public interface SysUserService extends IService<SysUser> {
public String importUser (List<SysUser> userList, Boolean isUpdateSupport, String operName); public String importUser (List<SysUser> userList, Boolean isUpdateSupport, String operName);
PageQueryModel<SysUser> pageQuery(SysUserPageQueryModel sysUserPageQueryModel); PageQueryModel<SysUser> pageQuery(SysUserPageQueryModel sysUserPageQueryModel);
/**
*
* @param deptId ID
* @return true false
*/
boolean checkDeptExistUser(Long deptId);
} }

View File

@ -21,6 +21,7 @@ import com.muyu.system.domain.vo.TreeSelect;
import com.muyu.system.mapper.SysDeptMapper; import com.muyu.system.mapper.SysDeptMapper;
import com.muyu.system.mapper.SysRoleMapper; import com.muyu.system.mapper.SysRoleMapper;
import com.muyu.system.service.SysDeptService; import com.muyu.system.service.SysDeptService;
import com.muyu.system.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -44,6 +45,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
@Autowired @Autowired
private SysRoleMapper roleMapper; private SysRoleMapper roleMapper;
@Autowired
private SysUserService sysUserService;
@Override @Override
public List<SysDept> queryList(SysDeptPageQueryModel sysDeptPageQueryModel) { public List<SysDept> queryList(SysDeptPageQueryModel sysDeptPageQueryModel) {
@ -171,8 +175,10 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
*/ */
@Override @Override
public boolean hasChildByDeptId (Long deptId) { public boolean hasChildByDeptId (Long deptId) {
int result = deptMapper.hasChildByDeptId(deptId); LambdaQueryWrapper<SysDept> lambdaQueryWrapper = new LambdaQueryWrapper<SysDept>()
return result > 0; .eq(SysDept::getDeptId, deptId)
.eq(SysDept::getDelFlag, SysNormalDisableEnum.ENABLE.getCode());
return this.count(lambdaQueryWrapper) > 0;
} }
/** /**
@ -184,8 +190,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
*/ */
@Override @Override
public boolean checkDeptExistUser (Long deptId) { public boolean checkDeptExistUser (Long deptId) {
int result = deptMapper.checkDeptExistUser(deptId); return sysUserService.checkDeptExistUser(deptId);
return result > 0;
} }
/** /**

View File

@ -1,22 +1,22 @@
package com.muyu.system.service.impl; package com.muyu.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.enums.SysNormalDisableEnum;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.security.utils.DictUtils; import com.muyu.common.security.utils.DictUtils;
import com.muyu.common.system.domain.SysDictData; import com.muyu.common.system.domain.SysDictData;
import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictDataPageQueryModel; import com.muyu.system.domain.model.SysDictDataPageQueryModel;
import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import com.muyu.system.mapper.SysDictDataMapper; import com.muyu.system.mapper.SysDictDataMapper;
import com.muyu.system.service.SysDictDataService; import com.muyu.system.service.SysDictDataService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* *
@ -38,8 +38,14 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
* @return * @return
*/ */
@Override @Override
public List<SysDictData> selectDictDataList (SysDictData dictData) { public PageQueryModel<SysDictData> selectDictDataList (SysDictDataPageQueryModel pageQueryModel) {
return dictDataMapper.selectDictDataList(dictData); LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(StringUtils.isNotNull(pageQueryModel.getDictType()),SysDictData::getDictType, pageQueryModel.getDictType());
lambdaQueryWrapper.like(StringUtils.isNotNull(pageQueryModel.getDictLabel()),SysDictData::getDictLabel, pageQueryModel.getDictLabel());
lambdaQueryWrapper.eq(StringUtils.isNotNull(pageQueryModel.getStatus()),SysDictData::getStatus, pageQueryModel.getStatus());
Page<SysDictData> sysDictDataPage = this.page(pageQueryModel.buildPage(), lambdaQueryWrapper);
return PageQueryModel.of(sysDictDataPage);
} }
/** /**
@ -52,7 +58,13 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
*/ */
@Override @Override
public String selectDictLabel (String dictType, String dictValue) { public String selectDictLabel (String dictType, String dictValue) {
return dictDataMapper.selectDictLabel(dictType, dictValue); Assert.notNull(dictType, "字典类型 不可为空");
Assert.notNull(dictValue, "字典键值 不可为空");
LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictData::getDictType, dictType);
lambdaQueryWrapper.eq(SysDictData::getDictValue, dictValue);
SysDictData sysDictData = this.getOne(lambdaQueryWrapper);
return sysDictData.getDictLabel();
} }
/** /**
@ -63,8 +75,10 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
* @return * @return
*/ */
@Override @Override
public SysDictData selectDictDataById (Long dictCode) { public SysDictData getOneById(Long dictCode) {
return dictDataMapper.selectDictDataById(dictCode); LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getDictCode, dictCode);
return this.getOne(lambdaQueryWrapper);
} }
/** /**
@ -75,10 +89,12 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
@Override @Override
public void deleteDictDataByIds (Long[] dictCodes) { public void deleteDictDataByIds (Long[] dictCodes) {
for (Long dictCode : dictCodes) { for (Long dictCode : dictCodes) {
SysDictData data = selectDictDataById(dictCode); SysDictData data = this.getOneById(dictCode);
dictDataMapper.deleteDictDataById(dictCode); LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); lambdaQueryWrapper.eq(SysDictData::getDictCode, dictCode);
DictUtils.setDictCache(data.getDictType(), dictDatas); this.remove(lambdaQueryWrapper);
List<SysDictData> sysDictDataList = this.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), sysDictDataList);
} }
} }
@ -86,34 +102,26 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
* *
* *
* @param data * @param data
*
* @return
*/ */
@Override @Override
public int insertDictData (SysDictData data) { public void insertDictData (SysDictData data) {
int row = dictDataMapper.insertDictData(data); if (this.save(data)) {
if (row > 0) { List<SysDictData> dictDataList = this.selectDictDataByType(data.getDictType());
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); DictUtils.setDictCache(data.getDictType(), dictDataList);
DictUtils.setDictCache(data.getDictType(), dictDatas);
} }
return row;
} }
/** /**
* *
* *
* @param data * @param data
*
* @return
*/ */
@Override @Override
public int updateDictData (SysDictData data) { public void updateDictData (SysDictData data) {
int row = dictDataMapper.updateDictData(data); if (this.updateById(data)) {
if (row > 0) { List<SysDictData> dictDataList = this.selectDictDataByType(data.getDictType());
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); DictUtils.setDictCache(data.getDictType(), dictDataList);
DictUtils.setDictCache(data.getDictType(), dictDatas);
} }
return row;
} }
@Override @Override
@ -125,4 +133,71 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
Page<SysDictData> page = this.page(sysDictdataPageQueryModel.buildPage(), queryWrapper); Page<SysDictData> page = this.page(sysDictdataPageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page); return PageQueryModel.of(page);
} }
/**
*
* @return
*/
@Override
public List<SysDictData> findAllByEnable() {
LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictData::getStatus, SysNormalDisableEnum.ENABLE.getCode());
return this.list(lambdaQueryWrapper);
}
/**
*
*
* @param oldDictType
* @param newDictType
*/
@Override
public void updateDictDataType(String oldDictType, String newDictType) {
Assert.notNull(oldDictType, "旧字典类型不可为空");
Assert.notNull(newDictType, "新字典类型不可为空");
LambdaUpdateWrapper<SysDictData> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.set(SysDictData::getDictType, newDictType);
lambdaUpdateWrapper.eq(SysDictData::getDictType, oldDictType);
this.update(lambdaUpdateWrapper);
}
/**
*
*
* @param dictType
* @return
*/
@Override
public List<SysDictData> selectDictDataByType(String dictType) {
LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictData::getDictType, dictType);
lambdaQueryWrapper.eq(SysDictData::getStatus, SysNormalDisableEnum.DISABLE.getCode());
lambdaQueryWrapper.orderByAsc(SysDictData::getDictSort);
return this.list(lambdaQueryWrapper);
}
/**
*
*
* @param dictType
* @return
*/
@Override
public long countDictDataByType(String dictType) {
Assert.notNull(dictType, "字典类型不可为空");
LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictData::getDictType, dictType);
return this.count(lambdaQueryWrapper);
}
/**
*
*
* @param dictType
* @return true false
*/
@Override
public boolean isChildByType(String dictType) {
return countDictDataByType(dictType) > 0;
}
} }

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.constant.UserConstants;
import com.muyu.common.core.enums.SysNormalDisableEnum;
import com.muyu.common.core.enums.SysWhetherEnum;
import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
@ -13,16 +15,15 @@ import com.muyu.common.system.domain.SysDictType;
import com.muyu.system.domain.model.SysDictTypePageQueryModel; import com.muyu.system.domain.model.SysDictTypePageQueryModel;
import com.muyu.system.mapper.SysDictDataMapper; import com.muyu.system.mapper.SysDictDataMapper;
import com.muyu.system.mapper.SysDictTypeMapper; import com.muyu.system.mapper.SysDictTypeMapper;
import com.muyu.system.service.SysDictDataService;
import com.muyu.system.service.SysDictTypeService; import com.muyu.system.service.SysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.Comparator; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -36,7 +37,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
private SysDictTypeMapper dictTypeMapper; private SysDictTypeMapper dictTypeMapper;
@Autowired @Autowired
private SysDictDataMapper dictDataMapper; private SysDictDataService sysDictDataService;
@Override @Override
public PageQueryModel<SysDictType> pageQuery(SysDictTypePageQueryModel sysDictDataPageQueryModel) { public PageQueryModel<SysDictType> pageQuery(SysDictTypePageQueryModel sysDictDataPageQueryModel) {
@ -67,7 +68,18 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public List<SysDictType> selectDictTypeList (SysDictType dictType) { public List<SysDictType> selectDictTypeList (SysDictType dictType) {
return dictTypeMapper.selectDictTypeList(dictType); LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictName()),SysDictType::getDictName, dictType.getDictName());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(dictType.getStatus()),SysDictType::getStatus, dictType.getStatus());
lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictType()),SysDictType::getDictType, dictType.getDictType());
Map<String, Object> params = dictType.getParams();
Date beginTime = (Date) params.get("beginTime");
Date endTime = (Date) params.get("endTime");
lambdaQueryWrapper.between(
beginTime != null && endTime != null,
SysDictType::getCreateTime, beginTime, endTime
);
return this.list(lambdaQueryWrapper);
} }
/** /**
@ -77,7 +89,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public List<SysDictType> selectDictTypeAll () { public List<SysDictType> selectDictTypeAll () {
return dictTypeMapper.selectDictTypeAll(); return this.list();
} }
/** /**
@ -93,7 +105,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
if (StringUtils.isNotEmpty(dictDatas)) { if (StringUtils.isNotEmpty(dictDatas)) {
return dictDatas; return dictDatas;
} }
dictDatas = dictDataMapper.selectDictDataByType(dictType); dictDatas = sysDictDataService.selectDictDataByType(dictType);
if (StringUtils.isNotEmpty(dictDatas)) { if (StringUtils.isNotEmpty(dictDatas)) {
DictUtils.setDictCache(dictType, dictDatas); DictUtils.setDictCache(dictType, dictDatas);
return dictDatas; return dictDatas;
@ -110,7 +122,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public SysDictType selectDictTypeById (Long dictId) { public SysDictType selectDictTypeById (Long dictId) {
return dictTypeMapper.selectDictTypeById(dictId); return this.getById(dictId);
} }
/** /**
@ -122,7 +134,9 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public SysDictType selectDictTypeByType (String dictType) { public SysDictType selectDictTypeByType (String dictType) {
return dictTypeMapper.selectDictTypeByType(dictType); LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDictType::getDictType, dictType);
return getOne(lambdaQueryWrapper);
} }
/** /**
@ -134,10 +148,10 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
public void deleteDictTypeByIds (Long[] dictIds) { public void deleteDictTypeByIds (Long[] dictIds) {
for (Long dictId : dictIds) { for (Long dictId : dictIds) {
SysDictType dictType = selectDictTypeById(dictId); SysDictType dictType = selectDictTypeById(dictId);
if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { if (sysDictDataService.isChildByType(dictType.getDictType())) {
throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName())); throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
} }
dictTypeMapper.deleteDictTypeById(dictId); this.removeById(dictId);
DictUtils.removeDictCache(dictType.getDictType()); DictUtils.removeDictCache(dictType.getDictType());
} }
} }
@ -147,11 +161,16 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public void loadingDictCache () { public void loadingDictCache () {
SysDictData dictData = new SysDictData(); List<SysDictData> sysDictDataEnableList = sysDictDataService.findAllByEnable();
dictData.setStatus("0"); Map<String, List<SysDictData>> dictDataMap = sysDictDataEnableList.stream()
Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType)); .collect(Collectors.groupingBy(SysDictData::getDictType));
for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet()) { for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet()) {
DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList())); DictUtils.setDictCache(
entry.getKey(),
entry.getValue().stream()
.sorted(Comparator.comparing(SysDictData::getDictSort))
.toList()
);
} }
} }
@ -180,32 +199,26 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
* @return * @return
*/ */
@Override @Override
public int insertDictType (SysDictType dict) { public void insertDictType (SysDictType dict) {
int row = dictTypeMapper.insertDictType(dict); if (this.save(dict)) {
if (row > 0) {
DictUtils.setDictCache(dict.getDictType(), null); DictUtils.setDictCache(dict.getDictType(), null);
} }
return row;
} }
/** /**
* *
* *
* @param dict * @param dict
*
* @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateDictType (SysDictType dict) { public void updateDictType (SysDictType dict) {
SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); SysDictType oldDict = this.getById(dict.getDictId());
dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); sysDictDataService.updateDictDataType(oldDict.getDictType(), dict.getDictType());
int row = dictTypeMapper.updateDictType(dict); if (this.updateById(dict)) {
if (row > 0) { List<SysDictData> dictDataList = sysDictDataService.selectDictDataByType(dict.getDictType());
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); DictUtils.setDictCache(dict.getDictType(), dictDataList);
DictUtils.setDictCache(dict.getDictType(), dictDatas);
} }
return row;
} }
/** /**
@ -217,9 +230,12 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
*/ */
@Override @Override
public boolean checkDictTypeUnique (SysDictType dict) { public boolean checkDictTypeUnique (SysDictType dict) {
Assert.notNull(dict.getDictType(), "字典类型不可为空");
Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId();
SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); LambdaQueryWrapper<SysDictType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { lambdaQueryWrapper.eq(SysDictType::getDictType, dict.getDictType());
lambdaQueryWrapper.ne(dict.getDictId() != null, SysDictType::getDictId, dictId);
if (this.count(lambdaQueryWrapper) > 0) {
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }
return UserConstants.UNIQUE; return UserConstants.UNIQUE;

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.constant.UserConstants;
import com.muyu.common.core.enums.SysNormalDisableEnum;
import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
@ -516,9 +517,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
Page<SysUser> page = this.page(sysUserPageQueryModel.buildPage(), queryWrapper); Page<SysUser> page = this.page(sysUserPageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page); return PageQueryModel.of(page);
} }
//nickName
//phonenumber /**
//status *
//beginTime *
//endTime * @param deptId ID
* @return true false
*/
@Override
public boolean checkDeptExistUser(Long deptId) {
LambdaQueryWrapper<SysUser> lambdaQueryWrapper = new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getDeptId, deptId)
.eq(SysUser::getDelFlag, SysNormalDisableEnum.ENABLE.getCode());
return this.count(lambdaQueryWrapper) > 0;
}
} }

View File

@ -38,26 +38,6 @@
from sys_dept d from sys_dept d
</sql> </sql>
<select id="selectDeptList" parameterType="com.muyu.common.system.domain.SysDept" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where d.del_flag = '0'
<if test="deptId != null and deptId != 0">
AND dept_id = #{deptId}
</if>
<if test="parentId != null and parentId != 0">
AND parent_id = #{parentId}
</if>
<if test="deptName != null and deptName != ''">
AND dept_name like concat('%', #{deptName}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
order by d.parent_id, d.order_num
</select>
<select id="selectDeptListByRoleId" resultType="Long"> <select id="selectDeptListByRoleId" resultType="Long">
select d.dept_id select d.dept_id
from sys_dept d from sys_dept d
@ -70,21 +50,6 @@
order by d.parent_id, d.order_num order by d.parent_id, d.order_num
</select> </select>
<select id="checkDeptExistUser" parameterType="Long" resultType="int">
select count(1)
from sys_user
where dept_id = #{deptId}
and del_flag = '0'
</select>
<select id="hasChildByDeptId" parameterType="Long" resultType="int">
select count(1)
from sys_dept
where del_flag = '0'
and parent_id = #{deptId}
limit 1
</select>
<select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int"> <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
select count(*) select count(*)
from sys_dept from sys_dept
@ -93,11 +58,6 @@
and find_in_set(#{deptId}, ancestors) and find_in_set(#{deptId}, ancestors)
</select> </select>
<select id="checkDeptNameUnique" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
</select>
<update id="updateDeptChildren" parameterType="java.util.List"> <update id="updateDeptChildren" parameterType="java.util.List">
update sys_dept set ancestors = update sys_dept set ancestors =
<foreach collection="depts" item="item" index="index" <foreach collection="depts" item="item" index="index"
@ -110,18 +70,4 @@
#{item.deptId} #{item.deptId}
</foreach> </foreach>
</update> </update>
<update id="updateDeptStatusNormal" parameterType="Long">
update sys_dept set status = '0' where dept_id in
<foreach collection="array" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</update>
<delete id="deleteDeptById" parameterType="Long">
update sys_dept
set del_flag = '2'
where dept_id = #{deptId}
</delete>
</mapper> </mapper>

View File

@ -36,108 +36,4 @@
from sys_dict_data from sys_dict_data
</sql> </sql>
<select id="selectDictDataList" parameterType="com.muyu.common.system.domain.SysDictData" resultMap="SysDictDataResult">
<include refid="selectDictDataVo"/>
<where>
<if test="dictType != null and dictType != ''">
AND dict_type = #{dictType}
</if>
<if test="dictLabel != null and dictLabel != ''">
AND dict_label like concat('%', #{dictLabel}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
</where>
order by dict_sort asc
</select>
<select id="selectDictDataByType" parameterType="com.muyu.common.system.domain.SysDictData" resultMap="SysDictDataResult">
<include refid="selectDictDataVo"/>
where status = '0' and dict_type = #{dictType} order by dict_sort asc
</select>
<select id="selectDictLabel" resultType="String">
select dict_label
from sys_dict_data
where dict_type = #{dictType}
and dict_value = #{dictValue}
</select>
<select id="selectDictDataById" parameterType="Long" resultMap="SysDictDataResult">
<include refid="selectDictDataVo"/>
where dict_code = #{dictCode}
</select>
<select id="countDictDataByType" resultType="Integer">
select count(1)
from sys_dict_data
where dict_type = #{dictType}
</select>
<delete id="deleteDictDataById" parameterType="Long">
delete
from sys_dict_data
where dict_code = #{dictCode}
</delete>
<delete id="deleteDictDataByIds" parameterType="Long">
delete from sys_dict_data where dict_code in
<foreach collection="array" item="dictCode" open="(" separator="," close=")">
#{dictCode}
</foreach>
</delete>
<update id="updateDictData" parameterType="com.muyu.common.system.domain.SysDictData">
update sys_dict_data
<set>
<if test="dictSort != null">dict_sort = #{dictSort},</if>
<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
<if test="cssClass != null">css_class = #{cssClass},</if>
<if test="listClass != null">list_class = #{listClass},</if>
<if test="isDefault != null and isDefault != ''">is_default = #{isDefault},</if>
<if test="status != null">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate()
</set>
where dict_code = #{dictCode}
</update>
<update id="updateDictDataType" parameterType="String">
update sys_dict_data
set dict_type = #{newDictType}
where dict_type = #{oldDictType}
</update>
<insert id="insertDictData" parameterType="com.muyu.common.system.domain.SysDictData">
insert into sys_dict_data(
<if test="dictSort != null">dict_sort,</if>
<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
<if test="dictValue != null and dictValue != ''">dict_value,</if>
<if test="dictType != null and dictType != ''">dict_type,</if>
<if test="cssClass != null and cssClass != ''">css_class,</if>
<if test="listClass != null and listClass != ''">list_class,</if>
<if test="isDefault != null and isDefault != ''">is_default,</if>
<if test="status != null">status,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
create_time
)values(
<if test="dictSort != null">#{dictSort},</if>
<if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
<if test="dictType != null and dictType != ''">#{dictType},</if>
<if test="cssClass != null and cssClass != ''">#{cssClass},</if>
<if test="listClass != null and listClass != ''">#{listClass},</if>
<if test="isDefault != null and isDefault != ''">#{isDefault},</if>
<if test="status != null">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate()
)
</insert>
</mapper> </mapper>

View File

@ -19,89 +19,4 @@
select dict_id, dict_name, dict_type, status, create_by, create_time, remark select dict_id, dict_name, dict_type, status, create_by, create_time, remark
from sys_dict_type from sys_dict_type
</sql> </sql>
<select id="selectDictTypeList" parameterType="com.muyu.common.system.domain.SysDictType" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
<where>
<if test="dictName != null and dictName != ''">
AND dict_name like concat('%', #{dictName}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="dictType != null and dictType != ''">
AND dict_type like concat('%', #{dictType}, '%')
</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
</where>
</select>
<select id="selectDictTypeAll" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
</select>
<select id="selectDictTypeById" parameterType="Long" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
where dict_id = #{dictId}
</select>
<select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
where dict_type = #{dictType}
</select>
<select id="checkDictTypeUnique" parameterType="String" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
where dict_type = #{dictType} limit 1
</select>
<delete id="deleteDictTypeById" parameterType="Long">
delete
from sys_dict_type
where dict_id = #{dictId}
</delete>
<delete id="deleteDictTypeByIds" parameterType="Long">
delete from sys_dict_type where dict_id in
<foreach collection="array" item="dictId" open="(" separator="," close=")">
#{dictId}
</foreach>
</delete>
<update id="updateDictType" parameterType="com.muyu.common.system.domain.SysDictType">
update sys_dict_type
<set>
<if test="dictName != null and dictName != ''">dict_name = #{dictName},</if>
<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
<if test="status != null">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate()
</set>
where dict_id = #{dictId}
</update>
<insert id="insertDictType" parameterType="com.muyu.common.system.domain.SysDictType">
insert into sys_dict_type(
<if test="dictName != null and dictName != ''">dict_name,</if>
<if test="dictType != null and dictType != ''">dict_type,</if>
<if test="status != null">status,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
create_time
)values(
<if test="dictName != null and dictName != ''">#{dictName},</if>
<if test="dictType != null and dictType != ''">#{dictType},</if>
<if test="status != null">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate()
)
</insert>
</mapper> </mapper>