diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index b96e297..d7e1618 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; @@ -28,5 +29,5 @@ Object getMessageList(Page> page,HttpServletRequest request); - void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path); + void exportMessage(IdsDTO idsDTO, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index b96e297..d7e1618 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; @@ -28,5 +29,5 @@ Object getMessageList(Page> page,HttpServletRequest request); - void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path); + void exportMessage(IdsDTO idsDTO, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index fa73027..40e00bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,12 +1,17 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.UserActionService; @@ -15,13 +20,15 @@ import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @@ -29,6 +36,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +@Slf4j @Service("UserActionService") public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @@ -40,6 +48,9 @@ final String SALT = "y76dniizew"; + @Resource + private IBaseExportService iBaseExportService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -92,15 +103,15 @@ try { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); - String phone = userDto.getPhone(); - userDto.setAttr1(phone); - UserDto user = userActionDao.getUserInfo(userDto); + UserDto dto = new UserDto(); + dto.setAttr1(userDto.getPhone()); + UserDto user = userActionDao.getUserInfo(dto); if(null == user){ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),sim.format(new Date())); + userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -210,4 +221,40 @@ } return token; } + + @Override + public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + try { + Page page = new Page(page1,limit); + Page list = userActionDao.exportStaffList(page); + final long start = System.currentTimeMillis(); + iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); + log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public Object batchImportStaff(List list) { + list.forEach(bean -> { + Long id = IdWorker.getId(); + bean.setId(id); + }); + userActionDao.batchImportStaff(list); + return ResponseData.success(list); + } + + @Override + public Object logOut(HttpServletRequest request) { + try { + String token = request.getHeader("token"); + Claims claims = JJWTRootUtils.phaseTokenGetBody(token); + redisTemplate.delete(claims.get("token").toString()); + return ResponseData.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResponseData.error("操作失败"); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index b96e297..d7e1618 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; @@ -28,5 +29,5 @@ Object getMessageList(Page> page,HttpServletRequest request); - void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path); + void exportMessage(IdsDTO idsDTO, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index fa73027..40e00bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,12 +1,17 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.UserActionService; @@ -15,13 +20,15 @@ import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @@ -29,6 +36,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +@Slf4j @Service("UserActionService") public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @@ -40,6 +48,9 @@ final String SALT = "y76dniizew"; + @Resource + private IBaseExportService iBaseExportService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -92,15 +103,15 @@ try { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); - String phone = userDto.getPhone(); - userDto.setAttr1(phone); - UserDto user = userActionDao.getUserInfo(userDto); + UserDto dto = new UserDto(); + dto.setAttr1(userDto.getPhone()); + UserDto user = userActionDao.getUserInfo(dto); if(null == user){ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),sim.format(new Date())); + userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -210,4 +221,40 @@ } return token; } + + @Override + public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + try { + Page page = new Page(page1,limit); + Page list = userActionDao.exportStaffList(page); + final long start = System.currentTimeMillis(); + iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); + log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public Object batchImportStaff(List list) { + list.forEach(bean -> { + Long id = IdWorker.getId(); + bean.setId(id); + }); + userActionDao.batchImportStaff(list); + return ResponseData.success(list); + } + + @Override + public Object logOut(HttpServletRequest request) { + try { + String token = request.getHeader("token"); + Claims claims = JJWTRootUtils.phaseTokenGetBody(token); + redisTemplate.delete(claims.get("token").toString()); + return ResponseData.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResponseData.error("操作失败"); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index 3f5f45e..c2608e4 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -5,21 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; -import com.casic.missiles.modular.system.enums.MessageDict; -import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.enums.Status; -import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; +import com.casic.missiles.modular.system.enums.*; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.*; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -28,8 +23,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.FileOutputStream; -import java.text.ParseException; import java.util.*; /** @@ -66,14 +59,14 @@ visitorApply.setApplyNo(messageId); visitorApply.setVisitorApplyStatus(VisitorApplyStatusDict.APPLY_SUBMITTED); if(visitorApplyMapper.insert(visitorApply) > 0){ - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); - List list = userActionMapper.getPropertyManager(); + String accTime = visitorApply.getInTime()+"~"+visitorApply.getOutTime(); + List list = userActionMapper.getPropertyManager(RoleEnum.PROPERTY_PERSONNEL.getCode()); // 向物业管理员推送消息 for (String openid : list) { - //String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getStaffCode(),visitorApply.getStaffName(),accTime}; - //JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; - JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; + JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); + //String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + //JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); if(result.get("errmsg").equals("ok")){ insertMessageLog(messageId,"0",openid); }else{ @@ -81,7 +74,7 @@ } } // 向提报人推送消息 - String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; sentMessage(visitorApply,dataArr); return ResponseData.success(); } @@ -115,17 +108,17 @@ visitorApply.setVisitorApplyStatus(visitorApplyStatusRequest.getStatus()); if(visitorApplyMapper.updateById(visitorApply) > 0){ VisitorApply apply = visitorApplyMapper.selectById(id); - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); + String accTime = apply.getInTime()+"~"+apply.getOutTime(); //申请通过 if(VisitorApplyStatusDict.APPLY_PASSED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } //申请不通过 if(VisitorApplyStatusDict.APPLY_FAILED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } } @@ -156,7 +149,14 @@ return ResponseData.error(2401,Status.TOKEN_EXPIRES); } String openid = jsonObject.get("openid").toString(); - Page> resMap = visitorApplyMapper.getMessageList(page,openid); + UserDto userDto = new UserDto(); + userDto.setSyncId(openid); + UserDto userInfo = userActionMapper.getUserInfo(userDto); + String flag = ""; + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + flag = "true"; + } + Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -173,12 +173,10 @@ } @Override - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path) { + public void exportMessage(IdsDTO idsDTO, HttpServletResponse response) { try { - String[] split = ids.split(","); - List list = new ArrayList<>(Arrays.asList(split)); QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", list); + qw.in("id", idsDTO.getIds()); List visitorApplyList = visitorApplyMapper.selectList(qw); visitorApplyList.forEach(visitorApply -> { switch (visitorApply.getVisitorApplyStatus()){ @@ -195,12 +193,14 @@ private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); - //JSONObject result = SendMassage(toUser, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); - if(result.get("errmsg").equals("ok")){ - insertMessageLog(visitorApply.getApplyNo(),"0",toUser); - }else{ - insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + if(StringUtil.isNotEmpty(toUser)){ + JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + //JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + if(result.get("errmsg").equals("ok")){ + insertMessageLog(visitorApply.getApplyNo(),"0",toUser); + }else{ + insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + } } } @@ -223,6 +223,9 @@ UserDto userDto = new UserDto(); userDto.setAccount(staffCode); UserDto userInfo = userActionMapper.getUserInfo(userDto); + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + return ""; + } return userInfo.getSyncId(); } public void insertMessageLog(String messageId,String status,String toUser){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index b96e297..d7e1618 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; @@ -28,5 +29,5 @@ Object getMessageList(Page> page,HttpServletRequest request); - void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path); + void exportMessage(IdsDTO idsDTO, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index fa73027..40e00bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,12 +1,17 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.UserActionService; @@ -15,13 +20,15 @@ import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @@ -29,6 +36,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +@Slf4j @Service("UserActionService") public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @@ -40,6 +48,9 @@ final String SALT = "y76dniizew"; + @Resource + private IBaseExportService iBaseExportService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -92,15 +103,15 @@ try { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); - String phone = userDto.getPhone(); - userDto.setAttr1(phone); - UserDto user = userActionDao.getUserInfo(userDto); + UserDto dto = new UserDto(); + dto.setAttr1(userDto.getPhone()); + UserDto user = userActionDao.getUserInfo(dto); if(null == user){ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),sim.format(new Date())); + userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -210,4 +221,40 @@ } return token; } + + @Override + public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + try { + Page page = new Page(page1,limit); + Page list = userActionDao.exportStaffList(page); + final long start = System.currentTimeMillis(); + iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); + log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public Object batchImportStaff(List list) { + list.forEach(bean -> { + Long id = IdWorker.getId(); + bean.setId(id); + }); + userActionDao.batchImportStaff(list); + return ResponseData.success(list); + } + + @Override + public Object logOut(HttpServletRequest request) { + try { + String token = request.getHeader("token"); + Claims claims = JJWTRootUtils.phaseTokenGetBody(token); + redisTemplate.delete(claims.get("token").toString()); + return ResponseData.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResponseData.error("操作失败"); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index 3f5f45e..c2608e4 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -5,21 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; -import com.casic.missiles.modular.system.enums.MessageDict; -import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.enums.Status; -import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; +import com.casic.missiles.modular.system.enums.*; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.*; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -28,8 +23,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.FileOutputStream; -import java.text.ParseException; import java.util.*; /** @@ -66,14 +59,14 @@ visitorApply.setApplyNo(messageId); visitorApply.setVisitorApplyStatus(VisitorApplyStatusDict.APPLY_SUBMITTED); if(visitorApplyMapper.insert(visitorApply) > 0){ - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); - List list = userActionMapper.getPropertyManager(); + String accTime = visitorApply.getInTime()+"~"+visitorApply.getOutTime(); + List list = userActionMapper.getPropertyManager(RoleEnum.PROPERTY_PERSONNEL.getCode()); // 向物业管理员推送消息 for (String openid : list) { - //String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getStaffCode(),visitorApply.getStaffName(),accTime}; - //JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; - JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; + JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); + //String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + //JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); if(result.get("errmsg").equals("ok")){ insertMessageLog(messageId,"0",openid); }else{ @@ -81,7 +74,7 @@ } } // 向提报人推送消息 - String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; sentMessage(visitorApply,dataArr); return ResponseData.success(); } @@ -115,17 +108,17 @@ visitorApply.setVisitorApplyStatus(visitorApplyStatusRequest.getStatus()); if(visitorApplyMapper.updateById(visitorApply) > 0){ VisitorApply apply = visitorApplyMapper.selectById(id); - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); + String accTime = apply.getInTime()+"~"+apply.getOutTime(); //申请通过 if(VisitorApplyStatusDict.APPLY_PASSED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } //申请不通过 if(VisitorApplyStatusDict.APPLY_FAILED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } } @@ -156,7 +149,14 @@ return ResponseData.error(2401,Status.TOKEN_EXPIRES); } String openid = jsonObject.get("openid").toString(); - Page> resMap = visitorApplyMapper.getMessageList(page,openid); + UserDto userDto = new UserDto(); + userDto.setSyncId(openid); + UserDto userInfo = userActionMapper.getUserInfo(userDto); + String flag = ""; + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + flag = "true"; + } + Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -173,12 +173,10 @@ } @Override - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path) { + public void exportMessage(IdsDTO idsDTO, HttpServletResponse response) { try { - String[] split = ids.split(","); - List list = new ArrayList<>(Arrays.asList(split)); QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", list); + qw.in("id", idsDTO.getIds()); List visitorApplyList = visitorApplyMapper.selectList(qw); visitorApplyList.forEach(visitorApply -> { switch (visitorApply.getVisitorApplyStatus()){ @@ -195,12 +193,14 @@ private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); - //JSONObject result = SendMassage(toUser, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); - if(result.get("errmsg").equals("ok")){ - insertMessageLog(visitorApply.getApplyNo(),"0",toUser); - }else{ - insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + if(StringUtil.isNotEmpty(toUser)){ + JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + //JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + if(result.get("errmsg").equals("ok")){ + insertMessageLog(visitorApply.getApplyNo(),"0",toUser); + }else{ + insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + } } } @@ -223,6 +223,9 @@ UserDto userDto = new UserDto(); userDto.setAccount(staffCode); UserDto userInfo = userActionMapper.getUserInfo(userDto); + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + return ""; + } return userInfo.getSyncId(); } public void insertMessageLog(String messageId,String status,String toUser){ diff --git a/casic-web/src/main/resources/mapper/UserActionMapper.xml b/casic-web/src/main/resources/mapper/UserActionMapper.xml index d15d637..334b90e 100644 --- a/casic-web/src/main/resources/mapper/UserActionMapper.xml +++ b/casic-web/src/main/resources/mapper/UserActionMapper.xml @@ -40,7 +40,7 @@ INSERT INTO sys_ru_relation ( `ID`, `USERID`, `ROLEID`,`UPDATE_TIME`) - VALUES (#{id},#{userId},'1397015476211346433',DATE_FORMAT(#{updateTime},'%Y-%m-%d %H:%i:%S')) + VALUES (#{id},#{userId},#{roleId},DATE_FORMAT(#{updateTime},'%Y-%m-%d %H:%i:%S')) INSERT INTO bus_message ( `ID`, `MESSAGE_ID`, `STATUS`,`CREATE_TIME`,`OPEN_ID`) @@ -70,13 +70,17 @@ FROM sys_user t WHERE - t.ID IN ( - SELECT - ru.USERID - FROM - sys_ru_relation ru - WHERE - ru.ROLEID = '1319814546311985641') + t.SALT = #{deptId} and t.SYNC_ID is not null + + + + INSERT INTO sys_user(`ID`, `ACCOUNT`, `NAME`, `SEX`) VALUES + + (#{user.id},#{user.jobNo},#{user.staffName},#{user.staffGender}) + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 5ae5385..87cab49 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -1,19 +1,26 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.enums.Status; +import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; /** * @Description: 小程序用户 @@ -21,6 +28,7 @@ * @Date: 2022/11/8 14:39 */ @Controller +@Slf4j @RequestMapping("user") public class UserController { @@ -91,4 +99,43 @@ public Object getUserPhoneNumber(@RequestBody ParamsDto dto,HttpServletRequest request) { return userActionService.getUserPhoneNumber(dto,request); } + + /** + * 退出登录 + */ + @RequestMapping("/logOut") + @ResponseBody + public Object logOut(HttpServletRequest request) { + return userActionService.logOut(request); + } + + /** + * 数据导出 + */ + @PostMapping("/exportList") + @ResponseBody + public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + try { + userActionService.exportStaffList(page,limit,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") + @ResponseBody + public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + try { + CommonExcelListener listener = new CommonExcelListener<>(); + final long start = System.currentTimeMillis(); + EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); + //读取到的数据 + List list = listener.getList(); + return userActionService.batchImportStaff(list); + } catch (IOException e) { + e.printStackTrace(); + return ResponseData.error(Status.FAIL); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index 070e51a..b3b2504 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,25 +3,19 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; -import javafx.beans.binding.ObjectExpression; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -76,9 +70,9 @@ return visitorApplyService.getMessageInfo(messageId,request); } - @RequestMapping("/exportMessage") - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response) { - visitorApplyService.exportMessage(ids,request,response,path); + @PostMapping("/exportMessage") + public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { + visitorApplyService.exportMessage(idsDTO,response); } @RequestMapping("/getMessageList") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index 6a293d2..a6abe39 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.system.dto.MessageDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.model.Dict; @@ -20,7 +22,7 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("updateTime")String updateTime); + void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); @@ -28,7 +30,9 @@ void insertMessageLog(@Param("message") MessageDto message); - List getPropertyManager(); + List getPropertyManager(@Param("deptId") String deptId); + Page exportStaffList(Page page); + void batchImportStaff(@Param("list") List list); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index 097659f..be1ebb8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,7 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); String selectApplyNo(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java new file mode 100644 index 0000000..44d50a9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/IdsDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class IdsDTO { + // 导出ids + private List ids; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 16f8088..0cb8058 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -1,14 +1,15 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class StaffInfoDto { - private String id;// - private String staffCode;//工号 + private Long id; + @ExcelProperty(value = "工号",order = 0) + private String jobNo;//工号 + @ExcelProperty(value = "姓名",order = 1) private String staffName;//姓名 + @ExcelProperty(value = "性别",order = 2) private String staffGender;//性别 - private String staffPhone;//手机号 - private String createTime;// - private String updateTime;// } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index 2cc75d4..a8743f2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.math.BigDecimal; @@ -8,11 +9,14 @@ public class UserDto { private String id;//主键id private String avatar;//头像 + @ExcelProperty(value = "工号",order = 0) private String account;//账号 private String password;//密码 private String salt;//md5密码盐 + @ExcelProperty(value = "姓名",order = 1) private String name;//名字 private String birthday;//生日 + @ExcelProperty(value = "性别",order = 2) private String sex;//性别 private String email;//电子邮件 private String phone;//电话 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java index 64d10a4..abb76a7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/MessageDict.java @@ -2,12 +2,12 @@ public interface MessageDict { - String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = ""; + String ADMINISTRATOR_MESSAGE_TEMPLATE_ID = "W5Xhyw94AuONUpkhWWpLJgGsbmr1eoO5opeW9brYEeA"; - String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"time1","thing2","thing3","thing4","thing5"}; + String[] ADMINISTRATOR_MESSAGE_TEMPLATE_DATA = {"character_string1","thing2","time3"}; - String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZeM4hB_6F-BuKdoezTCx8JM"; + String APPLICANT_MESSAGE_TEMPLATE_ID = "34re6IUbmEjUvOFmFcwMZev5gr-E6KRsRcJ-9T-tbXI"; - String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","thing2","thing3","thing4","thing5"}; + String[] APPLICANT_MESSAGE_TEMPLATE_DATA = {"phrase1","character_string6","thing3","time7"}; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java new file mode 100644 index 0000000..8746e42 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.system.enums; + +public enum RoleEnum { + + PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), + ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), + ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); + + private String code; + private String value; + + RoleEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 6de6999..88f70b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,7 +6,7 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; - String USER_ALREADY_REGISTERED = "该账号已注册"; + String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; String FAILED_PHONE = "授权手机号不正确"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java new file mode 100644 index 0000000..1cb841a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/CommonExcelListener.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + + +@Slf4j +public class CommonExcelListener extends AnalysisEventListener { + + private final List list = new ArrayList<>(); + + @Override + public void invoke(T data, AnalysisContext analysisContext) { + this.list.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("解析完成:共解析到{}数据", this.list.size()); + } + + public List getList() { + return this.list; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 52b3cbb..519da83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -2,11 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.dto.ParamsDto; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; public interface UserActionService extends IService { @@ -29,4 +32,10 @@ JSONObject getLoginStatus(HttpServletRequest request); Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); + + void exportStaffList(Long page,Long limit,HttpServletResponse response); + + Object batchImportStaff(List list); + + Object logOut(HttpServletRequest request); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index b96e297..d7e1618 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; @@ -28,5 +29,5 @@ Object getMessageList(Page> page,HttpServletRequest request); - void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path); + void exportMessage(IdsDTO idsDTO, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index fa73027..40e00bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,12 +1,17 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.StaffInfoDto; import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.UserActionService; @@ -15,13 +20,15 @@ import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @@ -29,6 +36,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +@Slf4j @Service("UserActionService") public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @@ -40,6 +48,9 @@ final String SALT = "y76dniizew"; + @Resource + private IBaseExportService iBaseExportService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -92,15 +103,15 @@ try { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); - String phone = userDto.getPhone(); - userDto.setAttr1(phone); - UserDto user = userActionDao.getUserInfo(userDto); + UserDto dto = new UserDto(); + dto.setAttr1(userDto.getPhone()); + UserDto user = userActionDao.getUserInfo(dto); if(null == user){ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),sim.format(new Date())); + userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -210,4 +221,40 @@ } return token; } + + @Override + public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + try { + Page page = new Page(page1,limit); + Page list = userActionDao.exportStaffList(page); + final long start = System.currentTimeMillis(); + iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); + log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public Object batchImportStaff(List list) { + list.forEach(bean -> { + Long id = IdWorker.getId(); + bean.setId(id); + }); + userActionDao.batchImportStaff(list); + return ResponseData.success(list); + } + + @Override + public Object logOut(HttpServletRequest request) { + try { + String token = request.getHeader("token"); + Claims claims = JJWTRootUtils.phaseTokenGetBody(token); + redisTemplate.delete(claims.get("token").toString()); + return ResponseData.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResponseData.error("操作失败"); + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index 3f5f45e..c2608e4 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -5,21 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; -import com.casic.missiles.modular.system.enums.MessageDict; -import com.casic.missiles.modular.system.enums.MessageEnum; -import com.casic.missiles.modular.system.enums.Status; -import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; +import com.casic.missiles.modular.system.enums.*; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.*; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -28,8 +23,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.FileOutputStream; -import java.text.ParseException; import java.util.*; /** @@ -66,14 +59,14 @@ visitorApply.setApplyNo(messageId); visitorApply.setVisitorApplyStatus(VisitorApplyStatusDict.APPLY_SUBMITTED); if(visitorApplyMapper.insert(visitorApply) > 0){ - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); - List list = userActionMapper.getPropertyManager(); + String accTime = visitorApply.getInTime()+"~"+visitorApply.getOutTime(); + List list = userActionMapper.getPropertyManager(RoleEnum.PROPERTY_PERSONNEL.getCode()); // 向物业管理员推送消息 for (String openid : list) { - //String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getStaffCode(),visitorApply.getStaffName(),accTime}; - //JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; - JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + String[] dataArr = {visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; + JSONObject result = SendMassage(openid, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); + //String[] dataArr = {MessageEnum.TEST_MESSAGE.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + //JSONObject result = SendMassage(openid, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); if(result.get("errmsg").equals("ok")){ insertMessageLog(messageId,"0",openid); }else{ @@ -81,7 +74,7 @@ } } // 向提报人推送消息 - String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),visitorApply.getVisitReason(),visitorApply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_SUBMITTED.getValue(),visitorApply.getApplyNo(),visitorApply.getVisitorName(),accTime}; sentMessage(visitorApply,dataArr); return ResponseData.success(); } @@ -115,17 +108,17 @@ visitorApply.setVisitorApplyStatus(visitorApplyStatusRequest.getStatus()); if(visitorApplyMapper.updateById(visitorApply) > 0){ VisitorApply apply = visitorApplyMapper.selectById(id); - String accTime = visitorApply.getInTime()+"-"+visitorApply.getOutTime(); + String accTime = apply.getInTime()+"~"+apply.getOutTime(); //申请通过 if(VisitorApplyStatusDict.APPLY_PASSED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_PASSED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } //申请不通过 if(VisitorApplyStatusDict.APPLY_FAILED.equals(visitorApply.getVisitorApplyStatus())){ // 向申请人推送消息 - String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),apply.getVisitReason(),apply.getVisitPosition()}; + String[] dataArr = {MessageEnum.APPLY_FAILED.getValue(),apply.getApplyNo(),apply.getVisitorName(),accTime}; sentMessage(apply,dataArr); } } @@ -156,7 +149,14 @@ return ResponseData.error(2401,Status.TOKEN_EXPIRES); } String openid = jsonObject.get("openid").toString(); - Page> resMap = visitorApplyMapper.getMessageList(page,openid); + UserDto userDto = new UserDto(); + userDto.setSyncId(openid); + UserDto userInfo = userActionMapper.getUserInfo(userDto); + String flag = ""; + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + flag = "true"; + } + Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -173,12 +173,10 @@ } @Override - public void exportMessage(String ids, HttpServletRequest request, HttpServletResponse response,String path) { + public void exportMessage(IdsDTO idsDTO, HttpServletResponse response) { try { - String[] split = ids.split(","); - List list = new ArrayList<>(Arrays.asList(split)); QueryWrapper qw = new QueryWrapper<>(); - qw.in("id", list); + qw.in("id", idsDTO.getIds()); List visitorApplyList = visitorApplyMapper.selectList(qw); visitorApplyList.forEach(visitorApply -> { switch (visitorApply.getVisitorApplyStatus()){ @@ -195,12 +193,14 @@ private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); - //JSONObject result = SendMassage(toUser, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.ADMINISTRATOR_MESSAGE_TEMPLATE_DATA); - JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); - if(result.get("errmsg").equals("ok")){ - insertMessageLog(visitorApply.getApplyNo(),"0",toUser); - }else{ - insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + if(StringUtil.isNotEmpty(toUser)){ + JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + //JSONObject result = SendMassage(toUser, MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID, dataArr, MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA); + if(result.get("errmsg").equals("ok")){ + insertMessageLog(visitorApply.getApplyNo(),"0",toUser); + }else{ + insertMessageLog(visitorApply.getApplyNo(),"1",toUser); + } } } @@ -223,6 +223,9 @@ UserDto userDto = new UserDto(); userDto.setAccount(staffCode); UserDto userInfo = userActionMapper.getUserInfo(userDto); + if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + return ""; + } return userInfo.getSyncId(); } public void insertMessageLog(String messageId,String status,String toUser){ diff --git a/casic-web/src/main/resources/mapper/UserActionMapper.xml b/casic-web/src/main/resources/mapper/UserActionMapper.xml index d15d637..334b90e 100644 --- a/casic-web/src/main/resources/mapper/UserActionMapper.xml +++ b/casic-web/src/main/resources/mapper/UserActionMapper.xml @@ -40,7 +40,7 @@ INSERT INTO sys_ru_relation ( `ID`, `USERID`, `ROLEID`,`UPDATE_TIME`) - VALUES (#{id},#{userId},'1397015476211346433',DATE_FORMAT(#{updateTime},'%Y-%m-%d %H:%i:%S')) + VALUES (#{id},#{userId},#{roleId},DATE_FORMAT(#{updateTime},'%Y-%m-%d %H:%i:%S')) INSERT INTO bus_message ( `ID`, `MESSAGE_ID`, `STATUS`,`CREATE_TIME`,`OPEN_ID`) @@ -70,13 +70,17 @@ FROM sys_user t WHERE - t.ID IN ( - SELECT - ru.USERID - FROM - sys_ru_relation ru - WHERE - ru.ROLEID = '1319814546311985641') + t.SALT = #{deptId} and t.SYNC_ID is not null + + + + INSERT INTO sys_user(`ID`, `ACCOUNT`, `NAME`, `SEX`) VALUES + + (#{user.id},#{user.jobNo},#{user.staffName},#{user.staffGender}) + + \ No newline at end of file diff --git a/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml b/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml index c9ea512..1e3a1da 100644 --- a/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml +++ b/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml @@ -36,7 +36,7 @@ LEFT JOIN bus_visit_apply t2 ON t1.message_id = t2.apply_no WHERE 1 = 1 - AND t1.open_id = #{openid} + AND t1.open_id = #{openid} and t2.staff_code = #{user} ORDER BY t1.create_time desc