From b2e7940ebd808dbd6a8d7f0caf40e460759f1eb4 Mon Sep 17 00:00:00 2001 From: guohb Date: Fri, 12 Apr 2024 13:45:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=BD=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/mapper/AuditStatusMapper.java | 13 ++ .../resources/mapper/AuditStatusMapper.xml | 91 ++++++++++++ .../com/cool/store/entity/AuditStatusDO.java | 2 +- .../cool/store/request/AuditCheckRequest.java | 23 +++ .../store/request/AuditDetailRequest.java | 10 ++ .../store/response/AuditDetailResponse.java | 31 +++++ .../store/response/CheckListResponse.java | 60 ++++++++ .../store/service/AuditStatusService.java | 22 ++- .../service/impl/AuditStatusServiceImpl.java | 131 ++++++++++++++++-- .../webb/AuditStatusController.java | 51 +++++++ 10 files changed, 423 insertions(+), 11 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/AuditCheckRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/AuditDetailRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/AuditDetailResponse.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/CheckListResponse.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/AuditStatusController.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AuditStatusMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AuditStatusMapper.java index 6009370c4..677b1e321 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AuditStatusMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AuditStatusMapper.java @@ -1,9 +1,22 @@ package com.cool.store.mapper; import com.cool.store.entity.AuditStatusDO; +import com.cool.store.response.CheckListResponse; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.Date; +import java.util.List; + @org.apache.ibatis.annotations.Mapper public interface AuditStatusMapper extends Mapper { + List checkList(@Param("keyWord") String partnerNameOrPhone, + @Param("startTime") Date startTime, + @Param("endTime") Date endTime, + @Param("region") String region, + @Param("checkStatus") Integer checkStatus, + @Param("checkStage") Integer checkStage, + @Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/AuditStatusMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/AuditStatusMapper.xml index 1457e76d1..56a75ad57 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/AuditStatusMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/AuditStatusMapper.xml @@ -28,4 +28,95 @@ update_time, audit_stage + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/AuditStatusDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/AuditStatusDO.java index 7392fa34e..da916974d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/AuditStatusDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/AuditStatusDO.java @@ -20,7 +20,7 @@ public class AuditStatusDO { @Column(name = "audit_status") private Integer auditStatus; @Column(name = "audit_user_id") - private Integer auditUserId; + private Long auditUserId; @Column(name = "audit_user_name") private String auditUserName; @Column(name = "create_time") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AuditCheckRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AuditCheckRequest.java new file mode 100644 index 000000000..9fac36ab3 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AuditCheckRequest.java @@ -0,0 +1,23 @@ +package com.cool.store.request; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("稽核请求") +public class AuditCheckRequest { + + @ApiModelProperty("稽核id") + private Long checkId; + + @ApiModelProperty("稽核状态 0通过 1不通过") + private Integer checkStatus; + + @ApiModelProperty("稽核意见") + private String checkResult; + + private Long lineId; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AuditDetailRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AuditDetailRequest.java new file mode 100644 index 000000000..4a57d65e3 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AuditDetailRequest.java @@ -0,0 +1,10 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AuditDetailRequest { + @ApiModelProperty("稽核id") + private Long checkId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/AuditDetailResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/AuditDetailResponse.java new file mode 100644 index 000000000..be20057a0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/AuditDetailResponse.java @@ -0,0 +1,31 @@ +package com.cool.store.response; + +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; + +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +public class AuditDetailResponse { + + @ApiModelProperty("视频链接") + private String videoUrl; + + private String startTime; + + private String endTime; + + private String checkUser; + + private String checkTime; + + private Integer checkStatus; + + private String checkResult; + + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/CheckListResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/CheckListResponse.java new file mode 100644 index 000000000..9fb3a2aac --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/CheckListResponse.java @@ -0,0 +1,60 @@ +package com.cool.store.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class CheckListResponse { + + + private Long lineId; + + private Long interviewId; + + private Long auditId; + + private Long checkId; + + + @ApiModelProperty("面试人姓名") + private String interviewName; + + @ApiModelProperty("面试人手机号") + private String mobile; + + @ApiModelProperty("意向区域编码") + private Long wantRegion; + + @ApiModelProperty("意向区域名") + private String wantRegionName; + + @ApiModelProperty("面审人id") + private String intervieweeId; + + @ApiModelProperty("面审人姓名") + private String intervieweeName; + + @ApiModelProperty("面审通过时间") + private Date intervieweePassTime; + + @ApiModelProperty("稽核状态 0:未稽核 1:合格 2:不合格") + private Integer checkStatus; + + @ApiModelProperty("招商经理id") + private String investmentId; + + @ApiModelProperty("招商经理id") + private String investmentName; + + @ApiModelProperty("稽核人") + private String checkUser; + + @ApiModelProperty("稽核时间") + private Date checkTime; + + + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AuditStatusService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AuditStatusService.java index 6f1c48f41..b189cf378 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/AuditStatusService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AuditStatusService.java @@ -1,18 +1,22 @@ package com.cool.store.service; import com.cool.store.entity.AuditStatusDO; +import com.cool.store.request.AuditCheckRequest; +import com.cool.store.request.AuditDetailRequest; +import com.cool.store.response.AuditDetailResponse; +import com.github.pagehelper.PageInfo; +import java.util.Date; import java.util.List; public interface AuditStatusService { - List list(); /** * 稽核 * @return */ - Boolean audit(); + Boolean audit(AuditCheckRequest request); /** *插入数据 @@ -22,4 +26,18 @@ public interface AuditStatusService { Long interviewId, Long auditId, Integer auditStage); + + AuditDetailResponse detail(AuditDetailRequest request); + + /** + * 稽核列表 + * @param partnerNameOrPhone 关键字 + * @param time 时间 + * @param region 意向区域 + * @param checkStatus 稽核状态 + * @param pageNum + * @param pageSize + * @return + */ + PageInfo checkList(String partnerNameOrPhone, Date startTime, Date endTime, String region, Integer checkStatus, Integer checkStage, Integer pageNum, Integer pageSize); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AuditStatusServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AuditStatusServiceImpl.java index 8e542e62e..dea410e20 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AuditStatusServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AuditStatusServiceImpl.java @@ -1,13 +1,37 @@ package com.cool.store.service.impl; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dao.HyOpenAreaInfoDAO; +import com.cool.store.dao.LineAuditInfoDAO; +import com.cool.store.dao.LineInfoDAO; import com.cool.store.entity.AuditStatusDO; +import com.cool.store.entity.LineAuditInfoDO; +import com.cool.store.entity.LineInfoDO; +import com.cool.store.entity.LineInterviewDO; +import com.cool.store.enums.AuditResultTypeEnum; import com.cool.store.mapper.AuditStatusMapper; +import com.cool.store.mapper.LineInterviewMapper; +import com.cool.store.request.AuditCheckRequest; +import com.cool.store.request.AuditDetailRequest; +import com.cool.store.response.AuditDetailResponse; +import com.cool.store.response.CheckListResponse; import com.cool.store.service.AuditStatusService; +import com.cool.store.utils.poi.DateUtils; +import com.cool.store.vo.BaseInfoVO; +import com.cool.store.vo.LineListVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @Slf4j @@ -16,18 +40,52 @@ public class AuditStatusServiceImpl implements AuditStatusService { @Resource AuditStatusMapper auditStatusMapper; + @Resource + private LineInfoDAO lineInfoDAO; + + @Resource + private LineAuditInfoDAO lineAuditInfoDAO; + + @Resource + private LineInterviewMapper lineInterviewMapper; + + @Resource + HyOpenAreaInfoDAO hyOpenAreaInfoDAO; + + @Resource + EnterpriseUserDAO enterpriseUserDAO; + + @Override - public List list() { - return null; + public Boolean audit(AuditCheckRequest request) { + LoginUserInfo user = CurrentUserHolder.getUser(); + //稽核信息 + AuditStatusDO auditStatusDO = auditStatusMapper.selectByPrimaryKey(request.getCheckId()); + //线索审核信息 + LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); + String partnerId = lineInfo.getPartnerId(); + LineAuditInfoDO auditInfo = new LineAuditInfoDO(); + auditInfo.setLineId(request.getLineId()); + auditInfo.setPartnerId(partnerId); + if (request.getCheckStatus().equals(1)) { + auditInfo.setResultType(AuditResultTypeEnum.PASS.getCode()); + auditInfo.setPassReason(request.getCheckResult()); + } else { + auditInfo.setResultType(AuditResultTypeEnum.REJECT.getCode()); + auditInfo.setRejectPublicReason(request.getCheckResult()); + auditInfo.setRejectRealReason(request.getCheckResult()); + } + Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo); + auditStatusDO.setAuditId(auditId); + auditStatusDO.setAuditUserId(Long.valueOf(user.getUserId())); + auditStatusDO.setAuditUserName(user.getName()); + auditStatusDO.setAuditStatus(request.getCheckStatus()); + auditStatusMapper.updateByPrimaryKeySelective(auditStatusDO); + return true; } @Override - public Boolean audit() { - return null; - } - - @Override - public int insert(Long lineId, Long interviewId, Long auditId,Integer auditStage) { + public int insert(Long lineId, Long interviewId, Long auditId, Integer auditStage) { AuditStatusDO auditStatusDO = new AuditStatusDO(); auditStatusDO.setLineId(lineId); auditStatusDO.setInterviewId(interviewId); @@ -36,4 +94,61 @@ public class AuditStatusServiceImpl implements AuditStatusService { int result = auditStatusMapper.insertSelective(auditStatusDO); return result; } + + + @Override + public AuditDetailResponse detail(AuditDetailRequest request) { + AuditDetailResponse response = new AuditDetailResponse(); + AuditStatusDO auditStatusDO = auditStatusMapper.selectByPrimaryKey(request.getCheckId()); + LineInterviewDO lineInterviewDO = lineInterviewMapper.selectByPrimaryKey(auditStatusDO.getInterviewId()); + LineAuditInfoDO auditInfo = lineAuditInfoDAO.getAuditInfo(auditStatusDO.getAuditId()); + response.setVideoUrl(lineInterviewDO.getVideoUrl()); + + response.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualStartTime())); + response.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualEndTime())); + response.setCheckUser(auditStatusDO.getAuditUserName()); + response.setCheckTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, auditStatusDO.getCreateTime())); + response.setCheckStatus(auditInfo.getResultType()); + if (auditInfo.getResultType() > 0) { + response.setCheckResult(auditInfo.getRejectPublicReason()); + } else { + response.setCheckResult(auditInfo.getPassReason()); + } + + return response; + } + + @Override + public PageInfo checkList(String partnerNameOrPhone, + Date startTime, + Date endTime, + String region, + Integer checkStatus, + Integer checkStage, + Integer pageNum, + Integer pageSize) { + PageHelper.startPage(pageNum,pageSize); + List checkListResponses = auditStatusMapper.checkList(partnerNameOrPhone, startTime, endTime, region, checkStatus, checkStage, pageNum, pageSize); + //意向区域 + List wantRegions = checkListResponses.stream().map(CheckListResponse::getWantRegion).collect(Collectors.toList()); + //面审人 + List intervieweeIds = checkListResponses.stream().map(CheckListResponse::getIntervieweeId).collect(Collectors.toList()); + //招商经理 + List investmentIds = checkListResponses.stream().map(CheckListResponse::getInvestmentId).collect(Collectors.toList()); + //意向区域Map + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantRegions); + //招商经理Map + Map investmentIdMap = enterpriseUserDAO.getUserNameMap(investmentIds); + //面审人Map + Map intervieweeIdMap = enterpriseUserDAO.getUserNameMap(intervieweeIds); + + checkListResponses.forEach(x->{ + x.setIntervieweeName(intervieweeIdMap.get(x.getIntervieweeId())); + x.setWantRegionName(wantShopAreaMap.get(x.getWantRegion())); + x.setInvestmentName(investmentIdMap.get(x.getIntervieweeId())); + }); + + PageInfo pageInfo = new PageInfo<>(checkListResponses); + return pageInfo; + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/AuditStatusController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/AuditStatusController.java new file mode 100644 index 000000000..39e3be5cf --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/AuditStatusController.java @@ -0,0 +1,51 @@ +package com.cool.store.controller.webb; + + +import com.cool.store.request.AuditCheckRequest; +import com.cool.store.request.AuditDetailRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.AuditStatusService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Date; + +@Api(tags = "稽核相关") +@RestController +@RequestMapping("pc/audit/stage") +public class AuditStatusController { + + @Resource + AuditStatusService auditStatusService; + + @ApiOperation("稽核") + @PostMapping("/check") + public ResponseResult check(@RequestBody AuditCheckRequest request) { + return ResponseResult.success(auditStatusService.audit(request)); + } + + @ApiOperation("查看/稽核按钮") + @PostMapping("/detail") + public ResponseResult detail(@RequestBody AuditDetailRequest request) { + return ResponseResult.success(auditStatusService.detail(request)); + } + + + @ApiOperation("稽核列表") + @GetMapping("/checkList") + public ResponseResult checkList(@RequestParam(value = "partnerNameOrPhone",required = false) String partnerNameOrPhone, + @RequestParam(value = "startTime",required = false) Date startTime, + @RequestParam(value = "endTime",required = false) Date endTime, + @RequestParam(value = "region",required = false) String region, + @RequestParam(value = "checkStatus",required = false) Integer checkStatus, + @RequestParam(value = "checkStage",defaultValue = "1") Integer checkStage, + @RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize) { + + return ResponseResult.success(auditStatusService.checkList(partnerNameOrPhone,startTime,endTime,region,checkStatus,checkStage,pageNum,pageSize)); + } + + +}