【admin】1.优化联系人和用户登录逻辑 2.优化问题管理为一张表 3.系统适配多角色

dev
dabin 2024-08-20 21:48:47 +08:00
parent b8743373c3
commit cf7f1e3178
50 changed files with 555 additions and 270 deletions

View File

@ -128,17 +128,24 @@ public class AdminInterceptor implements HandlerInterceptor {
}
// 校验角色权限是否存在
String roleId = map.get("role");
String[] roleIds = map.get("role").split(",");
for (String roleId : roleIds) {
if (!RedisUtil.hExists(AdminConfig.backstageRolesKey, roleId)) {
iSystemAuthPermService.cacheRoleMenusByRoleId(Integer.parseInt(roleId));
}
}
StringBuilder adminMenus = new StringBuilder();
StringBuilder menus = new StringBuilder();
for (String roleId : roleIds) {
adminMenus.append(RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString());
menus.append(RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString());
}
// 验证是否有权限操作
// roleId=0为系统管理员角色的id配置了所有的权限标识
String adminMenus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
String menus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
List<String> list = Arrays.asList(adminMenus.split(","));
if(!list.isEmpty() && list.contains(auths) && !Arrays.asList(menus.split(",")).contains(auths)){
List<String> list = Arrays.asList(adminMenus.toString().split(","));
if(!list.isEmpty() && list.contains(auths) && !Arrays.asList(menus.toString().split(",")).contains(auths)){
AjaxResult result = AjaxResult.failed(HttpEnum.NO_PERMISSION.getCode(), HttpEnum.NO_PERMISSION.getMsg());
response.getWriter().print(JSON.toJSONString(result));
return false;

View File

@ -51,12 +51,12 @@ public class AdminThreadLocal {
/**
* ID
*/
public static Integer getRoleId() {
public static String getRoleId() {
String roleId = AdminThreadLocal.get("roleId").toString();
if (roleId.equals("")) {
return 0;
if (roleId.isEmpty()) {
return "0";
}
return Integer.parseInt(roleId);
return roleId;
}
/**

View File

@ -1,9 +1,8 @@
package com.hcy.admin.controller.CommonMaintenance;
package com.hcy.admin.controller.commonMaintenance;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.CommonMaintenance.ICommonMaintenanceService;
import com.hcy.admin.service.commonMaintenance.ICommonMaintenanceService;
import com.hcy.admin.validate.CommonMaintenance.CommonMaintenanceParam;
import com.hcy.admin.validate.CommonOverhaul.CommonOverhaulParam;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.vo.CommonMaintenance.CommonMaintenanceListVo;
import com.hcy.admin.vo.CommonMaintenance.CommonMaintenanceDetailVo;

View File

@ -1,10 +1,9 @@
package com.hcy.admin.controller.CommonOverhaul;
package com.hcy.admin.controller.commonOverhaul;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.CommonOverhaul.ICommonOverhaulService;
import com.hcy.admin.service.commonOverhaul.ICommonOverhaulService;
import com.hcy.admin.validate.CommonOverhaul.CommonOverhaulParam;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.commonFault.CommonFaultParam;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulListVo;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulDetailVo;
import com.hcy.common.core.AjaxResult;

View File

@ -33,8 +33,7 @@ public class FaultController {
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam FaultParam faultParam) {
public Object list(@Validated PageParam pageParam, FaultParam faultParam) {
PageResult<FaultListVo> list = iFaultService.list(pageParam, faultParam);
return AjaxResult.success(list);
}

View File

@ -1,9 +1,8 @@
package com.hcy.admin.controller.QrCode;
package com.hcy.admin.controller.qrCode;
import com.hcy.admin.service.QRCode.QRCodeService;
import com.hcy.admin.service.qrCode.QRCodeService;
import com.hcy.common.utils.QRCodeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

View File

@ -1,10 +1,9 @@
package com.hcy.admin.controller.scrapType;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.ScrapType.IScrapTypeService;
import com.hcy.admin.service.scrapType.IScrapTypeService;
import com.hcy.admin.validate.ScrapType.ScrapTypeParam;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.commonFault.CommonFaultParam;
import com.hcy.admin.vo.ScrapType.ScrapTypeListVo;
import com.hcy.admin.vo.ScrapType.ScrapTypeDetailVo;
import com.hcy.common.core.AjaxResult;

View File

@ -33,8 +33,7 @@ public class AuthAdminController {
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
public Object list(@Validated PageParam pageParam, SystemAuthAdminParam params){
PageResult<SystemAuthAdminVo> list = iSystemAuthAdminService.list(pageParam, params);
return AjaxResult.success(list);
}

View File

@ -31,8 +31,7 @@ public class AuthMenuController {
*/
@GetMapping("/route")
public Object route() {
Integer roleId = AdminThreadLocal.getRoleId();
JSONArray lists = iSystemAuthMenuService.selectMenuByRoleId(roleId);
JSONArray lists = iSystemAuthMenuService.selectMenuByRoleId(AdminThreadLocal.getRoleId());
return AjaxResult.success(lists);
}

View File

@ -32,8 +32,8 @@ public class AuthRoleController {
* @return Object
*/
@GetMapping("/all")
public Object all() {
List<Map<String, Object>> list = iSystemAuthRoleService.all();
public Object all(@RequestParam("isClient") Integer isClient) {
List<Map<String, Object>> list = iSystemAuthRoleService.all(isClient);
return AjaxResult.success(list);
}
@ -59,7 +59,7 @@ public class AuthRoleController {
*/
@Log(title = "角色详情")
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
public Object detail(@Validated @IDMust() @RequestParam("id") String id) {
SystemAuthRoleVo vo = iSystemAuthRoleService.detail(id);
return AjaxResult.success(vo);
}

View File

@ -6,6 +6,7 @@ import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.client.IClientContactsService;
import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.service.system.ISystemAuthRoleService;
import com.hcy.admin.service.user.IUserService;
import com.hcy.admin.validate.client.ClientContactsParam;
import com.hcy.admin.vo.client.ClientContactsDetailVo;
import com.hcy.admin.vo.client.ClientContactsListVo;
@ -14,12 +15,15 @@ import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User;
import com.hcy.common.enums.user.UserRoleEnum;
import com.hcy.common.entity.user.UserAuth;
import com.hcy.common.enums.user.SystemAuthRoleEnum;
import com.hcy.common.enums.user.UserTypeEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.client.ClientContactsMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserAuthMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.StringUtil;
import com.hcy.common.utils.ToolsUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -44,12 +48,18 @@ public class ClientContactsServiceImpl implements IClientContactsService {
@Resource
SystemAuthAdminMapper systemAuthAdminMapper;
@Resource
IUserService iUserService;
@Resource
ISystemAuthRoleService iSystemAuthRoleService;
@Resource
UserMapper userMapper;
@Resource
UserAuthMapper userAuthMapper;
/**
*
*
@ -132,10 +142,6 @@ public class ClientContactsServiceImpl implements IClientContactsService {
.eq("username", clientContactsParam.getUsername())
.last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(userMapper.selectOne(new LambdaQueryWrapper<User>()
.eq(User::getMobile,clientContactsParam.getPhone())
.last("limit 1")),"该手机号小程序已被注册");
SystemAuthRoleVo roleVo = iSystemAuthRoleService.detail(clientContactsParam.getRole());
Assert.notNull(roleVo, "角色不存在!");
Assert.isTrue(roleVo.getIsDisable() <= 0, "当前角色已被禁用!");
@ -152,7 +158,7 @@ public class ClientContactsServiceImpl implements IClientContactsService {
admin.setRole(clientContactsParam.getRole());
admin.setPassword(pwd);
admin.setNickname(clientContactsParam.getName());
admin.setUsername(clientContactsParam.getName());
admin.setUsername(clientContactsParam.getUsername());
admin.setSalt(salt);
admin.setProvinceId(clientContactsParam.getProvinceId());
admin.setCityId(clientContactsParam.getCityId());
@ -161,11 +167,15 @@ public class ClientContactsServiceImpl implements IClientContactsService {
admin.setPhone(clientContactsParam.getPhone());
admin.setCreateTime(System.currentTimeMillis() / 1000);
if(clientContactsParam.getRole() != UserRoleEnum.KH_CGY.getType()){
//判断当前参数是否可以小程序登录
boolean mnpLogin = iSystemAuthRoleService.isMnpLogin(clientContactsParam.getRole());
if(mnpLogin){
Assert.isNull(userMapper.getUserByPhone(clientContactsParam.getPhone()),"该手机号小程序已被注册");
//新增小程序用户
Integer sn = this.randMakeSn();
User user = new User();
user.setSn(sn);
user.setSn(iUserService.randMakeSn());
user.setType(UserTypeEnum.USER_SIDE.getType());
user.setAvatar(avatar);
user.setNickname(clientContactsParam.getName());
@ -192,6 +202,7 @@ public class ClientContactsServiceImpl implements IClientContactsService {
* @param clientContactsParam
*/
@Override
@Transactional
public void edit(ClientContactsParam clientContactsParam) {
ClientContacts model = clientContactsMapper.selectOne(
new QueryWrapper<ClientContacts>()
@ -201,8 +212,63 @@ public class ClientContactsServiceImpl implements IClientContactsService {
Assert.notNull(model, "数据不存在!");
BeanUtils.copyProperties(model,clientContactsParam);
clientContactsMapper.updateById(model);
ClientContacts newClientContacts = new ClientContacts();
//判断当前参数是否可以小程序登录
boolean mnpLogin = iSystemAuthRoleService.isMnpLogin(clientContactsParam.getRole());
if(model.getUserId() != null && !mnpLogin){
//删除小程序用户
userMapper.deleteById(model.getUserId());
//删除小程序用户授权
userAuthMapper.delete(new LambdaQueryWrapper<UserAuth>().eq(UserAuth::getUserId,model.getUserId()));
model.setUserId(null);
}else if(model.getUserId() == null && mnpLogin){
Assert.isNull(userMapper.getUserByPhone(clientContactsParam.getPhone()),"该手机号小程序已被注册");
//新增小程序用户
User user = new User();
user.setSn(iUserService.randMakeSn());
user.setType(UserTypeEnum.USER_SIDE.getType());
user.setAvatar("/api/static/backend_avatar.png");
user.setNickname(clientContactsParam.getName());
user.setUsername(clientContactsParam.getName());
user.setSex(clientContactsParam.getSex());
user.setLastLoginTime(System.currentTimeMillis() / 1000);
user.setCreateTime(System.currentTimeMillis() / 1000);
user.setMobile(clientContactsParam.getPhone());
userMapper.insert(user);
model.setUserId(user.getId().longValue());
}else if(!clientContactsParam.getPhone().equals(model.getPhone())){
User user = userMapper.selectById(model.getUserId());
if(user != null){
Assert.isNull(userMapper.getUserByPhone(clientContactsParam.getPhone()),"该手机号小程序已被注册");
user.setMobile(clientContactsParam.getPhone());
userMapper.updateById(user);
}
}
BeanUtils.copyProperties(clientContactsParam,newClientContacts);
newClientContacts.setUserId(model.getUserId());
clientContactsMapper.updateById(newClientContacts);
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getAdminId());
systemAuthAdmin.setRole(clientContactsParam.getRole());
systemAuthAdmin.setPhone(clientContactsParam.getPhone());
if(!systemAuthAdmin.getUsername().equals(clientContactsParam.getUsername())){
Assert.isNull(systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
.eq("is_delete", GlobalConstant.NOT_DELETE)
.eq("username", clientContactsParam.getUsername())
.ne("id",systemAuthAdmin.getId())
.last("limit 1")), "账号已存在换一个吧!");
systemAuthAdmin.setUsername(clientContactsParam.getUsername());
}
if(StringUtil.isNotEmpty(clientContactsParam.getPassword())){
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(clientContactsParam.getPassword().trim() + salt);
systemAuthAdmin.setSalt(salt);
systemAuthAdmin.setPassword(pwd);
}
systemAuthAdminMapper.updateById(systemAuthAdmin);
}
@Override
@ -252,25 +318,4 @@ public class ClientContactsServiceImpl implements IClientContactsService {
model.setIsDelete(1);
clientContactsMapper.updateById(model);
}
/**
*
*
* @return Integer
* @author fzr
*/
private Integer randMakeSn() {
Integer sn;
while (true) {
sn = Integer.parseInt(ToolsUtil.randomInt(8));
User snModel = userMapper.selectOne(new QueryWrapper<User>()
.select("id,sn,username")
.eq("sn", sn)
.last("limit 1"));
if (snModel == null) {
break;
}
}
return sn;
}
}

View File

@ -1,4 +1,4 @@
package com.hcy.admin.service.CommonMaintenance;
package com.hcy.admin.service.commonMaintenance;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.CommonMaintenance.CommonMaintenanceParam;

View File

@ -1,24 +1,18 @@
package com.hcy.admin.service.CommonMaintenance.impl;
package com.hcy.admin.service.commonMaintenance.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hcy.admin.service.CommonMaintenance.ICommonMaintenanceService;
import com.hcy.admin.validate.CommonOverhaul.CommonOverhaulParam;
import com.hcy.admin.service.commonMaintenance.ICommonMaintenanceService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.CommonMaintenance.CommonMaintenanceParam;
import com.hcy.admin.vo.CommonMaintenance.CommonMaintenanceListVo;
import com.hcy.admin.vo.CommonMaintenance.CommonMaintenanceDetailVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.CommonMaintenance.CommonMaintenance;
import com.hcy.common.entity.CommonOverhaul.CommonOverhaul;
import com.hcy.common.enums.commonFault.CommonFaultEnum;
import com.hcy.common.mapper.CommonMaintenance.CommonMaintenanceMapper;
import com.hcy.common.utils.ArrayUtil;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

View File

@ -1,8 +1,7 @@
package com.hcy.admin.service.CommonOverhaul;
package com.hcy.admin.service.commonOverhaul;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.CommonOverhaul.CommonOverhaulParam;
import com.hcy.admin.validate.commonFault.CommonFaultParam;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulListVo;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulDetailVo;
import com.hcy.common.core.PageResult;

View File

@ -1,24 +1,18 @@
package com.hcy.admin.service.CommonOverhaul.impl;
package com.hcy.admin.service.commonOverhaul.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hcy.admin.service.CommonOverhaul.ICommonOverhaulService;
import com.hcy.admin.service.commonOverhaul.ICommonOverhaulService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.CommonOverhaul.CommonOverhaulParam;
import com.hcy.admin.validate.commonFault.CommonFaultParam;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulListVo;
import com.hcy.admin.vo.CommonOverhaul.CommonOverhaulDetailVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.CommonOverhaul.CommonOverhaul;
import com.hcy.common.entity.commonFault.CommonFault;
import com.hcy.common.enums.commonFault.CommonFaultEnum;
import com.hcy.common.mapper.CommonOverhaul.CommonOverhaulMapper;
import com.hcy.common.utils.ArrayUtil;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

View File

@ -48,11 +48,13 @@ public class FaultServiceImpl implements IFaultService {
Long faultType = faultParam.getFaultType();
String name = faultParam.getName();
Integer status = faultParam.getStatus();
LambdaQueryWrapper<Fault> wrapper = new LambdaQueryWrapper<Fault>()
.eq(Fault::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(faultType != null, Fault::getFaultType, faultType)
.like(name != null, Fault::getName, name)
.eq(status != null, Fault::getStatus, status)
.orderByAsc(Fault::getSort)
.orderByDesc(Fault::getCreateTime);
@ -101,6 +103,7 @@ public class FaultServiceImpl implements IFaultService {
model.setFaultType(faultParam.getFaultType());
model.setSort(faultParam.getSort());
model.setName(faultParam.getName());
model.setStatus(faultParam.getStatus());
model.setDescription(faultParam.getDescription());
faultMapper.insert(model);
}
@ -120,7 +123,7 @@ public class FaultServiceImpl implements IFaultService {
Assert.notNull(model, "数据不存在!");
BeanUtils.copyProperties(model,faultParam);
BeanUtils.copyProperties(faultParam,model);
faultMapper.updateById(model);
}

View File

@ -1,4 +1,4 @@
package com.hcy.admin.service.QRCode;
package com.hcy.admin.service.qrCode;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;

View File

@ -1,4 +1,4 @@
package com.hcy.admin.service.ScrapType;
package com.hcy.admin.service.scrapType;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.ScrapType.ScrapTypeParam;

View File

@ -1,23 +1,18 @@
package com.hcy.admin.service.ScrapType.impl;
package com.hcy.admin.service.scrapType.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hcy.admin.service.ScrapType.IScrapTypeService;
import com.hcy.admin.service.scrapType.IScrapTypeService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.ScrapType.ScrapTypeParam;
import com.hcy.admin.vo.ScrapType.ScrapTypeListVo;
import com.hcy.admin.vo.ScrapType.ScrapTypeDetailVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.ScrapType.ScrapType;
import com.hcy.common.entity.commonFault.CommonFault;
import com.hcy.common.enums.commonFault.CommonFaultEnum;
import com.hcy.common.mapper.ScrapType.ScrapTypeMapper;
import com.hcy.common.utils.ArrayUtil;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

View File

@ -31,7 +31,7 @@ public interface ISystemAuthAdminService {
* @param pageParam
* @return PageResult<SysAdminListVo>
*/
PageResult<SystemAuthAdminVo> list(PageParam pageParam, Map<String, String> params);
PageResult<SystemAuthAdminVo> list(PageParam pageParam, SystemAuthAdminParam param);
/**
*

View File

@ -15,7 +15,7 @@ public interface ISystemAuthMenuService {
* @author fzr
* @return JSONArray
*/
JSONArray selectMenuByRoleId(Integer roleId);
JSONArray selectMenuByRoleId(String roleId);
/**
*

View File

@ -10,10 +10,10 @@ public interface ISystemAuthPermService {
/**
* IDID
*
* @param roleId ID
* @param roleIds ID
* @return List<Integer>
*/
List<Integer> selectMenuIdsByRoleId(Integer roleId);
List<Integer> selectMenuIdsByRoleIds(String roleIds);
/**
*

View File

@ -20,7 +20,7 @@ public interface ISystemAuthRoleService {
* @author fzr
* @return List<SystemAuthRoleVo>
*/
List<Map<String, Object>> all();
List<Map<String, Object>> all(Integer isClient);
/**
*
@ -38,7 +38,7 @@ public interface ISystemAuthRoleService {
* @param id
* @return SysRole
*/
SystemAuthRoleVo detail(Integer id);
SystemAuthRoleVo detail(String id);
/**
*
@ -64,4 +64,10 @@ public interface ISystemAuthRoleService {
*/
void del(Integer id);
/**
*
* @param role id
* @return boolean true false
*/
boolean isMnpLogin(String role);
}

View File

@ -14,25 +14,35 @@ import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.service.system.ISystemAuthAdminService;
import com.hcy.admin.service.system.ISystemAuthPermService;
import com.hcy.admin.service.system.ISystemAuthRoleService;
import com.hcy.admin.service.user.IUserService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.system.SystemAuthAdminParam;
import com.hcy.admin.vo.plant.PlantListVo;
import com.hcy.admin.vo.system.SystemAuthAdminVo;
import com.hcy.admin.vo.system.SystemAuthRoleVo;
import com.hcy.admin.vo.system.SystemAuthSelfVo;
import com.hcy.common.config.GlobalConfig;
import com.hcy.common.core.PageResult;
import com.hcy.common.dto.SystemAuthAdminDto;
import com.hcy.common.entity.plant.Plant;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.system.SystemAuthMenu;
import com.hcy.common.entity.system.SystemAuthRole;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.user.UserAuth;
import com.hcy.common.enums.user.SystemAuthRoleEnum;
import com.hcy.common.enums.user.UserTypeEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.plant.PlantMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.system.SystemAuthMenuMapper;
import com.hcy.common.mapper.system.SystemAuthRoleMapper;
import com.hcy.common.mapper.user.UserAuthMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.*;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
@ -61,6 +71,15 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
@Resource
IDevRegionService regionService;
@Resource
IUserService iUserService;
@Resource
UserMapper userMapper;
@Resource
UserAuthMapper userAuthMapper;
/**
*
*
@ -83,32 +102,20 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
* @author fzr
*/
@Override
public PageResult<SystemAuthAdminVo> list(PageParam pageParam, Map<String, String> params) {
public PageResult<SystemAuthAdminVo> list(PageParam pageParam, SystemAuthAdminParam param) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
MPJQueryWrapper<SystemAuthAdmin> 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("?_system_auth_role sr ON sr.id=t.role".replace("?_", GlobalConfig.tablePrefix))
.leftJoin("?_system_auth_dept sd ON sd.id=t.dept_id".replace("?_", GlobalConfig.tablePrefix))
.orderByDesc(Arrays.asList("t.id", "t.sort"));
SystemAuthAdminDto systemAuthAdminDto = new SystemAuthAdminDto();
BeanUtils.copyProperties(param,systemAuthAdminDto);
systemAuthAdminMapper.setSearch(mpjQueryWrapper, params, new String[]{
"like:username:str",
"like:nickname:str",
"=:role:int"
});
IPage<SystemAuthAdminVo> iPage = systemAuthAdminMapper.selectJoinPage(
new Page<>(page, limit),
SystemAuthAdminVo.class,
mpjQueryWrapper);
IPage<SystemAuthAdminDto> iPage = systemAuthAdminMapper.list(new Page<>(page, limit), systemAuthAdminDto);
long total = 0;
List<SystemAuthAdminVo> list = new LinkedList<>();
for (SystemAuthAdminVo item : iPage.getRecords()) {
for (SystemAuthAdminDto dto : iPage.getRecords()) {
SystemAuthAdminVo item = new SystemAuthAdminVo();
BeanUtils.copyProperties(dto, item);
if (item.getId() == 1) {
item.setRole("系统管理员");
@ -126,10 +133,10 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
SystemAuthAdminVo vo = new SystemAuthAdminVo();
BeanUtils.copyProperties(item, vo);
//只查询没有被该工厂绑定的用户
if(params.get("plantId") != null && params.get("plantId") != ""){
if(param.getPlantId() != null){
Plant model = plantMapper.selectOne(
new QueryWrapper<Plant>()
.eq("id", params.get("plantId"))
.eq("id", param.getPlantId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
@ -201,7 +208,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
// 角色权限
List<String> auths = new LinkedList<>();
if (adminId > 1) {
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleId(sysAdmin.getRole());
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleIds(sysAdmin.getRole());
if (menuIds.size() > 0) {
List<SystemAuthMenu> systemAuthMenus = systemAuthMenuMapper.selectList(new QueryWrapper<SystemAuthMenu>()
.eq("is_disable", 0)
@ -286,6 +293,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
* @author fzr
*/
@Override
@Transactional
public void add(SystemAuthAdminParam systemAuthAdminParam) {
String[] field = {"id", "username", "nickname"};
Assert.isNull(systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
@ -300,9 +308,8 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
.eq("nickname", systemAuthAdminParam.getNickname())
.last("limit 1")), "昵称已存在换一个吧!");
SystemAuthRoleVo roleVo = iSystemAuthRoleService.detail(systemAuthAdminParam.getRole());
Assert.notNull(roleVo, "角色不存在!");
Assert.isTrue(roleVo.getIsDisable() <= 0, "当前角色已被禁用!");
//判断当前参数是否可以小程序登录
boolean mnpLogin = iSystemAuthRoleService.isMnpLogin(systemAuthAdminParam.getRole());
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(systemAuthAdminParam.getPassword().trim() + salt);
@ -311,6 +318,27 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
"/api/static/backend_avatar.png";
SystemAuthAdmin model = new SystemAuthAdmin();
//新增小程序用户
if(mnpLogin){
//校验手机号是否被注册
Assert.isNull(userMapper.getUserByPhone(systemAuthAdminParam.getPhone()),"该手机号小程序已被注册");
//新增小程序用户
User user = new User();
user.setSn(iUserService.randMakeSn());
user.setType(UserTypeEnum.USER_SIDE.getType());
user.setAvatar(avatar);
user.setNickname(systemAuthAdminParam.getUsername());
user.setUsername(systemAuthAdminParam.getUsername());
user.setSex(systemAuthAdminParam.getSex());
user.setLastLoginTime(System.currentTimeMillis() / 1000);
user.setCreateTime(System.currentTimeMillis() / 1000);
user.setMobile(systemAuthAdminParam.getPhone());
userMapper.insert(user);
model.setUserId(user.getId().longValue());
}
model.setDeptId(systemAuthAdminParam.getDeptId());
model.setPostId(systemAuthAdminParam.getPostId());
model.setUsername(systemAuthAdminParam.getUsername());
@ -343,65 +371,76 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
* @author fzr
*/
@Override
@Transactional
public void edit(SystemAuthAdminParam systemAuthAdminParam) {
String[] field = {"id", "username", "nickname"};
Assert.notNull(systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
.select(field)
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
.eq("id", systemAuthAdminParam.getId())
.eq("is_delete", 0)
.last("limit 1")), "账号不存在了!");
.last("limit 1"));
Assert.notNull(systemAuthAdmin, "账号不存在了!");
Assert.isNull(systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("username", systemAuthAdminParam.getUsername())
.ne("id", systemAuthAdminParam.getId())
.last("limit 1")), "账号已存在换一个吧!");
Assert.isNull(systemAuthAdminMapper.selectOne(new QueryWrapper<SystemAuthAdmin>()
.select(field)
.eq("is_delete", 0)
.eq("nickname", systemAuthAdminParam.getNickname())
.ne("id", systemAuthAdminParam.getId())
.last("limit 1")), "昵称已存在换一个吧!");
if (systemAuthAdminParam.getRole() > 0 && systemAuthAdminParam.getId() != 1) {
Assert.notNull(iSystemAuthRoleService.detail(systemAuthAdminParam.getRole()), "角色不存在!");
}
//判断当前参数是否可以小程序登录
boolean mnpLogin = iSystemAuthRoleService.isMnpLogin(systemAuthAdminParam.getRole());
SystemAuthAdmin model = new SystemAuthAdmin();
model.setId(systemAuthAdminParam.getId());
model.setDeptId(systemAuthAdminParam.getDeptId());
model.setPostId(systemAuthAdminParam.getPostId());
model.setNickname(systemAuthAdminParam.getNickname());
model.setUsername(systemAuthAdminParam.getUsername());
model.setAvatar(UrlUtil.toRelativeUrl(systemAuthAdminParam.getAvatar()));
model.setRole(systemAuthAdminParam.getId() == 1 ? 0 : systemAuthAdminParam.getRole());
model.setSort(systemAuthAdminParam.getSort());
model.setPhone(systemAuthAdminParam.getPhone());
model.setPlantId(systemAuthAdminParam.getPlantId());
model.setProvinceId(systemAuthAdminParam.getProvinceId());
model.setCityId(systemAuthAdminParam.getCityId());
model.setDistrictId(systemAuthAdminParam.getDistrictId());
model.setIsMultipoint(systemAuthAdminParam.getIsMultipoint());
model.setIsDisable(systemAuthAdminParam.getIsDisable());
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setSex(systemAuthAdminParam.getSex());
model.setAge(systemAuthAdminParam.getAge());
model.setEmail(systemAuthAdminParam.getEmail());
model.setTechnicalGrade(systemAuthAdminParam.getTechnicalGrade());
if (systemAuthAdminParam.getPassword() != null && !systemAuthAdminParam.getPassword().equals("")) {
if (systemAuthAdminParam.getPassword() != null && !systemAuthAdminParam.getPassword().isEmpty()) {
if (systemAuthAdminParam.getPassword().length() < 6 || systemAuthAdminParam.getPassword().length() > 20) {
throw new OperateException("密码必须在6~20位");
}
String salt = ToolsUtil.randomString(5);
String pwd = ToolsUtil.makeMd5(systemAuthAdminParam.getPassword().trim() + salt);
model.setPassword(pwd);
model.setSalt(salt);
systemAuthAdmin.setPassword(pwd);
systemAuthAdmin.setSalt(salt);
}
systemAuthAdminMapper.updateById(model);
if(systemAuthAdmin.getUserId() != null && !mnpLogin){
//删除小程序用户
userMapper.deleteById(systemAuthAdmin.getUserId());
//删除小程序用户授权
userAuthMapper.delete(new LambdaQueryWrapper<UserAuth>().eq(UserAuth::getUserId,systemAuthAdmin.getUserId()));
systemAuthAdmin.setUserId(null);
}else if(systemAuthAdmin.getUserId() == null && mnpLogin){
Assert.isNull(userMapper.getUserByPhone(systemAuthAdminParam.getPhone()),"该手机号小程序已被注册");
//新增小程序用户
User user = new User();
user.setSn(iUserService.randMakeSn());
user.setType(UserTypeEnum.USER_SIDE.getType());
user.setAvatar(systemAuthAdminParam.getAvatar());
user.setNickname(systemAuthAdminParam.getUsername());
user.setUsername(systemAuthAdminParam.getUsername());
user.setSex(systemAuthAdminParam.getSex());
user.setLastLoginTime(System.currentTimeMillis() / 1000);
user.setCreateTime(System.currentTimeMillis() / 1000);
user.setMobile(systemAuthAdminParam.getPhone());
userMapper.insert(user);
systemAuthAdmin.setUserId(user.getId().longValue());
}else if(!systemAuthAdminParam.getPhone().equals(systemAuthAdmin.getPhone())){
User user = userMapper.selectById(systemAuthAdmin.getUserId());
if(user != null){
org.springframework.util.Assert.isNull(userMapper.getUserByPhone(systemAuthAdminParam.getPhone()),"该手机号小程序已被注册");
user.setMobile(systemAuthAdminParam.getPhone());
userMapper.updateById(user);
}
}
//更新admin信息
BeanUtils.copyProperties(systemAuthAdminParam, systemAuthAdmin);
systemAuthAdmin.setUpdateTime(System.currentTimeMillis() / 1000);
systemAuthAdminMapper.updateById(systemAuthAdmin);
this.cacheAdminUserByUid(systemAuthAdminParam.getId());
Integer id = AdminThreadLocal.getAdminId();

View File

@ -42,9 +42,9 @@ public class SystemAuthMenuServiceImpl implements ISystemAuthMenuService {
* @return JSONArray
*/
@Override
public JSONArray selectMenuByRoleId(Integer roleId) {
public JSONArray selectMenuByRoleId(String roleId) {
Integer adminId = AdminThreadLocal.getAdminId();
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleId(roleId);
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleIds(roleId);
QueryWrapper<SystemAuthMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.in("menu_type", Arrays.asList("M", "C"));

View File

@ -38,15 +38,15 @@ public class SystemAuthPermServiceImpl implements ISystemAuthPermService {
/**
* IDID
*
* @param roleId ID
* @param roleIds ID
* @return List<Integer>
*/
@Override
public List<Integer> selectMenuIdsByRoleId(Integer roleId) {
public List<Integer> selectMenuIdsByRoleIds(String roleIds) {
List<Integer> menus = new LinkedList<>();
SystemAuthRole systemAuthRole = systemAuthRoleMapper.selectOne(new QueryWrapper<SystemAuthRole>()
.eq("id", roleId)
.in("id", Arrays.asList(roleIds.split(",")))
.eq("is_disable", 0)
.last("limit 1"));
@ -55,7 +55,7 @@ public class SystemAuthPermServiceImpl implements ISystemAuthPermService {
}
List<SystemAuthPerm> systemAuthPerms = systemAuthPermMapper.selectList(
new QueryWrapper<SystemAuthPerm>().eq("role_id", roleId));
new QueryWrapper<SystemAuthPerm>().in("role_id", Arrays.asList(roleIds.split(","))));
for (SystemAuthPerm systemAuthPerm : systemAuthPerms) {
menus.add(systemAuthPerm.getMenuId());
}

View File

@ -13,6 +13,7 @@ import com.hcy.admin.vo.system.SystemAuthRoleVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.system.SystemAuthRole;
import com.hcy.common.enums.user.SystemAuthRoleEnum;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.system.SystemAuthRoleMapper;
import com.hcy.common.utils.RedisUtil;
@ -47,9 +48,14 @@ public class SystemAuthRoleServiceImpl implements ISystemAuthRoleService {
* @return List<SystemAuthRoleVo>
*/
@Override
public List<Map<String, Object>> all() {
public List<Map<String, Object>> all(Integer isClient) {
QueryWrapper<SystemAuthRole> queryWrapper = new QueryWrapper<>();
queryWrapper.select("id,name,create_time,update_time");
if(isClient == 0){
queryWrapper.in("id", Arrays.asList(SystemAuthRoleEnum.KH_CGY.getType(),SystemAuthRoleEnum.KH_ZGRY.getType(), SystemAuthRoleEnum.KH_KFRY.getType()));
}else{
queryWrapper.notIn("id", Arrays.asList(SystemAuthRoleEnum.KH_CGY.getType(),SystemAuthRoleEnum.KH_ZGRY.getType(), SystemAuthRoleEnum.KH_KFRY.getType()));
}
queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
List<SystemAuthRole> systemAuthRoles = systemAuthRoleMapper.selectList(queryWrapper);
@ -110,9 +116,9 @@ public class SystemAuthRoleServiceImpl implements ISystemAuthRoleService {
* @return SysRole
*/
@Override
public SystemAuthRoleVo detail(Integer id) {
public SystemAuthRoleVo detail(String id) {
SystemAuthRole systemAuthRole = systemAuthRoleMapper.selectOne(new QueryWrapper<SystemAuthRole>()
.eq("id", id)
.in("id", Arrays.asList(id.split(",")))
.last("limit 1"));
Assert.notNull(systemAuthRole, "角色已不存在!");
@ -124,7 +130,7 @@ public class SystemAuthRoleServiceImpl implements ISystemAuthRoleService {
SystemAuthRoleVo vo = new SystemAuthRoleVo();
BeanUtils.copyProperties(systemAuthRole, vo);
vo.setMember(member);
vo.setMenus(iSystemAuthPermService.selectMenuIdsByRoleId(systemAuthRole.getId()));
vo.setMenus(iSystemAuthPermService.selectMenuIdsByRoleIds(String.valueOf(systemAuthRole.getId())));
vo.setCreateTime(TimeUtil.timestampToDate(systemAuthRole.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemAuthRole.getUpdateTime()));
@ -147,6 +153,7 @@ public class SystemAuthRoleServiceImpl implements ISystemAuthRoleService {
SystemAuthRole model = new SystemAuthRole();
model.setName(systemAuthRoleParam.getName().trim());
model.setIsMnpLogin(Integer.parseInt(SystemAuthRoleEnum.CAN_LOGIN.getType()));
model.setRemark(systemAuthRoleParam.getRemark());
model.setSort(systemAuthRoleParam.getSort());
model.setIsDisable(systemAuthRoleParam.getIsDisable());
@ -217,4 +224,24 @@ public class SystemAuthRoleServiceImpl implements ISystemAuthRoleService {
RedisUtil.hDel(AdminConfig.backstageRolesKey, String.valueOf(id));
}
/**
*
* @param role id
* @return boolean true false
*/
@Override
public boolean isMnpLogin(String role){
List<SystemAuthRole> systemAuthRoleList = systemAuthRoleMapper.findSystemAuthRoleListByIds(role);
Assert.isFalse(systemAuthRoleList.isEmpty(),"角色不存在");
//是否可以小程序登录
boolean isMnpLogin = false;
for (SystemAuthRole item : systemAuthRoleList) {
Assert.isTrue(item.getIsDisable() <= 0, "选择的角色已被禁用!");
if(item.getIsMnpLogin().equals(Integer.valueOf(SystemAuthRoleEnum.CAN_LOGIN.getType()))){
isMnpLogin = true;
}
}
return isMnpLogin;
}
}

View File

@ -57,4 +57,10 @@ public interface IUserService {
*
*/
PageResult<UserVo> getNotBindingStaffUser(PageParam pageParam, Map<String, String> params);
/**
* sn
* @return sn
*/
Integer randMakeSn();
}

View File

@ -23,6 +23,7 @@ import com.hcy.common.mapper.group.DistributeGroupMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.StringUtil;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.ToolsUtil;
import com.hcy.common.utils.UrlUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -401,4 +402,20 @@ public class UserServiceImpl implements IUserService {
return PageResult.iPageHandle(resultDtoPage.getTotal(), resultDtoPage.getCurrent(), resultDtoPage.getSize(), userVoList);
}
@Override
public Integer randMakeSn() {
Integer sn;
while (true) {
sn = Integer.parseInt(ToolsUtil.randomInt(8));
User snModel = userMapper.selectOne(new QueryWrapper<User>()
.select("id,sn,username")
.eq("sn", sn)
.last("limit 1"));
if (snModel == null) {
break;
}
}
return sn;
}
}

View File

@ -78,5 +78,5 @@ public class ClientContactsParam implements Serializable {
*
*/
@NotNull(message = "role参数缺失", groups = {create.class, update.class})
private Integer role;
private String role;
}

View File

@ -24,24 +24,14 @@ public class FaultParam implements Serializable {
private Long id;
@NotNull(message = "faultType参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "faultType参数值不能少于0", groups = {create.class, update.class})
private Long faultType;
@NotNull(message = "sort参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "sort参数值不能少于0", groups = {create.class, update.class})
private Long sort;
@NotNull(message = "name参数缺失", groups = {create.class, update.class})
@Length(max = 50, message = "name参数不能超出50个字符", groups = {create.class, update.class})
private String name;
@NotNull(message = "description参数缺失", groups = {create.class, update.class})
@Length(max = 250, message = "description参数不能超出250个字符", groups = {create.class, update.class})
private String description;
@NotNull(message = "status参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "status参数值不能少于0", groups = {create.class, update.class})
private Integer status;
}

View File

@ -32,8 +32,7 @@ public class SystemAuthAdminParam implements Serializable {
private Integer id;
@NotNull(message = "请选择角色", groups = {create.class, update.class})
@Min(value = 0, message = "role参数异常", groups = {create.class, update.class})
private Integer role;
private String role;
@NotEmpty(message = "账号不能为空", groups = {create.class, update.class})
@Length(min = 2, max = 20, message = "账号必须在2~20个字符内", groups = {create.class, update.class})

View File

@ -38,5 +38,5 @@ public class ClientContactsDetailVo implements Serializable {
/**
*
*/
private Integer role;
private String role;
}

View File

@ -20,5 +20,6 @@ public class FaultListVo implements Serializable {
private String description; // 故障描述
private Integer status; // 状态 0-正常 1-停用
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
}

View File

@ -14,6 +14,7 @@ public class SystemAuthRoleVo implements Serializable {
private Integer id; // 主键
private String name; // 角色名称
private Integer isMnpLogin; // 是否小程序登录 0-可以 1-不可以
private String remark; // 角色备注
private Object menus; // 关联菜单
private Integer member; // 成员数量

View File

@ -0,0 +1,40 @@
package com.hcy.common.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class SystemAuthAdminDto implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id; // 主键
private Integer deptId; // 部门ID
private Integer postId; // 岗位ID
private String username; // 账号
private String nickname; // 昵称
private String avatar; // 头像
private String dept; // 部门
private String role; // 角色
private String phone; // 联系电话
private Integer plantId; // 管辖工厂
private Long provinceId; //省id
private Long cityId; //市id
private Long districtId; //区id
private String province; //省
private String city; //市
private String district; //区
private Integer isMultipoint; // 多端登录: [0=否, 1=是]
private Integer isDisable; // 是否禁用: [0=否, 1=是]
private String lastLoginIp; // 最后登录IP
private String lastLoginTime; // 最后登录时间
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String plantName; //工厂名
private Integer sex; // 性别 0-男 1-女
private Integer age; // 年龄
private String email; // 邮箱
private String technicalGrade; // 技术等级
}

View File

@ -1,6 +1,8 @@
package com.hcy.common.entity.client;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@ -18,6 +20,7 @@ public class ClientContacts implements Serializable {
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long clientId; // 客户id
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long userId; // 用户id
private Long adminId; //后台id
private String name; // 姓名

View File

@ -17,12 +17,13 @@ public class Fault implements Serializable {
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long faultType; // 问题类型 1-常见问题 2-常见维修结论描述
private Long faultType; // 问题类型 0-常见问题 1-常见检修结论描述 2-常见维修结论描述 3-报废类型管理
private Long sort; // 序号
private String name; // 故障名称
private String description; // 故障描述
private Integer status; // 状态 0-正常 1-停用
private Date createTime; // 创建时间
private Date updateTime; //更新时间
private Integer isDelete; // 是否删除 0-未删除 1-删除
}

View File

@ -1,6 +1,8 @@
package com.hcy.common.entity.system;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@ -22,8 +24,8 @@ public class SystemAuthAdmin implements Serializable {
private String username; // 用户昵称
private String password; // 用户密码
private String avatar; // 用户头像
private String salt; // 角色主键
private Integer role; // 加密盐巴
private String salt; // 加密盐巴
private String role; // 角色主键
private Integer sort; // 排序编号
private String phone; // 联系电话
private Integer plantId; // 管辖工厂
@ -42,4 +44,6 @@ public class SystemAuthAdmin implements Serializable {
private Integer age; // 年龄
private String email; // 邮箱
private String technicalGrade; // 技术等级
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long userId; //用户id
}

View File

@ -17,6 +17,7 @@ public class SystemAuthRole implements Serializable {
@TableId(value="id", type= IdType.AUTO)
private Integer id; // 主键
private String name; // 角色名称
private Integer isMnpLogin; // 是否小程序登录 0-可以 1-不可以
private String remark; // 备注信息
private Integer sort; // 角色排序
private Integer isDisable; // 是否禁用: [0=否, 1=是]

View File

@ -0,0 +1,62 @@
package com.hcy.common.enums.user;
import com.google.common.collect.Maps;
import java.util.Map;
/**
*
*/
public enum SystemAuthRoleEnum {
KH_ZGRY("1", "客户-主管人员"),
KH_KFRY("2", "客户-客服人员"),
PT_GLY("3", "平台-管理员"),
PT_KFRY("4", "平台-客服人员"),
CK_WLCGY("5", "仓库-物料仓管员"),
JX_XCJXY("6", "检修-现场检修员"),
WX_CNWXY("7", "维修-厂内维修员"),
YW_YWZG("8", "业务-业务主管"),
YW_YWY("9", "业务-业务员"),
CN_WXZG("10","厂内-维修主管"),
KH_CGY("11","客户-采购员"),
CAN_LOGIN("0","可以登录"),
NOT_LOGIN("1","禁止登录");
private final String type;
private final String desc;
SystemAuthRoleEnum(String type, String desc) {
this.type = type;
this.desc = desc;
}
/**
*
*
* @return int
* @author dabin
*/
public String getType() {
return this.type;
}
/**
*
*
* @return String
* @author dabin
*/
public String getDesc() {
return this.desc;
}
public static Map<String, String> getMap() {
Map<String, String> map = Maps.newHashMap();
for (SystemAuthRoleEnum userRoleEnum : SystemAuthRoleEnum.values()) {
map.put(userRoleEnum.type, userRoleEnum.desc);
}
return map;
}
}

View File

@ -1,59 +0,0 @@
package com.hcy.common.enums.user;
import com.google.common.collect.Maps;
import java.util.Map;
/**
*
*/
public enum UserRoleEnum {
KH_ZGRY(1, "客户-主管人员"),
KH_KFRY(2, "客户-客服人员"),
PT_GLY(3, "平台-管理员"),
PT_KFRY(4, "平台-客服人员"),
CK_WLCGY(5, "仓库-物料仓管员"),
JX_XCJXY(6, "检修-现场检修员"),
WX_CNWXY(7, "维修-厂内维修员"),
YW_YWZG(8, "业务-业务主管"),
YW_YWY(9, "业务-业务员"),
CN_WXZG(10,"厂内-维修主管"),
KH_CGY(11,"客户-采购员");
private final int code;
private final String desc;
UserRoleEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
/**
*
*
* @return int
* @author dabin
*/
public int getType() {
return this.code;
}
/**
*
*
* @return String
* @author dabin
*/
public String getDesc() {
return this.desc;
}
public static Map<Integer, String> getMap() {
Map<Integer, String> map = Maps.newHashMap();
for (UserRoleEnum userRoleEnum : UserRoleEnum.values()) {
map.put(userRoleEnum.code, userRoleEnum.desc);
}
return map;
}
}

View File

@ -1,12 +1,17 @@
package com.hcy.common.mapper.system;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.dto.SystemAuthAdminDto;
import com.hcy.common.entity.system.SystemAuthAdmin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*/
@Mapper
public interface SystemAuthAdminMapper extends IBaseMapper<SystemAuthAdmin> {
Page<SystemAuthAdminDto> list(Page page, @Param("param") SystemAuthAdminDto param);
}

View File

@ -3,10 +3,17 @@ package com.hcy.common.mapper.system;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.system.SystemAuthRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Mapper
*/
@Mapper
public interface SystemAuthRoleMapper extends IBaseMapper<SystemAuthRole> {
@Select("select * from la_system_auth_role where find_in_set(id,#{ids})")
List<SystemAuthRole> findSystemAuthRoleListByIds(@Param("ids") String ids);
}

View File

@ -28,4 +28,12 @@ public interface UserMapper extends IBaseMapper<User> {
@Select("select * from la_user where type = 0 and is_delete = 0")
List<User> queryUserTypeList();
/**
*
* @param phone
* @return
*/
@Select("select * from la_user where mobile = #{phone}")
User getUserByPhone(@Param("phone") String phone);
}

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hcy.common.mapper.system.SystemAuthAdminMapper">
<select id="list" resultType="com.hcy.common.dto.SystemAuthAdminDto">
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
FROM
la_system_auth_admin t
LEFT JOIN la_system_auth_role sr ON sr.id = t.role
LEFT JOIN la_system_auth_dept sd ON sd.id = t.dept_id
<where>
t.is_delete = 0
and sr.id NOT IN ( 1, 2, 11 )
<if test="param.role != null and param.role != ''">
and FIND_IN_SET(#{param.role},t.role)
</if>
<if test="param.username != null and param.username != ''">
and t.username like concat('%',#{param.username},'%')
</if>
<if test="param.nickname != null and param.nickname != ''">
and t.nickname like concat('%',#{param.nickname},'%')
</if>
</where>
ORDER BY
t.id DESC,
t.sort DESC
</select>
</mapper>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hcy.common.mapper.system.SystemAuthAdminMapper">
<select id="list" resultType="com.hcy.common.dto.SystemAuthAdminDto">
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
FROM
la_system_auth_admin t
LEFT JOIN la_system_auth_role sr ON sr.id = t.role
LEFT JOIN la_system_auth_dept sd ON sd.id = t.dept_id
<where>
t.is_delete = 0
and sr.id NOT IN ( 1, 2, 11 )
<if test="param.role != null and param.role != ''">
and FIND_IN_SET(#{param.role},t.role)
</if>
<if test="param.username != null and param.username != ''">
and t.username like concat('%',#{param.username},'%')
</if>
<if test="param.nickname != null and param.nickname != ''">
and t.nickname like concat('%',#{param.nickname},'%')
</if>
</where>
ORDER BY
t.id DESC,
t.sort DESC
</select>
</mapper>

View File

@ -47,6 +47,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpUser;
import me.chanjar.weixin.mp.bean.result.WxMpUserList;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import me.chanjar.weixin.mp.config.impl.WxMpMapConfigImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
@ -162,8 +163,8 @@ public class LoginServiceImpl implements ILoginService {
userAuthMapper.insert(auth);
}else{
// 更新微信标识
if (StringUtil.isEmpty(userAuth.getUnionid()) && StringUtil.isNotEmpty(sessionResult.getUnionid())) {
userAuth.setUnionid(sessionResult.getUnionid());
if (StringUtils.isNotEmpty(openId)) {
userAuth.setOpenid(openId);
userAuthMapper.updateById(userAuth);
}

View File

@ -10,14 +10,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.hcy.common.config.GlobalConfig;
import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.distribution.Distributor;
import com.hcy.common.entity.staff.Staff;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.user.UserAuth;
import com.hcy.common.enums.NoticeEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.client.ClientContactsMapper;
import com.hcy.common.mapper.distribution.DistributorMapper;
import com.hcy.common.mapper.staff.StaffMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserAuthMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.*;
@ -50,10 +54,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
UserAuthMapper userAuthMapper;
@Resource
private StaffMapper staffMapper;
DistributorMapper distributorMapper;
@Resource
DistributorMapper distributorMapper;
ClientContactsMapper clientContactsMapper;
@Resource
SystemAuthAdminMapper systemAuthAdminMapper;
/**
*
@ -75,8 +82,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
UserCenterVo vo = new UserCenterVo();
BeanUtils.copyProperties(user, vo);
vo.setBindMnp(userAuth != null);
if (user.getAvatar().equals("")) {
if (user.getAvatar().isEmpty()) {
String avatar = ConfigUtil.get("user", "defaultAvatar", "");
vo.setAvatar(UrlUtil.toAbsoluteUrl(avatar));
}else if(user.getAvatar().contains("byteacctimg")){
@ -84,22 +91,29 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
}else{
vo.setAvatar(UrlUtil.toAbsoluteUrl(user.getAvatar()));
}
LambdaQueryWrapper<Staff> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Staff::getUserId, user.getId());
lambdaQueryWrapper.eq(Staff::getIsDelete, 0);
lambdaQueryWrapper.last("limit 1");
Staff staff = staffMapper.selectOne(lambdaQueryWrapper);
if (staff != null) {
vo.setStaff(Boolean.TRUE);
vo.setStaffId(staff.getId());
//设置客户id
ClientContacts clientContacts = clientContactsMapper.selectOne(new LambdaQueryWrapper<ClientContacts>()
.eq(ClientContacts::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(ClientContacts::getUserId, userId)
.last("limit 1"));
if(clientContacts != null){
vo.setClientId(clientContacts.getClientId());
}
QueryWrapper<Distributor> distributorQueryWrapper = new QueryWrapper<>();
distributorQueryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);
distributorQueryWrapper.eq("user_id",vo.getId());
Distributor distributor = distributorMapper.selectOne(distributorQueryWrapper);
if(distributor != null){
vo.setDistributorId(distributor.getId());
//设置角色id
LambdaQueryWrapper<SystemAuthAdmin> queryWrapper = new LambdaQueryWrapper<SystemAuthAdmin>()
.eq(SystemAuthAdmin::getIsDelete, GlobalConstant.NOT_DELETE)
.last("limit 1");
if(clientContacts != null && clientContacts.getAdminId() != null){
queryWrapper.eq(SystemAuthAdmin::getUserId, clientContacts.getAdminId());
}else{
queryWrapper.eq(SystemAuthAdmin::getUserId, userId);
}
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectOne(queryWrapper);
if(systemAuthAdmin != null){
vo.setRoleId(systemAuthAdmin.getRole());
}
return vo;

View File

@ -19,9 +19,7 @@ public class UserCenterVo implements Serializable {
private String nickname;
private String username;
private String mobile;
private boolean isStaff;
private boolean isBindMnp;
private Long distributorId;
private Long staffId;
private String roleId; //角色id
private Long clientId; //客户id
}