rk
3 天以前 5df732ffe16b3f162422c2db61a78458e28c7f8d
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -1,27 +1,35 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.config.DataSyncConfig;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.config.annotation.LoginNoRequired;
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.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
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.dto.RegisterDriverDTO;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.system.dto.UpdatePwdDto;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl;
import com.taobao.api.ApiException;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
@@ -37,11 +45,15 @@
    @Autowired
    private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService;
    @Autowired
    private HkSyncOrgUserFromSelfServiceImpl hkSyncOrgUserFromSelfService;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    @Autowired
    private MemberService memberService;
    @Autowired
    private SystemUserBiz systemUserBiz;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
@@ -69,7 +81,7 @@
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:member:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        memberService.deleteById(id);
        memberService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -82,15 +94,15 @@
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.deleteByIdInBatch(idList);
        memberService.deleteByIdInBatch(idList,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("员工权限下发")
    @GetMapping("/roleAuth/{id}")
    @CloudRequiredPermission("business:empower:create")
    public ApiResponse roleAuthById(@PathVariable Integer id) {
        memberService.roleAuthById(id);
    public ApiResponse roleAuthById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        memberService.roleAuthById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -98,7 +110,15 @@
    @ApiOperation("同步人脸信息")
    @PostMapping("/updateFace")
    public ApiResponse updateFace(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateFace(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量授权下发")
    @PostMapping("/batchRoleAuth")
    public ApiResponse batchRoleAuth(@RequestBody Member memberRole, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        memberRole.setLoginUserInfo(this.getLoginUser(token));
        memberService.batchRoleAuth(memberRole);
        return ApiResponse.success(null);
    }
    @ApiOperation("强制删除安防平台人员信息")
@@ -117,7 +137,16 @@
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse updateById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateById(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("设置或取消主管")
    @PostMapping("/updateHead")
    @CloudRequiredPermission("business:member:head")
    public ApiResponse updateHead(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateHead(member);
        return ApiResponse.success(null);
    }
@@ -125,65 +154,88 @@
    @PostMapping("/updateStatusById")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse updateStatusById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateStatusById(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("人员移除/解冻")
    @PostMapping("/updateRemoveStatusById")
    @ApiOperation("根据ID 设置在职、离职  ")
    @PostMapping("/updateWorkStatus")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse updateRemoveStatusById(@RequestBody List<Member> list,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        if(list.size()>0){
            memberService.updateRemoveStatusById(list);
            return ApiResponse.success(null);
        }else{
            return ApiResponse.failed("参数错误");
        }
    }
    @ApiOperation("人员拉黑/冻结")
    @PostMapping("/updateVisitsStatusById")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse updateVisitsStatusById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse updateWorkStatus(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateVisitsStatusById(member);
        memberService.updateWorkStatus(member);
        return ApiResponse.success(null);
    }
    @ApiOperation(value = "人员信息导入" ,notes = "保单申请")
    @PostMapping("/importExcel")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
            @ApiImplicitParam(name = "组织类型 0相关方 1内部组织", value = "companyType", required = true, paramType = "query", dataType = "Integer",example = "0",dataTypeClass = Integer.class),
    })
    @CloudRequiredPermission("business:member:create")
    public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file,@ApiParam(value = "companyType") Integer companyType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(memberService.importBatch(file,companyType,this.getLoginUser(token)));
    }
    @ApiOperation("批量拉黑")
    @GetMapping("/batchBlock")
    @CloudRequiredPermission("business:member:delete")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse batchBlock(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.batchBlock(idList,2);
        memberService.batchBlock(idList,2,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("批量冻结")
    @GetMapping("/batchFreeze")
    @CloudRequiredPermission("business:member:delete")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse batchFreeze(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.batchBlock(idList,1);
        memberService.batchBlock(idList,1,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("批量移出黑名单")
    @GetMapping("/batchRemoveBlock")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse batchCancelBlock(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.batchRemoveBlock(idList,2,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("批量解除冻结")
    @GetMapping("/batchRemoveFreeze")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse batchRemoveFreeze(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.batchRemoveBlock(idList,1,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("是否可拜访状态修改")
    @PostMapping("/updateCanVisitById")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse updateCanVisitById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.updateCanVisitById(member);
        return ApiResponse.success(null);
    }
@@ -197,22 +249,28 @@
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<List<Member>> findPage (@RequestBody Member model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse<List<Member>> list (@RequestBody Member model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.findList(model));
    }
    @ApiOperation("分页劳务用户信息查询")
    @PostMapping("/findLaborMemberInfoPage")
    @ApiOperation("查询全部司机")
    @PostMapping("/driveList")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<PageData<MemberInfoDTO>> findLaborMemberInfoPage(@RequestBody PageWrap<MemberInfoDTO> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.findLaborMemberInfoPage(pageWrap));
    public ApiResponse<List<Member>> findDriveList (@RequestBody Member model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.findDriveList(model));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:member:exportExcel")
    public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        ExcelExporter.build(Member.class).export(memberService.findPage(pageWrap).getRecords(), "人员信息表", response);
    public void exportExcel (@RequestBody PageWrap<MemberQuery> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        List<Member> memberList =  new ArrayList<>();
        if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
            memberList =  memberService.findVisitPage(pageWrap).getRecords();
        }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){
            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
            memberList =  memberService.findMemberInfoPage(pageWrap).getRecords();
        }
        ExcelExporter.build(Member.class).export(memberList, "人员信息表", response);
    }
    @ApiOperation("根据ID查询")
@@ -234,10 +292,11 @@
    @ApiOperation("分页查询内部人员信息")
    @PostMapping("/findMemberInfoPage")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse<PageData<Member>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
            return ApiResponse.success(memberService.findVisitPage(pageWrap));
        }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){
            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
            return ApiResponse.success(memberService.findMemberInfoPage(pageWrap));
        }else {
            return ApiResponse.success(null);
@@ -247,7 +306,7 @@
    @ApiOperation("分页查询访客人员信息")
    @PostMapping("/findVisitPage")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<PageData<MemberInfoDTO>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse<PageData<Member>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.findVisitPage(pageWrap));
    }
@@ -255,7 +314,7 @@
    @ApiOperation("异常人员冻结/拉黑")
    @PostMapping("/findUnusualPage")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<PageData<MemberInfoDTO>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    public ApiResponse<PageData<Member>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.findUnusualPage(pageWrap));
    }
@@ -269,15 +328,17 @@
    @ApiOperation("全量信息同步")
    @PostMapping("/syncAll")
    @CloudRequiredPermission("business:member:sync")
    public ApiResponse sync(){
    public ApiResponse sync(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
            erpSyncService.syncUsers(null);
        }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.hk){
            hkSyncOrgUserFHKService.syncUserData();
            hkSyncOrgUserFHKService.syncUserData(this.getLoginUser(token));
        }else if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self){
            hkSyncOrgUserFromSelfService.syncUserData(this.getLoginUser(token));
            return ApiResponse.success("同步成功");
        }
        return ApiResponse.success("同步成功");
    }
    @ApiOperation("测试人员冻结")
@@ -287,4 +348,34 @@
        return ApiResponse.success(null);
    }
    @LoginNoRequired
    @ApiOperation("司机注册")
    @PostMapping("/registerDriver")
    public ApiResponse registerDriver(@RequestBody RegisterDriverDTO registerDriverDTO ){
        memberService.registerDriver(registerDriverDTO);
        return ApiResponse.success("注册成功");
    }
    @Trace(withRequestParameters = false)
    @ApiOperation("修改当前用户密码")
    @PostMapping("/updatePwd")
    public ApiResponse updatePwd (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdatePwdDto dto) {
        dto.setUserId(this.getLoginUser(token).getId());
        systemUserBiz.updatePwd(dto);
        return ApiResponse.success(null);
    }
    @ApiOperation("全量人员信息同步 - 钉钉")
    @PostMapping("/syncAllDingding")
//    @CloudRequiredPermission("business:company:sync")
    public ApiResponse syncAllDingding() throws ApiException {
        memberService.syncDDUserInfo();
        return ApiResponse.success("同步成功");
    }
}