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 5f55333b6..198e62f71 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 @@ -111,6 +111,7 @@ public enum ErrorCodeEnum { POINT_SELECTED(600016, "该铺位已被选择", null), NOT_EXIST_UNSELECT_POINT(600017, "当前没有未选择的铺位", null), SELECT_POINT_ERROR(600018, "铺位选中失败", null), + POINT_NOT_SELECT(600019, "该门店未选址", null), OPEN_NEW_SHOP_RECORD_NOT_EXIST(700001, "开店申请记录不存在", null), OPEN_NEW_SHOP_RECORD_AUDITED(700002, "开店申请已审核", null), diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 0ab2c291d..abffd3770 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -29,6 +29,12 @@ + + + + + + @@ -37,6 +43,7 @@ shop_code, store_num, shop_manager_user_id, supervisor_user_id, plan_open_time, cur_progress, shop_type, shop_stage, deleted, create_time, update_time, join_mode,detail_address,franchise_brand,development_manager,want_shop_area_id,investment_manager,shop_status,create_user_id,update_user_id,store_type + , province,province_code,city,city_code,district,district_code diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java index 02a428d49..ba24c2c91 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java @@ -131,4 +131,22 @@ public class ShopInfoDO { @Column(name = "store_type") private Integer storeType; + //省 + @Column(name = "province") + private String province; + //省code + @Column(name = "province_code") + private String provinceCode; + //市 + @Column(name = "city") + private String city; + //市code + @Column(name = "city_code") + private String cityCode; + //区 + @Column(name = "district") + private String district; + //区code + @Column(name = "district_code") + private String districtCode; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java index 63f395a6d..7173f3d40 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SignFranchiseDO.java @@ -62,4 +62,25 @@ public class SignFranchiseDO { private String partnershipSignatorySecond; @Column(name = "business_model") private Integer businessModel; + //签约人2身份证号 + @Column(name = "partnership_signatory_second_id_number") + private String partnershipSignatorySecondIdNumber; + //签约人2手机号 + @Column(name = "partnership_signatory_second_mobile") + private String partnershipSignatorySecondMobile; + //'保护距离 / m' + @Column(name = "protective_distance") + private Integer protectiveDistance; + //介绍人 + @Column(name = "introducer") + private String introducer; + //介绍门店 + @Column(name = "introducer_store") + private String introducerStore; + //介绍奖 + @Column(name = "introducer_award") + private String introducerAward; + //签约人1第几家分店 + @Column(name = "partnership_signatory_first_which_store") + private Integer partnershipSignatoryFirstWhichStore; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java index 497b8d0b8..4b2e7fadd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.persistence.Column; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.text.SimpleDateFormat; @@ -94,6 +95,54 @@ public class AddSignFranchiseRequest { private String partnershipSignatoryFirst; @ApiModelProperty("合伙签约人2") private String partnershipSignatorySecond; + //签约人2身份证号 + @ApiModelProperty("签约人2身份证号") + private String partnershipSignatorySecondIdNumber; + //签约人2手机号 + @ApiModelProperty("签约人2手机号") + private String partnershipSignatorySecondMobile; + //'保护距离 / m' + @ApiModelProperty("保护距离 / m") + @NotNull(message = "保护距离不能为空") + private Integer protectiveDistance; + //介绍人 + @ApiModelProperty("介绍人") + private String introducer; + //介绍门店 + @ApiModelProperty("介绍门店") + private String introducerStore; + //介绍奖 + @ApiModelProperty("介绍奖") + private String introducerAward; + //签约人1第几家分店 + @ApiModelProperty("签约人1第几家分店") + @NotNull(message = "签约人1第哪家分店不能为空") + private Integer partnershipSignatoryFirstWhichStore; + + //省 + @ApiModelProperty("省") + @NotBlank(message = "省不能为空") + private String province; + //省code + @ApiModelProperty("省code") + @NotBlank(message = "省code不能为空") + private String provinceCode; + //市 + @ApiModelProperty("市") + @NotBlank(message = "市不能为空") + private String city; + //市code + @ApiModelProperty("市code") + @NotBlank(message = "市code不能为空") + private String cityCode; + //区 + @ApiModelProperty("区") + @NotBlank(message = "区不能为空") + private String district; + //区code + @ApiModelProperty("区code") + @NotBlank(message = "区code不能为空") + private String districtCode; public SignFranchiseDO toSignFranchiseDO() { @@ -118,6 +167,13 @@ public class AddSignFranchiseRequest { signFranchiseDO.setPartnershipSignatoryFirst(this.partnershipSignatoryFirst); signFranchiseDO.setPartnershipSignatorySecond(this.partnershipSignatorySecond); signFranchiseDO.setBusinessModel(this.businessModel); + signFranchiseDO.setPartnershipSignatorySecondIdNumber(this.partnershipSignatorySecondIdNumber); + signFranchiseDO.setPartnershipSignatorySecondMobile(this.partnershipSignatorySecondMobile); + signFranchiseDO.setProtectiveDistance(this.protectiveDistance); + signFranchiseDO.setIntroducer(this.introducer); + signFranchiseDO.setIntroducerStore(this.introducerStore); + signFranchiseDO.setIntroducerAward(this.introducerAward); + signFranchiseDO.setPartnershipSignatoryFirstWhichStore(this.partnershipSignatoryFirstWhichStore); return signFranchiseDO; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/AddSignFranchiseResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/AddSignFranchiseResponse.java index 4438e18e3..f829bdfff 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/AddSignFranchiseResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/AddSignFranchiseResponse.java @@ -190,4 +190,46 @@ public class AddSignFranchiseResponse { private Integer joinMode; + //签约人2身份证号 + @ApiModelProperty("签约人2身份证号") + private String partnershipSignatorySecondIdNumber; + //签约人2手机号 + @ApiModelProperty("签约人2手机号") + private String partnershipSignatorySecondMobile; + //'保护距离 / m' + @ApiModelProperty("保护距离 / m") + private Integer protectiveDistance; + //介绍人 + @ApiModelProperty("介绍人") + private String introducer; + //介绍门店 + @ApiModelProperty("介绍门店") + private String introducerStore; + //介绍奖 + @ApiModelProperty("介绍奖") + private String introducerAward; + //签约人1第几家分店 + @ApiModelProperty("签约人1第几家分店") + private Integer partnershipSignatoryFirstWhichStore; + + //省 + @ApiModelProperty("省") + private String province; + //省code + @ApiModelProperty("省code") + private String provinceCode; + //市 + @ApiModelProperty("市") + private String city; + //市code + @ApiModelProperty("市code") + private String cityCode; + //区 + @ApiModelProperty("区") + private String district; + //区code + @ApiModelProperty("区code") + private String districtCode; + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java index 1996eb010..6e14ade39 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java @@ -41,6 +41,9 @@ import static com.cool.store.enums.UserRoleEnum.*; @Service @Slf4j public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResultService { + + @Resource + private PointInfoDAO pointInfoDAO; @Resource private EnterpriseUserRoleDao enterpriseUserRoleDao; @Resource @@ -166,6 +169,11 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu if (Objects.nonNull(isExist) && Objects.isNull(request.getId())) { throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); } + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); + PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId()); + if (Objects.isNull(pointInfoById)){ + throw new ServiceException(ErrorCodeEnum.POINT_NOT_SELECT); + } String lockKey = "submitSignFranchise:" + request.getShopId(); //流水 String lockValue = UUID.randomUUID().toString(); @@ -175,7 +183,6 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.TEN_SECONDS); if (Boolean.TRUE.equals(acquired)) { SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO(); - ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); if (Objects.isNull(request.getId())) { signFranchiseMapper.insertSelective(signFranchiseDO); shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83); @@ -199,15 +206,8 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu } else { signFranchiseMapper.updateByPrimaryKeySelective(signFranchiseDO); } - //店铺信息 - shopInfoDO.setRegionId(request.getRegionId()); - shopInfoDO.setShopName(request.getShopName()); - shopInfoDO.setDetailAddress(request.getDetailAddress()); - shopInfoDO.setJoinMode(request.getJoinMode()); - shopInfoDO.setFranchiseBrand(request.getFranchiseBrand()); - shopInfoDO.setUpdateTime(new Date()); - shopInfoDO.setStoreType(request.getStoreType()); - shopInfoMapper.updateByPrimaryKeySelective(shopInfoDO); + //修改shop & point + updateShopAndPoint(request, shopInfoDO, pointInfoById); OrderSysInfoDO orderSysInfoDO = orderSysInfoDAO.selectByShopId(request.getShopId()); if (Objects.isNull(orderSysInfoDO)){ orderSysInfoDO = new OrderSysInfoDO(); @@ -234,7 +234,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu } + + @Override + @Transactional(rollbackFor = Exception.class) public Boolean reSubmitSignFranchise(AddSignFranchiseRequest request, LoginUserInfo user) { log.info("reSubmitSignFranchise request:{}", JSONObject.toJSONString(request)); if (Objects.isNull(request)) { @@ -244,9 +247,15 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST); } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); + PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId()); + if (Objects.isNull(pointInfoById)){ + throw new ServiceException(ErrorCodeEnum.POINT_NOT_SELECT); + } SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO(); //修改信息 signFranchiseMapper.updateByPrimaryKeySelective(signFranchiseDO); + // //修改shop & point + updateShopAndPoint(request, shopInfoDO, pointInfoById); //修改阶段状态 shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_83); //发送通知 @@ -270,7 +279,29 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu return Boolean.TRUE; } - + private void updateShopAndPoint(AddSignFranchiseRequest request, ShopInfoDO shopInfoDO, PointInfoDO pointInfoById) { + //店铺信息 + shopInfoDO.setRegionId(request.getRegionId()); + shopInfoDO.setShopName(request.getShopName()); + shopInfoDO.setDetailAddress(request.getDetailAddress()); + shopInfoDO.setJoinMode(request.getJoinMode()); + shopInfoDO.setFranchiseBrand(request.getFranchiseBrand()); + shopInfoDO.setProvince(request.getProvince()); + shopInfoDO.setCity(request.getCity()); + shopInfoDO.setDistrict(request.getDistrict()); + shopInfoDO.setProvinceCode(request.getProvinceCode()); + shopInfoDO.setCityCode(request.getCityCode()); + shopInfoDO.setDistrictCode(request.getDistrictCode()); + shopInfoDO.setUpdateTime(new Date()); + shopInfoDO.setStoreType(request.getStoreType()); + shopInfoMapper.updateByPrimaryKeySelective(shopInfoDO); + pointInfoById.setProvince(request.getProvince()); + pointInfoById.setCity(request.getCity()); + pointInfoById.setDistrict(request.getDistrict()); + pointInfoById.setAddress(request.getDetailAddress()); + pointInfoById.setUpdateTime(new Date()); + pointInfoDAO.updatePointInfo(pointInfoById); + } @Override public AddSignFranchiseResponse getSignFranchise(Long shopId) { SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId); @@ -385,16 +416,29 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu Long lineId = shopInfoDO.getLineId(); //缴款信息 LinePayDO linePayDO = linePayMapper.getByLineIdAndPayTypeAndShopId(lineId, 1, shopId); - //铺位信息 - PointInfoDO pointInfoDO = pointInfoMapper.getDataByShopIdAndLineId(lineId, shopId); +// //铺位信息 +// PointInfoDO pointInfoDO = pointInfoMapper.getDataByShopIdAndLineId(lineId, shopId); //证照办理 LicenseTransactDO licenseTransactDO = applyLicenseMapper.selectByShopId(shopId); RegionDO regionInfo = regionMapper.getByRegionId(shopInfoDO.getRegionId()); - +// if (Objects.nonNull(pointInfoDO)) { +// // addSignFranchiseResponse.setStoreAddress(pointInfoDO.getAddress()); +// if (StringUtils.isNoneBlank(pointInfoDO.getLatitude(), pointInfoDO.getLongitude())) { +// //GeoMapUtil.AddressInfo addressInfo = GeoMapUtil.reverseGeoCoding(pointInfoDO.getLatitude(), pointInfoDO.getLongitude()); +// //addSignFranchiseResponse.setStoreProvinceCity(String.format("%s%s%s", addressInfo.getProvince(), addressInfo.getCity(), addressInfo.getDistrict())); +// } +// } + addSignFranchiseResponse.setPartnershipSignatoryFirst(lineInfoDO.getUsername()); addSignFranchiseResponse.setDetailAddress(shopInfoDO.getDetailAddress()); addSignFranchiseResponse.setStoreType(shopInfoDO.getStoreType()); + addSignFranchiseResponse.setProvince(shopInfoDO.getProvince()); + addSignFranchiseResponse.setCity(shopInfoDO.getCity()); + addSignFranchiseResponse.setDistrict(shopInfoDO.getDistrict()); + addSignFranchiseResponse.setProvinceCode(shopInfoDO.getProvinceCode()); + addSignFranchiseResponse.setCityCode(shopInfoDO.getCityCode()); + addSignFranchiseResponse.setDistrictCode(shopInfoDO.getDistrictCode()); if (Objects.nonNull(signFranchiseDO)) { addSignFranchiseResponse.setId(signFranchiseDO.getId()); addSignFranchiseResponse.setShopId(signFranchiseDO.getShopId()); @@ -416,6 +460,13 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu addSignFranchiseResponse.setPartnershipSignatoryFirst(signFranchiseDO.getPartnershipSignatoryFirst()); addSignFranchiseResponse.setPartnershipSignatorySecond(signFranchiseDO.getPartnershipSignatorySecond()); addSignFranchiseResponse.setBusinessModel(signFranchiseDO.getBusinessModel()); + addSignFranchiseResponse.setPartnershipSignatorySecondIdNumber(signFranchiseDO.getPartnershipSignatorySecondIdNumber()); + addSignFranchiseResponse.setPartnershipSignatorySecondMobile(signFranchiseDO.getPartnershipSignatorySecondMobile()); + addSignFranchiseResponse.setProtectiveDistance(signFranchiseDO.getProtectiveDistance()); + addSignFranchiseResponse.setIntroducer(signFranchiseDO.getIntroducer()); + addSignFranchiseResponse.setIntroducerStore(signFranchiseDO.getIntroducerStore()); + addSignFranchiseResponse.setIntroducerAward(signFranchiseDO.getIntroducerAward()); + addSignFranchiseResponse.setPartnershipSignatoryFirstWhichStore(signFranchiseDO.getPartnershipSignatoryFirstWhichStore()); } else { BigDecimal total = new BigDecimal(franchiseFeeDO.getYearFranchiseFee()) @@ -436,13 +487,6 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu addSignFranchiseResponse.setRegionName(regionInfo.getName()); } - if (Objects.nonNull(pointInfoDO)) { - addSignFranchiseResponse.setStoreAddress(pointInfoDO.getAddress()); - if (StringUtils.isNoneBlank(pointInfoDO.getLatitude(), pointInfoDO.getLongitude())) { - GeoMapUtil.AddressInfo addressInfo = GeoMapUtil.reverseGeoCoding(pointInfoDO.getLatitude(), pointInfoDO.getLongitude()); - addSignFranchiseResponse.setStoreProvinceCity(String.format("%s%s%s", addressInfo.getProvince(), addressInfo.getCity(), addressInfo.getDistrict())); - } - } if (Objects.nonNull(linePayDO)) { addSignFranchiseResponse.setPayName(linePayDO.getPayUserName()); addSignFranchiseResponse.setBankCardNo(linePayDO.getPayAccount());