diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java index 277a5e6cf..7ec2f1cd8 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java @@ -31,11 +31,11 @@ public class PartnerUserInfoVO { @ApiModelProperty("常驻区域") private String liveArea; - @ApiModelProperty("意向开店区域") + @ApiModelProperty("意向开店区域ID") private String wantShopArea; - @ApiModelProperty("意向开店区域ID") - private Long wantShopAreaId; + @ApiModelProperty("意向开店区域名称") + private String wantShopAreaName; @ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂") private Integer acceptAdjustType; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java index ed21b250c..ea9f1c5a0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java @@ -3,6 +3,7 @@ package com.cool.store.service; import com.cool.store.dto.wx.MiniProgramLoginDTO; import com.cool.store.request.MobileUpdateRequest; import com.cool.store.vo.PartnerUserInfoVO; + /** * @author zhangchenbiao * @FileName: WechatMiniAppService @@ -11,9 +12,10 @@ import com.cool.store.vo.PartnerUserInfoVO; */ public interface WechatMiniAppService { - PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param); + String getUserPhoneNumber(String mobileCode); + String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO); PartnerUserInfoVO getUserInfo(String mobile, String openId); 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 e75ecfca0..dd5908523 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 @@ -78,6 +78,17 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { fillBaseInfo(baseInfoDO, request); hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO); } + if(request.getSubmitFlag()){ + // 更新线索表状态 + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId()); + hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_1.getCode()); + hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); + // 更新意向基本信息表状态 + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_1.getCode())); + hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO); + } + // 清空暂存信息 redisUtilPool.delKey(cacheKey); return Boolean.TRUE; } 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 2bb8d4f6a..df771d650 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 @@ -2,9 +2,11 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyOpenAreaInfoDAO; +import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.entity.HyOpenAreaInfoDO; +import com.cool.store.entity.HyPartnerBaseInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; @@ -24,6 +26,9 @@ import javax.annotation.Resource; @Service public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { + @Autowired + private HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; + @Autowired private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; @@ -96,16 +101,29 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO); // 生成一条线索 - HyPartnerLineInfoDO exsitLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); - if(exsitLineInfoDO == null){ - HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + if(hyPartnerLineInfoDO == null){ + hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); hyPartnerLineInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); Boolean flag = hyPartnerLineInfoService.getLineStatus(Long.valueOf(partnerUserInfoRequest.getWantShopArea()), partnerUserInfoRequest.getAcceptAdjustType()); hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode()); + hyPartnerLineInfoDO.setInvestmentManager("ou_7a6a19ae800afde783b0ec2dabaabf95"); hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO); } + // 生成意向基本信息 + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId()); + if(hyPartnerBaseInfoDO == null){ + hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); + hyPartnerBaseInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); + hyPartnerBaseInfoDO.setPartnerLineId(hyPartnerLineInfoDO.getId()); + hyPartnerBaseInfoDO.setMobile(hyPartnerUserInfoDO.getMobile()); + hyPartnerBaseInfoDO.setUsername(hyPartnerUserInfoDO.getUsername()); + hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())); + hyPartnerBaseInfoDO.setSex(1); + hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO); + } HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea())); return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : ""; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index 6a4dc4f36..fab6d2605 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -4,12 +4,14 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.HyOpenAreaInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dao.HyPartnerUserPlatformBindDAO; import com.cool.store.dto.wx.CodeSessionDTO; import com.cool.store.dto.wx.MiniProgramLoginDTO; import com.cool.store.dto.wx.PhoneInfoDTO; +import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.entity.HyPartnerUserPlatformBindDO; @@ -31,7 +33,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.MessageFormat; import java.util.Date; -import java.util.Objects; /** * @author zhangchenbiao @@ -53,6 +54,8 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { private HyPartnerUserPlatformBindDAO hyPartnerUserPlatformBindDAO; @Resource private HyPartnerLineInfoDAO hyPartnerLineInfoDAO; + @Resource + HyOpenAreaInfoDAO hyOpenAreaInfoDAO; @Value("${weixin.appId}") private String wxAppId; @@ -118,6 +121,18 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { return userInfoVO; } + @Override + public String getUserPhoneNumber(String mobileCode) { + // 获取小程序token + String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret); + // 获取手机号码 + PhoneInfoDTO phoneInfoDTO = wechatRest.getUserPhoneNumber(mobileCode, accessToken); + if(phoneInfoDTO != null && phoneInfoDTO.getPhoneInfo() != null && StringUtils.isNotBlank(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){ + return phoneInfoDTO.getPhoneInfo().getPhoneNumber(); + } + return null; + } + @Override public String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO) { String newMobile = ""; @@ -154,6 +169,14 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); userInfoVO.setOpenid(hyPartnerUserPlatformBindDO.getPlatformUserId()); + if(StringUtils.isNotBlank(hyPartnerUserInfoDO.getWantShopArea())){ + HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea())); + userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", "")); + } + HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + if (lineInfoDO != null){ + userInfoVO.setPartnerLineId(lineInfoDO.getId()); + } return userInfoVO; } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java index 5a155a1ac..7a8caa82f 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java @@ -1,6 +1,5 @@ package com.cool.store.controller; - import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.wx.MiniProgramLoginDTO; import com.cool.store.request.MobileUpdateRequest; @@ -36,6 +35,12 @@ public class MiniProgramAppController { return ResponseResult.success(userInfoVO); } + @ApiOperation("获取手机号") + @GetMapping("/getUserPhoneNumber") + public ResponseResult getUserPhoneNumber(@RequestParam(value = "mobileCode",required = true)String mobileCode) { + return ResponseResult.success(wechatMiniAppService.getUserPhoneNumber(mobileCode)); + } + @ApiOperation("更新手机号") @PostMapping("/updateUserPhoneNumber") public ResponseResult updateUserPhoneNumber(@RequestBody @Valid MobileUpdateRequest request) {