diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseBrandEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseBrandEnum.java index 91becdf4a..e92c6d416 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseBrandEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FranchiseBrandEnum.java @@ -36,15 +36,12 @@ public enum FranchiseBrandEnum { if (StringUtils.isBlank(code)){ return null; } - List integerList = Arrays.stream(code.split(",")) - .map(Integer::parseInt) - .collect(Collectors.toList()); - StringBuffer stringBuffer = new StringBuffer(); + int i = Integer.parseInt(code); for (FranchiseBrandEnum e : FranchiseBrandEnum.values()) { - if (integerList.contains(e.getCode())) { - stringBuffer.append(e.getDesc()).append(","); + if (i == e.getCode()) { + return e.getDesc(); } } - return stringBuffer.toString(); + return null; } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/ShopNameAndCodeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/ShopNameAndCodeDTO.java new file mode 100644 index 000000000..6e8f7e150 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/ShopNameAndCodeDTO.java @@ -0,0 +1,20 @@ +package com.cool.store.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: WangShuo + * @Date: 2025/04/09/13:42 + * @Version 1.0 + * @注释: + */ +@Data +public class ShopNameAndCodeDTO { + + @ApiModelProperty("店铺名称") + private String shopName; + + @ApiModelProperty("店铺编码") + private String shopCode; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/ShopResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/ShopResponse.java new file mode 100644 index 000000000..17eb29150 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/ShopResponse.java @@ -0,0 +1,23 @@ +package com.cool.store.response; + +import com.cool.store.dto.ShopNameAndCodeDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/04/09/13:43 + * @Version 1.0 + * @注释: + */ +@Data +public class ShopResponse { + + @ApiModelProperty(value = "当前店铺信息") + private ShopNameAndCodeDTO currentShop; + + @ApiModelProperty(value = "所有店铺信息") + private List shopList; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java index f333746cb..ae2c057d7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java @@ -6,6 +6,7 @@ import com.cool.store.request.*; import com.cool.store.response.BranchShopDetailResponse; import com.cool.store.response.BranchShopResponse; import com.cool.store.response.MiniShopsResponse; +import com.cool.store.response.ShopResponse; import com.cool.store.vo.shop.MiniShopPageVO; import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; @@ -106,4 +107,6 @@ public interface ShopService { Boolean dataHandler(Long shopId); List getShopListSuccessOpen(Long lineId); + + ShopResponse getShopNameAndCode(Long shopId,Long lineId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index 1cc4810d9..146e44faa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -6,6 +6,7 @@ import com.cool.store.dao.*; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.Preparation.ScheduleDTO; import com.cool.store.dto.RegionNode; +import com.cool.store.dto.ShopNameAndCodeDTO; import com.cool.store.dto.openPreparation.PlanLineDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; @@ -17,6 +18,7 @@ import com.cool.store.request.*; import com.cool.store.response.BranchShopDetailResponse; import com.cool.store.response.BranchShopResponse; import com.cool.store.response.MiniShopsResponse; +import com.cool.store.response.ShopResponse; import com.cool.store.service.*; import com.cool.store.utils.NumberConverter; import com.cool.store.utils.RandomEightCharCodeUtils; @@ -128,7 +130,7 @@ public class ShopServiceImpl implements ShopService { Integer result = shopStageInfoDAO.initShopStageInfo(lineInfo.getId(), shopIds, true); //初始化平台账号 HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(lineInfo.getPartnerId()); - shopAccountDAO.initShopAccount(hyPartnerUserInfoDO,shopIds); + shopAccountDAO.initShopAccount(hyPartnerUserInfoDO, shopIds); Set publishFranchiseFeeUsers = new HashSet<>(); List joinUser = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.JOIN_OFFICE, lineInfo.getRegionId()); if (Objects.nonNull(joinUser)) { @@ -352,7 +354,7 @@ public class ShopServiceImpl implements ShopService { } //初始化平台账号 HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(lineInfo.getPartnerId()); - shopAccountDAO.initShopAccount(hyPartnerUserInfoDO,Collections.singletonList(shopId)); + shopAccountDAO.initShopAccount(hyPartnerUserInfoDO, Collections.singletonList(shopId)); return shopId; } @@ -570,7 +572,39 @@ public class ShopServiceImpl implements ShopService { @Override public List getShopListSuccessOpen(Long lineId) { - return shopInfoDAO.getShopListSuccessOpen(eid,lineId); + return shopInfoDAO.getShopListSuccessOpen(eid, lineId); + } + + @Override + public ShopResponse getShopNameAndCode(Long shopId, Long lineId) { + boolean flag = false; + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + ShopResponse response = new ShopResponse(); + if (Objects.nonNull(shopInfo)) { + ShopNameAndCodeDTO currentShop = new ShopNameAndCodeDTO(); + currentShop.setShopName(shopInfo.getShopName()); + currentShop.setShopCode(shopInfo.getShopCode()); + response.setCurrentShop(currentShop); + flag = true; + } + List shopList = shopInfoDAO.getShopListByRegion(lineId, null, null); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(shopList)) { + for (ShopInfoDO shopInfoDO : shopList) { + ShopNameAndCodeDTO dto = new ShopNameAndCodeDTO(); + dto.setShopName(shopInfoDO.getShopName()); + dto.setShopCode(shopInfoDO.getShopCode()); + list.add(dto); + } + response.setShopList(list); + flag = true; + } + if (flag) { + return response; + } else { + return null; + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java index 082c41afc..2a4f06fcf 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java @@ -1,5 +1,8 @@ package com.cool.store.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.enums.DownSystemTypeEnum; @@ -10,7 +13,9 @@ import com.cool.store.mapper.ApplyLicenseMapper; import com.cool.store.mapper.SignFranchiseMapper; import com.cool.store.request.ZxjpApiRequest; import com.cool.store.service.SyncDataService; +import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.constant.Constants; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,6 +31,7 @@ import java.util.stream.Collectors; * @Version 1.0 * @注释: */ +@Slf4j @Service public class SyncDataServiceImpl implements SyncDataService { @@ -106,7 +112,10 @@ public class SyncDataServiceImpl implements SyncDataService { request.setCrmAccount(lineInfoDO.getMobile()); request.setDownstreamSystemPassword(hyPartnerUserInfoDO.getDownstreamSystemPassword()); request.setDownstreamSystemSalt(hyPartnerUserInfoDO.getDownstreamSystemSalting()); - request.setCrmAccount(lineInfoDO.getMobile()); + if (StringUtils.isNotBlank(shopInfo.getFranchiseBrand())) { + String[] split = shopInfo.getFranchiseBrand().split(Constants.COMMA); + request.setFranchiseBrand(split[0]); + } request.setFxyAccount(lineInfoDO.getMobile()); request.setXzjAccount(shopInfo.getShopCode()); request.setYlsAccount(shopInfo.getShopCode()); @@ -117,7 +126,7 @@ public class SyncDataServiceImpl implements SyncDataService { if (systemType.equals(DownSystemTypeEnum.POS)) { if (buildInformationDO != null) { String brand = FranchiseBrandEnum.getDescByCode(shopInfo.getFranchiseBrand()); - request.setDownstreamSystemShopName(brand + "(" + buildInformationDO + ")"); + request.setDownstreamSystemShopName(brand + "(" + buildInformationDO.getCShopName() + ")"); } } if (orderSysInfoDO != null) { @@ -154,34 +163,46 @@ public class SyncDataServiceImpl implements SyncDataService { request.setVerificationMobile(acceptanceInfoDO.getVerificationMobile()); request.setKsAccount(acceptanceInfoDO.getKsAccount()); } - if (buildInformationDO!=null){ + if (buildInformationDO != null) { request.setBusinessHours(buildInformationDO.getBusinessHours()); request.setShopContactName(buildInformationDO.getShopContactName()); request.setBusinessMobile(buildInformationDO.getBusinessMobile()); request.setSettlerName(buildInformationDO.getSettlerName()); - request.setSettlerBankPhotoUrl(buildInformationDO.getSettlerBankPhotoUrl()); - request.setSettlerBankBackPhotoUrl(buildInformationDO.getSettlerBankBackPhotoUrl()); + if (StringUtils.isNotBlank(buildInformationDO.getSettlerBankPhotoUrl())) { + request.setSettlerBankPhotoUrl(getUrl(buildInformationDO.getSettlerBankPhotoUrl())); + } + if (StringUtils.isNotBlank(buildInformationDO.getSettlerBankBackPhotoUrl())) { + request.setSettlerBankBackPhotoUrl(getUrl(buildInformationDO.getSettlerBankBackPhotoUrl())); + } request.setSettlerBankBranchName(buildInformationDO.getSettlerBankName()); request.setSettlerBankNumber(buildInformationDO.getSettlerBankNumber()); request.setSettlerBankMobile(buildInformationDO.getSettlerBankMobile()); - request.setSettlerIdCardFront(buildInformationDO.getSettlerIdCardFront()); - request.setSettlerIdCardReverse(buildInformationDO.getSettlerIdCardReverse()); - request.setSettlerInHandBackPicture(buildInformationDO.getSettlerInHandBackPicture()); - request.setSettlerInHandFrontPicture(buildInformationDO.getSettlerInHandFrontPicture()); + if (StringUtils.isNotBlank(buildInformationDO.getSettlerIdCardFront())) { + request.setSettlerIdCardFront(getUrl(buildInformationDO.getSettlerIdCardFront())); + } + if (StringUtils.isNotBlank(buildInformationDO.getSettlerIdCardReverse())) { + request.setSettlerIdCardReverse(getUrl(buildInformationDO.getSettlerIdCardReverse())); + } + if (StringUtils.isNotBlank(buildInformationDO.getSettlerInHandBackPicture())) { + request.setSettlerInHandBackPicture(getUrl(buildInformationDO.getSettlerInHandBackPicture())); + } + if (StringUtils.isNotBlank(buildInformationDO.getSettlerInHandFrontPicture())) { + request.setSettlerInHandFrontPicture(getUrl(buildInformationDO.getSettlerInHandFrontPicture())); + } request.setSettlerIdCardNo(buildInformationDO.getSettlerIdCardNo()); } - if (licenseTransactDO != null){ + if (licenseTransactDO != null) { request.setCreditUrl(licenseTransactDO.getCreditUrl()); //二证合一标识;0否 1 是 - if (Objects.equals(licenseTransactDO.getTwoCertificatesOne(), Constants.ONE_INTEGER)){ + if (Objects.equals(licenseTransactDO.getTwoCertificatesOne(), Constants.ONE_INTEGER)) { request.setFoodBusinessLicenseUrl(licenseTransactDO.getCreditUrl()); - }else { + } else { request.setFoodBusinessLicenseUrl(licenseTransactDO.getFoodBusinessLicenseUrl()); } } - if (pointInfo!=null){ - request.setShopProvinceCityDistrict(pointInfo.getProvince()+pointInfo.getCity()+pointInfo.getDistrict()); + if (pointInfo != null) { + request.setShopProvinceCityDistrict(pointInfo.getProvince() + pointInfo.getCity() + pointInfo.getDistrict()); request.setShopLongitude(pointInfo.getLongitude()); request.setShopLatitude(pointInfo.getLatitude()); request.setShopAddress(pointInfo.getAddress()); @@ -191,4 +212,23 @@ public class SyncDataServiceImpl implements SyncDataService { return request; } + + private static String getUrl(String json) { + if (StringUtils.isBlank(json)) { + return null; + } + try { + // 将 JSON 字符串解析为 JSONArray + JSONArray jsonArray = JSONArray.parseArray(json); + + // 获取第一个对象 + JSONObject jsonObject = jsonArray.getJSONObject(0); + + // 提取 "url" 的值 + return jsonObject.getString("url"); + } catch (Exception e) { + log.info("getUrl error:{},JSON:{}", e.getMessage(), json); + } + return null; + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java index dd8ec45b6..3b6d08333 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java @@ -4,6 +4,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.request.*; import com.cool.store.response.MiniShopsResponse; import com.cool.store.response.ResponseResult; +import com.cool.store.response.ShopResponse; import com.cool.store.service.PointService; import com.cool.store.service.ShopService; import com.cool.store.vo.PartnerUserInfoVO; @@ -125,4 +126,11 @@ public class MiniShopController { request.setLineId(PartnerUserHolder.getUser().getLineId()); return ResponseResult.success(pointService.getRecommendedOrMyPointList( request)); } + + @ApiOperation("给bot的门店信息") + @GetMapping("/getShopNameAndCode") + public ResponseResult getShopNameAndCode(@RequestParam("shopId")Long shopId, @RequestParam("lineId")Long lineId) { + return ResponseResult.success(shopService.getShopNameAndCode(shopId,lineId)); + } + }