From 6aafc3970ff04f8939ee7753b0831e9001d75ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 18 Aug 2025 09:29:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=B8=BB=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/enums/point/PaymentMethodEnum.java | 15 +- .../com/cool/store/dao/SignFranchiseDAO.java | 4 + .../cool/store/request/StoreMasterDTO.java | 23 ++-- .../service/impl/SyncMainSysServerImpl.java | 128 ++++++++++++++++++ 4 files changed, 157 insertions(+), 13 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java index 241718a17..825f76f4c 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PaymentMethodEnum.java @@ -11,17 +11,19 @@ import java.util.Objects; public enum PaymentMethodEnum { //1.月付 2.季付 3.半年付 4.年付 - PAYMENT_METHOD_1(1, "月付"), - PAYMENT_METHOD_2(2, "季付"), - PAYMENT_METHOD_3(3, "半年付"), - PAYMENT_METHOD_4(4, "年付"), + PAYMENT_METHOD_1(1, "月付",1), + PAYMENT_METHOD_2(2, "季付",3), + PAYMENT_METHOD_3(3, "半年付",6), + PAYMENT_METHOD_4(4, "年付",12), ; private Integer code; private String desc; - PaymentMethodEnum(Integer code, String desc) { + private Integer totalMonth; + + PaymentMethodEnum(Integer code, String desc,Integer totalMonth) { this.code = code; this.desc = desc; } @@ -34,6 +36,9 @@ public enum PaymentMethodEnum { return desc; } + public Integer getTotalMonth() { + return totalMonth; + } public static PaymentMethodEnum getByCode(Integer code) { if(Objects.isNull(code)){ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java index c3ec4e4f9..42cbec644 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java @@ -34,4 +34,8 @@ public class SignFranchiseDAO { } return signFranchiseMapper.getSignType(shopIds); } + + public SignFranchiseDO selectByShopId(Long shopId){ + return signFranchiseMapper.selectByShopId(shopId); + } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java index 7ec29a2a9..2a22cfa8d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java @@ -1,5 +1,6 @@ package com.cool.store.request; +import com.aliyun.ons20190214.models.OnsMessageTraceRequest; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,6 +15,8 @@ import java.util.Date; @Data public class StoreMasterDTO { + private String enterpriseId; + @ApiModelProperty("门店名称(加盟签约)") private String storeName; @ApiModelProperty("门店名称(小程序点单)") @@ -46,13 +49,13 @@ public class StoreMasterDTO { @ApiModelProperty("省市区") private String area; + @ApiModelProperty("乡镇") + private String town; @ApiModelProperty("门店地址") private String storeAddress; @ApiModelProperty("点位编码") private String pointCode; - @ApiModelProperty("门店面积") - private Integer storeAcreage; - @ApiModelProperty("高德定位") + @ApiModelProperty("高德定位 暂时没有") private String locationScreenshot; @ApiModelProperty("定位地址") private String locationAddress; @@ -60,6 +63,8 @@ public class StoreMasterDTO { private String longitude; @ApiModelProperty("纬度") private String latitude; + @ApiModelProperty("保护距离") + private Integer protectiveDistance; @ApiModelProperty("月租金") private BigDecimal monthlyRent; @@ -75,16 +80,16 @@ public class StoreMasterDTO { @ApiModelProperty("报货物流仓库(编码)") private String declareGoodsLogisticsWarehouse; @ApiModelProperty("报货类型 0-按周报货 1-按月报货 2-自提 3-按2周/次投货 4-按3周/次投货") - private String declareGoodsType; + private Integer declareGoodsType; @ApiModelProperty("报送货日期 数组格式\"[{\"declareGoods\": \"\",\"deliverGoods\":\"\"}]\"") private String declareGoodsDate; @ApiModelProperty("营业时间") private String businessHours; - @ApiModelProperty("门头照") + @ApiModelProperty("门头照 暂时没有") private String avatar; - @ApiModelProperty("门店内景照") + @ApiModelProperty("门店内景照 暂时没有") private String interiorPhotos; private SignerInfo signerInfo; @@ -92,7 +97,7 @@ public class StoreMasterDTO { private SettlerInfo settlerInfo; @Data - static class SignerInfo { + public static class SignerInfo { @ApiModelProperty("签约人1姓名") private String Signer1Name; @ApiModelProperty("签约人1姓名") @@ -103,10 +108,12 @@ public class StoreMasterDTO { private String Signer1IdCardPhoto; @ApiModelProperty("签约人1姓名") private String Signer1IdCardPhotoBack; + @ApiModelProperty("角色") + private Long partnerRoleId; } @Data - static class SettlerInfo{ + public static class SettlerInfo{ @ApiModelProperty("结算人姓名") private String settlerName; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java index 49abae684..e2eab890e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java @@ -5,10 +5,12 @@ import com.cool.store.context.CurrentUserHolder; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.enums.*; +import com.cool.store.enums.point.PaymentMethodEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.FranchiseFeeMapper; import com.cool.store.mapper.SignFranchiseMapper; import com.cool.store.mq.producer.SimpleMessageService; +import com.cool.store.request.StoreMasterDTO; import com.cool.store.request.StoreRequestBody; import com.cool.store.service.OperationLogService; import com.cool.store.service.SyncMainSysServer; @@ -20,6 +22,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; @@ -72,6 +75,12 @@ public class SyncMainSysServerImpl implements SyncMainSysServer { private String eid; @Resource private StoreDao storeDao; + @Resource + SignFranchiseDAO signFranchiseDAO; + @Resource + PointDetailInfoDAO pointDetailDAO; + @Resource + QualificationsInfoDAO qualificationsInfoDAO; @Override @Async @@ -144,4 +153,123 @@ public class SyncMainSysServerImpl implements SyncMainSysServer { simpleMessageService.send(JSONObject.toJSONString(requestBody), RocketMqTagEnum.ZXJP_CREATE_STORE); } + + + /** + * 添加门店 + * @param shopId + */ + public void asdStore(Long shopId) { + try { + StoreMasterDTO storeMasterDTO = new StoreMasterDTO(); + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + if (shopInfo == null){ + log.info("门店不存在:{}", shopId); + return; + } + storeMasterDTO.setEnterpriseId(eid); + storeMasterDTO.setStoreStatus("not_open"); + storeMasterDTO.setStoreName(shopInfo.getShopName()); + storeMasterDTO.setStoreNum(shopInfo.getShopCode()); + storeMasterDTO.setJoinBrand(StringUtils.isNotEmpty(shopInfo.getFranchiseBrand())?Integer.getInteger(shopInfo.getFranchiseBrand()):null); + storeMasterDTO.setJoinModel(shopInfo.getJoinMode()); + storeMasterDTO.setStoreType(shopInfo.getStoreType()); + + SignFranchiseDO signFranchiseDO = signFranchiseDAO.selectByShopId(shopId); + storeMasterDTO.setManageModel(signFranchiseDO.getBusinessModel()); + storeMasterDTO.setSignType(signFranchiseDO.getSignType()); + storeMasterDTO.setProtectiveDistance(signFranchiseDO.getProtectiveDistance()); + + BigRegionDO region = bigRegionDAO.getByRegionId(shopInfo.getRegionId()); + storeMasterDTO.setBloc(region.getGroupName()); + storeMasterDTO.setBranch(region.getRegionId()); + storeMasterDTO.setRegionId(shopInfo.getManagerRegionId()); + storeMasterDTO.setJoinSupervision(shopInfo.getInvestmentManager()); + + BuildInformationDO buildInformationDO = buildInformationDAO.selectOneByShopId(shopId); + if (buildInformationDO != null){ + storeMasterDTO.setMiniProgramOrderStoreName(buildInformationDO.getCShopName()); + if (StringUtils.isNotBlank(buildInformationDO.getBusinessHours())) { + try { + String[] times = buildInformationDO.getBusinessHours().split("~"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime startTime = LocalTime.parse(times[0], formatter); + LocalTime endTime = LocalTime.parse(times[1], formatter); + String startMillis = String.valueOf(startTime.toSecondOfDay() * 1000L); + String endMillis = String.valueOf(endTime.toSecondOfDay() * 1000L); + storeMasterDTO.setBusinessHours(startMillis + "," + endMillis); + } catch (Exception e) { + log.info("时间转换异常:{},shopId:{},time:{}", e.getMessage(), shopId.toString(), buildInformationDO.getBusinessHours()); + } + } + StoreMasterDTO.SettlerInfo settlerInfo = new StoreMasterDTO.SettlerInfo(); + settlerInfo.setSettlerName(buildInformationDO.getSettlerName()); + settlerInfo.setSettlerIdCardNo(buildInformationDO.getSettlerIdCardNo()); + settlerInfo.setSettlerIdCardFront(buildInformationDO.getSettlerIdCardFront()); + settlerInfo.setSettlerIdCardReverse(buildInformationDO.getSettlerIdCardReverse()); + settlerInfo.setSettlerInHandFrontPicture(buildInformationDO.getSettlerInHandFrontPicture()); + settlerInfo.setSettlerInHandBackPicture(buildInformationDO.getSettlerInHandBackPicture()); + settlerInfo.setSettlerBankName(buildInformationDO.getSettlerBankName()); + settlerInfo.setSettlerBankNumber(buildInformationDO.getSettlerBankNumber()); + settlerInfo.setSettlerBankMobile(buildInformationDO.getSettlerBankMobile()); + settlerInfo.setSettlerBankPhotoUrl(buildInformationDO.getSettlerBankPhotoUrl()); + settlerInfo.setSettlerBankBackPhotoUrl(buildInformationDO.getSettlerBankBackPhotoUrl()); + storeMasterDTO.setSettlerInfo(settlerInfo); + } + + + if (shopInfo.getPointId()!=null){ + PointInfoDO info = pointInfoDAO.getPointInfoById(shopInfo.getPointId()); + PointDetailInfoDO pointDetail = pointDetailDAO.getPointDetailInfoByPointId(shopInfo.getPointId()); + if (info != null){ + storeMasterDTO.setArea(info.getProvince()+info.getCity()+info.getDistrict()); + storeMasterDTO.setTown(info.getTownship()); + storeMasterDTO.setStoreAddress(info.getPointLocation()); + storeMasterDTO.setLocationAddress(info.getPointLocation()); + storeMasterDTO.setPointCode(info.getPointCode()); + storeMasterDTO.setLongitude(info.getLongitude()); + storeMasterDTO.setLatitude(info.getLatitude()); + try { + if (StringUtils.isNotEmpty(pointDetail.getMonthRent())&&pointDetail.getPaymentMethod()!=null){ + //获取支付方式 + PaymentMethodEnum paymentMethodEnum = PaymentMethodEnum.getByCode(pointDetail.getPaymentMethod()); + BigDecimal monthlyRent = new BigDecimal(pointDetail.getMonthRent()).divide(new BigDecimal(paymentMethodEnum.getTotalMonth())); + storeMasterDTO.setMonthlyRent(monthlyRent); + } + } catch (Exception e) { + log.info("月租转换异常:{},shopId:{},time:{}", e.getMessage(), shopId.toString(), pointDetail.getMonthRent()); + } + } + } + OrderSysInfoDO orderSysInfoDO = orderSysInfoDAO.selectByShopId(shopId); + if (orderSysInfoDO != null){ + storeMasterDTO.setAddresseeName(orderSysInfoDO.getAddresseeName()); + storeMasterDTO.setAddresseeMobile(orderSysInfoDO.getAddresseeMobile()); + storeMasterDTO.setAddresseeArea(orderSysInfoDO.getAddresseeProvince()+orderSysInfoDO.getAddresseeCity()+orderSysInfoDO.getAddresseeDistrict()); + storeMasterDTO.setAddresseeAddress(orderSysInfoDO.getAddresseeAddress()); + storeMasterDTO.setDeclareGoodsLogisticsWarehouse(orderSysInfoDO.getDeclareGoodsLogisticsWarehouse()); + storeMasterDTO.setDeclareGoodsType(Integer.valueOf(orderSysInfoDO.getDeclareGoodsType())); + storeMasterDTO.setDeclareGoodsDate(orderSysInfoDO.getDeclareGoodsDate()); + } + LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfo.getLineId()); + StoreMasterDTO.SignerInfo signerInfo = new StoreMasterDTO.SignerInfo(); + if (lineInfoDO != null){ + signerInfo.setSigner1Name(lineInfoDO.getUsername()); + signerInfo.setSigner1Mobile(lineInfoDO.getMobile()); + signerInfo.setPartnerRoleId(UserRoleEnum.FRANCHISEES.getCode()); + } + QualificationsInfoDO infoDO = qualificationsInfoDAO.getByLineId(shopInfo.getLineId()); + if (infoDO != null){ + signerInfo.setSigner1IdCard(infoDO.getIdCardNo()); + signerInfo.setSigner1IdCardPhoto(infoDO.getFrontOfIdCard()); + signerInfo.setSigner1IdCardPhotoBack(infoDO.getBackOfIdCard()); + } + storeMasterDTO.setSignerInfo(signerInfo); + simpleMessageService.send(JSONObject.toJSONString(storeMasterDTO), RocketMqTagEnum.ZXJP_CREATE_STORE); + } catch (Exception e) { + log.info("asdStore_error:{},shopId:{}", e.getMessage(), shopId.toString()); + } + } + + }