UserServiceImpl.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  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<>(list);
  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) {
  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. userMapper.addUser(user);
  101. user.setCode(codeGenerate(user.getId() + ""));
  102. //修改用户编号
  103. userMapper.updateUser(user);
  104. map.put("msg", "200");
  105. } catch (Exception e) {
  106. e.printStackTrace();
  107. map.put("msg", "500");
  108. map.put("errMsg", "服务器请求异常,请稍后再试");
  109. }
  110. return map;
  111. }
  112. @Override
  113. @Transactional(rollbackFor = Exception.class)
  114. public Map<String, Object> delUser(String id) {
  115. Map<String, Object> map = new HashMap<>();
  116. try{
  117. userMapper.delUser(id);
  118. map.put("msg", "200");
  119. } catch (Exception e){
  120. e.printStackTrace();
  121. map.put("msg", "500");
  122. map.put("errMsg", "服务器请求异常,请稍后再试");
  123. }
  124. return map;
  125. }
  126. @Override
  127. @Transactional(rollbackFor = Exception.class)
  128. public Map<String, Object> updateUser(User user) {
  129. Map<String, Object> map = new HashMap<>();
  130. try{
  131. int count = userMapper.getUserIsNot(user);
  132. if(count > 0){
  133. map.put("msg", "510");
  134. map.put("errMsg", "用户名已存在");
  135. return map;
  136. }
  137. user.setPassword(DesEncry.encrypt(user.getPassword()));
  138. userMapper.updateUser(user);
  139. map.put("msg", "200");
  140. } catch (Exception e){
  141. e.printStackTrace();
  142. map.put("msg", "500");
  143. map.put("errMsg", "服务器请求异常,请稍后再试");
  144. }
  145. return map;
  146. }
  147. @Override
  148. public void userExport(User user, HttpServletResponse response) {
  149. try{
  150. //导出数据汇总
  151. List<List<Object>> sheetDataList = new ArrayList<>();
  152. //表头数据
  153. List<Object> head = Arrays.asList("用户编号", "用户名", "真名","邮箱","电话", "手机", "部门", "角色", "创建时间");
  154. //查询数据
  155. PageHelper.startPage(1, 10);
  156. PageInfo<Map<String, Object>> list = new PageInfo<>(userMapper.getUserExportData(user));
  157. sheetDataList.add(head);
  158. for(Map<String, Object> userMap : list.getList()){
  159. List<Object> listSheet = new ArrayList<>();
  160. for(String key: userMap.keySet()){
  161. listSheet.add(userMap.get(key));
  162. }
  163. sheetDataList.add(listSheet);
  164. }
  165. //当前时间
  166. Date time = new Date();
  167. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss");
  168. ExcelUtils.export(response, "用户数据导出" + sdf.format(time), sheetDataList);
  169. }catch (Exception e){
  170. e.printStackTrace();
  171. }
  172. }
  173. /**
  174. * 用户编号规则
  175. * @param id 参数
  176. * @return 返回结果
  177. */
  178. public String codeGenerate(String id){
  179. StringBuilder stringBuilder = new StringBuilder("YH");
  180. for(int i = 0; i < 6 - id.length(); i++){
  181. stringBuilder.append("0");
  182. }
  183. stringBuilder.append(id);
  184. return stringBuilder.toString();
  185. }
  186. }