| | |
| | | package com.zy.system.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.zy.common.i18n.I18nMessageService; |
| | | import com.zy.common.web.BaseController; |
| | | import com.zy.system.entity.Role; |
| | | import com.zy.system.entity.User; |
| | | import com.zy.system.entity.UserLogin; |
| | | import com.zy.system.service.RoleService; |
| | | import com.zy.system.service.UserLoginService; |
| | | import com.zy.system.service.UserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | private UserService userService; |
| | | @Autowired |
| | | private RoleService roleService; |
| | | @Autowired |
| | | private UserLoginService userLoginService; |
| | | @Autowired |
| | | private I18nMessageService i18nMessageService; |
| | | |
| | | @RequestMapping(value = "/user/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") Long id) { |
| | | return R.ok(userService.selectById(String.valueOf(id))); |
| | | return R.ok(userService.getById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/user/list/auth") |
| | |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | excludeTrash(param); |
| | | EntityWrapper<User> wrapper = new EntityWrapper<>(); |
| | | QueryWrapper<User> wrapper = new QueryWrapper<>(); |
| | | convert(param, wrapper); |
| | | wrapper.orderBy("id", false); |
| | | wrapper.orderBy(true, false, "id"); |
| | | if (9527 == getUserId()) { |
| | | return R.ok(userService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | return R.ok(userService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | Long roleId = getUser().getRoleId(); |
| | | Role role = roleService.selectById(roleId); |
| | | Role role = roleService.getById(roleId); |
| | | Long leaderId = role.getLeader(); |
| | | if (null != leaderId) { |
| | | List<Long> leaderIds = new ArrayList<>(); |
| | | leaderIds.add(role.getId()); |
| | | while (leaderId != null) { |
| | | Role leader = roleService.selectById(leaderId); |
| | | Role leader = roleService.getById(leaderId); |
| | | leaderIds.add(leader.getId()); |
| | | leaderId = leader.getLeader(); |
| | | } |
| | | wrapper.notIn("role_id", leaderIds); |
| | | } |
| | | |
| | | return R.ok(userService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | return R.ok(userService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | private void convert(Map<String, Object> map, EntityWrapper wrapper){ |
| | | private void convert(Map<String, Object> map, QueryWrapper wrapper){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | if (entry.getKey().endsWith(">")) { |
| | | wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue()))); |
| | |
| | | return R.error(); |
| | | } |
| | | if (null == user.getId()){ |
| | | userService.insert(user); |
| | | } else { |
| | | userService.updateById(user); |
| | | normalizeNewUser(user); |
| | | userService.save(user); |
| | | return R.ok(); |
| | | } |
| | | return R.ok(); |
| | | return update(user); |
| | | } |
| | | |
| | | @RequestMapping(value = "/user/add/auth") |
| | | @ManagerAuth(memo = "系统用户添加") |
| | | public R add(User user) { |
| | | userService.insert(user); |
| | | normalizeNewUser(user); |
| | | userService.save(user); |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | if (Cools.isEmpty(user) || null==user.getId()){ |
| | | return R.error(); |
| | | } |
| | | User entity = userService.selectById(user.getId()); |
| | | User entity = userService.getById(user.getId()); |
| | | if (Cools.isEmpty(entity)) { |
| | | return new R(10001, i18nMessageService.getMessage("response.user.notFound")); |
| | | } |
| | | UpdateWrapper<User> wrapper = new UpdateWrapper<>(); |
| | | wrapper.eq("id", entity.getId()); |
| | | boolean needUpdate = false; |
| | | if (user.getPassword()!=null) { |
| | | entity.setPassword(user.getPassword()); |
| | | wrapper.set("password", user.getPassword()); |
| | | needUpdate = true; |
| | | } |
| | | if (user.getUsername()!=null) { |
| | | entity.setUsername(user.getUsername()); |
| | | wrapper.set("username", user.getUsername()); |
| | | needUpdate = true; |
| | | } |
| | | if (user.getMobile()!=null) { |
| | | entity.setMobile(user.getMobile()); |
| | | wrapper.set("mobile", user.getMobile()); |
| | | needUpdate = true; |
| | | } |
| | | if (user.getRoleId() !=null) { |
| | | entity.setRoleId(user.getRoleId()); |
| | | wrapper.set("role_id", user.getRoleId()); |
| | | needUpdate = true; |
| | | } |
| | | userService.updateById(entity); |
| | | if (user.getMfaAllow() != null) { |
| | | int mfaAllow = normalizeMfaAllow(user.getMfaAllow()); |
| | | wrapper.set("mfa_allow", mfaAllow); |
| | | if (mfaAllow != 1) { |
| | | wrapper.set("mfa_enabled", 0); |
| | | wrapper.set("mfa_secret", null); |
| | | wrapper.set("mfa_bound_time", null); |
| | | } |
| | | needUpdate = true; |
| | | } |
| | | if (!needUpdate) { |
| | | return R.ok(); |
| | | } |
| | | userService.update(wrapper); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/user/password/update/auth") |
| | | @ManagerAuth(memo = "系统用户修改密码") |
| | | public R updatePassword(String oldPassword, String password) { |
| | | if (Cools.isEmpty(oldPassword, password)) { |
| | | return R.error(); |
| | | } |
| | | User user = userService.getById(getUserId()); |
| | | if (Cools.isEmpty(user)) { |
| | | return new R(10001, i18nMessageService.getMessage("response.user.notFound")); |
| | | } |
| | | if (!Cools.eq(user.getPassword(), oldPassword)) { |
| | | return new R(10008, i18nMessageService.getMessage("response.user.oldPasswordMismatch")); |
| | | } |
| | | userService.update(new UpdateWrapper<User>() |
| | | .eq("id", user.getId()) |
| | | .set("password", password)); |
| | | userLoginService.remove(new QueryWrapper<UserLogin>().eq("user_id", user.getId()).eq("system_type", "WCS")); |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | @ManagerAuth(memo = "系统用户删除") |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | userService.deleteById(id); |
| | | userService.removeById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | |
| | | @ManagerAuth(memo = "系统用户导出") |
| | | public R export(@RequestBody JSONObject param){ |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | EntityWrapper<User> wrapper = new EntityWrapper<>(); |
| | | QueryWrapper<User> wrapper = new QueryWrapper<>(); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("user")); |
| | | convert(map, wrapper); |
| | | List<User> list = userService.selectList(wrapper); |
| | | List<User> list = userService.list(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/userQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<User> wrapper = new EntityWrapper<>(); |
| | | QueryWrapper<User> wrapper = new QueryWrapper<>(); |
| | | wrapper.like("username", condition); |
| | | Page<User> page = userService.selectPage(new Page<>(0, 10), wrapper); |
| | | Page<User> page = userService.page(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (User user : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | return R.ok(result); |
| | | } |
| | | |
| | | private void normalizeNewUser(User user) { |
| | | if (Cools.isEmpty(user)) { |
| | | return; |
| | | } |
| | | int mfaAllow = normalizeMfaAllow(user.getMfaAllow()); |
| | | user.setMfaAllow(mfaAllow); |
| | | if (mfaAllow != 1) { |
| | | user.setMfaEnabled(0); |
| | | user.setMfaSecret(null); |
| | | user.setMfaBoundTime(null); |
| | | } else if (user.getMfaEnabled() == null) { |
| | | user.setMfaEnabled(0); |
| | | } |
| | | } |
| | | |
| | | private int normalizeMfaAllow(Integer mfaAllow) { |
| | | return Integer.valueOf(1).equals(mfaAllow) ? 1 : 0; |
| | | } |
| | | |
| | | } |