Merge #84 into master from cc_20260401_bugfix

feat:装修团队

* cc_20260401_bugfix: (2 commits squashed)

  - feat:推送数据

  - feat:装修团队

Signed-off-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/84
This commit is contained in:
正新
2026-04-02 01:29:07 +00:00
parent c42752c945
commit 2ca289b27e
5 changed files with 76 additions and 14 deletions

View File

@@ -249,6 +249,10 @@ public class AddSignFranchiseRequest {
@ApiModelProperty("特殊情况说明")
private String specialInstruction;
private Date firstYearStartTime;
private Date firstYearEndTime;
public SignFranchiseDO toSignFranchiseDO() {
SignFranchiseDO signFranchiseDO = new SignFranchiseDO();

View File

@@ -184,5 +184,7 @@ public class MiniStoreOrderDetailVO {
private String expenseTypeCode;
private BigDecimal defaultQuantity;
private String optionRemark;
}
}

View File

@@ -58,6 +58,12 @@ public class MiniStoreWishlistDetailVO {
@ApiModelProperty("数量")
private BigDecimal quantity;
private BigDecimal defaultQuantity;
private String optionUnit;
private String optionRemark;
@ApiModelProperty("选项名称")
private String optionName;

View File

@@ -245,6 +245,12 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
verifyParams(request);
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId());
PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId());
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
if (franchiseFeeDO!=null&&franchiseFeeDO.getFirstYearStartTime()!=null&&franchiseFeeDO.getFirstYearEndTime()!=null){
franchiseFeeDO.setFirstYearStartTime(request.getFirstYearStartTime());
franchiseFeeDO.setFirstYearEndTime(request.getFirstYearEndTime());
franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO);
}
String lockKey = "submitSignFranchise:" + request.getShopId();
//流水
String lockValue = UUID.randomUUID().toString();
@@ -642,18 +648,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
} else {
//,加盟公司自有店->加盟公司建店 不推送数据 再crm中完成
//v2.0.0 先确认装修团队
TeamAreaMappingDO city = teamAreaMappingDAO.getByCityId(shopInfoDO.getWantShopAreaId());
//默认团队
Long teamId = 1L;
if (Objects.nonNull(city)) {
//v2.0.0 确认团队
DecorationTeamConfigDO decorationTeamConfigDO = decorationTeamConfigDAO.getById(city.getTeamId());
if (Objects.nonNull(decorationTeamConfigDO)) {
//v2.0.0 确认团队
teamId = decorationTeamConfigDO.getId();
}
}
Long teamId = getTeamId(shopInfoDO);
ShopDecorationAssignDO shopDecorationAssignDO = new ShopDecorationAssignDO();
shopDecorationAssignDO.setDecorationDescStatus(DecorationDescStatus.TO_BE_ASSIGNED.getCode());
shopDecorationAssignDO.setDecorationTeamId(teamId);
@@ -720,6 +715,48 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
}
/**
* 获取装修团队
* @param shopInfoDO
* @return
*/
private Long getTeamId(ShopInfoDO shopInfoDO) {
// 标准店统一使用默认立规团队
if (isStandardStore(shopInfoDO)) {
log.info("标准店使用默认团队, 门店名称: {}", shopInfoDO.getShopName());
return getDefaultTeamId();
}
// 根据城市获取团队
TeamAreaMappingDO cityMapping = teamAreaMappingDAO.getByCityId(shopInfoDO.getWantShopAreaId());
if (cityMapping == null) {
log.warn("未找到城市映射, cityId: {}, 使用默认团队", shopInfoDO.getWantShopAreaId());
return getDefaultTeamId();
}
DecorationTeamConfigDO teamConfig = decorationTeamConfigDAO.getById(cityMapping.getTeamId());
if (teamConfig == null) {
log.warn("未找到团队配置, teamId: {}, 使用默认团队", cityMapping.getTeamId());
return getDefaultTeamId();
}
return teamConfig.getId();
}
/**
* 判断是否为标准店
*/
private boolean isStandardStore(ShopInfoDO shopInfoDO) {
return shopInfoDO != null && Integer.valueOf(1).equals(shopInfoDO.getUseStandardStore());
}
/**
* 获取默认团队ID
*/
private Long getDefaultTeamId() {
return 1L;
}
/**
* 推送合同信息请求
* @param shopId
@@ -1069,6 +1106,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
addSignFranchiseResponse.setCashierFee(franchiseFeeDO.getCashierFee());
addSignFranchiseResponse.setBigCashierFee(Convert.digitToChinese(convertToBig(franchiseFeeDO.getCashierFee())));
}
//对于AI店
if (CollectionUtils.isEmpty(linePayList)){
List<PreAllocationRecordDO> preAllocationRecordDOS = preAllocationRecordDAO.queryPageByShopId(shopId);
List<Date> dateList = preAllocationRecordDOS.stream().map(PreAllocationRecordDO::getCreateTime).collect(Collectors.toList());
@@ -1076,8 +1114,12 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
.min(Comparator.naturalOrder())
.orElse(null);
addSignFranchiseResponse.setPayDate(earliestPayTime);
addSignFranchiseResponse.setFirstYearStartTime(earliestPayTime);
addSignFranchiseResponse.setFirstYearEndTime(DateUtils.addDays(DateUtils.addYears(earliestPayTime,1),-1));
if (addSignFranchiseResponse.getFirstYearStartTime()==null){
addSignFranchiseResponse.setFirstYearStartTime(earliestPayTime);
}
if (addSignFranchiseResponse.getFirstYearEndTime()==null){
addSignFranchiseResponse.setFirstYearEndTime(DateUtils.addDays(DateUtils.addYears(earliestPayTime,1),-1));
}
}
return addSignFranchiseResponse;
}

View File

@@ -428,6 +428,9 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
Set<Long> optinIdList = list.stream().map(StoreOrderOptionSnapshotDO::getOptionId).collect(Collectors.toSet());
List<StoreTypeOptionDO> storeTypeOptionDOS = storeTypeOptionDAO.selectByIds(new ArrayList<>(optinIdList),orderInfo.getStoreTypeId());
List<ConfigOptionDO> configOptionDOS = configOptionDAO.listActiveByIds(new ArrayList<>(optinIdList));
Map<Long, ConfigOptionDO> doMap = configOptionDOS.stream().collect(Collectors.toMap(ConfigOptionDO::getId, data -> data));
Map<Long, BigDecimal> defaultQuantityMap = storeTypeOptionDOS.stream().collect(Collectors.toMap(StoreTypeOptionDO::getOptionId, StoreTypeOptionDO::getDefaultQuantity,(existing, replacement) -> existing));
List<MiniStoreOrderDetailVO.CategoryVO> categoryVOList = new ArrayList<>();
for (Map.Entry<String, Map<String, List<StoreOrderOptionSnapshotDO>>> cEntry : groupMap.entrySet()) {
@@ -457,6 +460,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
ovo.setImageUrl(v.getImageUrl());
ovo.setExpenseTypeCode(v.getExpenseTypeCode());
ovo.setDefaultQuantity(defaultQuantityMap.get(v.getOptionId()));
ConfigOptionDO configOptionDO = doMap.getOrDefault(v.getOptionId(),new ConfigOptionDO());
ovo.setOptionRemark(configOptionDO.getOptionRemark());
return ovo;
})
.collect(Collectors.toList());
@@ -1929,6 +1934,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
item.setImageUrl(cfg.getImageUrl());
item.setCategoryCode(cfg.getCategoryCode());
item.setItemCode(cfg.getItemCode());
item.setOptionUnit(cfg.getOptionUnit());
item.setOptionRemark(cfg.getOptionRemark());
}
if (storeTypeOptionDO != null && cfg != null) {
BigDecimal price = storeTypeOptionDO.getOptionPrice();
@@ -1944,6 +1951,7 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
item.setTotalPrice(amount);
item.setCategoryName(categoryCodeMap.get(storeTypeOptionDO.getCategoryCode()));
item.setItemName(itemCodeMap.get(storeTypeOptionDO.getItemCode()));
item.setDefaultQuantity(storeTypeOptionDO.getDefaultQuantity());
}
list.add(item);
}