rk
2025-09-28 80f9adf3f7682edf1d997f48c65a9bac2e4c1605
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -3,28 +3,34 @@
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.LoginUserInfo;
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.business.model.VisitReason;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.VisitDetailVO;
import com.doumee.dao.web.response.WxAuthorizeVO;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.VisitReasonService;
import com.doumee.service.business.VisitsService;
import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Objects;
/**
 * Created by IntelliJ IDEA.
@@ -47,21 +53,35 @@
    @Autowired
    private VisitsService visitsService;
    @Autowired
    private VisitReasonService visitReasonService;
    @ApiOperation(value = "访客微信授权", notes = "访客微信授权获取openId")
    @GetMapping("/wxAuthorize")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "授权码", required = true)
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "授权码", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "source", value = "来源:0=司机;1=访客;2=内部员工", required = true)
    })
    public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code) {
        WxAuthorizeVO wxAuthorizeVO =  memberService.wxAuthorize(code);
    public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code,@RequestParam Integer source) {
        WxAuthorizeVO wxAuthorizeVO =  memberService.wxAuthorize(code,source);
        return ApiResponse.success("查询成功",wxAuthorizeVO);
    }
    @ApiOperation(value = "钉钉微信授权", notes = "访客微信授权获取openId")
    @GetMapping("/ddAuthorize")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "授权码", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "source", value = "来源:0=司机;1=访客;2=内部员工", required = true)
    })
    public ApiResponse<DDAuthorizeVO> ddAuthorize(@RequestParam String code, @RequestParam Integer source) throws ApiException {
        DDAuthorizeVO ddAuthorizeVO =  memberService.ddAuthorize(code,source);
        return ApiResponse.success("查询成功",ddAuthorizeVO);
    }
    @ApiOperation(value = "查询被访问人信息", notes = "查询被访问人信息")
    @PostMapping("/getVisitedMember")
    public ApiResponse<MemberVO> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) {
    public ApiResponse<List<MemberVO>> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) {
        return ApiResponse.success("查询成功", memberService.getVisitedMember(checkVisitedDTO));
    }
@@ -70,25 +90,56 @@
    @PostMapping("/createFk")
    public ApiResponse createFk(@RequestBody Visits visits) {
        visits.setSourceType(Constants.ZERO);
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false));
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false,Constants.ZERO));
    }
    @ApiOperation(value = "来访事由", notes = "来访事由")
    @PostMapping("/visitReason")
    public ApiResponse<List<VisitReason>> visitReason() {
        return ApiResponse.success("查询成功", visitReasonService.findList(null));
    }
    @ApiOperation(value = "访客记录详情", notes = "访客记录详情")
    @GetMapping("/detail")
    public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success("查询成功", visitsService.getVisitDetail(id,getLoginUser(token).getMemberId()));
        LoginUserInfo loginUserInfo = getLoginUser(token);
        return ApiResponse.success("查询成功", visitsService.getVisitDetail(id, Objects.isNull(loginUserInfo)?null:loginUserInfo.getMemberId()));
    }
    @ApiOperation("访客记录 - 分页列表")
    @PostMapping("/visitPage")
    public ApiResponse<PageData<Visits>> visitPage (@RequestBody PageWrap<Visits> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        pageWrap.getModel().setMemberId(loginUserInfo.getMemberId());
    public ApiResponse<PageData<Visits>> visitPage (@RequestBody PageWrap<Visits> pageWrap) {
        if(Objects.isNull(pageWrap.getModel()) || StringUtils.isBlank(pageWrap.getModel().getOpenid())){
            pageWrap.getModel().setMemberId(0);
        }else{
            if(Objects.nonNull(pageWrap.getModel()) && Objects.nonNull(pageWrap.getModel().getStatus()) ){
                pageWrap.getModel().setBusinessStatus(pageWrap.getModel().getStatus());
                pageWrap.getModel().setStatus(null);
            }
        }
        return ApiResponse.success(visitsService.findPage(pageWrap));
    }
    /**
     * 2025-3-25 14:14:34  加入取消预约 待审批、审批中、已审批
     * @param visitId
     * @return
     */
    @ApiOperation("取消预约")
    @GetMapping("/visitsSelfCancel")
    public ApiResponse visitsSelfCancel(@RequestParam Integer visitId,Integer memberId,@RequestParam String openid){
        if(Objects.isNull(memberId)){
            memberId = Constants.ZERO;
        }
        visitsService.visitsSelfCancel(visitId,memberId,openid);
        return ApiResponse.success(null);
    }
}