| package com.doumee.api.business; | 
|   | 
| import com.doumee.api.BaseController; | 
| import com.doumee.config.DataSyncConfig; | 
| import com.doumee.core.annotation.excel.ExcelExporter; | 
| import com.doumee.core.annotation.pr.PreventRepeat; | 
| import com.doumee.core.model.ApiResponse; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.dao.admin.request.LaborMemberDTO; | 
| import com.doumee.dao.admin.request.MemberQuery; | 
| import com.doumee.dao.admin.response.MemberInfoDTO; | 
| import com.doumee.dao.business.model.Member; | 
| import com.doumee.service.business.ext.ERPSyncService; | 
| import com.doumee.service.business.MemberService; | 
| import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.apache.shiro.authz.annotation.RequiresPermissions; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.web.bind.annotation.*; | 
| import javax.servlet.http.HttpServletResponse; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author 江蹄蹄 | 
|  * @date 2023/11/30 15:33 | 
|  */ | 
| @Api(tags = "人员信息表") | 
| @RestController | 
| @RequestMapping("/business/member") | 
| public class MemberController extends BaseController { | 
|     @Autowired | 
|     private ERPSyncService erpSyncService; | 
|     @Autowired | 
|     private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService; | 
|     @Autowired | 
|     private DataSyncConfig dataSyncConfig; | 
|   | 
|     @Autowired | 
|     private MemberService memberService; | 
|   | 
|     @PreventRepeat | 
|     @ApiOperation("新建") | 
|     @PostMapping("/create") | 
|     @RequiresPermissions("business:member:create") | 
|     public ApiResponse create(@RequestBody Member member) { | 
|         return ApiResponse.success(memberService.create(member)); | 
|     } | 
|   | 
|     @PreventRepeat | 
|     @ApiOperation("创建劳务人员信息") | 
|     @PostMapping("/laborMemberCreate") | 
|     @RequiresPermissions("business:member:create") | 
|     public ApiResponse<Integer> laborMemberCreate(@RequestBody LaborMemberDTO member){ | 
|         return ApiResponse.success(memberService.laborMemberCreate(member)); | 
|     } | 
|   | 
|     @ApiOperation("根据ID删除") | 
|     @GetMapping("/delete/{id}") | 
|     @RequiresPermissions("business:member:delete") | 
|     public ApiResponse deleteById(@PathVariable Integer id) { | 
|         memberService.deleteById(id); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("批量删除") | 
|     @GetMapping("/delete/batch") | 
|     @RequiresPermissions("business:member:delete") | 
|     public ApiResponse deleteByIdInBatch(@RequestParam String ids) { | 
|         String [] idArray = ids.split(","); | 
|         List<Integer> idList = new ArrayList<>(); | 
|         for (String id : idArray) { | 
|             idList.add(Integer.valueOf(id)); | 
|         } | 
|         memberService.deleteByIdInBatch(idList); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("员工权限下发") | 
|     @GetMapping("/roleAuth/{id}") | 
|     @RequiresPermissions("business:empower:create") | 
|     public ApiResponse roleAuthById(@PathVariable Integer id) { | 
|         memberService.roleAuthById(id); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("根据ID修改") | 
|     @PostMapping("/updateById") | 
|     @RequiresPermissions("business:member:update") | 
|     public ApiResponse updateById(@RequestBody Member member) { | 
|         memberService.updateById(member); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("根据ID 禁启用  ") | 
|     @PostMapping("/updateStatusById") | 
|     @RequiresPermissions("business:member:update") | 
|     public ApiResponse updateStatusById(@RequestBody Member member){ | 
|         memberService.updateStatusById(member); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("人员移除/解冻") | 
|     @PostMapping("/updateRemoveStatusById") | 
|     @RequiresPermissions("business:member:update") | 
|     public ApiResponse updateRemoveStatusById(@RequestBody List<Member> list){ | 
|         if(list.size()>0){ | 
|             memberService.updateRemoveStatusById(list); | 
|             return ApiResponse.success(null); | 
|         }else{ | 
|             return ApiResponse.failed("参数错误"); | 
|         } | 
|   | 
|     } | 
|   | 
|     @ApiOperation("人员拉黑/冻结") | 
|     @PostMapping("/updateVisitsStatusById") | 
|     @RequiresPermissions("business:member:update") | 
|     public ApiResponse updateVisitsStatusById(@RequestBody Member member){ | 
|         memberService.updateVisitsStatusById(member); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("批量拉黑") | 
|     @GetMapping("/batchBlock") | 
|     @RequiresPermissions("business:member:delete") | 
|     public ApiResponse batchBlock(@RequestParam String ids) { | 
|         String [] idArray = ids.split(","); | 
|         List<Integer> idList = new ArrayList<>(); | 
|         for (String id : idArray) { | 
|             idList.add(Integer.valueOf(id)); | 
|         } | 
|         memberService.batchBlock(idList,2); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("批量冻结") | 
|     @GetMapping("/batchFreeze") | 
|     @RequiresPermissions("business:member:delete") | 
|     public ApiResponse batchFreeze(@RequestParam String ids) { | 
|         String [] idArray = ids.split(","); | 
|         List<Integer> idList = new ArrayList<>(); | 
|         for (String id : idArray) { | 
|             idList.add(Integer.valueOf(id)); | 
|         } | 
|         memberService.batchBlock(idList,1); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|   | 
|   | 
|     @ApiOperation("是否可拜访状态修改") | 
|     @PostMapping("/updateCanVisitById") | 
|     @RequiresPermissions("business:member:update") | 
|     public ApiResponse updateCanVisitById(@RequestBody Member member){ | 
|         memberService.updateCanVisitById(member); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("分页查询") | 
|     @PostMapping("/page") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<Member> pageWrap) { | 
|         return ApiResponse.success(memberService.findPage(pageWrap)); | 
|     } | 
|   | 
|     @ApiOperation("分页劳务用户信息查询") | 
|     @PostMapping("/findLaborMemberInfoPage") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse<PageData<MemberInfoDTO>> findLaborMemberInfoPage(@RequestBody PageWrap<MemberInfoDTO> pageWrap){ | 
|         return ApiResponse.success(memberService.findLaborMemberInfoPage(pageWrap)); | 
|     } | 
|   | 
|     @ApiOperation("导出Excel") | 
|     @PostMapping("/exportExcel") | 
|     @RequiresPermissions("business:member:exportExcel") | 
|     public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response) { | 
|         ExcelExporter.build(Member.class).export(memberService.findPage(pageWrap).getRecords(), "人员信息表", response); | 
|     } | 
|   | 
|     @ApiOperation("根据ID查询") | 
|     @GetMapping("/{id}") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse findById(@PathVariable Integer id) { | 
|         return ApiResponse.success(memberService.findById(id)); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     /** | 
|      * | 
|      * 分页查询内部人员信息 | 
|      * @param pageWrap | 
|      * @return | 
|      */ | 
|     @ApiOperation("分页查询内部人员信息") | 
|     @PostMapping("/findMemberInfoPage") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap){ | 
|         if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){ | 
|             return ApiResponse.success(memberService.findVisitPage(pageWrap)); | 
|         }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){ | 
|             return ApiResponse.success(memberService.findMemberInfoPage(pageWrap)); | 
|         }else { | 
|             return ApiResponse.success(null); | 
|         } | 
|     } | 
|   | 
|     @ApiOperation("分页查询访客人员信息") | 
|     @PostMapping("/findVisitPage") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse<PageData<MemberInfoDTO>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap) { | 
|         return ApiResponse.success(memberService.findVisitPage(pageWrap)); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("异常人员冻结/拉黑") | 
|     @PostMapping("/findUnusualPage") | 
|     @RequiresPermissions("business:member:query") | 
|     public ApiResponse<PageData<MemberInfoDTO>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap) { | 
|         return ApiResponse.success(memberService.findUnusualPage(pageWrap)); | 
|     } | 
|   | 
|     @ApiOperation("根据类型查询人员信息") | 
|     @PostMapping("/findTypeMemberInfo") | 
|     //@RequiresPermissions("business:member:query") | 
|     public ApiResponse<List<Member>> findTypeMemberInfo (@RequestBody Member member) { | 
|         return ApiResponse.success(memberService.findList(member)); | 
|     } | 
|   | 
|     @ApiOperation("全量信息同步") | 
|     @PostMapping("/syncAll") | 
|     @RequiresPermissions("business:member:sync") | 
|     public ApiResponse sync(){ | 
|         if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ | 
|             erpSyncService.syncUsers(null); | 
|         }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){ | 
|             hkSyncOrgUserFHKService.syncUserData(); | 
|         } | 
|         return ApiResponse.success("同步成功"); | 
|     } | 
|   | 
|   | 
|   | 
|     @ApiOperation("测试人员冻结") | 
|     @PostMapping("/testFreeFz") | 
|     public ApiResponse testFreeFz() { | 
|         memberService.memberFreeze(); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
| } |