nidapeng
2024-03-28 d16520069e7a89b5ac0d13d0c8ba4e30af023279
server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -1,16 +1,23 @@
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.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -20,12 +27,18 @@
/**
 * @author 江蹄蹄
 * @date 2023/11/23 18:16
 * @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;
@@ -36,6 +49,14 @@
    @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删除")
@@ -59,6 +80,27 @@
        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("同步人脸信息")
    @PostMapping("/updateFace")
    public ApiResponse updateFace(@RequestBody Member member) {
        memberService.updateFace(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("重新下发人脸")
    @PostMapping("/empowerByList")
    public ApiResponse empowerByList(@RequestBody Member member) {
        memberService.empowerByList(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:member:update")
@@ -67,11 +109,84 @@
        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")
@@ -87,4 +202,70 @@
    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);
    }
}