From 8a674179989a2f357d6a16b33605f5f91df2636a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 Jun 2023 19:26:51 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E6=8B=9B=E5=95=86=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/constants/CommonConstants.java | 4 ++ .../store/dao/HyIntendDevZoneInfoDAO.java | 1 - .../store/dao/HyPartnerIntentInfoDAO.java | 2 +- .../mapper/HyPartnerIntentInfoMapper.java | 2 +- .../mapper/HyPartnerIntentInfoMapper.xml | 2 +- .../store/vo/EnterpriseUserSingleInfoVO.java | 18 ++++++ .../cool/store/vo/PartnerIntentInfoVO.java | 6 ++ .../store/service/EnterpriseUserService.java | 9 +++ .../service/HyPartnerIntentInfoService.java | 3 +- .../com/cool/store/service/ZoneService.java | 6 ++ .../impl/EnterpriseUserServiceImpl.java | 59 ++++++++++++++++++ .../impl/HyPartnerIntentInfoServiceImpl.java | 60 +++++++++++++++---- .../store/service/impl/ZoneServiceImpl.java | 17 +++++- .../cool/store/controller/DeskController.java | 34 ++++++++++- .../store/controller/RegionController.java | 16 +++++ .../cool/store/controller/ZoneController.java | 8 +++ 16 files changed, 226 insertions(+), 21 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java index 31a74495e..07f705625 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java @@ -114,4 +114,8 @@ public class CommonConstants { public static final String FOLLOW = "follow"; public static final String PENDING = "pending"; + public static final String ALLOCATION = "allocation"; + + public static final String TRANSFER = "transfer"; + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java index 89d265abe..a8b47cfc5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java @@ -46,5 +46,4 @@ public class HyIntendDevZoneInfoDAO { - } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java index 211c5f87f..1196ec32a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java @@ -48,7 +48,7 @@ public class HyPartnerIntentInfoDAO { } - public PartnerIntentApplyInfoDTO selectByLineId(Long lineId){ + public HyPartnerIntentInfoDO selectByLineId(Long lineId){ if (lineId==null){ return null; } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java index cd68c7a3e..ea75a2a96 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java @@ -46,5 +46,5 @@ public interface HyPartnerIntentInfoMapper { * @param lineId * @return */ - PartnerIntentApplyInfoDTO selectByLineId(@Param("lineId") Long lineId); + HyPartnerIntentInfoDO selectByLineId(@Param("lineId") Long lineId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml index e495f858c..aa14b21b3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -279,7 +279,7 @@ order by b.create_time - select from hy_partner_intent_info diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java new file mode 100644 index 000000000..e08f6e3cd --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java @@ -0,0 +1,18 @@ +package com.cool.store.vo; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/15 14:31 + * @Version 1.0 + */ +@Data +public class EnterpriseUserSingleInfoVO { + + private String userId; + + private String userName; + + private String mobile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java index fb2d1271c..42b1ddf1e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java @@ -22,6 +22,12 @@ public class PartnerIntentInfoVO { @ApiModelProperty("hy_partner_user_info.partner_id") private String partnerId; + @ApiModelProperty("加盟商姓名") + private String partnerUserName; + + @ApiModelProperty("加盟商手机号") + private String partnerUserPhone; + @ApiModelProperty("hy_partner_line_info.id") private Long partnerLineId; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java index 53da2b8ef..ced52a735 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.request.EnterpriseUserRequest; +import com.cool.store.vo.EnterpriseUserSingleInfoVO; import com.cool.store.vo.buser.EnterpriseUserPageVO; import java.util.List; @@ -16,4 +17,12 @@ public interface EnterpriseUserService { EnterpriseUserDO getUserInfoByUserId(String userId); + + /** + * + * @param userId + * @return + */ + List getInvestmentManagerList(String type,String userId,String keyword); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java index 47a14455b..915635b6e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java @@ -2,6 +2,7 @@ package com.cool.store.service; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; +import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageInfo; /** @@ -27,7 +28,7 @@ public interface HyPartnerIntentInfoService { * @param lineId * @return */ - PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId); + PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId); /** * 员工端 修改加盟商意向信息 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java index 8526bccfd..1dfdccc5c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java @@ -61,6 +61,12 @@ public interface ZoneService { */ List checkZone(IntentAreaSettingRequest intentAreaSettingRequest); + /** + * 查询所有绑定战区的组织机构 + * @return + */ + List queryAllBingZoneRegionList(String type); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java index ad101df9a..fd897c898 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java @@ -1,11 +1,19 @@ package com.cool.store.service.impl; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.service.EnterpriseUserService; +import com.cool.store.service.ZoneService; +import com.cool.store.vo.EnterpriseUserSingleInfoVO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; /** * @author zhangchenbiao @@ -22,10 +30,61 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { private EnterpriseUserDAO enterpriseUserDAO; @Resource private EnterpriseUserRoleDAO enterpriseUserRoleDAO; + @Resource + ZoneService zoneService; + @Resource + RegionDAO regionDAO; + @Resource + UserRegionMappingDAO userRegionMappingDAO; + @Override public EnterpriseUserDO getUserInfoByUserId(String userId) { return enterpriseUserDAO.getUserInfoById(userId); } + + @Override + public List getInvestmentManagerList(String type,String userId, String keyword) { + //查询当前人员信息 + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + + //当前登录人所在组织机构 + List regionIds = userRegionMappingDAO.getRegionIdsByUserId(userId); + + //所有绑定了战区的组织机构 + List list = zoneService.queryAllBingZoneRegionList("intend"); + HashSet regionList = new HashSet<>(); + regionIds.forEach(x->{ + if (list.contains(x)){ + regionList.add(x); + } + }); + //分配 + //如果是招商经理 只能分配给自己 + //如果是负责人 分配给负责人所在战区人员 + List enterpriseUserDOS = new ArrayList<>(); + if (CommonConstants.ALLOCATION.equals(type)){ + if (userInfo.getIsLeader()){ + enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE); + } + if (CollectionUtils.isNotEmpty(regionList)){ + //只有招商经理本人 + enterpriseUserDOS.add(userInfo); + } + } + //转交 所有的招商经理 + if (CommonConstants.TRANSFER.equals(type)){ + enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE); + } + List enterpriseUserSingleInfoVOS = new ArrayList<>(); + enterpriseUserDOS.forEach(x->{ + EnterpriseUserSingleInfoVO enterpriseUserSingleInfoVO = new EnterpriseUserSingleInfoVO(); + enterpriseUserSingleInfoVO.setUserId(x.getUserId()); + enterpriseUserSingleInfoVO.setUserName(x.getName()); + enterpriseUserSingleInfoVO.setMobile(x.getMobile()); + enterpriseUserSingleInfoVOS.add(enterpriseUserSingleInfoVO); + }); + return enterpriseUserSingleInfoVOS; + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index b3c43a44e..02c75d133 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -1,11 +1,13 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; +import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.WorkflowStageEnum; @@ -13,9 +15,12 @@ import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; +import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; +import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -73,17 +78,6 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return partnerIntentApplyInfo; } - @Override - public PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId) { - PartnerIntentApplyInfoDTO partnerIntentApplyInfoDTO= hyPartnerIntentInfoDAO.selectByLineId(lineId); - PartnerIntentApplyInfoVO partnerIntentApplyInfoVO = partnerIntentApplyInfoDTOToVo(partnerIntentApplyInfoDTO); - HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerIntentApplyInfoDTO.getPartnerId()); - partnerIntentApplyInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername()); - partnerIntentApplyInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile()); - //todo su 手机号归属地 意向申请区域名称 - return partnerIntentApplyInfoVO; - } - @Override public Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest) { HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(baseUserInfoRequest.getPartnerId())); @@ -102,6 +96,17 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return Boolean.TRUE; } + @Override + public PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId) { + HyPartnerIntentInfoDO hyPartnerIntentInfoDO= hyPartnerIntentInfoDAO.selectByLineId(lineId); + PartnerIntentInfoVO partnerIntentInfoVO = convertPartnerIntentApplyInfoDOToVO(hyPartnerIntentInfoDO); + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId()); + partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername()); + partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile()); + //todo su 手机号归属地 意向申请区域名称 + return partnerIntentInfoVO; + } + /** * partnerIntentApplyInfoDTOToVo * @param partnerIntentApplyInfoDTO @@ -121,4 +126,37 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic } + /** + * + * @param hyPartnerIntentInfoDO + * @return + */ + private PartnerIntentInfoVO convertPartnerIntentApplyInfoDOToVO(HyPartnerIntentInfoDO hyPartnerIntentInfoDO){ + PartnerIntentInfoVO partnerIntentInfoVO = new PartnerIntentInfoVO(); + partnerIntentInfoVO.setId(hyPartnerIntentInfoDO.getId()); + partnerIntentInfoVO.setPartnerId(hyPartnerIntentInfoDO.getPartnerId()); + partnerIntentInfoVO.setPartnerLineId(hyPartnerIntentInfoDO.getPartnerLineId()); + partnerIntentInfoVO.setAcceptAdjustType(hyPartnerIntentInfoDO.getAcceptAdjustType()); + partnerIntentInfoVO.setLiveArea(hyPartnerIntentInfoDO.getLiveArea()); + partnerIntentInfoVO.setWantShopArea(hyPartnerIntentInfoDO.getWantShopArea()); + partnerIntentInfoVO.setEducation(hyPartnerIntentInfoDO.getEducation()); + partnerIntentInfoVO.setMaxBudget(hyPartnerIntentInfoDO.getMaxBudget()); + partnerIntentInfoVO.setBrandStrength(hyPartnerIntentInfoDO.getBrandStrength()); + partnerIntentInfoVO.setIsConsumer(hyPartnerIntentInfoDO.getIsConsumer()); + partnerIntentInfoVO.setIsHaveWantShop(hyPartnerIntentInfoDO.getIsHaveWantShop()); + partnerIntentInfoVO.setIsHaveWorkExp(hyPartnerIntentInfoDO.getIsHaveWorkExp()); + partnerIntentInfoVO.setMoneyProve(StringUtil.isEmpty(hyPartnerIntentInfoDO.getMoneyProve())? + Lists.newArrayList(): JSONObject.parseArray(hyPartnerIntentInfoDO.getMoneyProve(),String.class)); + partnerIntentInfoVO.setMoneySource(hyPartnerIntentInfoDO.getMoneySource()); + partnerIntentInfoVO.setWorkYear(hyPartnerIntentInfoDO.getWorkYear()); + partnerIntentInfoVO.setWeakness(hyPartnerIntentInfoDO.getWeakness()); + partnerIntentInfoVO.setCreateTime(hyPartnerIntentInfoDO.getCreateTime()); + partnerIntentInfoVO.setOtherBand(hyPartnerIntentInfoDO.getOtherBand()); + partnerIntentInfoVO.setStrength(hyPartnerIntentInfoDO.getStrength()); + partnerIntentInfoVO.setNeedImprove(hyPartnerIntentInfoDO.getNeedImprove()); + return partnerIntentInfoVO; + } + + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java index 52aae654d..58bac567c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java @@ -201,13 +201,26 @@ public class ZoneServiceImpl implements ZoneService { List openAreaIdList = list.stream().map(ZoneCheckDTO::getOpenAreaMappingId).collect(Collectors.toList()); List hyOpenAreaInfoDOList = openAreaInfoDAO.selectByIds(openAreaIdList); Map areaNameMap = hyOpenAreaInfoDOList.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, HyOpenAreaInfoDO::getAreaName)); - List reslut = new ArrayList<>(); + List result = new ArrayList<>(); list.forEach(x->{ ZoneCheckVO zoneCheckVO = new ZoneCheckVO(); zoneCheckVO.setZoneName(x.getZoneName()); String areaName = areaNameMap.get(x.getOpenAreaMappingId()); zoneCheckVO.setAreaName(areaName); + result.add(zoneCheckVO); }); - return reslut; + return result; } + + @Override + public List queryAllBingZoneRegionList(String type) { + PageInfo intend = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type); + List list = intend.getList(); + List resultList = list.stream().filter(x->StringUtil.isNotEmpty(x.getAssociatedRegionId())) + .flatMap(HyIntendDevZoneInfoDO -> JSONObject.parseArray(HyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class).stream()) + .collect(Collectors.toList()); + return resultList; + } + + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 3fa03560e..a18ad5337 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -1,7 +1,10 @@ package com.cool.store.controller; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.dto.calendar.UserCalendarsEventDTO; import com.cool.store.enums.LineStatusEnum; +import com.cool.store.exception.ApiException; +import com.cool.store.http.ISVHttpRequest; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.*; @@ -36,7 +39,10 @@ public class DeskController { HyPartnerLineInfoService hyPartnerLineInfoService; @Resource HyPartnerBaseInfoService hyPartnerBaseInfoService; - + @Resource + private ISVHttpRequest isvHttpRequest; + @Resource + EnterpriseUserService enterpriseUserService; @GetMapping(path = "/interviewSchedule") @@ -48,6 +54,28 @@ public class DeskController { } + @GetMapping(path = "/getInvestmentManagerList") + @ApiOperation("招商经理") + @ApiImplicitParams({ + @ApiImplicitParam(name = "type", value = "allocation-招商经理 transfer", required = false), + @ApiImplicitParam(name = "keyword", value = "keyword", required = false), + }) + public ResponseResult> getInvestmentManagerList(String type,String keyword){ + return ResponseResult.success(enterpriseUserService.getInvestmentManagerList(type,CurrentUserHolder.getUserId(),keyword)); + } + + + @GetMapping(path = "/interviewSchedule") + @ApiOperation("飞书日程信息") + public ResponseResult> interviewSchedule(@RequestParam(value = "startTime",required = true) Long startTime, + @RequestParam(value = "endTime",required = true) Long endTime) throws ApiException { + + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(isvHttpRequest.getUserCalendarsEvents(userId,startTime,endTime)); + } + + + @GetMapping(path = "/queryStageCount") @ApiOperation("招商经理视角====各阶段待处理待跟进数量") @ApiImplicitParams({ @@ -118,8 +146,8 @@ public class DeskController { @ApiImplicitParams({ @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), }) - public ResponseResult getPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - return ResponseResult.success(hyPartnerIntentInfoService.getPartnerIntentApplyInfo(lineId)); + public ResponseResult getPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ + return ResponseResult.success(hyPartnerIntentInfoService.getPartnerIntentApplyDetail(lineId)); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java index 436ca5c64..20703f5ad 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java @@ -2,11 +2,16 @@ package com.cool.store.controller; import com.cool.store.response.ResponseResult; import com.cool.store.service.RegionService; +import com.cool.store.service.ZoneService; import com.cool.store.vo.region.RegionBaseInfoVO; 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.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -28,6 +33,8 @@ public class RegionController { @Resource private RegionService regionService; + @Resource + ZoneService zoneService; @GetMapping("/getRegionList") public ResponseResult> getRegionBaseInfoList(){ @@ -36,4 +43,13 @@ public class RegionController { } + @ApiOperation("查询所有被绑定战区的组织机构") + @ApiImplicitParams({ + @ApiImplicitParam(name = "type", value = "intent-意向区域 development 开发区域", required = false) + }) + @GetMapping("/queryAllBingZoneRegionList") + public ResponseResult> queryAllBingZoneRegionList(@RequestParam(value = "type",required = false)String type){ + return ResponseResult.success(zoneService.queryAllBingZoneRegionList(type)); + } + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java index a3e150335..65a49967a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java @@ -4,6 +4,7 @@ import com.cool.store.context.CurrentUserHolder; import com.cool.store.request.IntentAreaSettingRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ZoneService; +import com.cool.store.vo.ZoneCheckVO; import com.cool.store.vo.ZoneVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; @@ -13,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author suzhuhong @@ -32,6 +34,12 @@ public class ZoneController { return ResponseResult.success(zoneService.addZone( CurrentUserHolder.getUserId(),intentAreaSettingRequest)); } + @PostMapping(path = "/checkZone") + @ApiOperation("校验战区") + public ResponseResult> checkZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ + return ResponseResult.success(zoneService.checkZone(intentAreaSettingRequest)); + } + @PostMapping(path = "/updateZone") @ApiOperation("编辑意向战区/开发战区") public ResponseResult updateZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ From 3d52ccaa5b387e05316691b3fcf9d4a29a82217e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 Jun 2023 19:31:10 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=8B=9B=E5=95=86=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/controller/DeskController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index a18ad5337..3098e57d5 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -65,9 +65,9 @@ public class DeskController { } - @GetMapping(path = "/interviewSchedule") + @GetMapping(path = "/getUserCalendarsEvents") @ApiOperation("飞书日程信息") - public ResponseResult> interviewSchedule(@RequestParam(value = "startTime",required = true) Long startTime, + public ResponseResult> getUserCalendarsEvents(@RequestParam(value = "startTime",required = true) Long startTime, @RequestParam(value = "endTime",required = true) Long endTime) throws ApiException { String userId = CurrentUserHolder.getUserId(); From 0ad84af01fab6f5b5b8bf2cadbfa0addfb2d8460 Mon Sep 17 00:00:00 2001 From: wxp01309236 Date: Thu, 15 Jun 2023 22:04:30 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=84=8F=E5=90=91=E4=B9=A6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../cool/store/dao/HyPartnerBaseInfoDAO.java | 9 +- .../com/cool/store/dao/HyPartnerClerkDAO.java | 26 +++++- .../store/dao/HyPartnerIntentInfoDAO.java | 11 ++- .../cool/store/dao/HyPartnerLineInfoDAO.java | 9 +- .../cool/store/dao/HyPartnerUserInfoDAO.java | 7 ++ .../store/mapper/HyPartnerBaseInfoMapper.java | 3 + .../store/mapper/HyPartnerClerkMapper.java | 13 +++ .../mapper/HyPartnerIntentInfoMapper.java | 2 + .../store/mapper/HyPartnerLineInfoMapper.java | 5 +- .../store/mapper/HyPartnerUserInfoMapper.java | 3 + .../mapper/HyPartnerBaseInfoMapper.xml | 8 ++ .../resources/mapper/HyPartnerClerkMapper.xml | 33 ++++++++ .../mapper/HyPartnerIntentInfoMapper.xml | 7 ++ .../mapper/HyPartnerLineInfoMapper.xml | 7 ++ .../mapper/HyPartnerUserInfoMapper.xml | 7 ++ .../request/PartnerIntentInfoRequest.java | 6 ++ .../service/HyPartnerBaseInfoService.java | 6 ++ .../store/service/HyPartnerClerkService.java | 5 ++ .../service/HyPartnerIntentInfoService.java | 5 ++ .../store/service/PartnerUserInfoService.java | 7 ++ .../impl/HyPartnerBaseInfoServiceImpl.java | 51 ++++++++++++ .../service/impl/HyPartnerClerkImpl.java | 41 ---------- .../impl/HyPartnerClerkServiceImpl.java | 82 +++++++++++++++++++ .../impl/HyPartnerIntentInfoServiceImpl.java | 54 ++++++++++++ .../impl/PartnerUserInfoServiceImpl.java | 27 ++++++ .../store/controller/PartnerController.java | 51 ++++++------ 27 files changed, 412 insertions(+), 75 deletions(-) delete mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index e6650568f..78257f53f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -55,6 +55,8 @@ public enum ErrorCodeEnum { WORK_FLOW_STAGE_PASS_ERROR(500002, "通过错误,非对应阶段!", null), PARTNER_USER_NOT_EXIST(500003, "加盟商用户信息不存在!", null), ZONE_NOT_EXIST(500004, "战区不存在!", null), + PARTNER_BASEINFO_NOT_EXIST(500005, "基本信息不存在!", null), + INTENT_INFO_NOT_EXIST(500006, "意向信息不存在!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java index edcd63f67..9e141f57d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java @@ -2,7 +2,7 @@ package com.cool.store.dao; import com.cool.store.entity.HyPartnerBaseInfoDO; import com.cool.store.mapper.HyPartnerBaseInfoMapper; -import org.apache.ibatis.annotations.Param; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -38,4 +38,11 @@ public class HyPartnerBaseInfoDAO { return hyPartnerBaseInfoMapper.updateByPartnerId(userName,mobile,partnerId); } + public HyPartnerBaseInfoDO getByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || partnerLineId == null){ + return null; + } + return hyPartnerBaseInfoMapper.getByPartnerIdAndLineId(partnerId, partnerLineId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java index 5edcb6f2e..8963346a6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java @@ -2,11 +2,14 @@ package com.cool.store.dao; import com.cool.store.entity.HyPartnerClerkDO; import com.cool.store.mapper.HyPartnerClerkMapper; -import org.apache.ibatis.annotations.Param; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.Objects; /** * @Author suzhuhong @@ -31,4 +34,25 @@ public class HyPartnerClerkDAO { return hyPartnerClerkMapper.getHyPartnerClerkList(lineId); } + public int batchInsert(List hyPartnerClerkDOList){ + if (CollectionUtils.isEmpty(hyPartnerClerkDOList)){ + return -1; + } + return hyPartnerClerkMapper.batchInsert(hyPartnerClerkDOList); + } + + public void deleteByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return; + } + hyPartnerClerkMapper.deleteByPartnerIdAndLineId(partnerId, partnerLineId); + } + + public List listByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return Collections.emptyList(); + } + return hyPartnerClerkMapper.listByPartnerIdAndLineId(partnerId, partnerLineId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java index 1196ec32a..c950a1fed 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java @@ -4,13 +4,11 @@ import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.mapper.HyPartnerIntentInfoMapper; import com.github.pagehelper.PageInfo; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; -import java.util.List; +import java.util.Objects; /** * @Author suzhuhong @@ -55,5 +53,12 @@ public class HyPartnerIntentInfoDAO { return hyPartnerIntentInfoMapper.selectByLineId(lineId); } + public HyPartnerIntentInfoDO getByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return null; + } + return hyPartnerIntentInfoMapper.getByPartnerIdAndLineId(partnerId, 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 471c5ad53..5ee627712 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 @@ -1,7 +1,6 @@ package com.cool.store.dao; import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; import com.cool.store.entity.HyPartnerLineInfoDO; @@ -10,7 +9,6 @@ import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -125,7 +123,12 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason); } - + public HyPartnerLineInfoDO getByPartnerId(String partnerId){ + if (StringUtils.isEmpty(partnerId)){ + return null; + } + return hyPartnerLineInfoMapper.getByPartnerId(partnerId); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java index ec703675d..f03520321 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java @@ -68,5 +68,12 @@ public class HyPartnerUserInfoDAO { return hyPartnerUserInfoMapper.insertSelective(record); } + public int updateJoinKnowById(Integer isWritePartnerKnow, Long id){ + if (id == null || isWritePartnerKnow == null){ + return 0; + } + return hyPartnerUserInfoMapper.updateJoinKnowById(isWritePartnerKnow, id); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java index a2acbe68b..6488260db 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java @@ -33,4 +33,7 @@ public interface HyPartnerBaseInfoMapper { int updateByPartnerId(@Param("userName") String userName, @Param("mobile") String mobile, @Param("partnerId") String partnerId); + + HyPartnerBaseInfoDO getByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java index c463c7bce..5f56188b7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java @@ -27,4 +27,17 @@ public interface HyPartnerClerkMapper { List getHyPartnerClerkList(@Param("lineId") Long lineId); + + int batchInsert(@Param("recordList") List recordList); + + void deleteByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); + + /** + * 查询店员信息 + * @return + */ + List listByPartnerIdAndLineId(@Param("partnerId") String partnerId, + @Param("partnerLineId") Long partnerLineId); + + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java index ea75a2a96..711026290 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java @@ -47,4 +47,6 @@ public interface HyPartnerIntentInfoMapper { * @return */ HyPartnerIntentInfoDO selectByLineId(@Param("lineId") Long lineId); + + HyPartnerIntentInfoDO getByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); } \ No newline at end of file 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 274c09095..88e518079 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 @@ -1,11 +1,9 @@ package com.cool.store.mapper; import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; import com.cool.store.entity.HyPartnerLineInfoDO; -import com.cool.store.entity.HyPartnerLineInfoDO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; @@ -132,4 +130,7 @@ public interface HyPartnerLineInfoMapper { @Param("joinReason") String joinReason, @Param("removeReason") String removeReason); + HyPartnerLineInfoDO getByPartnerId(@Param("partnerId") String partnerId); + + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java index 124d573f6..5bf4ead72 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java @@ -40,4 +40,7 @@ public interface HyPartnerUserInfoMapper { * @return */ List selectByPartnerIds(@Param("partnerIdList") List partnerIdList); + + int updateJoinKnowById(@Param("isWritePartnerKnow")Integer isWritePartnerKnow, @Param("id")Long id); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml index 3fde0213b..8168519e8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml @@ -216,4 +216,12 @@ where partner_id = #{partnerId} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml index 508288dec..925976e59 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml @@ -108,4 +108,37 @@ from hy_partner_clerk where partner_line_id = #{lineId} + + + insert into + hy_partner_clerk + ( + partner_line_id, + partner_id, + username, + relationship, + age, + choose_reason + ) + values + + (#{record.partnerLineId}, + #{record.partnerId}, + #{record.username}, + #{record.relationship}, + #{record.age}, + #{record.chooseReason}) + + + + + delete from hy_partner_clerk where partner_id = #{partnerId} and partner_line_id = #{partnerLineId} + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml index aa14b21b3..dbb61371e 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -288,4 +288,11 @@ + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 9c1866d01..8e9a4387f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -384,4 +384,11 @@ where id = #{lineId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml index 053fa7474..6fd0729d7 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -147,4 +147,11 @@ where id = #{record.id} + + + update hy_partner_user_info + set `is_write_partner_know`=#{isWritePartnerKnow,jdbcType=INTEGER} + where id=#{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java index 65d164d98..5d74e7ec2 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java @@ -18,6 +18,12 @@ public class PartnerIntentInfoRequest { @ApiModelProperty("") private Long id; + @ApiModelProperty("线索表ID") + private Long partnerLineId; + + @ApiModelProperty("加盟商C端用户表ID partnerId ") + private String partnerId; + @ApiModelProperty("常驻区域") private String liveArea; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java index d399e597a..2b57f6384 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java @@ -1,6 +1,8 @@ package com.cool.store.service; import com.cool.store.request.AddTagsRequest; +import com.cool.store.request.PartnerBaseInfoRequest; +import com.cool.store.vo.PartnerBaseInfoVO; /** * @Author suzhuhong @@ -16,4 +18,8 @@ public interface HyPartnerBaseInfoService { * @return */ Boolean addTags(AddTagsRequest addTagsRequest); + + Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request); + + PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java index eeeddc963..a499af9df 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java @@ -1,5 +1,6 @@ package com.cool.store.service; +import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.vo.PartnerClerkVO; import java.util.List; @@ -19,6 +20,10 @@ public interface HyPartnerClerkService { */ List getPartnerClerkList(Long lineId); + Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request); + + List queryPartnerClerkInfo(String partnerId, Long lineId); + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java index 915635b6e..1edf577c3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.request.BaseUserInfoRequest; +import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageInfo; @@ -37,4 +38,8 @@ public interface HyPartnerIntentInfoService { */ Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest); + Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest); + + PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java index 778cfd105..6a0e51d28 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java @@ -1,5 +1,12 @@ package com.cool.store.service; +import com.cool.store.entity.HyPartnerUserInfoDO; + public interface PartnerUserInfoService { + HyPartnerUserInfoDO selectByPartnerId(String partnerId); + + Boolean queryJoinNotice(String partnerId); + + Boolean completeJoinNotice(String partnerId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java index af7181b85..08e6979f2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java @@ -1,10 +1,16 @@ package com.cool.store.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.HyPartnerBaseInfoDAO; +import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.request.AddTagsRequest; +import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.vo.PartnerBaseInfoVO; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -29,4 +35,49 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO); return Boolean.TRUE; } + + /** + * //前提 未提交加盟申请 + * //成功 意向区域变更成功 失败 您已进入意向申请流程,当前不可变更意向区域 + * @param request + * @return + */ + @Override + public Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request) { + HyPartnerBaseInfoDO baseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + if(baseInfoDO == null){ + baseInfoDO = new HyPartnerBaseInfoDO(); + fillBaseInfo(baseInfoDO, request); + hyPartnerBaseInfoDAO.insertSelective(baseInfoDO); + }else { + fillBaseInfo(baseInfoDO, request); + hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO); + } + return true; + } + + @Override + public PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId) { + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); + if (hyPartnerBaseInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_BASEINFO_NOT_EXIST); + } + PartnerBaseInfoVO baseInfoVO = new PartnerBaseInfoVO(); + BeanUtil.copyProperties(hyPartnerBaseInfoDO, baseInfoVO); + return baseInfoVO; + } + + private void fillBaseInfo(HyPartnerBaseInfoDO baseInfoDO, PartnerBaseInfoRequest request) { + baseInfoDO.setPartnerId(request.getPartnerId()); + baseInfoDO.setPartnerLineId(request.getPartnerLineId()); + baseInfoDO.setMobile(request.getMobile()); + baseInfoDO.setUsername(request.getUsername()); + baseInfoDO.setSex(request.getSex()); + baseInfoDO.setNation(request.getNation()); + baseInfoDO.setBirthdate(request.getBirthdate()); + baseInfoDO.setIdCard(request.getIdCard()); + baseInfoDO.setIdCardPhotoFront(request.getIdCardPhotoFront()); + baseInfoDO.setIdCardPhotoBlack(request.getIdCardPhotoBlack()); + baseInfoDO.setLiveAddress(request.getLiveAddress()); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java deleted file mode 100644 index 26b945c7a..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.cool.store.service.impl; - -import com.cool.store.dao.HyPartnerClerkDAO; -import com.cool.store.entity.HyPartnerClerkDO; -import com.cool.store.service.HyPartnerClerkService; -import com.cool.store.vo.PartnerClerkVO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; - -/** - * @Author suzhuhong - * @Date 2023/6/15 11:05 - * @Version 1.0 - */ -@Service -public class HyPartnerClerkImpl implements HyPartnerClerkService { - - @Resource - HyPartnerClerkDAO hyPartnerClerkDAO; - - - @Override - public List getPartnerClerkList(Long lineId) { - List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); - List result= new ArrayList<>(); - hyPartnerClerkList.forEach(x->{ - PartnerClerkVO partnerClerkVO = new PartnerClerkVO(); - partnerClerkVO.setPartnerId(x.getPartnerId()); - partnerClerkVO.setPartnerLineId(x.getPartnerLineId()); - partnerClerkVO.setAge(x.getAge()); - partnerClerkVO.setChooseReason(x.getChooseReason()); - partnerClerkVO.setUsername(x.getUsername()); - partnerClerkVO.setRelationship(x.getRelationship()); - result.add(partnerClerkVO); - }); - return result; - } -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java new file mode 100644 index 000000000..e2f81a330 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java @@ -0,0 +1,82 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.cool.store.dao.HyPartnerClerkDAO; +import com.cool.store.entity.HyPartnerClerkDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.request.PartnerClerkInfoRequest; +import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.utils.StringUtil; +import com.cool.store.vo.PartnerClerkVO; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author wxp + * @Date 2023/6/14 21:37 + * @Version 1.0 + */ +@Service +public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { + + @Resource + HyPartnerClerkDAO hyPartnerClerkDAO; + + @Override + public List getPartnerClerkList(Long lineId) { + List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); + List result= new ArrayList<>(); + hyPartnerClerkList.forEach(x->{ + PartnerClerkVO partnerClerkVO = new PartnerClerkVO(); + partnerClerkVO.setPartnerId(x.getPartnerId()); + partnerClerkVO.setPartnerLineId(x.getPartnerLineId()); + partnerClerkVO.setAge(x.getAge()); + partnerClerkVO.setChooseReason(x.getChooseReason()); + partnerClerkVO.setUsername(x.getUsername()); + partnerClerkVO.setRelationship(x.getRelationship()); + result.add(partnerClerkVO); + }); + return result; + } + + @Override + public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) { + if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId()) || CollectionUtils.isEmpty(request.getPartnerClerkRequestList())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + hyPartnerClerkDAO.deleteByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + List clerkDOList = new ArrayList<>(); + request.getPartnerClerkRequestList().stream().forEach(x->{ + HyPartnerClerkDO clerkDO = new HyPartnerClerkDO(); + clerkDO.setPartnerLineId(request.getPartnerLineId()); + clerkDO.setPartnerId(request.getPartnerId()); + clerkDO.setUsername(x.getUsername()); + clerkDO.setRelationship(x.getRelationship()); + clerkDO.setAge(x.getAge()); + clerkDO.setChooseReason(x.getChooseReason()); + clerkDOList.add(clerkDO); + }); + hyPartnerClerkDAO.batchInsert(clerkDOList); + return true; + } + + @Override + public List queryPartnerClerkInfo(String partnerId, Long lineId) { + List clerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(partnerId, lineId); + List clerkVOList = ListUtils.emptyIfNull(clerkDOList).stream().map(clerkDO -> { + PartnerClerkVO clerkVO = new PartnerClerkVO(); + BeanUtil.copyProperties(clerkDO, clerkVO); + return clerkVO; + }).collect(Collectors.toList()); + return clerkVOList; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index 02c75d133..026cf28ff 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.bean.BeanUtil; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; @@ -14,6 +15,7 @@ import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; +import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; @@ -27,6 +29,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -107,6 +110,57 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return partnerIntentInfoVO; } + @Override + public Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest request) { + if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + if(intentInfoDO == null){ + intentInfoDO = new HyPartnerIntentInfoDO(); + fillIntentInfo(intentInfoDO, request); + hyPartnerIntentInfoDAO.insertSelective(intentInfoDO); + }else { + fillIntentInfo(intentInfoDO, request); + hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO); + } + return true; + } + + @Override + public PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId) { + HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); + if (intentInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST); + } + PartnerIntentInfoVO intentInfoVO = new PartnerIntentInfoVO(); + BeanUtil.copyProperties(intentInfoDO, intentInfoVO); + return intentInfoVO; + } + + private void fillIntentInfo(HyPartnerIntentInfoDO intentInfoDO, PartnerIntentInfoRequest request) { + intentInfoDO.setPartnerId(request.getPartnerId()); + intentInfoDO.setPartnerLineId(request.getPartnerLineId()); + intentInfoDO.setLiveArea(request.getLiveArea()); + intentInfoDO.setWantShopArea(request.getWantShopArea()); + intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType()); + intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop()); + intentInfoDO.setWantShopInfo(request.getWantShopInfo()); + intentInfoDO.setMaxBudget(request.getMaxBudget()); + intentInfoDO.setMoneySource(request.getMoneySource()); + intentInfoDO.setMoneyProve(String.join(",", request.getMoneyProve())); + intentInfoDO.setEducation(request.getEducation()); + intentInfoDO.setWorkYear(request.getWorkYear()); + intentInfoDO.setIsHaveWorkExp(request.getIsHaveWorkExp()); + intentInfoDO.setWorkExp(request.getWorkExp()); + intentInfoDO.setIsConsumer(request.getIsConsumer()); + intentInfoDO.setOtherBand(request.getOtherBand()); + intentInfoDO.setBrandStrength(request.getBrandStrength()); + intentInfoDO.setNeedImprove(request.getNeedImprove()); + intentInfoDO.setStrength(request.getStrength()); + intentInfoDO.setWeakness(request.getWeakness()); + } + /** * partnerIntentApplyInfoDTOToVo * @param partnerIntentApplyInfoDTO diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java index e7ee84666..8365b31d9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -1,6 +1,10 @@ package com.cool.store.service.impl; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.entity.HyPartnerUserInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.service.PartnerUserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -11,4 +15,27 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { @Autowired private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Override + public HyPartnerUserInfoDO selectByPartnerId(String partnerId) { + return hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + } + + @Override + public Boolean queryJoinNotice(String partnerId) { + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + if (hyPartnerUserInfoDO==null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + return hyPartnerUserInfoDO.getIsWritePartnerKnow() == 1; + } + + @Override + public Boolean completeJoinNotice(String partnerId) { + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + if (hyPartnerUserInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + hyPartnerUserInfoDAO.updateJoinKnowById(CommonConstants.ONE, hyPartnerUserInfoDO.getId()); + return true; + } } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java index d589d8732..a32b338b0 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java @@ -1,14 +1,16 @@ package com.cool.store.controller; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.service.HyPartnerClerkService; import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.service.PartnerUserInfoService; import com.cool.store.vo.*; -import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -36,6 +38,14 @@ public class PartnerController { @Resource HyPartnerIntentInfoService hyPartnerIntentInfoService; + @Resource + HyPartnerBaseInfoService hyPartnerBaseInfoService; + @Resource + HyPartnerClerkService hyPartnerClerkService; + + + + @PostMapping(path = "/applyBaseInfo") @ApiOperation("提交基本信息") public ResponseResult applyBaseInfo(@RequestBody BaseUserInfoRequest baseUserInfoRequest){ @@ -79,26 +89,24 @@ public class PartnerController { @PostMapping(path = "/submitPartnerBaseInfo") @ApiOperation("提交加盟商基本信息") - public ResponseResult submitPartnerBaseInfo(@RequestBody PartnerBaseInfoRequest PartnerBaseInfoRequest){ - + public ResponseResult submitPartnerBaseInfo(@RequestBody PartnerBaseInfoRequest baseInfoRequest){ //前提 未提交加盟申请 //成功 意向区域变更成功 失败 您已进入意向申请流程,当前不可变更意向区域 - return ResponseResult.success(); + return ResponseResult.success(hyPartnerBaseInfoService.submitPartnerBaseInfo(baseInfoRequest)); } @PostMapping(path = "/submitPartnerClerkInfo") @ApiOperation("提交加盟商店员信息") public ResponseResult submitPartnerClerkInfo(@RequestBody PartnerClerkInfoRequest partnerClerkInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest)); } @PostMapping(path = "/submitPartnerIntentInfo") @ApiOperation("提交加盟商意向信息/行业认知") public ResponseResult submitPartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){ - - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest)); } @@ -107,7 +115,7 @@ public class PartnerController { @ApiOperation("修改加盟商店员信息") public ResponseResult changePartnerClerkInfo(@RequestBody PartnerClerkInfoRequest partnerClerkInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest)); } @@ -115,7 +123,7 @@ public class PartnerController { @ApiOperation("修改加盟商意向信息/行业认知") public ResponseResult changePartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest)); } @@ -140,9 +148,8 @@ public class PartnerController { @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), }) public ResponseResult queryPartnerBaseInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerBaseInfoService.queryPartnerBaseInfo(userInfoVO.getPartnerId(), lineId)); } @@ -153,8 +160,8 @@ public class PartnerController { }) public ResponseResult> queryPartnerClerkInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerClerkService.queryPartnerClerkInfo(userInfoVO.getPartnerId(), lineId)); } @@ -165,8 +172,8 @@ public class PartnerController { }) public ResponseResult queryPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerIntentInfoService.queryPartnerIntentInfo(userInfoVO.getPartnerId(), lineId)); } @@ -177,10 +184,8 @@ public class PartnerController { @ApiImplicitParams({ @ApiImplicitParam(name = "partnerId", value = "加盟商ID", required = false), }) - public ResponseResult completeJoinNotice(@RequestParam(value = "partnerId",required = false)Long partnerId){ - - - return ResponseResult.success(); + public ResponseResult completeJoinNotice(@RequestParam(value = "partnerId",required = false)String partnerId){ + return ResponseResult.success(partnerUserInfoService.completeJoinNotice(partnerId)); } @@ -189,10 +194,8 @@ public class PartnerController { @ApiImplicitParams({ @ApiImplicitParam(name = "partnerId", value = "加盟商ID", required = false), }) - public ResponseResult queryJoinNotice(@RequestParam(value = "partnerId",required = false)Long partnerId){ - - - return ResponseResult.success(); + public ResponseResult queryJoinNotice(@RequestParam(value = "partnerId",required = false)String partnerId){ + return ResponseResult.success(partnerUserInfoService.queryJoinNotice(partnerId)); } } From a6a6093dd92c19dd7b2e9f152d13760b4c9eee6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 16 Jun 2023 10:09:44 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E7=A7=81=E6=B5=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/dao/HyPartnerLineInfoDAO.java | 25 +++++- .../store/mapper/HyPartnerLineInfoMapper.java | 41 ++++++++- .../mapper/HyPartnerLineInfoMapper.xml | 63 +++++++++++++- .../cool/store/dto/partner/LineCountDTO.java | 17 ++++ .../store/dto/partner/PublicSeaLineDTO.java | 28 ++++++ .../com/cool/store/request/LineRequest.java | 14 ++- .../cool/store/vo/PrivateSeaLineListVo.java | 14 +++ .../cool/store/vo/PublicSeaLineListVo.java | 4 + .../service/HyPartnerLineInfoService.java | 13 ++- .../impl/HyPartnerLineInfoServiceImpl.java | 87 ++++++++++++++++--- .../cool/store/controller/DeskController.java | 12 +-- 11 files changed, 282 insertions(+), 36 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java 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 5ee627712..532d95b82 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 @@ -3,6 +3,7 @@ package com.cool.store.dao; import com.cool.store.dto.partner.PartnerBlackListDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; +import com.cool.store.dto.partner.*; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.github.pagehelper.PageInfo; @@ -12,6 +13,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -111,8 +114,8 @@ public class HyPartnerLineInfoDAO { } - public PageInfo getBlackList( String keyWord, String intentArea , Integer acceptAdjustType){ - return hyPartnerLineInfoMapper.getBlackList(keyWord,intentArea,acceptAdjustType); + public PageInfo getBlackList( String userNameKeyword,String phoneKeyword, String intentArea , Integer acceptAdjustType){ + return hyPartnerLineInfoMapper.getBlackList(userNameKeyword,phoneKeyword,intentArea,acceptAdjustType); } @@ -123,6 +126,17 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason); } + public PageInfo getPublicSeaLineList( String userNameKeyword, String phoneKeyword, String intentArea, Integer acceptAdjustType, Date updateStartTime, Date updateEndTime, List userIdList){ + return hyPartnerLineInfoMapper.getPublicSeaLineList(userNameKeyword,phoneKeyword,intentArea,acceptAdjustType,updateStartTime,updateEndTime,userIdList); + } + + + public List getPartnerLastLine(List partnerIdList){ + if (CollectionUtils.isEmpty(partnerIdList)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getPartnerLastLine(partnerIdList); + } public HyPartnerLineInfoDO getByPartnerId(String partnerId){ if (StringUtils.isEmpty(partnerId)){ return null; @@ -131,4 +145,11 @@ public class HyPartnerLineInfoDAO { } + public List getFollowCountList( List partnerIdList){ + if (CollectionUtils.isEmpty(partnerIdList)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getFollowCountList(partnerIdList); + } + } 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 88e518079..2e878544f 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 @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.partner.*; import com.cool.store.dto.partner.PartnerBlackListDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; @@ -7,6 +8,7 @@ import com.cool.store.entity.HyPartnerLineInfoDO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -107,12 +109,14 @@ public interface HyPartnerLineInfoMapper { /** * 查询黑名单列表 - * @param keyWord + * @param userNameKeyword + * @param phoneKeyword * @param intentArea * @param acceptAdjustType * @return */ - PageInfo getBlackList(@Param("keyWord") String keyWord, + PageInfo getBlackList(@Param("userNameKeyword") String userNameKeyword, + @Param("phoneKeyword") String phoneKeyword, @Param("intentArea") String intentArea , @Param("acceptAdjustType") Integer acceptAdjustType); @@ -133,4 +137,37 @@ public interface HyPartnerLineInfoMapper { HyPartnerLineInfoDO getByPartnerId(@Param("partnerId") String partnerId); + + /** + * 查询公海线索 + * @param userNameKeyword + * @param phoneKeyword + * @param intentArea + * @param acceptAdjustType + * @param updateStartTime + * @param updateEndTime + * @param userIdList + * @return + */ + PageInfo getPublicSeaLineList(@Param("userNameKeyword") String userNameKeyword, + @Param("phoneKeyword") String phoneKeyword, + @Param("intentArea") String intentArea, + @Param("acceptAdjustType") Integer acceptAdjustType, + @Param("updateStartTime") Date updateStartTime, + @Param("updateEndTime") Date updateEndTime, + @Param("userIdList") List userIdList); + + /** + * 查询对应的加盟商最近线索 + * @param partnerIdList + * @return + */ + List getPartnerLastLine(@Param("partnerIdList") List partnerIdList); + + /** + * 加盟商跟进次数 + * @param partnerIdList + * @return + */ + List getFollowCountList(@Param("partnerIdList") List partnerIdList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 8e9a4387f..64e399d3b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -357,8 +357,11 @@ from hy_partner_line_info a inner join hy_partner_user_info b where a.partner_id = b.partner_id where deleted = 0 and line_status = 3 - - and (b.username like concat('%', #{keyWord}, '%') or b.mobile like concat('%', #{keyWord}, '%')) + + and b.username like concat('%', #{userNameKeyword}, '%') + + + and b.mobile like concat('%', #{phoneKeyword}, '%') and b.want_shop_area = #{intentArea} @@ -391,4 +394,60 @@ where partner_id = #{partnerId} + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java new file mode 100644 index 000000000..c7256636e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java @@ -0,0 +1,17 @@ +package com.cool.store.dto.partner; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/15 21:19 + * @Version 1.0 + */ +@Data +public class LineCountDTO { + + private String partnerId; + + private Integer followCount; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java new file mode 100644 index 000000000..0b4a07792 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java @@ -0,0 +1,28 @@ +package com.cool.store.dto.partner; + +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2023/6/15 20:21 + * @Version 1.0 + */ +@Data +public class PublicSeaLineDTO { + + private Date createTime; + + private Long lineId; + + private String partnerId; + + private String userName; + + private String mobile; + + private String wantShopArea; + + private String acceptAdjustType; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java index 06f75a1ce..b0e4169af 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java @@ -17,8 +17,11 @@ import java.util.Date; public class LineRequest extends PageInfoRequest{ - @ApiModelProperty("关键字") - private String keyWord; + @ApiModelProperty("用户名关键字") + private String userNameKeyword; + + @ApiModelProperty("手机号关键字") + private String phoneKeyword; @ApiModelProperty("意向区域") private String intentArea; @@ -26,8 +29,11 @@ public class LineRequest extends PageInfoRequest{ @ApiModelProperty("调剂类型") private Integer acceptAdjustType; - @ApiModelProperty("更新时间") - private Date updateTime; + @ApiModelProperty("更新开始时间") + private Date updateStartTime; + + @ApiModelProperty("更新结束时间") + private Date updateEndTime; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java index f0c81cec9..3128e7d9f 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java @@ -55,8 +55,22 @@ public class PrivateSeaLineListVo { @ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂") private Integer acceptAdjustType; + @ApiModelProperty("更新时间") + private Date updateTime; + @ApiModelProperty("门店编码") + private String storeCode; + @ApiModelProperty("门店名称") + private String storeName; + @ApiModelProperty("线索状态") + private Integer lineStatus; + + @ApiModelProperty("推荐加盟商ID") + private String recommendPartnerId; + + @ApiModelProperty("推荐加盟商名称") + private String recommendPartnerName; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java index bbf5f5acb..848d704ee 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java @@ -59,5 +59,9 @@ public class PublicSeaLineListVo { @ApiModelProperty("跟进次数") private Integer followCount; + @ApiModelProperty("意向开店区域ID") + private String wantShopArea; + + private String acceptAdjustType; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java index 244fbf860..0b7f0b30a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java @@ -2,10 +2,7 @@ package com.cool.store.service; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; -import com.cool.store.vo.BlackListVO; -import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO; -import com.cool.store.vo.PartnerLineInfoVO; -import com.cool.store.vo.StageCountVO; +import com.cool.store.vo.*; import com.github.pagehelper.PageInfo; import java.util.List; @@ -99,5 +96,13 @@ public interface HyPartnerLineInfoService { */ Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest); + /** + * 公海线索 + * @param userId + * @param lineRequest + * @return + */ + PageInfo publicSeaLineList(String userId,LineRequest lineRequest); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 10ec43267..e4b456878 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -2,11 +2,12 @@ package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; -import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; -import com.cool.store.dto.partner.StageCountDTO; +import com.cool.store.dao.UserRegionMappingDAO; +import com.cool.store.dto.partner.*; +import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; @@ -16,24 +17,20 @@ import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; +import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.StringUtil; -import com.cool.store.vo.BlackListVO; -import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO; -import com.cool.store.vo.PartnerLineInfoVO; -import com.cool.store.vo.StageCountVO; +import com.cool.store.vo.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -48,6 +45,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @Resource HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + EnterpriseUserDAO enterpriseUserDAO; + @Resource + UserRegionMappingDAO userRegionMappingDAO; @Override public StageCountVO selectStagePendingCount(String userId) { @@ -138,7 +139,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { @Override public PageInfo getBlackList(LineRequest LineRequest) { PageHelper.startPage(LineRequest.getPageNum(),LineRequest.getPageSize()); - PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getKeyWord(), LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType()); + PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getUserNameKeyword(), LineRequest.getPhoneKeyword(),LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType()); List list = blackListDTOPageInfo.getList(); List result = new ArrayList<>(); list.stream().forEach(x->{ @@ -228,6 +229,68 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); return Boolean.TRUE; } + + @Override + public PageInfo publicSeaLineList(String userId, LineRequest lineRequest) { + //确认是招商经理还是部门负责人 + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + List userIds = new ArrayList<>(); + if (userInfo.getIsLeader()){ + if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){ + List regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class); + List enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true); + userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList()); + } + }else { + userIds = Arrays.asList(userId); + } + PageHelper.startPage(lineRequest.getPageNum(),lineRequest.getPageSize()); + PageInfo publicSeaLineList = hyPartnerLineInfoDAO.getPublicSeaLineList(lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(), + lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), userIds); + + List list = publicSeaLineList.getList(); + if (CollectionUtils.isEmpty(list)){ + return new PageInfo<>(); + } + //上一次结束的线索 + List partnerIdList = list.stream().map(PublicSeaLineDTO::getPartnerId).collect(Collectors.toList()); + List partnerLastLine = hyPartnerLineInfoDAO.getPartnerLastLine(partnerIdList); + List investmentManagerIds = partnerLastLine.stream().map(HyPartnerLineInfoDO::getInvestmentManager).collect(Collectors.toList()); + List userInfoList = enterpriseUserDAO.getUserInfoByUserIds(investmentManagerIds); + Map mobileMap = userInfoList.stream().filter(x -> + StringUtil.isNotEmpty(x.getMobile())).collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getMobile)); + Map hyPartnerLineInfoDOMap = partnerLastLine.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getPartnerId, data -> data)); + + List followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList); + Map countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount)); + + List result = new ArrayList<>(); + list.forEach(x->{ + PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo(); + + publicSeaLineListVo.setPartnerId(x.getPartnerId()); + publicSeaLineListVo.setCreateTime(x.getCreateTime()); + publicSeaLineListVo.setPartnerUserName(x.getUserName()); + publicSeaLineListVo.setPartnerUserPhone(x.getMobile()); + // TODO: 2023/6/15 手机号归属地 + publicSeaLineListVo.setPhoneAddress(""); + publicSeaLineListVo.setWantShopArea(x.getWantShopArea()); + publicSeaLineListVo.setId(x.getLineId()); + publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType()); + publicSeaLineListVo.setFollowCount(countMap.getOrDefault(x.getPartnerId(),0)); + + HyPartnerLineInfoDO hy = hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerLineInfoDO()); + publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason()); + publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason()); + publicSeaLineListVo.setLastCloseDate(hy.getCloseTime()); + publicSeaLineListVo.setLastInvestmentManager(hy.getInvestmentManager()); + publicSeaLineListVo.setPartnerUserPhone(mobileMap.get(hy.getInvestmentManager())); + result.add(publicSeaLineListVo); + }); + publicSeaLineList.setList(result); + return publicSeaLineList; + } + /** * convertPartnerBlackListDTOToVo * @param partnerBlackListDTO diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 3098e57d5..c4fe96c72 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -82,8 +82,7 @@ public class DeskController { @ApiImplicitParam(name = "type", value = "类型 待处理-Pending 待跟进-follow", required = false), }) public ResponseResult queryStageCount(@RequestParam(value = "type",required = false)String type){ - String userId = ""; - return ResponseResult.success(deskService.getStageCountByType(userId,type)); + return ResponseResult.success(deskService.getStageCountByType(CurrentUserHolder.getUserId(),type)); } @GetMapping(path = "/queryInterviewPlan") @@ -204,7 +203,6 @@ public class DeskController { } - @PostMapping(path = "/queryPublicSeqLineList") @ApiOperation("公海列表") public ResponseResult> queryPublicSeaLineList(@RequestBody LineRequest LineRequest){ @@ -213,8 +211,6 @@ public class DeskController { } - - @PostMapping(path = "/queryPrivateSeaLineList") @ApiOperation("私海列表") public ResponseResult> queryPrivateSeqLineList(@RequestBody PrivateSeaLineListRequest privateSeaLineListRequest){ @@ -222,8 +218,6 @@ public class DeskController { return ResponseResult.success(); } - - @PostMapping(path = "/queryBlackList") @ApiOperation("黑名单列表") public ResponseResult> queryBlackList(@RequestBody LineRequest LineRequest){ @@ -250,9 +244,7 @@ public class DeskController { @PostMapping(path = "/closeOrPassFollow") @ApiOperation("意向申请审核 结束跟进/通过流程") public ResponseResult closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){ - - String userId = ""; - return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(userId,closeFollowRequest)); + return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUserId(),closeFollowRequest)); } @PostMapping(path = "/changeIntentInfo") From 960fb0bb534348048fb09a6cf115d8e2087a47fc Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 11:18:38 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91=E5=AF=B9=E6=8E=A5=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 7 +- .../dto/partner/DescribePhoneNumberDTO.java | 33 +++++ .../store/vo/cuser/IdentityCardInfoVO.java | 41 +++++++ .../coolstore-partner-service.iml | 12 ++ coolstore-partner-service/pom.xml | 4 + .../com/cool/store/service/AliyunService.java | 28 +++++ .../store/service/impl/AliyunServiceImpl.java | 116 ++++++++++++++++++ .../coolstore-partner-webb.iml | 12 ++ .../coolstore-partner-webc.iml | 12 ++ .../store/controller/PartnerController.java | 21 +++- pom.xml | 5 + 11 files changed, 286 insertions(+), 5 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/DescribePhoneNumberDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/cuser/IdentityCardInfoVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index e6650568f..6e2837911 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -44,11 +44,10 @@ public enum ErrorCodeEnum { USER_GROUP_NAME_EXIST(1021076, "用户分组名称已存在", null), USER_GROUP_NOT_EXIST(1021077, "用户分组不存在", null), GET_INFO_ERROR(1021078, "获取信息异常", null), - - - - + GET_PHONENUMBER_INFO_ERROR(1021079, "手机号归属地获取异常", null), + IDENTITY_CARD_PARSE_FAIL(1021080, "身份证解析失败", null), PARAMS_REQUIRED(400002, "参数缺失!", null), + DATA_CONVERT_ERROR(400002, "日期转换异常!", null), LINE_ID_IS_NOT_EXIST(500001, "线索ID不存在!", null), diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/DescribePhoneNumberDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/DescribePhoneNumberDTO.java new file mode 100644 index 000000000..5ca976af0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/DescribePhoneNumberDTO.java @@ -0,0 +1,33 @@ +package com.cool.store.dto.partner; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: DescribePhoneNumberDTO + * @Description:手机号归属 + * @date 2023-06-15 20:07 + */ +@Data +public class DescribePhoneNumberDTO { + + @ApiModelProperty("基础运营商") + public String basicCarrier; + + @ApiModelProperty("实际运营商") + public String carrier; + + @ApiModelProperty("是否携号转网") + public Boolean isNumberPortability; + + @ApiModelProperty("号码归属号段") + public Long numberSegment; + + @ApiModelProperty("号码归属城市") + public String city; + + @ApiModelProperty("号码归属省份") + public String province; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/cuser/IdentityCardInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/cuser/IdentityCardInfoVO.java new file mode 100644 index 000000000..7bea7bbe1 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/cuser/IdentityCardInfoVO.java @@ -0,0 +1,41 @@ +package com.cool.store.vo.cuser; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: IdentityCardInfoVO + * @Description: + * @date 2023-06-16 10:18 + */ +@Data +public class IdentityCardInfoVO { + + @ApiModelProperty("用户名") + private String username; + + @ApiModelProperty("地址") + private String liveAddress; + + @ApiModelProperty("出生日期") + private String birthdate; + + @ApiModelProperty("性别") + private String sex; + + @ApiModelProperty("身份证号") + private String idCard; + + @ApiModelProperty("民族") + private String nation; + + public IdentityCardInfoVO(String username, String liveAddress, String birthdate, String sex, String idCard, String nation) { + this.username = username; + this.liveAddress = liveAddress; + this.birthdate = birthdate; + this.sex = sex; + this.idCard = idCard; + this.nation = nation; + } +} diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index 6cda7d6d9..f7543f465 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -142,5 +142,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-service/pom.xml b/coolstore-partner-service/pom.xml index 1422f9c1d..97abbfd41 100644 --- a/coolstore-partner-service/pom.xml +++ b/coolstore-partner-service/pom.xml @@ -63,6 +63,10 @@ com.aliyun dytnsapi20200217 + + com.aliyun + ocr20191230 + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java new file mode 100644 index 000000000..f8a02ab6d --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java @@ -0,0 +1,28 @@ +package com.cool.store.service; + +import com.cool.store.dto.partner.DescribePhoneNumberDTO; +import com.cool.store.vo.cuser.IdentityCardInfoVO; + +/** + * @author zhangchenbiao + * @FileName: AliyunService + * @Description:阿里云相关服务 + * @date 2023-06-15 20:04 + */ +public interface AliyunService { + + /** + * 获取手机号归属信息 + * @param phoneNumber + * @return + */ + DescribePhoneNumberDTO getPhoneNumberAttribute(String phoneNumber); + + /** + * 根据身份证正面获取信息 + * @param faceImageUrl + * @return + */ + IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl); + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java new file mode 100644 index 000000000..00df38d16 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java @@ -0,0 +1,116 @@ +package com.cool.store.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.dytnsapi20200217.Client; +import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeRequest; +import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse; +import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse; +import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody; +import com.aliyun.tea.TeaException; +import com.aliyun.tea.TeaModel; +import com.aliyun.teaopenapi.models.Config; +import com.cool.store.dto.partner.DescribePhoneNumberDTO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.service.AliyunService; +import com.cool.store.vo.cuser.IdentityCardInfoVO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Optional; + +/** + * @author zhangchenbiao + * @FileName: AliyunServiceImpl + * @Description: + * @date 2023-06-15 20:04 + */ +@Slf4j +@Service +public class AliyunServiceImpl implements AliyunService { + + @Override + public DescribePhoneNumberDTO getPhoneNumberAttribute(String phoneNumber) { + try { + Config config = new Config(); + //todo zcb ak sk替换 + config.accessKeyId = "LTAI5t9RaXvABZbHvoXjDFJ1"; + config.accessKeySecret = "zhOK7WWo3yGoUWkOMaatty19k25CMd"; + Client client = new Client(config); + DescribePhoneNumberOperatorAttributeRequest request = new DescribePhoneNumberOperatorAttributeRequest(); + request.authCode = "Y81FVZepk6"; + request.inputNumber = phoneNumber; + request.mask = "NORMAL"; + DescribePhoneNumberOperatorAttributeResponse response = client.describePhoneNumberOperatorAttribute(request); + String code = response.body.code; + if (!com.aliyun.teautil.Common.equalString(code, "OK")) { + log.error("错误信息:" , response.body.message + ""); + throw new ServiceException(ErrorCodeEnum.GET_PHONENUMBER_INFO_ERROR); + } + return JSONObject.parseObject(JSONObject.toJSONString(response.body.data), DescribePhoneNumberDTO.class); + } catch (Exception e) { + log.error("获取手机号异常:", e); + throw new ServiceException(ErrorCodeEnum.GET_PHONENUMBER_INFO_ERROR); + } + } + + @Override + public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) { + //todo zcb ak sk替换 + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + .setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1") + .setAccessKeySecret("zhOK7WWo3yGoUWkOMaatty19k25CMd"); + // 访问的域名 + config.endpoint = "ocr.cn-shanghai.aliyuncs.com"; + try { + com.aliyun.ocr20191230.Client client = new com.aliyun.ocr20191230.Client(config); + URL url = new URL(faceImageUrl); + InputStream inputStream = url.openConnection().getInputStream(); + com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest recognizeIdentityCardAdvanceRequest = new com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest() + .setImageURLObject(inputStream) + .setSide("face"); + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + RecognizeIdentityCardResponse idCardResponse = client.recognizeIdentityCardAdvance(recognizeIdentityCardAdvanceRequest, runtime); + log.info("身份证解析结果:{}", JSONObject.toJSONString(idCardResponse)); + RecognizeIdentityCardResponseBody.RecognizeIdentityCardResponseBodyDataFrontResult frontResult = Optional.ofNullable(idCardResponse).map(o -> o.getBody()).map(o -> o.data).map(o -> o.frontResult).orElse(null); + String username = frontResult.name; + String liveAddress = frontResult.address; + String birthdate = frontResult.birthDate; + if(StringUtils.isNotBlank(birthdate)){ + birthdate = convertDate(birthdate, "yyyyMMdd"); + } + String sex = frontResult.gender; + String idCard = frontResult.IDNumber; + String nation = frontResult.nationality; + IdentityCardInfoVO result = new IdentityCardInfoVO(username, liveAddress, birthdate, sex, idCard, nation); + log.info("身份证解析:{}", JSONObject.toJSONString(result)); + return result; + } catch (com.aliyun.tea.TeaException e) { + log.error("身份证解析报错TeaException:{}", e); + } catch (MalformedURLException e) { + log.error("身份证解析报错MalformedURLException:{}", e); + } catch (IOException e) { + log.error("身份证解析报错IOException:{}", e); + } catch (Exception e) { + log.error("身份证解析报错Exception:{}", e); + } + return null; + } + + public static String convertDate(String date, String format) { + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + LocalDate localDate = LocalDate.parse(date, formatter); + return localDate.toString(); + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.DATA_CONVERT_ERROR); + } + } +} diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index ab3cdc788..af0ff3164 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -107,6 +107,18 @@ + + + + + + + + + + + + diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index bef9271d3..9cfa8ce03 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -105,6 +105,18 @@ + + + + + + + + + + + + diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java index d589d8732..e658a9310 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java @@ -1,13 +1,17 @@ package com.cool.store.controller; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.AliyunService; import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.service.PartnerUserInfoService; import com.cool.store.vo.*; +import com.cool.store.vo.cuser.IdentityCardInfoVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -34,7 +38,10 @@ public class PartnerController { private PartnerUserInfoService partnerUserInfoService; @Resource - HyPartnerIntentInfoService hyPartnerIntentInfoService; + private HyPartnerIntentInfoService hyPartnerIntentInfoService; + + @Resource + private AliyunService aliyunService; @PostMapping(path = "/applyBaseInfo") @ApiOperation("提交基本信息") @@ -195,4 +202,16 @@ public class PartnerController { return ResponseResult.success(); } + + @GetMapping(path = "/getIdentityCardInfo") + @ApiOperation("根据身份证正面解析获取数据") + public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){ + try { + IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl); + return ResponseResult.success(identityCardInfo); + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL); + } + } + } diff --git a/pom.xml b/pom.xml index 02ccc0a58..2522598c4 100644 --- a/pom.xml +++ b/pom.xml @@ -181,6 +181,11 @@ dytnsapi20200217 1.0.28 + + com.aliyun + ocr20191230 + 1.0.26 + From df49f4a71fc1ff0f35180728e0f6de7969dd5c45 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 11:21:11 +0800 Subject: [PATCH 06/16] update --- .../coolstore-partner-service.iml | 14 ++++++++ .../cool/store/controller/TestController.java | 35 ++++++++++++++++--- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index f7543f465..8b2bb5d5c 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -130,6 +130,20 @@ + + + + + + + + + + + + + + diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 2e1798f79..6a4493a0e 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -1,26 +1,29 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.partner.DescribePhoneNumberDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.EnterpriseUserDO; -import com.cool.store.enums.RocketMqTagEnum; +import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ApiException; +import com.cool.store.exception.ServiceException; import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.cool.store.http.ISVHttpRequest; -import com.cool.store.mq.producer.SimpleMessageService; -import com.cool.store.request.AllocationInvestmentManagerRequest; import com.cool.store.request.City; import com.cool.store.request.TestRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.AliyunService; import com.cool.store.service.EnterpriseSyncService; import com.cool.store.service.EnterpriseUserService; -import com.cool.store.utils.UUIDUtils; +import com.cool.store.vo.cuser.IdentityCardInfoVO; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -43,9 +46,13 @@ public class TestController { @Resource private ISVHttpRequest isvHttpRequest; @Resource - HyOpenAreaInfoMapper hyOpenAreaInfoMapper; + private HyOpenAreaInfoMapper hyOpenAreaInfoMapper; @Resource private EnterpriseSyncService enterpriseSyncService; + @Resource + private EnterpriseUserDAO enterpriseUserDAO; + @Resource + private AliyunService aliyunService; @PostMapping("/post") public ResponseResult get(@RequestBody List testRequestList){ @@ -186,4 +193,22 @@ public class TestController { return ResultDTO.successResult(isvHttpRequest.deleteUserCalendarEvent(param)); } + @GetMapping("/user/getUserCalendarsEvents") + public ResultDTO> getUserCalendarsEvents(@RequestParam("userId") String userId, @RequestParam("startTime") long startTime, + @RequestParam("endTime") long endTime) throws ApiException { + log.info("getUserCalendarsEvents : corpId:{}, appType:{}, userId:{}, startTime:{}, endTime:{}", userId, startTime, endTime); + return ResultDTO.successResult(isvHttpRequest.getUserCalendarsEvents(userId, startTime, endTime)); + } + + @GetMapping(path = "/getIdentityCardInfo") + @ApiOperation("根据身份证正面解析获取数据") + public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){ + try { + IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl); + return ResponseResult.success(identityCardInfo); + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL); + } + } + } From a85a51adf8ec319dd7a05a1c4a66df18586a855f Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 11:38:17 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/handler/CustomExceptionHandler.java | 5 +++++ coolstore-partner-webb/src/main/resources/logback-spring.xml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java index c46c6182b..39e4b658a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java @@ -4,6 +4,7 @@ package com.cool.store.handler; import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; import com.cool.store.response.error.ErrorResponse; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -15,23 +16,27 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; * @Description: 自定义异常处理 * @date 2023-06-13 19:42 */ +@Slf4j @RestControllerAdvice public class CustomExceptionHandler { @ExceptionHandler(value = ServiceException.class) public ResponseEntity handleCustomException(ServiceException e) { + log.error(e.getMessage(), e); ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage()); return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST); } @ExceptionHandler(value = ApiException.class) public ResponseEntity handleCustomException(ApiException e) { + log.error(e.getMessage(), e); ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage()); return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST); } @ExceptionHandler(value = Exception.class) public ResponseEntity handleException(Exception e) { + log.error(e.getMessage(), e); ErrorResponse errorResponse = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage()); return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR); } diff --git a/coolstore-partner-webb/src/main/resources/logback-spring.xml b/coolstore-partner-webb/src/main/resources/logback-spring.xml index 3e7aeec15..655a472f1 100644 --- a/coolstore-partner-webb/src/main/resources/logback-spring.xml +++ b/coolstore-partner-webb/src/main/resources/logback-spring.xml @@ -41,7 +41,7 @@ - + From cf99b7c0e7c744fd0a471342f450708a83047e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 16 Jun 2023 11:39:12 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E6=88=98=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/dao/HyOpenAreaInfoDAO.java | 3 --- .../resources/mapper/HyAdvancedSettingMapper.xml | 2 +- .../mapper/HyIntendDevelopementMappingMapper.xml | 2 +- .../main/resources/mapper/HyOpenAreaInfoMapper.xml | 12 ++++++++---- .../service/impl/AdvanceSettingServiceImpl.java | 3 ++- .../cool/store/service/impl/OpenAreaServiceImpl.java | 6 ++++-- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java index ad9669f10..f5a4bc911 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java @@ -30,9 +30,6 @@ public class HyOpenAreaInfoDAO { } public List queryByKeyword(String keyword,Boolean filterData){ - if (StringUtils.isEmpty(keyword)){ - return new ArrayList<>(); - } return hyOpenAreaInfoMapper.queryByKeyword(keyword,filterData); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml index e070f52e1..ed9fe563c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml @@ -84,7 +84,7 @@ partner_url = #{record.partnerUrl}, tencent_video_account = #{record.tencentVideoAccount}, tencent_video_key = #{record.tencentVideoKey}, - update_user_id = #{record.updateUserId}, + update_user_id = #{record.updateUserId} where id = #{record.id} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml index 3b3cbfc51..70be2f6fc 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml @@ -112,7 +112,7 @@ (#{record.mappingId}, #{record.openAreaMappingId}, - #{record.type} + #{record.type}) diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml index 5701dd529..523cb2e69 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml @@ -185,10 +185,14 @@ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java index 2ab4301ac..e2f54481a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java @@ -26,6 +26,7 @@ public class AdvanceSettingServiceImpl implements AdvanceSettingService { if (advancedSettingRequest.getId()!=null){ //修改 updateAdvanceSetting(userId,advancedSettingRequest); + return Boolean.TRUE; } HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO(); hyAdvancedSettingDO.setCreateUserId(userId); @@ -38,7 +39,7 @@ public class AdvanceSettingServiceImpl implements AdvanceSettingService { private Boolean updateAdvanceSetting(String userId, AdvancedSettingRequest advancedSettingRequest) { HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO(); - hyAdvancedSettingDO.setCreateUserId(userId); + hyAdvancedSettingDO.setUpdateUserId(userId); hyAdvancedSettingDO.setId(advancedSettingRequest.getId()); hyAdvancedSettingDO.setPartnerUrl(advancedSettingRequest.getPartnerUrl()); hyAdvancedSettingDO.setTencentVideoAccount(advancedSettingRequest.getTencentVideoAccount()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java index 5fb5b549e..f0bf8dcec 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java @@ -41,6 +41,8 @@ public class OpenAreaServiceImpl implements OpenAreaService { List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,flag); Set longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet()); + List result = new ArrayList<>(); + result.addAll(hyOpenAreaInfoDOS); hyOpenAreaInfoDOS.stream().forEach(x->{ Long parentId = x.getParentId(); @@ -48,11 +50,11 @@ public class OpenAreaServiceImpl implements OpenAreaService { //添加到集合中 longSet.add(x.getParentId()); HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId); - hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO); + result.add(hyOpenAreaInfoDO); } }); - JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" ); + JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(result)), "id", "parentId","childNode" ); List openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class); return openAreaTreeVOS; } From 0479f46edaf0a9a62db0668712087eabf79288ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Fri, 16 Jun 2023 11:46:04 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E5=8A=A0=E7=9B=9F=E5=95=86=E8=B5=84?= =?UTF-8?q?=E8=B4=A8=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/DataSourceEnum.java | 4 +- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../java/com/cool/store/utils/RedisUtil.java | 4 + .../cool/store/mapper/DingdingUserMapper.java | 26 ++ .../mapper/HyPartnerInterviewMapper.java | 4 + .../resources/mapper/DingdingUserMapper.xml | 309 ++++++++++++++++++ .../mapper/HyPartnerInterviewMapper.xml | 15 +- .../cool/store/dto/mdm/AccessTokenDTO.java | 27 ++ .../cool/store/dto/response/MDMResultDTO.java | 28 ++ .../com/cool/store/entity/DingdingUserDO.java | 104 ++++++ .../store/entity/HyPartnerInterviewDO.java | 3 + .../store/request/CreateQualifyVerifyReq.java | 72 ++++ .../request/RpcCreateQualifyVerfyReq.java | 87 +++++ .../cool/store/request/RpcGetMdmTokenReq.java | 27 ++ .../com/cool/store/service/FlowService.java | 13 + .../store/service/impl/FlowServiceImpl.java | 188 +++++++++++ .../cool/store/controller/FlowController.java | 32 ++ .../main/resources/application-dev.properties | 3 + 18 files changed, 945 insertions(+), 3 deletions(-) create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/DingdingUserMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/DingdingUserMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/mdm/AccessTokenDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/response/MDMResultDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/DingdingUserDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/RpcGetMdmTokenReq.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java index 5a2211c8b..f47e126ac 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java @@ -8,8 +8,8 @@ package com.cool.store.enums; */ public enum DataSourceEnum { - SYNC(0, "同步"), - CREATE(1, "创建"); + SYNC(0, "EC同步"), + CREATE(1, "小程序创建"); private Integer code; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index e6650568f..c3e1b84a3 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -57,6 +57,8 @@ public enum ErrorCodeEnum { ZONE_NOT_EXIST(500004, "战区不存在!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), + DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), + INTERVIEW_NOT_EXIST(1021103, "面试信息不存在!", null), SIGN_FAIL(600000, "验签失败", null), GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java index d8b321374..8223f7559 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java @@ -171,4 +171,8 @@ public class RedisUtil { public void delete(String key) { redisTemplate.delete(key); } + + public Long increment(String key) { + return redisTemplate.boundValueOps(key).increment(1L); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DingdingUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DingdingUserMapper.java new file mode 100644 index 000000000..b47279277 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DingdingUserMapper.java @@ -0,0 +1,26 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.DingdingUserDO; + +/** + * @author zhangchenbiao + * @date 2023-06-15 10:03 + */ +public interface DingdingUserMapper { + /** + * + * 默认插入方法,只会给有值的字段赋值 + * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null + * dateTime:2023-06-15 10:03 + */ + int insertSelective(DingdingUserDO record); + + /** + * + * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 + * dateTime:2023-06-15 10:03 + */ + int updateByPrimaryKeySelective(DingdingUserDO record); + + DingdingUserDO selectDingDingUserByMobile(String mobile); +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index 4e0de1a97..87e8d11d7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -68,4 +68,8 @@ public interface HyPartnerInterviewMapper { */ PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewId") String interviewId); + /** + * 根据面试 id 查询面试信息 + */ + HyPartnerInterviewDO selectByPrimaryKeySelective(String interviewId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/DingdingUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/DingdingUserMapper.xml new file mode 100644 index 000000000..f383f5093 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/DingdingUserMapper.xml @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, userid, unionid, remark, is_boss, hired_date, is_senior, tel, work_place, email, + active, avatar, is_admin, is_hide, job_number, name, state_code, real_authed, db_update_timestamp, + position, mobile, check_status, job_status, config_code_id + + + is_leader_in_depts, department, extattr, roles + + + insert into dingding_user + + + userid, + + + unionid, + + + remark, + + + is_boss, + + + hired_date, + + + is_senior, + + + tel, + + + work_place, + + + email, + + + active, + + + avatar, + + + is_admin, + + + is_hide, + + + job_number, + + + name, + + + state_code, + + + real_authed, + + + db_update_timestamp, + + + position, + + + mobile, + + + check_status, + + + job_status, + + + config_code_id, + + + is_leader_in_depts, + + + department, + + + extattr, + + + roles, + + + + + #{userid}, + + + #{unionid}, + + + #{remark}, + + + #{isBoss}, + + + #{hiredDate}, + + + #{isSenior}, + + + #{tel}, + + + #{workPlace}, + + + #{email}, + + + #{active}, + + + #{avatar}, + + + #{isAdmin}, + + + #{isHide}, + + + #{jobNumber}, + + + #{name}, + + + #{stateCode}, + + + #{realAuthed}, + + + #{dbUpdateTimestamp}, + + + #{position}, + + + #{mobile}, + + + #{checkStatus}, + + + #{jobStatus}, + + + #{configCodeId}, + + + #{isLeaderInDepts}, + + + #{department}, + + + #{extattr}, + + + #{roles}, + + + + + update dingding_user + + + userid = #{userid}, + + + unionid = #{unionid}, + + + remark = #{remark}, + + + is_boss = #{isBoss}, + + + hired_date = #{hiredDate}, + + + is_senior = #{isSenior}, + + + tel = #{tel}, + + + work_place = #{workPlace}, + + + email = #{email}, + + + active = #{active}, + + + avatar = #{avatar}, + + + is_admin = #{isAdmin}, + + + is_hide = #{isHide}, + + + job_number = #{jobNumber}, + + + name = #{name}, + + + state_code = #{stateCode}, + + + real_authed = #{realAuthed}, + + + db_update_timestamp = #{dbUpdateTimestamp}, + + + position = #{position}, + + + mobile = #{mobile}, + + + check_status = #{checkStatus}, + + + job_status = #{jobStatus}, + + + config_code_id = #{configCodeId}, + + + is_leader_in_depts = #{isLeaderInDepts}, + + + department = #{department}, + + + extattr = #{extattr}, + + + roles = #{roles}, + + + where id = #{id} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 0fa5d3610..d80bdd3c8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -14,6 +14,7 @@ + @@ -41,7 +42,7 @@ id, status, partner_line_id, interview_plan_id, partner_id, deadline, interviewer, - recorder, process_info, record_time, summary, auth_code, pass_file_url, expiry_date, + recorder, process_info, record_time, summary, auth_code, qualify_verify_id, pass_file_url, expiry_date, latest_log_message, pass_reason, certify_file, create_time, update_time, approve_time, partner_enter_time, interviewer_enter_time @@ -244,6 +245,9 @@ interviewer_enter_time = #{interviewerEnterTime}, + + qualify_verify_id = #{qualifyVerifyId}, + where id = #{id} @@ -329,5 +333,14 @@ FROM hy_partner_intent_info WHERE partner_id = #{partner_id} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/mdm/AccessTokenDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/mdm/AccessTokenDTO.java new file mode 100644 index 000000000..661d936d2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/mdm/AccessTokenDTO.java @@ -0,0 +1,27 @@ +package com.cool.store.dto.mdm; + +/** + * @Author: young.yu + * @Date: 2023-06-15 13:35 + * @Description: + */ +public class AccessTokenDTO { + private Long expiresIn; + private String accessToken; + + public Long getExpiresIn() { + return expiresIn; + } + + public void setExpiresIn(Long expiresIn) { + this.expiresIn = expiresIn; + } + + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/response/MDMResultDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/response/MDMResultDTO.java new file mode 100644 index 000000000..ed0593839 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/response/MDMResultDTO.java @@ -0,0 +1,28 @@ +package com.cool.store.dto.response; + +/** + * @Author: young.yu + * @Date: 2023-06-14 16:39 + * @Description: + */ +public class MDMResultDTO extends ResultDTO{ + private Object bizKey; + + private String traceId; + + public Object getBizKey() { + return bizKey; + } + + public void setBizKey(Object bizKey) { + this.bizKey = bizKey; + } + + public String getTraceId() { + return traceId; + } + + public void setTraceId(String traceId) { + this.traceId = traceId; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/DingdingUserDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/DingdingUserDO.java new file mode 100644 index 000000000..826abc262 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/DingdingUserDO.java @@ -0,0 +1,104 @@ +package com.cool.store.entity; + +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * @author zhangchenbiao + * @date 2023-06-15 10:03 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DingdingUserDO implements Serializable { + @ApiModelProperty("") + private Integer id; + + @ApiModelProperty("用户id") + private String userid; + + @ApiModelProperty("") + private String unionid; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("是不是老板") + private Integer isBoss; + + @ApiModelProperty("入职时间【毫秒时间戳】") + private String hiredDate; + + @ApiModelProperty("是否是高管") + private Integer isSenior; + + @ApiModelProperty("分机号") + private String tel; + + @ApiModelProperty("办公地点") + private String workPlace; + + @ApiModelProperty("员工电子邮箱") + private String email; + + @ApiModelProperty("是否已经激活,true表示已激活,false表示未激活") + private Integer active; + + @ApiModelProperty("头像url") + private String avatar; + + @ApiModelProperty("是否为企业的管理员,true表示是,false表示不是") + private Integer isAdmin; + + @ApiModelProperty("是否号码隐藏,true表示隐藏,false表示不隐藏") + private Integer isHide; + + @ApiModelProperty("员工工号") + private String jobNumber; + + @ApiModelProperty("员工名字") + private String name; + + @ApiModelProperty("国家地区码") + private String stateCode; + + @ApiModelProperty("是否实名认证") + private Integer realAuthed; + + @ApiModelProperty("数据库更新时间") + private Date dbUpdateTimestamp; + + @ApiModelProperty("职位") + private String position; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("审核状态[0、待审核;1、已审核;2、拒绝审核;3、首次同步不处理]") + private Integer checkStatus; + + @ApiModelProperty("工作状态[1、在职;0、离职]") + private Integer jobStatus; + + @ApiModelProperty("所在组织") + private Integer configCodeId; + + @ApiModelProperty("json格式的【是不是部门老大,多部门所以json】") + private String isLeaderInDepts; + + @ApiModelProperty("所属部门id") + private String department; + + @ApiModelProperty("扩展属性") + private String extattr; + + @ApiModelProperty("用户角色信息") + private String roles; +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerInterviewDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerInterviewDO.java index 2a13043ad..1fc9ad898 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerInterviewDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerInterviewDO.java @@ -54,6 +54,9 @@ public class HyPartnerInterviewDO implements Serializable { @ApiModelProperty("授权码") private String authCode; + @ApiModelProperty("资质审核流程id") + private String qualifyVerifyId; + @ApiModelProperty("函文件url") private String passFileUrl; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java new file mode 100644 index 000000000..7f0dd8739 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java @@ -0,0 +1,72 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-14 14:18 + * @Description: + */ +@Data +@ApiModel(description = "发起加盟商资质审核请求") +public class CreateQualifyVerifyReq { + @ApiModelProperty(value = "线索id", required = true) + private String lineId; + + @ApiModelProperty(value = "会议id", required = true) + private String interviewId; + + @ApiModelProperty(value = "加盟商id", required = true) + private String partnerId; + + @ApiModelProperty(value = "面试表现记录", required = true) + private String summary; + + @ApiModelProperty(value = "合作关系: 1总部下属; 2小区代直营; 3县代直营; 4县代下属; 5区代直营; 6区代下属", required = true) + private Integer partnership; + + @ApiModelProperty(value = "意向签约时间", required = true, example = "YYYY-MM-DD") + private String wantSignTime; + + @ApiModelProperty(value = "加盟费", required = true) + private String partnerFee; + + @ApiModelProperty(value = "保证金", required = true) + private String securityFund; + + @ApiModelProperty(value = "技术服务费", required = true) + private String technicalServiceFee; + + @ApiModelProperty(value = "意向金金额", required = true) + private String intentionMoney; + + @ApiModelProperty(value = "意向签约人姓名", required = true) + private String intentionSignerUsername; + + @ApiModelProperty(value = "意向签约人手机号", required = true) + private String intentionSignerMobile; + + @ApiModelProperty(value = "意向签约人学历: 1.初中及以下 2.高中 3.大专 4.本科 5.硕士及以上", required = true) + private String intentionEdu; + + @ApiModelProperty(value = "实控人姓名", required = true) + private String realControlUsername; + + @ApiModelProperty(value = "实控人身份证", required = true) + private String realControlIdcard; + + @ApiModelProperty(value = "实控人与签约人关系: 1.本人 2.配偶 3.二代直系亲属 4.雇佣 5.其他", required = true) + private String signerRealControlRelation; + + @ApiModelProperty(value = "其他实控人与签约人关系") + private String signerOtherRealControlRelation; + + @ApiModelProperty(value = "实控人与签约人关系证明(文件上传地址,多个以英文逗号隔开)") + private String signerRealControlRelationCert; + + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java new file mode 100644 index 000000000..c47ee84a0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java @@ -0,0 +1,87 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-14 15:06 + * @Description: + */ +public class RpcCreateQualifyVerfyReq { + @ApiModelProperty(value = "意向签约时间", required = true) + private String intendedSignDate; + + @ApiModelProperty(value = "请求来源", required = true) + private String fraSource; + + @ApiModelProperty(value = "保证金(元)", required = true, example = "5000") + private int amtDeposit; + + @ApiModelProperty(value = "授权码", required = true) + private String authCode; + + @ApiModelProperty(value = "意向签约人", required = true) + private String intendedSigner; + + @ApiModelProperty(value = "手机号", required = true) + private String intendedSignerTel; + + @ApiModelProperty(value = "钉钉用户id", required = true) + private String dingUserId; + + public String getIntendedSignDate() { + return intendedSignDate; + } + + public void setIntendedSignDate(String intendedSignDate) { + this.intendedSignDate = intendedSignDate; + } + + public String getFraSource() { + return fraSource; + } + + public void setFraSource(String fraSource) { + this.fraSource = fraSource; + } + + public int getAmtDeposit() { + return amtDeposit; + } + + public void setAmtDeposit(int amtDeposit) { + this.amtDeposit = amtDeposit; + } + + public String getAuthCode() { + return authCode; + } + + public void setAuthCode(String authCode) { + this.authCode = authCode; + } + + public String getIntendedSigner() { + return intendedSigner; + } + + public void setIntendedSigner(String intendedSigner) { + this.intendedSigner = intendedSigner; + } + + public String getIntendedSignerTel() { + return intendedSignerTel; + } + + public void setIntendedSignerTel(String intendedSignerTel) { + this.intendedSignerTel = intendedSignerTel; + } + + public String getDingUserId() { + return dingUserId; + } + + public void setDingUserId(String dingUserId) { + this.dingUserId = dingUserId; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcGetMdmTokenReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcGetMdmTokenReq.java new file mode 100644 index 000000000..ae8e202e8 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcGetMdmTokenReq.java @@ -0,0 +1,27 @@ +package com.cool.store.request; + +/** + * @Author: young.yu + * @Date: 2023-06-15 13:28 + * @Description: + */ +public class RpcGetMdmTokenReq { + private String appKey; + private String appSecret; + + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAppSecret() { + return appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java new file mode 100644 index 000000000..c31da95ee --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java @@ -0,0 +1,13 @@ +package com.cool.store.service; + +import com.cool.store.exception.ApiException; +import com.cool.store.request.CreateQualifyVerifyReq; + +/** + * @Author: young.yu + * @Date: 2023-06-14 13:51 + * @Description: + */ +public interface FlowService { + void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java new file mode 100644 index 000000000..be53f658a --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -0,0 +1,188 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dto.login.UserIdInfoDTO; +import com.cool.store.dto.mdm.AccessTokenDTO; +import com.cool.store.dto.response.MDMResultDTO; +import com.cool.store.entity.*; +import com.cool.store.enums.DataSourceEnum; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.exception.ApiException; +import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.DingdingUserMapper; +import com.cool.store.mapper.HyPartnerCertificationInfoMapper; +import com.cool.store.mapper.HyPartnerInterviewMapper; +import com.cool.store.mapper.HyPartnerLineInfoMapper; +import com.cool.store.request.CreateQualifyVerifyReq; +import com.cool.store.request.RpcCreateQualifyVerfyReq; +import com.cool.store.request.RpcGetMdmTokenReq; +import com.cool.store.service.FlowService; +import com.cool.store.utils.RedisUtilPool; +import com.cool.store.utils.RestTemplateUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * @Author: young.yu + * @Date: 2023-06-14 14:22 + * @Description: + */ +@Slf4j +@Service +public class FlowServiceImpl implements FlowService { + + // @Value("${hs.mdm.baseUrl}") + private String mdmBaseUrl; + @Autowired + private RedisUtilPool redisUtilPool; + + @Autowired + private HyPartnerLineInfoMapper hyPartnerLineInfoMapper; + + @Autowired + private EnterpriseUserDAO enterpriseUserDAO; + + @Autowired + private DingdingUserMapper dingdingUserMapper; + + @Autowired + private HyPartnerInterviewMapper hyPartnerInterviewMapper; + + @Autowired + private HyPartnerCertificationInfoMapper hyPartnerCertificationInfoMapper; + + @Override + public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException { + //1.发起加盟商资质审核 + RpcCreateQualifyVerfyReq rpcRequest = new RpcCreateQualifyVerfyReq(); + rpcRequest.setIntendedSignDate(request.getWantSignTime()); + rpcRequest.setFraSource("HSAYPartner"); + rpcRequest.setAmtDeposit(Integer.valueOf(request.getSecurityFund())); + + //获取授权码 + String authCode = null; + if (StringUtils.isBlank(request.getLineId())) { + //根据线索id获取线索信息 + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId())); + if (!Objects.isNull(hyPartnerLineInfoDO)) { + String investmentManagerId = hyPartnerLineInfoDO.getInvestmentManager(); + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoById(investmentManagerId); + if (!Objects.isNull(enterpriseUserDO)) { + String jobNumber = enterpriseUserDO.getJobnumber(); + String mobile = enterpriseUserDO.getMobile(); + DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile); + if (Objects.isNull(dingdingUserDO)) { + throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST); + } + rpcRequest.setDingUserId(dingdingUserDO.getUserid()); + authCode = generateAuthCode(jobNumber); + rpcRequest.setAuthCode(authCode); + } + } + + } + rpcRequest.setIntendedSigner(request.getIntentionSignerUsername()); + rpcRequest.setIntendedSignerTel(request.getIntentionSignerMobile()); + + String qualifyVerifyId = createQualifyVerify(rpcRequest); + //2.更新审核信息 + HyPartnerCertificationInfoDO partnerCertificationInfoDO = new HyPartnerCertificationInfoDO(); + partnerCertificationInfoDO.setPartnerId(request.getPartnerId()); + partnerCertificationInfoDO.setPartnerLineId(Long.valueOf(request.getLineId())); + partnerCertificationInfoDO.setPartnerInterviewId(Long.valueOf(request.getInterviewId())); + partnerCertificationInfoDO.setPartnership(String.valueOf(request.getPartnership())); + partnerCertificationInfoDO.setWantSignTime(DateUtil.parseDate(request.getWantSignTime())); + partnerCertificationInfoDO.setPartnerFee(request.getPartnerFee()); + partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund()); + partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee()); + partnerCertificationInfoDO.setIntentionMoney(request.getIntentionMoney()); + partnerCertificationInfoDO.setIntentionSignerUsername(request.getIntentionSignerUsername()); + partnerCertificationInfoDO.setIntentionSignerMobile(request.getIntentionSignerMobile()); + partnerCertificationInfoDO.setIntentionEdu(request.getIntentionEdu()); + partnerCertificationInfoDO.setRealControlUsername(request.getRealControlUsername()); + partnerCertificationInfoDO.setRealControlIdcard(request.getRealControlIdcard()); + partnerCertificationInfoDO.setSignerRealControlRelation(request.getSignerRealControlRelation()); + partnerCertificationInfoDO.setSignerOtherRealControlRelation(request.getSignerOtherRealControlRelation()); + partnerCertificationInfoDO.setSignerRealControlRelationCert(request.getSignerRealControlRelationCert()); + partnerCertificationInfoDO.setCreateTime(new Date()); + partnerCertificationInfoDO.setUpdateTime(new Date()); + hyPartnerCertificationInfoMapper.updateByPrimaryKeySelective(partnerCertificationInfoDO); + //3.更新面试信息 + //根据面试id获取面试信息 + HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId()); + if (Objects.isNull(hyPartnerInterviewDO)) { + throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); + } + hyPartnerInterviewDO.setQualifyVerifyId(qualifyVerifyId); + hyPartnerInterviewDO.setUpdateTime(new Date()); + //更新 + hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_4.getCode())); + hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + } + + + public String createQualifyVerify(RpcCreateQualifyVerfyReq rpcRequest) throws ApiException{ + String url = mdmBaseUrl + "/api/openapi/runtime/form/startFraQualExam"; + ResponseEntity responseEntity = null; + try { + RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq(); + Map headers = new HashMap<>(); + headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq)); + responseEntity = RestTemplateUtil.post(url, headers,rpcRequest, MDMResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) { + return JSONObject.toJSONString(responseEntity.getBody().getData()); + } + } catch (Exception e) { + log.info("调用MDM接口出错{}", e); + throw new ApiException(e.getMessage()); + } + return null; + + } + + public String getMdmAccessToken(RpcGetMdmTokenReq rpcGetMDMTokenReq) throws ApiException { + String url = mdmBaseUrl + "/api/oauth2/accessToken"; + ResponseEntity responseEntity = null; + try { + responseEntity = RestTemplateUtil.post(url,rpcGetMDMTokenReq, MDMResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) { + AccessTokenDTO accessTokenDTO = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), AccessTokenDTO.class); + if(accessTokenDTO==null || StringUtils.isBlank(accessTokenDTO.getAccessToken())){ + throw new ServiceException("获取Mdm token失败!"); + } + return accessTokenDTO.getAccessToken(); + } + } catch (Exception e) { + log.info("调用MDM接口出错{}", e); + throw new ApiException(e.getMessage()); + } + return null; + } + + + /** + * 生成授权码 + * + * @param jobNumber + * @return + */ + public String generateAuthCode(String jobNumber) { + String prefix = jobNumber + DateUtil.format(new Date(), "yyyyMMdd"); + return prefix + redisUtilPool.incrby(prefix, 1, 60 * 60 * 25); + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java new file mode 100644 index 000000000..c67f98f7a --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java @@ -0,0 +1,32 @@ +package com.cool.store.controller; + +import com.cool.store.exception.ApiException; +import com.cool.store.request.CreateQualifyVerifyReq; +import com.cool.store.request.FinishInterviewReq; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.FlowService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: young.yu + * @Date: 2023-06-14 13:47 + * @Description: 流程相关 + */ +@RestController +@RequestMapping({"/flow"}) +public class FlowController { + + @Autowired + private FlowService flowService; + @PostMapping("/qualifyVerify/create") + @ApiOperation("发起加盟商资质审核") + public ResponseResult createQualifyVerify(@RequestBody CreateQualifyVerifyReq request) throws ApiException { + flowService.createQualifyVerify(request); + return ResponseResult.success(); + } +} diff --git a/coolstore-partner-webb/src/main/resources/application-dev.properties b/coolstore-partner-webb/src/main/resources/application-dev.properties index 14ecbbb60..db374cdb5 100644 --- a/coolstore-partner-webb/src/main/resources/application-dev.properties +++ b/coolstore-partner-webb/src/main/resources/application-dev.properties @@ -53,6 +53,9 @@ corp.id = 171cddee76471740 trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 +#八佰流程配置 +hs.mdm.baseUrl=http://172.35.37.52:8080 + #xxljob配置 xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin xxl.job.executor.appname = ${spring.application.name} From a4c10caab6a4919dbf6a4060ea15c24b37020c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Fri, 16 Jun 2023 11:58:08 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E8=B5=84=E8=B4=A8?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/HyPartnerCertificationInfoMapper.xml | 9 +-------- .../cool/store/entity/HyPartnerCertificationInfoDO.java | 3 --- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml index b33680fc8..9d77fcaee 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml @@ -8,7 +8,6 @@ - @@ -26,7 +25,7 @@ id, partner_id, partner_line_id, partner_interview_id, partnership, want_sign_time, - data_source, partner_fee, security_fund, technical_service_fee, intention_money, + partner_fee, security_fund, technical_service_fee, intention_money, intention_signer_username, intention_signer_mobile, intention_edu, real_control_username, real_control_idcard, signer_real_control_relation, signer_other_real_control_relation, signer_real_control_relation_cert, create_time, update_time @@ -49,9 +48,6 @@ want_sign_time, - - data_source, - partner_fee, @@ -176,9 +172,6 @@ want_sign_time = #{record.wantSignTime}, - - data_source = #{record.dataSource}, - partner_fee = #{record.partnerFee}, diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerCertificationInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerCertificationInfoDO.java index bba172066..b941df9c9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerCertificationInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerCertificationInfoDO.java @@ -36,9 +36,6 @@ public class HyPartnerCertificationInfoDO implements Serializable { @ApiModelProperty("意向签约时间") private Date wantSignTime; - @ApiModelProperty("数据来源") - private Integer dataSource; - @ApiModelProperty("加盟费") private String partnerFee; From f789730bd59ed110740bb81cad7e5583179dc5d8 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 13:59:15 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/MessageTypeEnum.java | 49 +++++++++++++++++++ .../store/dto/message/SendCardMessageDTO.java | 33 +++++++++++++ .../com/cool/store/http/ISVHttpRequest.java | 21 ++++++++ .../cool/store/controller/TestController.java | 13 ++++- .../cool/store/config/SignValidateFilter.java | 2 +- 5 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java new file mode 100644 index 000000000..952ec104a --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java @@ -0,0 +1,49 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: MessageTypeEnum + * @Description: + * @date 2023-06-15 10:14 + */ +public enum MessageTypeEnum { + + SCHEDULE_REMINDER("schedule_reminder", "日历提醒事件", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag") + + + + ; + + private String code; + + private String name; + + private String imageMediaId; + + MessageTypeEnum(String code, String name, String imageMediaId) { + this.code = code; + this.name = name; + this.imageMediaId = imageMediaId; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + public String getImageMediaId() { + return imageMediaId; + } + + public static String getImageMediaId(String code){ + for (MessageTypeEnum value : MessageTypeEnum.values()) { + if(value.code.equals(code)){ + return value.imageMediaId; + } + } + return null; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java new file mode 100644 index 000000000..e2e22440b --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java @@ -0,0 +1,33 @@ +package com.cool.store.dto.message; + +import com.cool.store.enums.MessageTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: SendCardMessageDTO + * @Description:发送卡片消息 + * @date 2023-06-15 11:05 + */ +@Data +public class SendCardMessageDTO { + + @ApiModelProperty("消息接收人") + private List userIds; + + @ApiModelProperty("消息链接") + private String messageUrl; + + @ApiModelProperty("消息标题") + private String title; + + @ApiModelProperty("消息内容") + private String content; + + @ApiModelProperty("消息类型, MessageTypeEnum") + private MessageTypeEnum messageType; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index 83abd4c11..0d0cdb989 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -7,6 +7,7 @@ import com.cool.store.dto.enterprise.AuthScopeDTO; import com.cool.store.dto.enterprise.EnterpriseUserDTO; import com.cool.store.dto.enterprise.SysDepartmentDTO; import com.cool.store.dto.login.UserIdInfoDTO; +import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.enums.ErrorCodeEnum; @@ -17,6 +18,7 @@ import com.cool.store.utils.RestTemplateUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -311,4 +313,23 @@ public class ISVHttpRequest { } return null; } + + /** + * 发送飞书卡片消息 + * @param param + */ + public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{ + if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){ + return; + } + String url = isvDomain + "/sendFeiShuCardMessage"; + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); + } + } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 6a4493a0e..e0c16c7f4 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -6,6 +6,7 @@ import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.partner.DescribePhoneNumberDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.HyOpenAreaInfoDO; @@ -200,7 +201,7 @@ public class TestController { return ResultDTO.successResult(isvHttpRequest.getUserCalendarsEvents(userId, startTime, endTime)); } - @GetMapping(path = "/getIdentityCardInfo") + @GetMapping("/getIdentityCardInfo") @ApiOperation("根据身份证正面解析获取数据") public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){ try { @@ -211,4 +212,14 @@ public class TestController { } } + @PostMapping("/sendFeiShuCardMessage") + public ResponseResult sendFeiShuCardMessage(@RequestBody SendCardMessageDTO param){ + try { + isvHttpRequest.sendFeiShuCardMessage(param); + return ResponseResult.success(); + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL); + } + } + } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 46b913743..7f10207cc 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -46,7 +46,7 @@ public class SignValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig", + "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig", "/**/swagger*/**", "/**/webjars/**"); From a1b2b61717ef5510612f8804f4f98c0ce1a4a9af Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 14:05:21 +0800 Subject: [PATCH 12/16] =?UTF-8?q?sign=20=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/config/SignValidateFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 7f10207cc..1bb596309 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -46,7 +46,7 @@ public class SignValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig", + "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig","/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo", "/**/swagger*/**", "/**/webjars/**"); From 4e98eb7c761b874bbbc28b485f76d88c44ef08d4 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 14:27:17 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=20=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coolstore-partner-service.iml | 2 + coolstore-partner-service/pom.xml | 8 +++ .../com/cool/store/mq/RocketMqLogAspect.java | 66 +++++++++++++++++++ .../com/cool/store/service/AliyunService.java | 3 +- .../store/service/impl/AliyunServiceImpl.java | 10 +-- .../coolstore-partner-webb.iml | 2 + .../store/config/TokenValidateFilter.java | 5 ++ .../coolstore-partner-webc.iml | 2 + .../cool/store/config/SignValidateFilter.java | 12 +++- pom.xml | 10 +++ 10 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml index 8b2bb5d5c..a2ae95c30 100644 --- a/coolstore-partner-service/coolstore-partner-service.iml +++ b/coolstore-partner-service/coolstore-partner-service.iml @@ -168,5 +168,7 @@ + + \ No newline at end of file diff --git a/coolstore-partner-service/pom.xml b/coolstore-partner-service/pom.xml index 3b9d0f66a..eea141c69 100644 --- a/coolstore-partner-service/pom.xml +++ b/coolstore-partner-service/pom.xml @@ -72,6 +72,14 @@ com.aliyun ocr20191230 + + org.aspectj + aspectjrt + + + org.aspectj + aspectjweaver + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java new file mode 100644 index 000000000..1f1cc1c27 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java @@ -0,0 +1,66 @@ +package com.cool.store.mq; + + +import com.aliyun.openservices.ons.api.Constants; +import com.aliyun.openservices.ons.api.Message; +import com.cool.store.constants.CommonConstants; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.MDC; +import org.springframework.stereotype.Component; + +import java.util.Map; +import java.util.Objects; + +/** + * 切面处理类,操作日志异常日志记录处理 + * @author jiangjixiang + */ +@Aspect +@Component +@Slf4j +public class RocketMqLogAspect { + + + /** + * 设置操作异常切入点记录异常日志 扫描所有controller包下操作 + */ + @Pointcut(value = "execution(public * com.cool.store.mq.consumer.listener..*.consume(..))") + public void rocketMqMdc() { + } + + /** + * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行 + * + * @param joinPoint 切入点 + * @param keys 返回结果 + */ + @Before(value = "rocketMqMdc()") + public void mqBeforeLog(JoinPoint joinPoint) { + try { + Object[] args = joinPoint.getArgs(); + Message message = (Message)args[0]; + String traceId = message.getMsgID() + Constants.TOPIC_PARTITION_SEPARATOR + message.getReconsumeTimes(); + Map context = MDC.getCopyOfContextMap(); + if(Objects.isNull(context)){ + MDC.put(CommonConstants.REQUEST_ID, traceId); + } + } catch (IllegalArgumentException e) { + log.info("MDC mqBeforeLog", e); + } + } + + + @AfterReturning(value = "rocketMqMdc()") + public void doAfterReturning(JoinPoint joinPoint){ + try { + MDC.clear(); + } catch (Exception e) { + log.info("MDC doAfterReturning", e); + } + } +} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java index f8a02ab6d..0a7bf8b6c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.partner.DescribePhoneNumberDTO; +import com.cool.store.exception.ApiException; import com.cool.store.vo.cuser.IdentityCardInfoVO; /** @@ -23,6 +24,6 @@ public interface AliyunService { * @param faceImageUrl * @return */ - IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl); + IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java index 00df38d16..0d171c9f1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java @@ -6,11 +6,10 @@ import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeRe import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse; import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse; import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody; -import com.aliyun.tea.TeaException; -import com.aliyun.tea.TeaModel; import com.aliyun.teaopenapi.models.Config; import com.cool.store.dto.partner.DescribePhoneNumberDTO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; import com.cool.store.service.AliyunService; import com.cool.store.vo.cuser.IdentityCardInfoVO; @@ -62,7 +61,7 @@ public class AliyunServiceImpl implements AliyunService { } @Override - public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) { + public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException { //todo zcb ak sk替换 com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() .setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1") @@ -94,14 +93,17 @@ public class AliyunServiceImpl implements AliyunService { return result; } catch (com.aliyun.tea.TeaException e) { log.error("身份证解析报错TeaException:{}", e); + throw new ApiException(e.getMessage()); } catch (MalformedURLException e) { log.error("身份证解析报错MalformedURLException:{}", e); + throw new ApiException(e.getMessage()); } catch (IOException e) { log.error("身份证解析报错IOException:{}", e); + throw new ApiException(e.getMessage()); } catch (Exception e) { log.error("身份证解析报错Exception:{}", e); + throw new ApiException(e.getMessage()); } - return null; } public static String convertDate(String date, String format) { diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index af0ff3164..a2e227e0b 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -119,6 +119,8 @@ + + diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java index 25b570df4..aeb9c1d94 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -1,14 +1,17 @@ package com.cool.store.config; import com.alibaba.fastjson.JSON; +import com.cool.store.constants.CommonConstants; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.response.ResponseResult; import com.cool.store.context.CurrentUserHolder; import com.cool.store.utils.RedisUtilPool; import com.cool.store.context.LoginUserInfo; +import com.cool.store.utils.UUIDUtils; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; @@ -67,6 +70,7 @@ public class TokenValidateFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); HttpServletResponse response = (HttpServletResponse) servletResponse; HttpServletRequest reqs = (HttpServletRequest) servletRequest; String uri = reqs.getRequestURI(); @@ -109,6 +113,7 @@ public class TokenValidateFilter implements Filter { filterChain.doFilter(servletRequest, servletResponse); } finally { CurrentUserHolder.removeUser(); + MDC.clear(); } } diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index 9cfa8ce03..f6dc12615 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -117,6 +117,8 @@ + + diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 1bb596309..f76d54ea9 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -2,6 +2,7 @@ package com.cool.store.config; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.CommonConstants; import com.cool.store.context.PartnerUserHolder; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.response.ResponseResult; @@ -9,9 +10,11 @@ import com.cool.store.service.WechatMiniAppService; import com.cool.store.utils.AesUtil; import com.cool.store.utils.Md5Utils; import com.cool.store.utils.Sha1Utils; +import com.cool.store.utils.UUIDUtils; import com.cool.store.vo.PartnerUserInfoVO; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; @@ -46,7 +49,9 @@ public class SignValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig","/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo", + "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**", + "/partner/mini/program/oss/getUploadFileConfig", + "/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo", "/**/swagger*/**", "/**/webjars/**"); @@ -73,6 +78,7 @@ public class SignValidateFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); HttpServletResponse response = (HttpServletResponse) servletResponse; HttpServletRequest request = (HttpServletRequest) servletRequest; String uri = request.getRequestURI(); @@ -101,8 +107,7 @@ public class SignValidateFilter implements Filter { // 前后端验签不等 if (!newSign.equals(sign)) { response.setStatus(HttpStatus.OK.value()); - response.getWriter().write(JSON.toJSONString( - ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL))); + response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL))); return; } PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, openid); @@ -116,6 +121,7 @@ public class SignValidateFilter implements Filter { filterChain.doFilter(servletRequest, servletResponse); } finally { PartnerUserHolder.removeUser(); + MDC.clear(); } } diff --git a/pom.xml b/pom.xml index 2522598c4..928a3d908 100644 --- a/pom.xml +++ b/pom.xml @@ -186,6 +186,16 @@ ocr20191230 1.0.26 + + org.aspectj + aspectjrt + 1.9.5 + + + org.aspectj + aspectjweaver + 1.9.5 + From bab4fa6e5af70fab29d28bed125e84943c795c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 16 Jun 2023 15:38:22 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E6=88=98=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/dao/HyIntendDevZoneInfoDAO.java | 10 +++-- .../com/cool/store/dao/HyOpenAreaInfoDAO.java | 2 +- .../cool/store/dao/HyPartnerLineInfoDAO.java | 7 ++++ .../mapper/HyIntendDevZoneInfoMapper.java | 4 +- .../store/mapper/HyOpenAreaInfoMapper.java | 2 +- .../store/mapper/HyPartnerLineInfoMapper.java | 8 ++++ .../mapper/HyIntendDevZoneInfoMapper.xml | 4 +- .../HyIntendDevelopementMappingMapper.xml | 6 +-- .../mapper/HyPartnerLineInfoMapper.xml | 12 ++++++ .../store/vo/PartnerIntentApplyInfoVO.java | 5 ++- .../cool/store/vo/PartnerInterviewInfoVO.java | 14 +++++++ .../HyPartnerInterviewPlanService.java | 2 +- .../impl/HyPartnerIntentInfoServiceImpl.java | 4 +- .../HyPartnerInterviewPlanServiceImpl.java | 37 ++++++++++++++++++- .../service/impl/OpenAreaServiceImpl.java | 3 +- .../store/service/impl/ZoneServiceImpl.java | 9 ++++- .../cool/store/controller/DeskController.java | 5 ++- .../cool/store/controller/ZoneController.java | 4 +- 18 files changed, 115 insertions(+), 23 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java index a8b47cfc5..f37b1d57a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java @@ -1,13 +1,17 @@ package com.cool.store.dao; import com.cool.store.entity.HyIntendDevZoneInfoDO; +import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.mapper.HyIntendDevZoneInfoMapper; +import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * @Author suzhuhong @@ -37,13 +41,11 @@ public class HyIntendDevZoneInfoDAO { } - public PageInfo getHyIntendDevZoneInfoList(String type){ + public List getHyIntendDevZoneInfoList(String type){ if (StringUtils.isEmpty(type)){ - return new PageInfo<>(); + return new ArrayList<>(); } return hyIntendDevZoneInfoMapper.getHyIntendDevZoneInfoList(type); } - - } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java index f5a4bc911..fe3464ca9 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java @@ -25,7 +25,7 @@ public class HyOpenAreaInfoDAO { @Resource HyOpenAreaInfoMapper hyOpenAreaInfoMapper; - public PageInfo queryKeyOpenArea(){ + public List queryKeyOpenArea(){ return hyOpenAreaInfoMapper.queryKeyOpenArea(); } 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 532d95b82..3696a7d68 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 @@ -152,4 +152,11 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.getFollowCountList(partnerIdList); } + public List getHyPartnerLineInfoListByIds( List lineIds){ + if (CollectionUtils.isEmpty(lineIds)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getHyPartnerLineInfoListByIds(lineIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java index 9c9009b21..9358f6e1c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java @@ -4,6 +4,8 @@ import com.cool.store.entity.HyIntendDevZoneInfoDO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author zhangchenbiao * @date 2023-05-29 03:50 @@ -36,5 +38,5 @@ public interface HyIntendDevZoneInfoMapper { * @param type * @return */ - PageInfo getHyIntendDevZoneInfoList(String type); + List getHyIntendDevZoneInfoList(String type); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java index 46c1710be..de3c881b2 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java @@ -32,7 +32,7 @@ public interface HyOpenAreaInfoMapper { * 查询重点城市 * @return */ - PageInfo queryKeyOpenArea(); + List queryKeyOpenArea(); /** 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 2e878544f..1221c21cc 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 @@ -170,4 +170,12 @@ public interface HyPartnerLineInfoMapper { * @return */ List getFollowCountList(@Param("partnerIdList") List partnerIdList); + + + /** + * 根据线索ID查询线索数据 + * @param lineIds + * @return + */ + List getHyPartnerLineInfoListByIds(@Param("lineIds") List lineIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml index 8d23b304c..ec0b55d4a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml @@ -120,10 +120,12 @@ where id = #{record.id} + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml index 70be2f6fc..e3f763f7f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevelopementMappingMapper.xml @@ -91,8 +91,8 @@ and type = #{type} - - + + #{mappingId} @@ -124,7 +124,7 @@ from hy_intend_developement_mapping a inner join hy_intend_dev_zone_info b on a.mapping_id = b.id - + #{mappingId} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 64e399d3b..292d75413 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -450,4 +450,16 @@ + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java index 75703825d..91bfd84a7 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java @@ -30,7 +30,7 @@ public class PartnerIntentApplyInfoVO { private String partnerId; @ApiModelProperty("hy_partner_line_info.id") - private Long partnerLineId; + private Long lineId; @ApiModelProperty("常驻区域") private String liveArea; @@ -50,4 +50,7 @@ public class PartnerIntentApplyInfoVO { @ApiModelProperty("阶段提交时间") private Date partnerSubmitTime; + @ApiModelProperty("阶段状态") + private String WorkflowStatus; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java index fd785a449..eef939139 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java @@ -27,6 +27,9 @@ public class PartnerInterviewInfoVO { @ApiModelProperty("会议结束时间") private String endTime; + @ApiModelProperty("截止时间") + private Date deadline; + @ApiModelProperty("房间号") private String roomId; @@ -36,6 +39,9 @@ public class PartnerInterviewInfoVO { @ApiModelProperty("加盟商用户名称") private String partnerName; + @ApiModelProperty("加盟商手机号码") + private String partnerPhone; + @ApiModelProperty("面试官ID") private String interviewerId; @@ -47,4 +53,12 @@ public class PartnerInterviewInfoVO { @ApiModelProperty("过程信息") private String processInfo; + + @ApiModelProperty("线索状态") + private Integer lineStatus; + + @ApiModelProperty("线索ID") + private Long lineId; + @ApiModelProperty("合同号") + private String authCode; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java index e2f85b6f1..5d4ccb13d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java @@ -27,7 +27,7 @@ public interface HyPartnerInterviewPlanService { * @param pageNumber * @return */ - PageInfo getPartnerInterviewInfoList(String userId,Integer pageSize,Integer pageNumber); + PageInfo getPartnerInterviewInfoList(String userId,String type,Integer pageSize,Integer pageNumber); /** diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index 026cf28ff..1df676b54 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -70,11 +70,13 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic List hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds); Map infoDOMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, data -> data)); List result = new ArrayList<>(); + String finalWorkflowStatus = workflowStatus; list.stream().forEach(x->{ PartnerIntentApplyInfoVO pat = partnerIntentApplyInfoDTOToVo(x); HyPartnerUserInfoDO infoDOMapOrDefault = infoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerUserInfoDO()); pat.setPartnerUserName(infoDOMapOrDefault.getUsername()); pat.setPartnerUserPhone(infoDOMapOrDefault.getMobile()); + pat.setWorkflowStatus(finalWorkflowStatus); result.add(pat); }); partnerIntentApplyInfo.setList(result); @@ -170,7 +172,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic PartnerIntentApplyInfoVO partnerIntentApplyInfoVO = new PartnerIntentApplyInfoVO(); partnerIntentApplyInfoVO.setId(partnerIntentApplyInfoDTO.getId()); partnerIntentApplyInfoVO.setPartnerId(partnerIntentApplyInfoDTO.getPartnerId()); - partnerIntentApplyInfoVO.setPartnerLineId(partnerIntentApplyInfoDTO.getPartnerLineId()); + partnerIntentApplyInfoVO.setLineId(partnerIntentApplyInfoDTO.getPartnerLineId()); partnerIntentApplyInfoVO.setPartnerSubmitTime(partnerIntentApplyInfoDTO.getPartnerSubmitTime()); partnerIntentApplyInfoVO.setAcceptAdjustType(partnerIntentApplyInfoDTO.getAcceptAdjustType()); partnerIntentApplyInfoVO.setLiveArea(partnerIntentApplyInfoDTO.getLiveArea()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 2e5a6e6f7..6ca81b440 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -3,9 +3,11 @@ package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerInterviewPlanDAO; +import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dto.partner.PartnerInterviewInfoDTO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; @@ -39,6 +41,8 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan @Resource HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @Override public List getInterviewPlanList(String userId) { @@ -63,17 +67,34 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan } @Override - public PageInfo getPartnerInterviewInfoList(String userId ,Integer pageSize,Integer pageNumber) { + public PageInfo getPartnerInterviewInfoList(String userId ,String type,Integer pageSize,Integer pageNumber) { + String workflowStatus = ""; + if (CommonConstants.PENDING.equals(type)) { + workflowStatus = WorkflowStatusEnum.RESERVATION_1.getCode(); + } + if (CommonConstants.FOLLOW.equals(type)) { + workflowStatus = WorkflowStatusEnum.RESERVATION_0.getCode(); + } PageHelper.startPage(pageNumber,pageSize); //查询预约面试列表 - PageInfo partnerInterviewInfoList = hyPartnerInterviewPlanDAO.getPartnerInterviewInfoList(userId, WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_0.getCode()); + PageInfo partnerInterviewInfoList = hyPartnerInterviewPlanDAO.getPartnerInterviewInfoList(userId, WorkflowStageEnum.RESERVATION.getCode(), workflowStatus); List list = partnerInterviewInfoList.getList(); if (CollectionUtils.isEmpty(list)){ return partnerInterviewInfoList; } List result = new ArrayList<>(); + List partnerIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerId).collect(Collectors.toList()); + List hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds); + Map userNameMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, Data->Data)); + List lineIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerLineId).collect(Collectors.toList()); + List hyPartnerLineInfoDOS= hyPartnerLineInfoDAO.getHyPartnerLineInfoListByIds(lineIds); + Map hyPartnerLineInfoDOMap = hyPartnerLineInfoDOS.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getId, data -> data)); list.stream().forEach(x->{ PartnerInterviewInfoVO partnerInterviewInfoVO = convertPartnerInterviewInfoDTOToVo(x); + partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getUsername()); + partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getMobile()); + partnerInterviewInfoVO.setLineStatus(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getLineStatus()); + partnerInterviewInfoVO.setLineId(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getId()); result.add(partnerInterviewInfoVO); }); partnerInterviewInfoList.setList(result); @@ -97,9 +118,19 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan if (CollectionUtils.isEmpty(list)){ return partnerInterviewInfoList; } + List partnerIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerId).collect(Collectors.toList()); + List hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIds); + Map userNameMap = hyPartnerUserInfoDOS.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, Data->Data)); + List lineIds = list.stream().map(PartnerInterviewInfoDTO::getPartnerLineId).collect(Collectors.toList()); + List hyPartnerLineInfoDOS= hyPartnerLineInfoDAO.getHyPartnerLineInfoListByIds(lineIds); + Map hyPartnerLineInfoDOMap = hyPartnerLineInfoDOS.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getId, data -> data)); List result = new ArrayList<>(); list.stream().forEach(x->{ PartnerInterviewInfoVO partnerInterviewInfoVO = convertPartnerInterviewInfoDTOToVo(x); + partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getUsername()); + partnerInterviewInfoVO.setPartnerPhone(userNameMap.getOrDefault(x.getPartnerId(),new HyPartnerUserInfoDO()).getMobile()); + partnerInterviewInfoVO.setLineStatus(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getLineStatus()); + partnerInterviewInfoVO.setLineId(hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerLineId(),new HyPartnerLineInfoDO()).getId()); result.add(partnerInterviewInfoVO); }); partnerInterviewInfoList.setList(result); @@ -135,8 +166,10 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan partnerInterviewInfoVO.setProcessInfo(partnerInterviewInfoDTO.getProcessInfo()); partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC)); partnerInterviewInfoVO.setRoomId(partnerInterviewInfoDTO.getRoomId()); + partnerInterviewInfoVO.setDeadline(partnerInterviewInfoDTO.getDeadline()); partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC)); partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus()); + partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode()); partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC)); return partnerInterviewInfoVO; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java index f0bf8dcec..9fe1cc7aa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java @@ -130,7 +130,8 @@ public class OpenAreaServiceImpl implements OpenAreaService { @Override public PageInfo queryKeyOpenAreaList(Integer pageSize, Integer pageNumber) { PageHelper.startPage(pageNumber,pageSize); - PageInfo hyOpenAreaInfoDOPageInfo = hyOpenAreaInfoDAO.queryKeyOpenArea(); + List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryKeyOpenArea(); + PageInfo hyOpenAreaInfoDOPageInfo = new PageInfo<>(hyOpenAreaInfoDOS); if (hyOpenAreaInfoDOPageInfo==null){ return new PageInfo<>(); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java index 58bac567c..42dc570d7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java @@ -85,10 +85,13 @@ public class ZoneServiceImpl implements ZoneService { HyIntendDevZoneInfoDO hyIntendDevZoneInfoDO = new HyIntendDevZoneInfoDO(); hyIntendDevZoneInfoDO.setId(intentAreaSettingRequest.getId()); hyIntendDevZoneInfoDO.setZoneName(intentAreaSettingRequest.getZoneName()); + hyIntendDevZoneInfoDO.setUpdateUserId(userId); hyIntendDevZoneInfoDO.setAssociatedRegionId(CollectionUtils.isNotEmpty(intentAreaSettingRequest.getOrgIdList())?JSONObject.toJSONString(intentAreaSettingRequest.getOrgIdList()):""); hyIntendDevZoneInfoDAO.updateByPrimaryKeySelective(hyIntendDevZoneInfoDO); //添加战区映射的意向区域 hyIntendDevMappingDAO.deleteByOpenAreaIds(intentAreaSettingRequest.getOpenAreaIdList(),intentAreaSettingRequest.getType()); + hyIntendDevMappingDAO.deleteByMappingIds(Arrays.asList(intentAreaSettingRequest.getId()) + ,intentAreaSettingRequest.getType()); List openAreaIdList = intentAreaSettingRequest.getOpenAreaIdList(); List list = new ArrayList<>(); openAreaIdList.stream().forEach(x->{ @@ -106,7 +109,7 @@ public class ZoneServiceImpl implements ZoneService { @Override public PageInfo getZoneList(String type, Integer pageSize, Integer pageNum) { PageHelper.startPage(pageNum,pageSize); - PageInfo hyIntendDevZoneInfoList = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type); + PageInfo hyIntendDevZoneInfoList = new PageInfo(hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type)); List result = new ArrayList<>(); List list = hyIntendDevZoneInfoList.getList(); if (CollectionUtils.isEmpty(list)){ @@ -145,6 +148,8 @@ public class ZoneServiceImpl implements ZoneService { List regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class); Map regionMap = regionDAO.getRegionMap(regionIds); zoneVO = handleZoneVO(regionMap, hyIntendDevZoneInfoDO); + } + if (enterpriseUserDO!=null){ zoneVO.setUpdateUserName(enterpriseUserDO.getName()); } List zoneCheckDTOS = hyIntendDevMappingDAO.selectByMappingIdList(Arrays.asList(zoneId)); @@ -214,7 +219,7 @@ public class ZoneServiceImpl implements ZoneService { @Override public List queryAllBingZoneRegionList(String type) { - PageInfo intend = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type); + PageInfo intend = new PageInfo<>(hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type)); List list = intend.getList(); List resultList = list.stream().filter(x->StringUtil.isNotEmpty(x.getAssociatedRegionId())) .flatMap(HyIntendDevZoneInfoDO -> JSONObject.parseArray(HyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class).stream()) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index c4fe96c72..7ff45733f 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -110,11 +110,12 @@ public class DeskController { @PostMapping(path = "/querySubscribeInterviewTimeList") @ApiOperation("招商经理视角===预约面试时间 列表") - public ResponseResult> querySubscribeInterviewTimeList(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, + public ResponseResult> querySubscribeInterviewTimeList(@RequestParam(value = "type",required = false)String type, + @RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ String userId = CurrentUserHolder.getUserId(); - return ResponseResult.success(hyPartnerInterviewPlanService.getPartnerInterviewInfoList(userId,pageSize,pageNumber)); + return ResponseResult.success(hyPartnerInterviewPlanService.getPartnerInterviewInfoList(userId,type,pageSize,pageNumber)); } @PostMapping(path = "/queryQualifiedInterviewList") diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java index 65a49967a..559c2cf1a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java @@ -59,12 +59,12 @@ public class ZoneController { } - @GetMapping(path = "/deletedZoneList") + @GetMapping(path = "/deletedZone") @ApiOperation("删除战区") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = false), }) - public ResponseResult deletedZoneList(@RequestParam(value = "id",required = false)Long id){ + public ResponseResult deletedZone(@RequestParam(value = "id",required = false)Long id){ return ResponseResult.success(zoneService.deletedZone(id)); } From 9ff21299c02bf2977a9ae0d1f47213628496df22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 16 Jun 2023 15:41:20 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/vo/PartnerInterviewInfoVO.java | 4 ++++ .../store/service/impl/HyPartnerInterviewPlanServiceImpl.java | 1 + 2 files changed, 5 insertions(+) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java index eef939139..0311cc371 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java @@ -59,6 +59,10 @@ public class PartnerInterviewInfoVO { @ApiModelProperty("线索ID") private Long lineId; + @ApiModelProperty("合同号") private String authCode; + + @ApiModelProperty("审批发起时间") + private Date approveTime; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 6ca81b440..63d6a3f16 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -171,6 +171,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus()); partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode()); partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC)); + partnerInterviewInfoVO.setApproveTime(partnerInterviewInfoDTO.getApproveTime()); return partnerInterviewInfoVO; } From 4b8631b37dd08a656fb7da0d16b01ce3e9229d7f Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 16:09:11 +0800 Subject: [PATCH 16/16] =?UTF-8?q?mq=E6=B6=88=E6=81=AF=E6=8E=A5=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/RocketMqGroupEnum.java | 2 +- .../com/cool/store/enums/RocketMqTagEnum.java | 1 + .../store/dto/dept/DepartmentEventDTO.java | 24 +++++++++++++++++++ .../listener/FeiShuEventListener.java | 13 +++++++--- .../store/service/EnterpriseSyncService.java | 7 ++++++ .../impl/EnterpriseSyncServiceImpl.java | 17 +++++++++++++ 6 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java index bc476bfe3..ca1849ed2 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java @@ -30,7 +30,7 @@ public enum RocketMqGroupEnum { /** * 事件消息监听 */ - FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE))), + FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java index 61446ac46..9471b871d 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java @@ -13,6 +13,7 @@ public enum RocketMqTagEnum { AUTH_SCOPE_CHANGE("auth_scope_change","授权范围变更"), USER_EVENT("user_event","钉钉通讯录变更事件"), + DEPT_EVENT("dept_event","部门事件"), ; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java new file mode 100644 index 000000000..bbd88a665 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/dept/DepartmentEventDTO.java @@ -0,0 +1,24 @@ +package com.cool.store.dto.dept; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: DepartmentEventDTO + * @Description: 部门事件 + * @date 2023-06-16 15:30 + */ +@Data +public class DepartmentEventDTO { + + @ApiModelProperty("部门id") + private String departmentId; + + @ApiModelProperty("是否变更父级节点") + private Boolean isChangeParent; + + @ApiModelProperty("事件类型") + private String eventType; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java index 54b64d368..b999b3999 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/FeiShuEventListener.java @@ -7,6 +7,7 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.service.EnterpriseSyncService; import com.cool.store.utils.RedisUtilPool; @@ -45,13 +46,19 @@ public class FeiShuEventListener implements MessageListener { RocketMqTagEnum tag = RocketMqTagEnum.getByTag(message.getTag()); switch (tag){ case USER_EVENT: - UserEventDTO reqBody = JSONObject.parseObject(text, UserEventDTO.class); - enterpriseSyncService.userUpdateEvent(reqBody); + UserEventDTO userBody = JSONObject.parseObject(text, UserEventDTO.class); + enterpriseSyncService.userUpdateEvent(userBody); break; case AUTH_SCOPE_CHANGE: enterpriseSyncService.syncAll(); + break; + case DEPT_EVENT: + DepartmentEventDTO deptBody = JSONObject.parseObject(text, DepartmentEventDTO.class); + enterpriseSyncService.deptUpdateEvent(deptBody); + break; + default: + break; } - }catch (Exception e){ log.error("DingMsgDealListener consume dealAddressBookChange error",e); return Action.ReconsumeLater; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java index 6b3944f6c..28bc91c6a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.buser.UserEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; /** * @author zhangchenbiao @@ -17,4 +18,10 @@ public interface EnterpriseSyncService { * @param param */ void userUpdateEvent(UserEventDTO param); + + /** + * 部门事件 + * @param param + */ + void deptUpdateEvent(DepartmentEventDTO param); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 2b38411b1..c76787c16 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -1,9 +1,11 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.dto.buser.UserEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; +import com.cool.store.dto.dept.DepartmentEventDTO; import com.cool.store.dto.enterprise.*; import com.cool.store.entity.*; import com.cool.store.enums.DataSourceEnum; @@ -204,4 +206,19 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { return; } } + + @Override + public void deptUpdateEvent(DepartmentEventDTO param) { + log.info("部门变更:{}", JSONObject.toJSONString(param)); + switch (parseValue(param.getEventType())){ + case DEPARTMENT_CREATED: + break; + case DEPARTMENT_UPDATED: + break; + case DEPARTMENT_DELETED: + break; + default: + return; + } + } }