From 9123442b6bbaeae223235e982d0522fc627f597a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 8 Dec 2023 16:19:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E9=94=80=E6=8A=A5=E5=90=8D=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/dao/HyPartnerExhibitionDAO.java | 13 +++- .../cool/store/dao/HyPartnerLineInfoDAO.java | 15 ++++ .../mapper/HyPartnerExhibitionMapper.java | 7 +- .../store/mapper/HyPartnerLineInfoMapper.java | 14 ++++ .../resources/mapper/HyExhibitionMapper.xml | 14 ++-- .../mapper/HyPartnerExhibitionMapper.xml | 68 +++++++++++++++++-- .../mapper/HyPartnerLineInfoMapper.xml | 36 ++++++++++ .../dto/exhibition/ExhibitionLineDTO.java | 20 +++++- .../store/dto/partner/LineInterviewDTO.java | 26 +++++++ .../store/entity/HyPartnerExhibitionDO.java | 3 + .../store/vo/exhibition/ExhibitionLineVO.java | 51 ++++++++++++++ .../cool/store/service/ExhibitionService.java | 22 ++++-- .../exhibition/ExhibitionServiceImpl.java | 41 ++++++++++- .../controller/ExhibitionController.java | 12 ++++ 14 files changed, 320 insertions(+), 22 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineInterviewDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/exhibition/ExhibitionLineVO.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerExhibitionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerExhibitionDAO.java index 236afcb11..92d3d98a1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerExhibitionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerExhibitionDAO.java @@ -72,11 +72,18 @@ public class HyPartnerExhibitionDAO { return hyPartnerExhibitionMapper.deleteByPrimaryKey(id); } - public List getExhibitionLine(String exhibitionCode){ - if (exhibitionCode == null){ + public List getExhibitionLine(Integer exhibitionId){ + if (exhibitionId == null){ return new ArrayList<>(); } - return hyPartnerExhibitionMapper.getExhibitionLine(exhibitionCode); + return hyPartnerExhibitionMapper.getExhibitionLine(exhibitionId); + } + + public List exhibitionLineList(Integer exhibitionId,Integer participationStatus, String partnerUserId,String userId){ + if (exhibitionId == null){ + return new ArrayList<>(); + } + return hyPartnerExhibitionMapper.exhibitionLineList(exhibitionId,participationStatus, partnerUserId,userId); } public void rejectExhibitionInterview(String partnerLineId) { diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java index d209d59ef..600a19ea3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java @@ -227,4 +227,19 @@ public class HyPartnerLineInfoDAO { ,partnerName,partnerMobile,investmentManagerId,userPortraitQueryType,intentAreaQueryType,lineStartTime,lineEndTime,userChannelQueryType,sortField,sortOrder,limit1,limit2); } + + public List lineInterviewList(List lineIds){ + if (CollectionUtils.isEmpty(lineIds)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.lineInterviewList(lineIds); + } + + public List lineInvestmentList(List lineIds){ + if (CollectionUtils.isEmpty(lineIds)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.lineInvestmentList(lineIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerExhibitionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerExhibitionMapper.java index c98f7fa29..18ab156be 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerExhibitionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerExhibitionMapper.java @@ -2,6 +2,7 @@ package com.cool.store.mapper; import com.cool.store.dto.exhibition.ExhibitionLineDTO; import com.cool.store.entity.HyPartnerExhibitionDO; +import io.swagger.models.auth.In; import com.cool.store.entity.HyPartnerExhibitionInterviewDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -46,13 +47,15 @@ public interface HyPartnerExhibitionMapper { /** * 展会参与线索信息 - * @param exhibitionCode + * @param exhibitionId * @return */ - List getExhibitionLine(String exhibitionCode); + List getExhibitionLine(Integer exhibitionId); HyPartnerExhibitionDO querySelective(HyPartnerExhibitionDO record); + List exhibitionLineList(Integer exhibitionId,Integer participationStatus, String partnerUserId,String userId ); + /** * 将线索参加的会销面试状态设为不通过 * @param partnerLineId diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java index 124a76e57..e02347278 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java @@ -317,4 +317,18 @@ public interface HyPartnerLineInfoMapper { @Param("limit2") Integer limit2 ); + + /** + * 查询线索面试管信息 + * @param list + * @return + */ + List lineInterviewList(@Param("list") List list); + /** + * 查询线索招商经理信息 + * @param list + * @return + */ + List lineInvestmentList(@Param("list") List list); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyExhibitionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyExhibitionMapper.xml index bb1509b8c..ba015fe5d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyExhibitionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyExhibitionMapper.xml @@ -236,8 +236,6 @@ , - , - TIMESTAMPDIFF(second,now(),start_date) AS tst from hy_exhibition @@ -253,9 +251,15 @@ and (creator = #{userId} or collaborators like CONCAT('%,', #{userId} ,',%')) - ORDER BY - if(tst >= 0, 0, 1), - if(tst 0, abs(tst), tst ),id desc + + ORDER BY start_date,id desc + + + ORDER BY start_date desc ,id desc + + + ORDER BY closed_type asc,id desc + select @@ -36,7 +37,7 @@ from hy_partner_exhibition - and exhibition_id = #{exhibitionId,jdbcType=INTEGER} + and exhibition_id = #{exhibitionId,jdbcType=BIGINT} and partner_line_id = #{partnerLineId,jdbcType=BIGINT} @@ -80,6 +81,61 @@ + + delete from hy_partner_exhibition where id = #{id,jdbcType=BIGINT} @@ -149,7 +205,7 @@ - #{exhibitionId,jdbcType=INTEGER}, + #{exhibitionId,jdbcType=VARCHAR}, #{partnerLineId,jdbcType=BIGINT}, @@ -196,7 +252,7 @@ update hy_partner_exhibition - exhibition_id = #{exhibitionId,jdbcType=INTEGER}, + exhibition_id = #{exhibitionId,jdbcType=BIGINT}, partner_line_id = #{partnerLineId,jdbcType=BIGINT}, @@ -246,7 +302,7 @@ and t.id = #{id,jdbcType=BIGINT} - and t.exhibition_id = #{exhibitionId,jdbcType=INTEGER} + and t.exhibition_id = #{exhibitionId,jdbcType=VARCHAR} and t.partner_line_id = #{partnerLineId,jdbcType=BIGINT} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 74c406636..6dfc8ebf1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -1024,4 +1024,40 @@ order by a.create_time desc limit #{limit1},#{limit2} + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/exhibition/ExhibitionLineDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/exhibition/ExhibitionLineDTO.java index 3735672fd..cc5faef82 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/exhibition/ExhibitionLineDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/exhibition/ExhibitionLineDTO.java @@ -16,6 +16,24 @@ public class ExhibitionLineDTO { private String mobile; - private String exhibitionCode; + private String exhibitionId; + + private Integer lineId; + + private Integer wantShopArea; + + private Integer wantShopAreaName; + + private Integer participationStatus; + + private String channelName; + + private Integer id; + + private Integer expectedVisitorsCount; + + private String expectedInformation; + + private String customerManager; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineInterviewDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineInterviewDTO.java new file mode 100644 index 000000000..8b4b6f57e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineInterviewDTO.java @@ -0,0 +1,26 @@ +package com.cool.store.dto.partner; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/12/7 16:28 + * @Version 1.0 + */ +@Data +public class LineInterviewDTO { + + private Integer lineId; + + private String investmentManager; + + private String investmentManagerName; + + private String investmentManagerMobile; + + private String interviewer; + + private String interviewerName; + + private String interviewerMobile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerExhibitionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerExhibitionDO.java index fca98f77d..65f735ea7 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerExhibitionDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerExhibitionDO.java @@ -56,6 +56,9 @@ public class HyPartnerExhibitionDO implements Serializable { @ApiModelProperty("更新时间") private Date updateTime; + @ApiModelProperty("签到时间") + private Date checkInTime; + @ApiModelProperty("创建人user_id,enterprise_user.user_id") private String creator; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/exhibition/ExhibitionLineVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/exhibition/ExhibitionLineVO.java new file mode 100644 index 000000000..ad7662fbf --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/exhibition/ExhibitionLineVO.java @@ -0,0 +1,51 @@ +package com.cool.store.vo.exhibition; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/12/6 17:13 + * @Version 1.0 + */ +@Data +public class ExhibitionLineVO { + + private String partnerId; + + private String partnerName; + + private String mobile; + + private String exhibitionId; + + private Integer lineId; + + private Integer wantShopArea; + + private Integer wantShopAreaName; + + private Integer participationStatus; + + private String channelName; + + private Integer id; + + private Integer expectedVisitorsCount; + + private String expectedInformation; + + private String investmentManager; + + private String investmentManagerName; + + private String investmentManagerMobile; + + private String customerManager; + + private String interviewer; + + private String interviewerName; + + private String interviewerMobile; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExhibitionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExhibitionService.java index 965aa99d0..be95cdb25 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExhibitionService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExhibitionService.java @@ -6,10 +6,7 @@ import com.cool.store.dto.exhibition.ExhibitionEnterInterviewDTO; import com.cool.store.dto.exhibition.ExhibitionGroupDTO; import com.cool.store.exception.ApiException; import com.cool.store.vo.EnterInterviewVO; -import com.cool.store.vo.exhibition.ExhibitionDetailVO; -import com.cool.store.vo.exhibition.ExhibitionGroupDetailVO; -import com.cool.store.vo.exhibition.MyExhibitionGroupVO; -import com.cool.store.vo.exhibition.MyExhibitionVO; +import com.cool.store.vo.exhibition.*; import com.github.pagehelper.PageInfo; /** @@ -81,7 +78,24 @@ public interface ExhibitionService { */ ExhibitionDetailVO getExhibitionDetail(Integer exhibitionId); + /** + * 编辑会销 + * @param exhibitionDTO + * @param userInfo + * @return + */ Boolean editExhibition(ExhibitionDTO exhibitionDTO,LoginUserInfo userInfo) ; + /** + * getExhibitionLineList + * @param exhibitionId + * @param participationStatus + * @param PartnerUserId + * @param pageSize + * @param pageNum + * @return + */ + PageInfo getExhibitionLineList(Integer exhibitionId,Integer participationStatus, String PartnerUserId ,Integer pageSize,Integer pageNum,String userId); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/exhibition/ExhibitionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/exhibition/ExhibitionServiceImpl.java index 434201e56..f27ad890d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/exhibition/ExhibitionServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/exhibition/ExhibitionServiceImpl.java @@ -1,12 +1,15 @@ package com.cool.store.service.impl.exhibition; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.excel.util.DateUtils; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; import com.cool.store.dto.exhibition.*; +import com.cool.store.dto.partner.LineInterviewDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; import com.cool.store.exception.ApiException; @@ -424,7 +427,7 @@ public class ExhibitionServiceImpl implements ExhibitionService { hyExhibitionDAO.updateByPrimaryKeySelective(hyExhibitionDO); //发送通知 给报名的人员 //查询报名了该会销的线索 - List exhibitionLine = hyPartnerExhibitionDAO.getExhibitionLine(hyExhibitionDO.getExhibitionCode()); + List exhibitionLine = hyPartnerExhibitionDAO.getExhibitionLine(hyExhibitionDO.getId()); exhibitionLine.forEach(x->{ try { eventCenterHttpRequest.sendSmsVariable(x.getMobile(), SMSMsgEnum.EXHIBITION_INFO_UPDATE,hyExhibitionDO.getExhibitionName(), @@ -436,6 +439,42 @@ public class ExhibitionServiceImpl implements ExhibitionService { return Boolean.TRUE; } + @Override + public PageInfo getExhibitionLineList(Integer exhibitionId, Integer participationStatus, String partnerUserId, Integer pageSize, Integer pageNum,String userId) { + if (exhibitionId==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + PageHelper.startPage(pageNum, pageSize); + List exhibitionLineDTOS = hyPartnerExhibitionDAO.exhibitionLineList(exhibitionId, participationStatus, partnerUserId,userId); + PageInfo pageInfo = new PageInfo<>(exhibitionLineDTOS); + if (CollectionUtils.isEmpty(exhibitionLineDTOS)){ + return pageInfo; + } + List lineIds = exhibitionLineDTOS.stream().map(ExhibitionLineDTO::getLineId).collect(Collectors.toList()); + //面试官info + List lineInterviewList = hyPartnerLineInfoDAO.lineInterviewList(lineIds); + Map lineInterviewMap = lineInterviewList.stream().collect(Collectors.toMap(LineInterviewDTO::getLineId, date -> date)); + //招商经理info + List lineInvestmentList = hyPartnerLineInfoDAO.lineInvestmentList(lineIds); + Map lineInvestmentMap = lineInvestmentList.stream().collect(Collectors.toMap(LineInterviewDTO::getLineId, date -> date)); + List result = new ArrayList<>(); + exhibitionLineDTOS.forEach(x->{ + ExhibitionLineVO exhibitionLineVO = new ExhibitionLineVO(); + LineInterviewDTO inter = lineInterviewMap.getOrDefault(x.getLineId(), new LineInterviewDTO()); + LineInterviewDTO investment = lineInvestmentMap.getOrDefault(x.getLineId(), new LineInterviewDTO()); + BeanUtil.copyProperties(x,exhibitionLineVO); + exhibitionLineVO.setInvestmentManager(investment.getInvestmentManager()); + exhibitionLineVO.setInvestmentManagerName(investment.getInvestmentManagerName()); + exhibitionLineVO.setInvestmentManagerMobile(investment.getInvestmentManagerMobile()); + exhibitionLineVO.setInterviewer(inter.getInterviewer()); + exhibitionLineVO.setInterviewerName(inter.getInterviewerName()); + exhibitionLineVO.setInterviewerMobile(inter.getInterviewerMobile()); + result.add(exhibitionLineVO); + }); + pageInfo.setList(result); + return pageInfo; + } + /** * 协作人处理 diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ExhibitionController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ExhibitionController.java index 577630b66..14f4866c2 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ExhibitionController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ExhibitionController.java @@ -86,4 +86,16 @@ public class ExhibitionController { return ResponseResult.success(exhibitionService.startExhibitionInterview(dto)); } + + @GetMapping(value = "/getExhibitionLineList") + @ApiOperation("会销报名列表") + public ResponseResult getExhibitionLineList(@RequestParam(required = true,value = "exhibitionId") Integer exhibitionId, + @RequestParam(required = false,value = "participationStatus") Integer participationStatus, + @RequestParam(required = false,value = "userId") String userId, + @RequestParam(required = false,value = "PageSize" ,defaultValue = "10") Integer PageSize, + @RequestParam(required = false,value = "pageNum",defaultValue = "1") Integer pageNum) { + LoginUserInfo user = CurrentUserHolder.getUser(); + return ResponseResult.success(exhibitionService.getExhibitionLineList(exhibitionId,participationStatus,userId,PageSize,pageNum,user.getUserId())); + } + }