UserServiceImpl.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. package com.tld.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.tld.excel.ExcelUtils;
  5. import com.tld.mapper.UserMapper;
  6. import com.tld.model.User;
  7. import com.tld.service.UserService;
  8. import com.tld.util.*;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import javax.annotation.Resource;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import java.text.SimpleDateFormat;
  16. import java.util.*;
  17. @Service
  18. public class UserServiceImpl implements UserService {
  19. @Autowired
  20. private UserMapper userMapper;
  21. @Resource
  22. private RedisUtil redisUtil;
  23. @Override
  24. public Map<String, Object> login(User user, HttpServletRequest request) {
  25. Map<String, Object> map = new HashMap<>();
  26. try{
  27. user.setPassword(DesEncry.encrypt(user.getPassword()));
  28. User user1 = userMapper.login(user);
  29. //获取用户ip3000
  30. String ipAddr = IpUtils.getIpAddr(request);
  31. if(null == user1){
  32. map.put("msg", "510");
  33. map.put("errMsg", "账号或密码错误");
  34. return map;
  35. } else {
  36. //token参数
  37. Map<String, String> tokenParam = new HashMap<String, String>(){{
  38. put("user_name", user.getUserName());
  39. put("userId", user.getId() + "");
  40. }};
  41. String token = JWTUtil.getToken(tokenParam); //生成token
  42. // String key = RedisPreEnum.JWT_TOKEN_PRE.getPre() + user1.getId();
  43. // Set<String> keys = redisUtil.keys(key + "*");
  44. // if(CollectionUtils.isEmpty(keys)){
  45. // redisUtil.add(key + ipAddr, user1, RedisPreEnum.JWT_TOKEN_PRE.getExpired());
  46. // } else {
  47. // //请空之前的key
  48. // for (String k : keys) {
  49. // redisUtil.delete(k);
  50. // }
  51. // //重新设置key
  52. // redisUtil.add(key + ipAddr, user1, RedisPreEnum.JWT_TOKEN_PRE.getExpired());
  53. // }
  54. // redisUtil.delete("verifyCode" + ipAddr);//删除指定ip的code
  55. user1.setToken(token);
  56. map.put("msg", "200");
  57. map.put("data", user1);
  58. return map;
  59. }
  60. } catch (Exception e){
  61. e.printStackTrace();
  62. map.put("msg", "500");
  63. map.put("errMsg", "服务器请求异常,请稍后再试");
  64. }
  65. return map;
  66. }
  67. @Override
  68. public Map<String, Object> getAllUser(User user) {
  69. Map<String, Object> map = new HashMap<>();
  70. try{
  71. PageHelper.startPage(user.getPage(), user.getLimit());
  72. // List<User> list = new ArrayList<>();
  73. // for(User user1 : userMapper.getAllUser(user)) {
  74. // user1.setPassword(DesDecry.decrypt(user1.getPassword()));
  75. // list.add(user1);
  76. // }
  77. PageInfo<User> pageInfo = new PageInfo<>(userMapper.getAllUser(user));
  78. map.put("data", pageInfo);
  79. map.put("msg", "200");
  80. } catch (Exception e){
  81. e.printStackTrace();
  82. map.put("msg", "500");
  83. map.put("errMsg", "服务器请求异常,请稍后再试");
  84. }
  85. return map;
  86. }
  87. @Override
  88. @Transactional(rollbackFor = Exception.class)
  89. public Map<String, Object> addUser(User user, HttpServletRequest request) {
  90. Map<String, Object> map = new HashMap<>();
  91. try{
  92. int count = userMapper.getUserIsNot(user);
  93. if(count > 0){
  94. map.put("msg", "510");
  95. map.put("errMsg", "用户名已存在");
  96. return map;
  97. }
  98. user.setPassword(DesEncry.encrypt(user.getPassword()));
  99. //新增用户
  100. user.setModifyUser(request.getHeader("userId"));//修改人
  101. userMapper.addUser(user);
  102. user.setCode(codeGenerate(user.getId() + ""));
  103. //修改用户编号
  104. userMapper.updateUser(user);
  105. map.put("msg", "200");
  106. } catch (Exception e) {
  107. e.printStackTrace();
  108. map.put("msg", "500");
  109. map.put("errMsg", "服务器请求异常,请稍后再试");
  110. }
  111. return map;
  112. }
  113. @Override
  114. @Transactional(rollbackFor = Exception.class)
  115. public Map<String, Object> delUser(String id) {
  116. Map<String, Object> map = new HashMap<>();
  117. try{
  118. userMapper.delUser(id);
  119. map.put("msg", "200");
  120. } catch (Exception e){
  121. e.printStackTrace();
  122. map.put("msg", "500");
  123. map.put("errMsg", "服务器请求异常,请稍后再试");
  124. }
  125. return map;
  126. }
  127. @Override
  128. @Transactional(rollbackFor = Exception.class)
  129. public Map<String, Object> updateUser(User user, HttpServletRequest request) {
  130. Map<String, Object> map = new HashMap<>();
  131. try{
  132. int count = userMapper.getUserIsNot(user);
  133. if(count > 0){
  134. map.put("msg", "510");
  135. map.put("errMsg", "用户名已存在");
  136. return map;
  137. }
  138. user.setPassword(DesEncry.encrypt(user.getPassword()));
  139. user.setModifyUser(request.getHeader("userId"));
  140. userMapper.updateUser(user);
  141. map.put("msg", "200");
  142. } catch (Exception e){
  143. e.printStackTrace();
  144. map.put("msg", "500");
  145. map.put("errMsg", "服务器请求异常,请稍后再试");
  146. }
  147. return map;
  148. }
  149. @Override
  150. public void userExport(User user, HttpServletResponse response) {
  151. try{
  152. //导出数据汇总
  153. List<List<Object>> sheetDataList = new ArrayList<>();
  154. //表头数据
  155. List<Object> head = Arrays.asList("用户编号", "工号", "姓名","邮箱", "手机", "部门", "角色名称");
  156. //查询数据
  157. List<Map<String, Object>> list = userMapper.getUserExportData(user);
  158. sheetDataList.add(head);
  159. for(Map<String, Object> userMap : list){
  160. List<Object> listSheet = new ArrayList<>();
  161. for(String key: userMap.keySet()){
  162. listSheet.add(userMap.get(key));
  163. }
  164. sheetDataList.add(listSheet);
  165. }
  166. //当前时间
  167. Date time = new Date();
  168. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss");
  169. ExcelUtils.export(response, "用户数据导出" + sdf.format(time), sheetDataList);
  170. }catch (Exception e){
  171. e.printStackTrace();
  172. }
  173. }
  174. @Override
  175. @Transactional(rollbackFor = Exception.class)
  176. public Map<String, Object> resetPassword(User user) {
  177. Map<String, Object> map = new HashMap<>();
  178. try{
  179. user.setPassword(DesEncry.encrypt("123456"));
  180. userMapper.updateUser(user);
  181. map.put("msg", "200");
  182. } catch (Exception e){
  183. e.printStackTrace();
  184. map.put("msg", "500");
  185. map.put("errMsg", "服务器请求异常,请稍后再试");
  186. }
  187. return map;
  188. }
  189. @Override
  190. @Transactional(rollbackFor = Exception.class)
  191. public Map<String, Object> updatePassword(User user) {
  192. Map<String, Object> map = new HashMap<>();
  193. try{
  194. User user1 = userMapper.getUser(user);
  195. if(!user.getPassword().equals(DesDecry.decrypt(user1.getPassword()))){
  196. map.put("msg", "500");
  197. map.put("errMsg", "密码错误");
  198. return map;
  199. }
  200. user.setPassword(DesEncry.encrypt(user.getNewPassword()));
  201. userMapper.updateUser(user);
  202. map.put("msg", "200");
  203. } catch (Exception e){
  204. e.printStackTrace();
  205. map.put("msg", "500");
  206. map.put("errMsg", "服务器请求异常,请稍后再试");
  207. }
  208. return map;
  209. }
  210. /**
  211. * 用户编号规则
  212. * @param id 参数
  213. * @return 返回结果
  214. */
  215. public String codeGenerate(String id){
  216. StringBuilder stringBuilder = new StringBuilder("YH");
  217. for(int i = 0; i < 6 - id.length(); i++){
  218. stringBuilder.append("0");
  219. }
  220. stringBuilder.append(id);
  221. return stringBuilder.toString();
  222. }
  223. }