UserController.java 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. package platform.modules.sys.web;
  2. import com.github.pagehelper.PageInfo;
  3. import com.xiaoleilu.hutool.crypto.SecureUtil;
  4. import io.swagger.models.auth.In;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.apache.tomcat.util.bcel.Const;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.ModelMap;
  11. import org.springframework.web.bind.annotation.*;
  12. import platform.common.Constant;
  13. import platform.common.annotation.OperationLog;
  14. import platform.common.base.controller.BaseController;
  15. import platform.common.exception.BaseException;
  16. import platform.common.util.ShiroUtils;
  17. import platform.common.util.ThreadPoolUtil;
  18. import platform.common.util.VerificationCodeUtil;
  19. import platform.modules.api.dto.SyncUserDto;
  20. import platform.modules.api.service.SkyImageApiService;
  21. import platform.modules.build.entity.Company;
  22. import platform.modules.build.service.BuildInfoService;
  23. import platform.modules.build.service.CompanyService;
  24. import platform.modules.government.entity.Street;
  25. import platform.modules.government.entity.User;
  26. import platform.modules.government.service.StreetService;
  27. import platform.modules.government.service.UserService;
  28. import platform.modules.sys.entity.Department;
  29. import platform.modules.sys.entity.Group;
  30. import platform.modules.sys.entity.Role;
  31. import platform.modules.sys.entity.UserRole;
  32. import platform.modules.sys.service.DepartmentService;
  33. import platform.modules.sys.service.GroupService;
  34. import platform.modules.sys.service.RoleService;
  35. import platform.modules.sys.service.UserRoleService;
  36. import platform.modules.sys.vo.RoleQuery;
  37. import java.util.ArrayList;
  38. import java.util.List;
  39. import java.util.concurrent.CompletableFuture;
  40. /**
  41. * 用户管理(政府)Controller
  42. *
  43. * @author lhf
  44. * @version 2017-10-26
  45. */
  46. @Controller
  47. @RequestMapping(value = "/admin/user")
  48. public class UserController extends BaseController {
  49. @Autowired
  50. private UserService userService;
  51. @Value("${resetPassword}")
  52. private String resetPassword;
  53. @Autowired
  54. private CompanyService companyService;
  55. @Autowired
  56. private StreetService streetService;
  57. @Autowired
  58. private BuildInfoService buildInfoService;
  59. @Autowired
  60. private DepartmentService departmentService;
  61. @Autowired
  62. private RoleService roleService;
  63. @Autowired
  64. private GroupService groupService;
  65. @Autowired
  66. private VerificationCodeUtil verificationCodeUtil;
  67. @Autowired
  68. private SkyImageApiService skyImageApiService;
  69. @OperationLog(value = "查看用户列表")
  70. @GetMapping(value = "/list")
  71. public String list(
  72. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  73. String keyword, ModelMap modelMap, User searchCondition, String item_selected) throws Exception {
  74. try {
  75. log.debug("分页查询用户列表参数! pageNum = {}, keyword = {}", pageNum, keyword);
  76. PageInfo<User> pageInfo = userService.findPage2(pageNum, PAGESIZE, keyword, searchCondition);
  77. log.info("分页查询用户列表结果! pageInfo = {}", pageInfo);
  78. modelMap.put("pageInfo", pageInfo);
  79. modelMap.put("keyword", keyword);
  80. modelMap.put("searchCondition", searchCondition);
  81. modelMap.put("user_type", ShiroUtils.getUserEntity().getUser_type());
  82. modelMap.put("streetList", streetService.findList());
  83. modelMap.put("item_selected", item_selected);
  84. //根据角色查询
  85. Role role = new Role();
  86. role.setDel_flag(false);
  87. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  88. if (ShiroUtils.getUserType().equals(Constant.UserType.STREET)) {
  89. //街道看见super创建的角色和自己创建的角色
  90. modelMap.addAttribute("roles", roleService.getSuperAndOwnRoles());
  91. } else if (ShiroUtils.getUserType().equals(Constant.UserType.BUILD)) {
  92. role.setBuild_id(ShiroUtils.getBuildId());
  93. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  94. } else if (ShiroUtils.getUserType().equals(Constant.UserType.COMPANY)) {
  95. role.setCompany_id(ShiroUtils.getCompanyId());
  96. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  97. } else if (ShiroUtils.getUserType().equals(Constant.UserType.SUPER)) {
  98. role.setUser_type(null);//所有角色,除了企业角色,企业角色在前端页面过滤
  99. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  100. } else if (ShiroUtils.getUserType().equals(Constant.UserType.GOVERNMENT)) {
  101. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  102. }
  103. } catch (Exception e) {
  104. e.printStackTrace();
  105. }
  106. return BASE_SYS_PATH + "user_list";
  107. }
  108. @GetMapping("/role")
  109. @ResponseBody
  110. public Object role(RoleQuery query) {
  111. Role role = new Role();
  112. role.setDel_flag(false);
  113. List<Role> sRoles = new ArrayList<>();
  114. if (query.getUser_type() != null) {
  115. role.setUser_type(query.getUser_type());
  116. if (ShiroUtils.getUserType().equals(Constant.UserType.STREET)) {
  117. if (query.getUser_type().equals(Constant.UserType.STREET))
  118. return ResponseMessage.success("success", roleService.getSuperAndOwnRoles());
  119. if (query.getUser_type().equals(Constant.UserType.COMPANY))
  120. return ResponseMessage.success("success", roleService.getStreetCompanyRole());
  121. }
  122. }
  123. if (query.getStreet_id() != null) {
  124. role.setStreet_id(query.getStreet_id());
  125. sRoles = getStreetSuperRole();
  126. }
  127. List<Role> roles = roleService.findListByWhere(role);
  128. if (sRoles.size() > 0) {
  129. roles.addAll(sRoles);
  130. }
  131. return ResponseMessage.success("success", roles);
  132. }
  133. private List<Role> getStreetSuperRole() {
  134. Role sRole = new Role();
  135. sRole.setDel_flag(false);
  136. // sRole.setStreet_id(street_id);
  137. sRole.setUser_type(Constant.UserType.STREET);
  138. sRole.setIs_super(Constant.IsSuperRole.SUPER_ROLE);
  139. return roleService.findListByWhere(sRole);
  140. }
  141. @GetMapping(value = "/findCompanyList")
  142. public String findCompanyList(
  143. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  144. String keyword, ModelMap modelMap, User searchCondition, String item_selected) throws Exception {
  145. try {
  146. log.debug("分页查询用户列表参数! pageNum = {}, keyword = {}", pageNum, keyword);
  147. PageInfo<User> pageInfo = userService.findCompanyList(pageNum, PAGESIZE, keyword, searchCondition);
  148. log.info("分页查询用户列表结果! pageInfo = {}", pageInfo);
  149. modelMap.put("pageInfo", pageInfo);
  150. modelMap.put("keyword", keyword);
  151. modelMap.put("searchCondition", searchCondition);
  152. modelMap.put("user_type", ShiroUtils.getUserEntity().getUser_type());
  153. modelMap.put("item_selected", item_selected);
  154. } catch (Exception e) {
  155. e.printStackTrace();
  156. }
  157. return BASE_BUILD_PATH + "user_company_list";
  158. }
  159. /**
  160. * 跳转到用户添加页面
  161. *
  162. * @return
  163. */
  164. @GetMapping(value = "/add")
  165. public String add(ModelMap modelMap) {
  166. log.info("跳转到用户添加页面!");
  167. Department department = new Department();
  168. department.setDel_flag(false);
  169. department.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  170. if (ShiroUtils.getUserType().equals(Constant.UserType.SUPER)) {
  171. //超级管理员需要选择政府用户的政府部门
  172. department.setUser_type(Constant.UserType.GOVERNMENT);
  173. }
  174. Role role = new Role();
  175. role.setDel_flag(false);
  176. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  177. if (ShiroUtils.getUserType().equals(Constant.UserType.STREET)) {
  178. //街道看见super创建的角色和自己创建的角色
  179. modelMap.addAttribute("roles", roleService.getSuperAndOwnRoles());
  180. department.setStreet_id(ShiroUtils.getStreetId());
  181. } else if (ShiroUtils.getUserType().equals(Constant.UserType.BUILD)) {
  182. role.setBuild_id(ShiroUtils.getBuildId());
  183. department.setBuild_id(ShiroUtils.getBuildId());
  184. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  185. } else if (ShiroUtils.getUserType().equals(Constant.UserType.COMPANY)) {
  186. role.setCompany_id(ShiroUtils.getCompanyId());
  187. department.setCompany_id(ShiroUtils.getCompanyId());
  188. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  189. } else if (ShiroUtils.getUserType().equals(Constant.UserType.SUPER)) {
  190. //super需要super所建的街道的角色,和政府角色,给不同的用户类型用户添加角色
  191. roleService.getSuperAndGovRoles(modelMap);
  192. } else if (ShiroUtils.getUserType().equals(Constant.UserType.GOVERNMENT)) {
  193. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  194. }
  195. modelMap.addAttribute("departments", departmentService.findListByWhere(department));
  196. if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.GOVERNMENT)) {
  197. Group group = new Group();
  198. group.setUser_type(Constant.UserType.GOVERNMENT);
  199. modelMap.addAttribute("groups", groupService.findListByWhere(group));
  200. return BASE_GOVERNMENT_PATH + "user_add";
  201. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.BUILD)) {
  202. modelMap.addAttribute("companyList", companyService.findCompanyList());
  203. return BASE_BUILD_PATH + "user_add";
  204. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.STREET)) {
  205. return BASE_STREET_PATH + "user_add";
  206. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.SUPER)) {
  207. modelMap.addAttribute("streets", streetService.findList());
  208. return BASE_SUPER_PATH + "user_add";
  209. }
  210. log.info("跳转到用户添加页面!");
  211. return BASE_BUILD_PATH + "user_add";
  212. }
  213. /**
  214. * 添加用户
  215. *
  216. * @param content
  217. * @return
  218. */
  219. @OperationLog(value = "添加用户")
  220. @ResponseBody
  221. @PostMapping(value = "/save")
  222. public ModelMap saveUser(User content) throws Exception {
  223. ModelMap messagesMap = new ModelMap();
  224. if (IsTooFrequently()) {
  225. messagesMap.put("status", FAILURE);
  226. messagesMap.put("message", "操作过于频繁,请稍后再试!");
  227. return messagesMap;
  228. }
  229. log.debug("添加用户参数! content = {}", content);
  230. Boolean flag = userService.saveUser(content);
  231. if (flag) {
  232. log.info("添加用户成功! content = {}", content.getId());
  233. messagesMap.put("status", SUCCESS);
  234. messagesMap.put("message", "添加成功!");
  235. return messagesMap;
  236. }
  237. messagesMap.put("status", FAILURE);
  238. messagesMap.put("message", "添加失败!");
  239. return messagesMap;
  240. }
  241. /**
  242. * 跳转到用户编辑页面
  243. *
  244. * @return
  245. */
  246. @GetMapping(value = "/edit/{id}")
  247. public String edit(@PathVariable("id") int id, ModelMap modelMap) {
  248. if (ShiroUtils.getUserEntity().getUser_type() == Constant.UserType.BUILD) {
  249. modelMap.addAttribute("companyList", companyService.findCompanyList());
  250. }
  251. modelMap.put("fileUrl", setFileUrl());
  252. User user = userService.getUser(id);
  253. user.setRoleIds(userService.getUserRoleIds(id));
  254. user.setGroupIds(userService.getUserGroupIds(id));
  255. log.info("跳转到用户编辑页面!id = {}", id);
  256. modelMap.put("user", user);
  257. Department department = new Department();
  258. department.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  259. if (ShiroUtils.getUserType().equals(Constant.UserType.SUPER)) {
  260. //超级管理员需要选择政府用户的政府部门
  261. department.setUser_type(Constant.UserType.GOVERNMENT);
  262. //super需要super所建的街道的角色,和政府角色,给不同的用户类型用户添加角色
  263. roleService.getSuperAndGovRoles(modelMap);
  264. }
  265. Role role = new Role();
  266. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  267. if (ShiroUtils.getUserType().equals(Constant.UserType.STREET)) {
  268. //街道看见super创建的角色和自己创建的角色
  269. modelMap.addAttribute("roles", roleService.getSuperAndOwnRoles());
  270. department.setStreet_id(ShiroUtils.getStreetId());
  271. } else if (ShiroUtils.getUserType().equals(Constant.UserType.BUILD)) {
  272. role.setBuild_id(ShiroUtils.getBuildId());
  273. department.setBuild_id(ShiroUtils.getBuildId());
  274. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  275. } else if (ShiroUtils.getUserType().equals(Constant.UserType.COMPANY)) {
  276. role.setCompany_id(ShiroUtils.getCompanyId());
  277. department.setCompany_id(ShiroUtils.getCompanyId());
  278. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  279. } else if (ShiroUtils.getUserType().equals(Constant.UserType.GOVERNMENT)) {
  280. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  281. }
  282. modelMap.addAttribute("departments", departmentService.findListByWhere(department));
  283. if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.GOVERNMENT)) {
  284. Group group = new Group();
  285. group.setUser_type(Constant.UserType.GOVERNMENT);
  286. modelMap.addAttribute("groups", groupService.findListByWhere(group));
  287. return BASE_GOVERNMENT_PATH + "user_edit";
  288. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.BUILD)) {
  289. modelMap.addAttribute("companyList", companyService.findCompanyList());
  290. return BASE_BUILD_PATH + "user_edit";
  291. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.STREET)) {
  292. return BASE_STREET_PATH + "user_edit";
  293. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.SUPER)) {
  294. if (null != user) {
  295. if (user.getUser_type() == Constant.UserType.BUILD) {
  296. modelMap.addAttribute("builds", buildInfoService.findListByStreet(user.getStreet_id()));
  297. }
  298. modelMap.addAttribute("streets", streetService.findList());
  299. }
  300. return BASE_SUPER_PATH + "user_edit";
  301. }
  302. return BASE_BUILD_PATH + "user_edit";
  303. }
  304. /**
  305. * 跳转到用户查看页面
  306. *
  307. * @return
  308. */
  309. @OperationLog(value = "查看用户详情")
  310. @GetMapping(value = "/check/{id}")
  311. public String check(@PathVariable("id") int id, ModelMap modelMap) {
  312. User user = userService.getUser(id);
  313. log.info("跳转到用户查看页面!id = {}", id);
  314. modelMap.put("user", user);
  315. modelMap.put("fileUrl", setFileUrl());
  316. Department department = new Department();
  317. department.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  318. Role role = new Role();
  319. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  320. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  321. modelMap.addAttribute("departments", departmentService.findListByWhere(department));
  322. if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.GOVERNMENT)) {
  323. Group group = new Group();
  324. modelMap.addAttribute("groups", groupService.findListByWhere(group));
  325. return BASE_GOVERNMENT_PATH + "user_check";
  326. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.BUILD)) {
  327. return BASE_BUILD_PATH + "user_check";
  328. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.STREET)) {
  329. return BASE_STREET_PATH + "user_check";
  330. } else if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.SUPER)) {
  331. return BASE_SUPER_PATH + "user_check";
  332. }
  333. return BASE_BUILD_PATH + "user_check";
  334. }
  335. /**
  336. * 更新用户信息
  337. *
  338. * @param id id
  339. * @return
  340. */
  341. @OperationLog(value = "编辑用户")
  342. @ResponseBody
  343. @PutMapping(value = "/updateUser/{id}")
  344. public ModelMap updateUser(@PathVariable("id") int id, User content) throws Exception {
  345. ModelMap messagesMap = new ModelMap();
  346. log.debug("编辑用户参数! id= {}, content = {}", id, content);
  347. if (IsTooFrequently()) {
  348. messagesMap.put("status", FAILURE);
  349. messagesMap.put("message", "操作过于频繁,请稍后再试!");
  350. return messagesMap;
  351. }
  352. if (null != content.getVerification_code()) {
  353. //验证码
  354. if (!verificationCodeUtil.validateVerificationCode(content.getPhone(), content.getVerification_code())) {
  355. log.info("验证码不正确! id = {}", id);
  356. messagesMap.put("status", FAILURE);
  357. messagesMap.put("message", "验证码不正确!");
  358. return messagesMap;
  359. }
  360. }
  361. User u = userService.findById(id);
  362. if (null == u) {
  363. log.info("编辑用户不存在! id = {}", id);
  364. messagesMap.put("status", FAILURE);
  365. messagesMap.put("message", "编辑用户不存在!");
  366. return messagesMap;
  367. }
  368. // content.setPassword(SecureUtil.md5().digestHex(content.getPassword()));
  369. Boolean flag = userService.updateUser(content);
  370. if (flag) {
  371. log.info("编辑用户成功! id= {}, content = {}", id, content);
  372. messagesMap.put("status", SUCCESS);
  373. messagesMap.put("message", "编辑成功!");
  374. new Thread(() -> {
  375. //同步信息给天启
  376. SyncUserDto dto = new SyncUserDto();
  377. dto.setAction(Constant.METHOD_STATUS.UPDATE);
  378. dto.setOldUserName(u.getNick_name());
  379. dto.setUserName(content.getUser_name());
  380. dto.setUserLoginName(content.getNick_name());
  381. // dto.setPassword(content.getPassword());
  382. // dto.setCompanyName(u.getCompany_name());
  383. // if (null != u.getStreet_id()) {
  384. // Street street = streetService.findById(u.getStreet_id());
  385. // dto.setStreetName(street.getName());
  386. // }
  387. dto.setToken(skyImageApiService.accessToken());
  388. skyImageApiService.syncUserInfo(dto);
  389. }, "syncUserInfo").start();
  390. return messagesMap;
  391. }
  392. messagesMap.put("status", FAILURE);
  393. messagesMap.put("message", "编辑失败!");
  394. return messagesMap;
  395. }
  396. /**
  397. * 查询街道下的所有园区
  398. *
  399. * @param id
  400. * @return
  401. * @throws Exception
  402. */
  403. @OperationLog(value = "查询街道下的所有园区")
  404. @ResponseBody
  405. @GetMapping(value = "/findBuildsByStreet/{id}")
  406. public ResponseMessage findBuildsByStreet(@PathVariable("id") Integer id) throws Exception {
  407. log.debug("查询街道下的所有园区! id= {}", id);
  408. Street street = streetService.findById(id);
  409. if (null == street) {
  410. log.info("街道不存在! id = {}", id);
  411. return ResponseMessage.error("街道不存在");
  412. }
  413. return ResponseMessage.success("查询街道下的所有园区成功", buildInfoService.findListByStreet(id));
  414. }
  415. /**
  416. * 重置密码
  417. *
  418. * @param id
  419. * @return
  420. */
  421. @OperationLog(value = "重置密码")
  422. @ResponseBody
  423. @PutMapping(value = "/resetPassword/{id}")
  424. public ResponseMessage resetPassword(@PathVariable("id") String id) throws Exception {
  425. log.debug("重置密码参数! id= {}", id);
  426. User u = userService.findById(Integer.parseInt(id));
  427. if (null == u) {
  428. log.info("用户不存在! id = {}", id);
  429. return ResponseMessage.error("用户不存在");
  430. }
  431. u.setPassword(SecureUtil.md5().digestHex(resetPassword));
  432. Boolean flag = userService.updateUser(u);
  433. if (flag) {
  434. CompletableFuture.runAsync(() -> {
  435. //同步信息给天启
  436. SyncUserDto dto = new SyncUserDto();
  437. dto.setAction(Constant.METHOD_STATUS.UPDATE);
  438. dto.setOldUserName("");
  439. dto.setUserName(u.getUser_name());
  440. dto.setUserLoginName(u.getNick_name());
  441. dto.setPassword(resetPassword);
  442. dto.setToken(skyImageApiService.accessToken());
  443. skyImageApiService.syncUserInfo(dto);
  444. }, ThreadPoolUtil.getInstance());
  445. log.info("重置密码成功! id= {}, u = {}", id);
  446. return ResponseMessage.success("重置密码成功");
  447. }
  448. return ResponseMessage.error("重置密码失败");
  449. }
  450. /**
  451. * 批量删除
  452. *
  453. * @param ids
  454. * @return
  455. */
  456. @OperationLog(value = "批量删除用户")
  457. @ResponseBody
  458. @PutMapping(value = "/deleteBatch")
  459. public ResponseMessage deleteBatch(@RequestParam(value = "ids[]") String[] ids) throws Exception {
  460. if (null == ids) {
  461. log.info("批量删除用户不存在! ids = {}", ids);
  462. return ResponseMessage.success("批量删除用户不存在");
  463. }
  464. for (String id : ids) {
  465. if (id.equals(String.valueOf(ShiroUtils.getUserId()))) {
  466. return ResponseMessage.error("删除失败,不能删除自己的账户!");
  467. }
  468. }
  469. try {
  470. userService.deleteBatch(ids);
  471. return ResponseMessage.success("删除成功");
  472. } catch (Exception e) {
  473. e.printStackTrace();
  474. }
  475. return ResponseMessage.error("删除失败");
  476. }
  477. /**
  478. * 启用
  479. *
  480. * @param ids
  481. * @return
  482. */
  483. @OperationLog(value = "启用")
  484. @ResponseBody
  485. @PutMapping(value = "/startBatch")
  486. public ResponseMessage startBatch(@RequestParam(value = "ids[]") String[] ids) throws Exception {
  487. if (null == ids) {
  488. log.info("批量启用用户不存在! ids = {}", ids);
  489. return ResponseMessage.error("批量启用用户不存在");
  490. }
  491. for (String id : ids) {
  492. if (id.equals(String.valueOf(ShiroUtils.getUserId()))) {
  493. return ResponseMessage.error("不能对自己的账号进行启用操作!");
  494. }
  495. }
  496. for (String id : ids) {
  497. User user = new User();
  498. user.setId(Integer.parseInt(id));
  499. user.setIs_start(true);
  500. userService.updateUser(user);
  501. }
  502. return ResponseMessage.success("启用成功");
  503. }
  504. /**
  505. * 禁用
  506. *
  507. * @param ids
  508. * @return
  509. */
  510. @OperationLog(value = "禁用")
  511. @ResponseBody
  512. @PutMapping(value = "/stopBatch")
  513. public ResponseMessage stopBatch(@RequestParam(value = "ids[]") String[] ids) throws Exception {
  514. if (null == ids) {
  515. log.info("批量启用用户不存在! ids = {}", ids);
  516. return ResponseMessage.error("批量启用用户不存在");
  517. }
  518. for (String id : ids) {
  519. if (id.equals(String.valueOf(ShiroUtils.getUserId()))) {
  520. return ResponseMessage.error("不能对自己的账号进行禁用操作!");
  521. }
  522. }
  523. for (String id : ids) {
  524. User user = new User();
  525. user.setId(Integer.parseInt(id));
  526. user.setIs_start(false);
  527. userService.updateUser(user);
  528. }
  529. return ResponseMessage.success("禁用成功");
  530. }
  531. /**
  532. * 检验用户名是否存在
  533. *
  534. * @param nick_name
  535. * @return
  536. */
  537. @ResponseBody
  538. @GetMapping(value = "/isExist")
  539. public Boolean isExist(String id, String nick_name) throws Exception {
  540. boolean flag = true;
  541. log.debug("检验用户名是否存在参数! id= {}, username= {}", id, nick_name);
  542. User record = userService.findByUserName(nick_name);
  543. if (null != record) {
  544. if (StringUtils.isBlank(id)) {
  545. flag = false;
  546. } else {
  547. if (record.getId() != (Integer.parseInt(id))) {
  548. flag = false;
  549. }
  550. }
  551. }
  552. log.info("检验用户名是否存在结果! flag = {}", flag);
  553. return flag;
  554. }
  555. /**
  556. * 跳转到用户添加页面
  557. *
  558. * @return
  559. */
  560. @GetMapping(value = "/addCompanyUser")
  561. public String addCompanyUser(ModelMap modelMap) {
  562. log.info("跳转到用户添加页面!");
  563. modelMap.addAttribute("companyList", companyService.findCompanyList());
  564. Role role = new Role();
  565. role.setDel_flag(false);
  566. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  567. if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.COMPANY)) {
  568. role.setCompany_id(ShiroUtils.getCompanyId());
  569. } else {
  570. role.setBuild_id(ShiroUtils.getBuildId());
  571. }
  572. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  573. log.info("跳转到用户添加页面!");
  574. modelMap.put("user_type", ShiroUtils.getUserEntity().getUser_type());
  575. return BASE_BUILD_PATH + "user_company_add";
  576. }
  577. /**
  578. * 添加用户
  579. *
  580. * @param content
  581. * @return
  582. */
  583. @OperationLog(value = "添加用户")
  584. @ResponseBody
  585. @PostMapping(value = "/saveCompanyUser")
  586. public ModelMap saveCompanyUser(User content, Integer company_id1) throws Exception {
  587. ModelMap messagesMap = new ModelMap();
  588. if (IsTooFrequently()) {
  589. messagesMap.put("status", FAILURE);
  590. messagesMap.put("message", "操作过于频繁,请稍后再试!");
  591. return messagesMap;
  592. }
  593. log.debug("添加用户参数! content = {}", content);
  594. Boolean flag = userService.saveCompanyUser(content);
  595. if (flag) {
  596. log.info("添加用户成功! content = {}", content.getId());
  597. messagesMap.put("status", SUCCESS);
  598. messagesMap.put("message", "添加成功!");
  599. new Thread(() -> {
  600. //同步信息给天启
  601. SyncUserDto dto = new SyncUserDto();
  602. dto.setAction(Constant.METHOD_STATUS.INSERT);
  603. dto.setOldUserName("");
  604. dto.setUserName(content.getUser_name());
  605. dto.setUserLoginName(content.getNick_name());
  606. dto.setPassword(content.getPassword().trim());
  607. dto.setCompanyName(content.getCompany_name());
  608. dto.setToken(skyImageApiService.accessToken());
  609. skyImageApiService.syncUserInfo(dto);
  610. }, "syncUserInfo").start();
  611. return messagesMap;
  612. }
  613. messagesMap.put("status", FAILURE);
  614. messagesMap.put("message", "添加失败!");
  615. return messagesMap;
  616. }
  617. /**
  618. * 跳转到用户编辑页面
  619. *
  620. * @return
  621. */
  622. @GetMapping(value = "/editCompanyUser/{id}")
  623. public String editCompanyUser(@PathVariable("id") int id, ModelMap modelMap) {
  624. modelMap.addAttribute("companyList", companyService.findCompanyList());
  625. //User user = userService.findById(id);
  626. User user = userService.getUser(id);
  627. user.setRoleIds(userService.getUserRoleIds(id));
  628. modelMap.addAttribute("user", user);
  629. List<Company> companyList = companyService.findCompanyList();
  630. modelMap.addAttribute("companyList", companyService.findCompanyList());
  631. Role role = new Role();
  632. role.setDel_flag(false);
  633. role.setUser_type(ShiroUtils.getUserEntity().getUser_type());
  634. if (ShiroUtils.getUserEntity().getUser_type().equals(Constant.UserType.COMPANY)) {
  635. role.setCompany_id(ShiroUtils.getCompanyId());
  636. } else {
  637. role.setBuild_id(ShiroUtils.getBuildId());
  638. }
  639. modelMap.addAttribute("roles", roleService.findListByWhere(role));
  640. modelMap.put("user_type", ShiroUtils.getUserEntity().getUser_type());
  641. return BASE_BUILD_PATH + "user_company_edit";
  642. }
  643. /**
  644. * 跳转到用户查看页面
  645. *
  646. * @return
  647. */
  648. @GetMapping(value = "/checkCompanyUser/{id}")
  649. public String checkCompanyUser(@PathVariable("id") int id, ModelMap modelMap) {
  650. //User user = userService.findById(id);
  651. User user = userService.getUser(id);
  652. user.setRoleIds(userService.getUserRoleIds(id));
  653. modelMap.addAttribute("user", user);
  654. modelMap.put("user_type", ShiroUtils.getUserEntity().getUser_type());
  655. return BASE_BUILD_PATH + "user_company_check";
  656. }
  657. /**
  658. * 更新用户信息
  659. *
  660. * @param id id
  661. * @return
  662. */
  663. @OperationLog(value = "编辑用户")
  664. @ResponseBody
  665. @PutMapping(value = "/updateCompanyUser/{id}")
  666. public ModelMap updateCompanyUser(@PathVariable("id") int id, User content, Integer company_id) throws Exception {
  667. ModelMap messagesMap = new ModelMap();
  668. log.debug("编辑用户参数! id= {}, content = {}", id, content);
  669. if (IsTooFrequently()) {
  670. messagesMap.put("status", FAILURE);
  671. messagesMap.put("message", "操作过于频繁,请稍后再试!");
  672. return messagesMap;
  673. }
  674. User u = userService.findById(id);
  675. if (null == u) {
  676. log.info("编辑用户不存在! id = {}", id);
  677. messagesMap.put("status", FAILURE);
  678. messagesMap.put("message", "编辑用户不存在!");
  679. return messagesMap;
  680. }
  681. Boolean flag = userService.updateCompanyUser(content);
  682. if (flag) {
  683. log.info("编辑用户成功! id= {}, content = {}", id, content);
  684. messagesMap.put("status", SUCCESS);
  685. messagesMap.put("message", "编辑成功!");
  686. new Thread(() -> {
  687. //同步信息给天启
  688. SyncUserDto dto = new SyncUserDto();
  689. dto.setAction(Constant.METHOD_STATUS.UPDATE);
  690. dto.setOldUserName(u.getNick_name());
  691. dto.setUserName(content.getUser_name());
  692. dto.setUserLoginName(content.getNick_name());
  693. dto.setPassword(content.getPassword().trim());
  694. dto.setCompanyName(content.getCompany_name());
  695. dto.setToken(skyImageApiService.accessToken());
  696. skyImageApiService.syncUserInfo(dto);
  697. }, "syncUserInfo").start();
  698. return messagesMap;
  699. }
  700. messagesMap.put("status", FAILURE);
  701. messagesMap.put("message", "编辑失败!");
  702. return messagesMap;
  703. }
  704. /**
  705. * 检验手机号是否存在
  706. *
  707. * @param mobile
  708. * @return
  709. */
  710. @ResponseBody
  711. @GetMapping(value = "/isExistMobile")
  712. public Boolean isExistMobile(String id, String mobile) throws Exception {
  713. boolean flag = true;
  714. log.debug("检验手机号是否存在参数! id= {}, mobile= {}", id, mobile);
  715. User record = userService.findByMobile(mobile);
  716. if (null != record) {
  717. if (StringUtils.isBlank(id)) {
  718. flag = false;
  719. } else {
  720. if (record.getId() != (Integer.parseInt(id))) {
  721. flag = false;
  722. }
  723. }
  724. }
  725. log.info("检验用户名是否存在结果! flag = {}", flag);
  726. return flag;
  727. }
  728. /**
  729. * 跳转到修改手机号页面
  730. *
  731. * @return
  732. */
  733. @GetMapping(value = "/editPhone")
  734. public String editPhone(ModelMap modelMap) {
  735. log.info("跳转到修改手机号页面成功!");
  736. modelMap.put("id", ShiroUtils.getUserId());
  737. return BASE_COMPANY_PATH + "accountInfo/editPhone";
  738. }
  739. /**
  740. * 跳转到修改姓名页面
  741. *
  742. * @return
  743. */
  744. @GetMapping(value = "/editUserName")
  745. public String editUserName(ModelMap modelMap) {
  746. log.info("跳转到修改姓名页面成功!");
  747. modelMap.put("id", ShiroUtils.getUserId());
  748. return BASE_COMPANY_PATH + "accountInfo/editUserName";
  749. }
  750. }