edu/server/like-generator/src/main/resources/java/serviceImpl.java.vm

261 lines
9.8 KiB
Plaintext
Raw Normal View History

2022-06-15 06:21:31 +00:00
package com.hxkj.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.mapper.system.SystemAdminMapper;
import com.hxkj.common.mapper.system.SystemMenuMapper;
import com.hxkj.common.utils.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
/**
* 系统管理员实现类
*/
@Service
public class SystemAdminServiceImpl implements ISystemAdminService {
@Resource
SystemAdminMapper systemAdminMapper;
@Resource
SystemMenuMapper systemMenuMapper;
@Resource
ISystemRoleService iSystemRoleService;
@Resource
ISystemRoleMenuService iSystemRoleMenuService;
/**
* 管理员列表
*
* @author fzr
* @param pageParam 分页参数
* @return PageResult<SysAdminListVo>
*/
@Override
public PageResult<SystemAdminVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
MPJQueryWrapper<SystemAdmin> mpjQueryWrapper = new MPJQueryWrapper<>();
mpjQueryWrapper.select("t.id,t.dept_id,t.post_id,t.username,t.nickname,t.avatar," +
"sd.name as dept,sr.name as role,t.is_multipoint,t.is_disable," +
"t.last_login_ip,t.last_login_time,t.create_time,t.update_time")
.eq("t.is_delete", 0)
.leftJoin("ls_system_role sr ON sr.id=t.role")
.leftJoin("ls_system_dept sd ON sd.id=t.dept_id")
.orderByDesc(Arrays.asList("t.id", "t.sort"));
systemAdminMapper.setSearch(mpjQueryWrapper, params, new String[]{
"like:username:str",
"like:nickname:str",
"=:role:int"
});
IPage<SystemAdminVo> iPage = systemAdminMapper.selectJoinPage(
new Page<>(page, limit),
SystemAdminVo.class,
mpjQueryWrapper);
for (SystemAdminVo vo : iPage.getRecords()) {
if (vo.getId() == 1) {
vo.setRole("系统管理员");
}
if (vo.getDept() == null) {
vo.setDept("");
}
vo.setAvatar(UrlUtil.toAbsoluteUrl(vo.getAvatar()));
vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime()));
vo.setLastLoginTime(TimeUtil.timestampToDate(vo.getLastLoginTime()));
}
return PageResult.iPageHandle(iPage);
}
/**
* 管理员详细
*
* @author fzr
* @param id 主键
* @return SysAdmin
*/
@Override
public SystemAdminVo detail(Integer id) {
SystemAdmin sysAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(SystemAdmin.class, info->
!info.getColumn().equals("salt") &&
!info.getColumn().equals("password") &&
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(sysAdmin, "账号已不存在!");
SystemAdminVo vo = new SystemAdminVo();
BeanUtils.copyProperties(sysAdmin, vo);
vo.setDept(String.valueOf(vo.getDeptId()));
vo.setRole(String.valueOf(sysAdmin.getRole()));
vo.setAvatar(UrlUtil.toAbsoluteUrl(sysAdmin.getAvatar()));
vo.setCreateTime(TimeUtil.timestampToDate(sysAdmin.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(sysAdmin.getUpdateTime()));
vo.setLastLoginTime(TimeUtil.timestampToDate(sysAdmin.getLastLoginTime()));
return vo;
}
/**
* 管理员新增
*
* @author fzr
* @param systemAdminParam 参数
*/
@Override
public void add(SystemAdminParam systemAdminParam) {
String[] field = {"id", "username", "nickname"};
Assert.isNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("username", systemAdminParam.getUsername())
.last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("nickname", systemAdminParam.getNickname())
.last("limit 1")), "昵称已存在换一个吧!");
SystemRoleVo roleVo = iSystemRoleService.detail(systemAdminParam.getRole());
Assert.notNull(roleVo, "角色不存在!");
Assert.isTrue(roleVo.getIsDisable() <= 0, "当前角色已被禁用!");
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(systemAdminParam.getPassword().trim() + salt);
String avatar = UrlUtil.toRelativeUrl(systemAdminParam.getAvatar());
SystemAdmin model = new SystemAdmin();
model.setDeptId(systemAdminParam.getDeptId());
model.setPostId(systemAdminParam.getPostId());
model.setUsername(systemAdminParam.getUsername());
model.setNickname(systemAdminParam.getNickname());
model.setRole(systemAdminParam.getRole());
model.setAvatar(avatar);
model.setPassword(pwd);
model.setSalt(salt);
model.setSort(systemAdminParam.getSort());
model.setIsMultipoint(systemAdminParam.getIsMultipoint());
model.setIsDisable(systemAdminParam.getIsDisable());
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemAdminMapper.insert(model);
}
/**
* 管理员更新
*
* @author fzr
* @param systemAdminParam 参数
*/
@Override
public void edit(SystemAdminParam systemAdminParam) {
String[] field = {"id", "username", "nickname"};
Assert.notNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("id", systemAdminParam.getId())
.eq("is_delete", 0)
.last("limit 1")), "账号不存在了!");
Assert.isNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("username", systemAdminParam.getUsername())
.ne("id", systemAdminParam.getId())
.last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("nickname", systemAdminParam.getNickname())
.ne("id", systemAdminParam.getId())
.last("limit 1")), "昵称已存在换一个吧!");
Assert.notNull(iSystemRoleService.detail(systemAdminParam.getRole()), "角色不存在!");
SystemAdmin model = new SystemAdmin();
model.setId(systemAdminParam.getId());
model.setDeptId(systemAdminParam.getDeptId());
model.setPostId(systemAdminParam.getPostId());
model.setNickname(systemAdminParam.getNickname());
model.setUsername(systemAdminParam.getUsername());
model.setAvatar( UrlUtil.toRelativeUrl(systemAdminParam.getAvatar()));
model.setRole(systemAdminParam.getId() == 1 ? 0 : systemAdminParam.getRole());
model.setSort(systemAdminParam.getSort());
model.setIsMultipoint(systemAdminParam.getIsMultipoint());
model.setIsDisable(systemAdminParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000);
if (systemAdminParam.getPassword() != null) {
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5( systemAdminParam.getPassword().trim() + salt);
model.setPassword(pwd);
model.setSalt(salt);
}
systemAdminMapper.updateById(model);
this.cacheAdminUserByUid(systemAdminParam.getId());
}
/**
* 管理员删除
*
* @author fzr
* @param id 主键
*/
@Override
public void del(Integer id) {
String[] field = {"id", "username", "nickname"};
Assert.notNull(systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select(field)
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1")), "账号已不存在!");
Assert.isFalse(id == 1, "系统管理员不允许删除");
int adminId = Integer.parseInt(LikeAdminThreadLocal.getAdminId().toString());
Assert.isFalse(id == adminId, "不能删除自己");
SystemAdmin model = new SystemAdmin();
model.setId(id);
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
systemAdminMapper.updateById(model);
this.cacheAdminUserByUid(id);
}
}