UserServiceImpl.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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. PageHelper.startPage(1, 10);
  158. List<Map<String, Object>> list = userMapper.getUserExportData(user);
  159. sheetDataList.add(head);
  160. for(Map<String, Object> userMap : list){
  161. List<Object> listSheet = new ArrayList<>();
  162. for(String key: userMap.keySet()){
  163. listSheet.add(userMap.get(key));
  164. }
  165. sheetDataList.add(listSheet);
  166. }
  167. //当前时间
  168. Date time = new Date();
  169. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss");
  170. ExcelUtils.export(response, "用户数据导出" + sdf.format(time), sheetDataList);
  171. }catch (Exception e){
  172. e.printStackTrace();
  173. }
  174. }
  175. @Override
  176. @Transactional(rollbackFor = Exception.class)
  177. public Map<String, Object> resetPassword(User user) {
  178. Map<String, Object> map = new HashMap<>();
  179. try{
  180. user.setPassword(DesEncry.encrypt("123456"));
  181. userMapper.updateUser(user);
  182. map.put("msg", "200");
  183. } catch (Exception e){
  184. e.printStackTrace();
  185. map.put("msg", "500");
  186. map.put("errMsg", "服务器请求异常,请稍后再试");
  187. }
  188. return map;
  189. }
  190. @Override
  191. @Transactional(rollbackFor = Exception.class)
  192. public Map<String, Object> updatePassword(User user) {
  193. Map<String, Object> map = new HashMap<>();
  194. try{
  195. User user1 = userMapper.getUser(user);
  196. if(!user.getPassword().equals(DesDecry.decrypt(user1.getPassword()))){
  197. map.put("msg", "500");
  198. map.put("errMsg", "密码错误");
  199. return map;
  200. }
  201. user.setPassword(DesEncry.encrypt(user.getNewPassword()));
  202. userMapper.updateUser(user);
  203. map.put("msg", "200");
  204. } catch (Exception e){
  205. e.printStackTrace();
  206. map.put("msg", "500");
  207. map.put("errMsg", "服务器请求异常,请稍后再试");
  208. }
  209. return map;
  210. }
  211. /**
  212. * 用户编号规则
  213. * @param id 参数
  214. * @return 返回结果
  215. */
  216. public String codeGenerate(String id){
  217. StringBuilder stringBuilder = new StringBuilder("YH");
  218. for(int i = 0; i < 6 - id.length(); i++){
  219. stringBuilder.append("0");
  220. }
  221. stringBuilder.append(id);
  222. return stringBuilder.toString();
  223. }
  224. }