doum
2025-09-29 3680d8f2d54dcd3ac62fcf9730e3c5e82e1714c8
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -1,28 +1,30 @@
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.MemberImport;
import com.doumee.dao.admin.request.MemberQuery;
import com.doumee.dao.business.dto.RegisterDriverDTO;
import com.doumee.dao.business.dto.ResetPasswordDTO;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberRole;
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 com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl;
import com.taobao.api.ApiException;
import io.swagger.annotations.*;
import org.apache.shiro.authz.annotation.RequiresPermissions;
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;
@@ -43,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")
@@ -88,7 +94,7 @@
        for (String id : idArray ){
            idList.add(Integer.valueOf(id));
        }
        memberService.deleteByIdInBatch(idList,this.getLoginUser(null));
        memberService.deleteByIdInBatch(idList,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -225,8 +231,6 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("是否可拜访状态修改")
    @PostMapping("/updateCanVisitById")
    @CloudRequiredPermission("business:member:update")
@@ -255,12 +259,18 @@
        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查询")
@@ -286,6 +296,7 @@
        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);
@@ -317,11 +328,14 @@
    @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("同步成功");
    }
@@ -345,5 +359,23 @@
    @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("同步成功");
    }
}