UserController.java 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. package com.zhongzheng.controller.user;
  2. import cn.afterturn.easypoi.excel.entity.ExportParams;
  3. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  4. import com.zhongzheng.common.annotation.Log;
  5. import com.zhongzheng.common.core.controller.BaseController;
  6. import com.zhongzheng.common.core.domain.AjaxResult;
  7. import com.zhongzheng.common.core.page.TableDataInfo;
  8. import com.zhongzheng.common.enums.BusinessType;
  9. import com.zhongzheng.common.utils.ServletUtils;
  10. import com.zhongzheng.common.utils.poi.ExcelUtil;
  11. import com.zhongzheng.modules.alisms.service.IAliSmsService;
  12. import com.zhongzheng.modules.user.bo.*;
  13. import com.zhongzheng.modules.user.entity.ClientLoginUser;
  14. import com.zhongzheng.modules.user.service.IUserService;
  15. import com.zhongzheng.modules.user.vo.UserIdCardBatchVo;
  16. import com.zhongzheng.modules.user.vo.UserStatstVo;
  17. import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
  18. import com.zhongzheng.modules.user.vo.UserVo;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import lombok.RequiredArgsConstructor;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.security.access.prepost.PreAuthorize;
  24. import org.springframework.web.bind.annotation.*;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import java.time.LocalDateTime;
  27. import java.time.format.DateTimeFormatter;
  28. import java.util.*;
  29. /**
  30. * 客户端用户Controller
  31. *
  32. * @author ruoyi
  33. * @date 2021-06-08
  34. */
  35. @Api(value = "客户端用户控制器", tags = {"客户端用户管理"})
  36. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  37. @RestController
  38. @RequestMapping("/app/user")
  39. public class UserController extends BaseController {
  40. private final IUserService iUserService;
  41. private final IAliSmsService iSmsService;
  42. /**
  43. * 查询客户端用户列表
  44. */
  45. @ApiOperation("统计查询客户端用户列表")
  46. @PreAuthorize("@ss.hasPermi('app:user:list')")
  47. @GetMapping("/stats_list")
  48. public AjaxResult<List<UserStatstVo>> statsList(UserQueryBo bo) {
  49. List<UserStatstVo> list = iUserService.statsList(bo);
  50. return AjaxResult.success(list);
  51. }
  52. /**
  53. * 查询客户端用户列表
  54. */
  55. @ApiOperation("导出统计查询客户端用户列表")
  56. @PreAuthorize("@ss.hasPermi('app:user:list')")
  57. @GetMapping("/stats_list_export")
  58. public AjaxResult<UserStatstVo> statsListExport(UserQueryBo bo) {
  59. List<UserStatstVo> list = iUserService.statsList(bo);
  60. ExcelUtil<UserStatstVo> util = new ExcelUtil<>(UserStatstVo.class);
  61. return util.exportExcel(list,"导出学员统计列表");
  62. }
  63. /**
  64. * 查询客户端用户列表
  65. */
  66. @ApiOperation("查询客户端用户列表")
  67. @PreAuthorize("@ss.hasPermi('app:user:list')")
  68. @GetMapping("/list")
  69. public TableDataInfo<UserVo> list(UserQueryBo bo) {
  70. startPage();
  71. List<UserVo> list = iUserService.selectList(bo);
  72. return getDataTable(list);
  73. }
  74. /**
  75. * 导出客户端用户列表
  76. */
  77. @ApiOperation("导出客户端用户列表")
  78. @PreAuthorize("@ss.hasPermi('app:user:export')")
  79. @Log(title = "客户端用户", businessType = BusinessType.EXPORT)
  80. @GetMapping("/export")
  81. public AjaxResult<UserVo> export(UserQueryBo bo) {
  82. List<UserVo> list = iUserService.queryList(bo);
  83. ExcelUtil<UserVo> util = new ExcelUtil<UserVo>(UserVo.class);
  84. ExportParams deptExportParams = new ExportParams();
  85. // 设置sheet得名称
  86. deptExportParams.setSheetName("表1");
  87. Map<String, Object> deptExportMap = new HashMap<>();
  88. deptExportMap.put("title", deptExportParams);
  89. deptExportMap.put("entity", UserVo.class);
  90. // sheet中要填充得数据
  91. deptExportMap.put("data", list);
  92. List<Map<String, Object>> sheetsList = new ArrayList<>();
  93. sheetsList.add(deptExportMap);
  94. return util.exportEasyExcel(sheetsList, "客户端用户");
  95. }
  96. /**
  97. * 获取客户端用户详细信息
  98. */
  99. @ApiOperation("获取客户端用户详细信息")
  100. @PreAuthorize("@ss.hasPermi('app:user:query')")
  101. @GetMapping("/{userId}")
  102. public AjaxResult<UserVo> getInfo(@PathVariable("userId" ) Long userId) {
  103. return AjaxResult.success(iUserService.queryById(userId));
  104. }
  105. /**
  106. * 新增客户端用户
  107. */
  108. @ApiOperation("新增客户端用户")
  109. @PreAuthorize("@ss.hasPermi('app:user:add')")
  110. @Log(title = "客户端用户", businessType = BusinessType.INSERT)
  111. @PostMapping()
  112. public AjaxResult<Long> add(@RequestBody UserSystemRegisterBo bo) {
  113. bo.setRegisterPlat("3");
  114. return AjaxResult.success(iUserService.systemRegisterUser(bo));
  115. }
  116. /**
  117. * 修改客户端用户
  118. */
  119. @ApiOperation("修改客户端用户")
  120. @PreAuthorize("@ss.hasPermi('app:user:edit')")
  121. @Log(title = "客户端用户", businessType = BusinessType.UPDATE)
  122. @PostMapping("/edit")
  123. public AjaxResult<Void> edit(@RequestBody UserEditBo bo) throws IllegalAccessException {
  124. return toAjax(iUserService.updateByEditBo(bo) ? 1 : 0);
  125. }
  126. /**
  127. * 删除客户端用户
  128. */
  129. @ApiOperation("删除客户端用户")
  130. @PreAuthorize("@ss.hasPermi('app:user:remove')")
  131. @Log(title = "客户端用户" , businessType = BusinessType.DELETE)
  132. @PostMapping("/delete")
  133. public AjaxResult<Void> remove(@PathVariable Long[] userIds) {
  134. return toAjax(iUserService.deleteWithValidByIds(Arrays.asList(userIds), true) ? 1 : 0);
  135. }
  136. /**
  137. * 查询客户端用户学习记录列表
  138. */
  139. @ApiOperation("客户端用户学习记录列表")
  140. @PreAuthorize("@ss.hasPermi('app:user:studyRecordList')")
  141. @GetMapping("/studyRecordList")
  142. public TableDataInfo<UserStudyRecordVo> studyRecordList(UserStudyRecordQueryBo bo) {
  143. startPage();
  144. List<UserStudyRecordVo> list = iUserService.selectStudyRecordList(bo);
  145. return getDataTable(list);
  146. }
  147. @ApiOperation("导入用户")
  148. @Log(title = "导入用户", businessType = BusinessType.IMPORT)
  149. @PreAuthorize("@ss.hasPermi('system:section:import')")
  150. @PostMapping("/importData")
  151. public AjaxResult<Map<String,Object>> importData(MultipartFile file, String importNo,Integer sign) throws Exception
  152. {
  153. Map<String, Object> rs = new HashMap<>();
  154. if (ObjectUtils.isNotNull(sign) && sign == 1){
  155. ExcelUtil<UserPeriodImportBo> util = new ExcelUtil<UserPeriodImportBo>(UserPeriodImportBo.class);
  156. List<UserPeriodImportBo> userList = null;
  157. try{
  158. userList = util.importExcel(file.getInputStream());
  159. }catch (Exception e){
  160. e.printStackTrace();
  161. throw new IllegalArgumentException("模板格式不正确,请重新下载模板");
  162. }
  163. rs = iUserService.importSevenUser(userList);
  164. }else {
  165. ExcelUtil<UserImportAddBo> util = new ExcelUtil<UserImportAddBo>(UserImportAddBo.class);
  166. List<UserImportAddBo> userList = null;
  167. try{
  168. userList = util.importExcel(file.getInputStream());
  169. }catch (Exception e){
  170. e.printStackTrace();
  171. throw new IllegalArgumentException("模板格式不正确,请重新下载模板");
  172. }
  173. Collections.reverse(userList);
  174. if (userList.stream().allMatch(item -> ObjectUtils.isNull(item))){
  175. throw new IllegalArgumentException("模板格式不正确,请重新下载模板");
  176. }
  177. rs = iUserService.importUser(userList,importNo);
  178. }
  179. return AjaxResult.success(rs);
  180. }
  181. @ApiOperation("导出失败导入用户")
  182. @Log(title = "导入用户", businessType = BusinessType.IMPORT)
  183. @PreAuthorize("@ss.hasPermi('system:section:import')")
  184. @PostMapping("/exportFailData")
  185. public AjaxResult<Map<String,Object>> exportFailData(@RequestBody List<UserImportExportBo> bo) throws Exception
  186. {
  187. List<UserImportExportBo> errorList = bo;
  188. ExcelUtil<UserImportExportBo> util = new ExcelUtil<UserImportExportBo>(UserImportExportBo.class);
  189. String timeStr= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
  190. return util.exportEasyExcel(util.exportEasyData(errorList), "导出失败导入用户"+timeStr);
  191. }
  192. @ApiOperation("批量获取用户ID")
  193. @Log(title = "批量获取用户ID", businessType = BusinessType.IMPORT)
  194. @PreAuthorize("@ss.hasPermi('system:section:import')")
  195. @PostMapping("/batchUserId")
  196. public AjaxResult<List<UserIdCardBatchVo>> batchUserId(@RequestBody List<UserIdCardAddBo> list)
  197. {
  198. return AjaxResult.success(iUserService.batchUserId(list));
  199. }
  200. @ApiOperation("修改客户端用户密码")
  201. @PostMapping("/updatePwd")
  202. public AjaxResult<Void> updatePwd(@RequestBody UserAppUpdatePwdBo bo) {
  203. return toAjax(iUserService.updatePwdByClient(bo)? 1 : 0);
  204. }
  205. @ApiOperation("查询档案列表")
  206. @PreAuthorize("@ss.hasPermi('app:user:list')")
  207. @GetMapping("/dangAnList")
  208. public TableDataInfo<UserVo> dangAnList(UserQueryBo bo) {
  209. startPage();
  210. List<UserVo> list = iUserService.dangAnList(bo);
  211. return getDataTable(list);
  212. }
  213. }