Merge branch 'master' into 1127/chengyingjie

# Conflicts:
#	muyu-auth/src/main/resources/bootstrap.yml
#	muyu-gateway/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-file/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-gen/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-job/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java
#	muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java
#	muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-product/muyu-product-server/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/resources/bootstrap.yml
#	muyu-modules/muyu-system/src/main/resources/bootstrap.yml
#	muyu-visual/muyu-monitor/src/main/resources/bootstrap.yml
1127/chengyingjie
成英杰 2024-12-01 19:39:43 +08:00
commit 341383d398
27 changed files with 546 additions and 76 deletions

0
doc/策略.md 100644
View File

View File

@ -20,7 +20,7 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_hundred", autoResultMap = true) @TableName(value = "team_strategy_exemption_hundred", autoResultMap = true)
public class TeamStrategyExemptionHundred extends BaseEntity { public class TeamStrategyHundred extends BaseEntity {
/** /**
* *

View File

@ -19,7 +19,7 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName(value = "team_strategy_exemption_ordinary", autoResultMap = true) @TableName(value = "team_strategy_exemption_ordinary", autoResultMap = true)
public class TeamStrategyExemptionOrdinary extends BaseEntity { public class TeamStrategyOrdinary extends BaseEntity {
/** /**
* *

View File

@ -57,7 +57,7 @@ public class ActivityTeamInfoAddModel {
/** /**
* *
*/ */
private Integer sort; private Long sort;
/** /**
* SkU * SkU
*/ */

View File

@ -0,0 +1,59 @@
package com.muyu.marketing.domain.model;
import com.muyu.marketing.domain.req.ActivityTeamProductSkuSettingReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.function.Supplier;
/**
*
*
* @author DongZeLiang
* @date 2024-11-28 11:15
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamProductSkuSettingModel {
/**
* ID
*/
private Long teamId;
/**
* ID
*/
private List<Long> removeIds;
/**
*
*/
private List<ActivityTeamProductSkuAddModel> activityTeamProductSkuAddModelList;
/**
*
*/
private List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModelList;
public static ActivityTeamProductSkuSettingModel settingReqModel(ActivityTeamProductSkuSettingReq activityTeamProductSkuSettingReq, Supplier<Long> productId) {
return ActivityTeamProductSkuSettingModel.builder()
.removeIds(activityTeamProductSkuSettingReq.getRemoveIds())
.activityTeamProductSkuAddModelList(
activityTeamProductSkuSettingReq.getTeamProjectSkuInfoAddReqList().stream()
.map(teamProjectSkuInfoAddReq -> ActivityTeamProductSkuAddModel.addReqBuild(teamProjectSkuInfoAddReq, productId))
.toList()
)
.activityTeamProductSkuUpdModelList(
activityTeamProductSkuSettingReq.getTeamProjectSkuInfoUpdReqList().stream()
.map(ActivityTeamProductSkuUpdModel::updReqBuild)
.toList()
).build();
}
}

View File

@ -58,7 +58,7 @@ public class ActivityTeamInfoSaveReq extends BaseEntity {
/** /**
* *
*/ */
private Integer sort; private Long sort;
/** /**
* SkU * SkU
*/ */

View File

@ -0,0 +1,37 @@
package com.muyu.marketing.domain.req;
import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*
* @author DongZeLiang
* @date 2024-11-28 11:27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTeamProductSkuSettingReq {
/**
* ID
*/
private List<Long> removeIds;
/**
*
*/
private List<TeamProjectSkuInfoAddReq> teamProjectSkuInfoAddReqList;
/**
*
*/
private List<TeamProjectSkuInfoUpdReq> teamProjectSkuInfoUpdReqList;
}

View File

@ -0,0 +1,33 @@
package com.muyu.marketing.domain.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
*
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class TeamProjectSkuInfoUpdReq {
/**
* SKU
*/
private Long id;
/**
*
*/
private BigDecimal teamPrice;
/**
*
*/
private Long teamStock;
}

View File

@ -2,8 +2,6 @@ package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamInfo;
import com.muyu.marketing.domain.ActivityTeamProductSkuInfo;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper

View File

@ -1,11 +0,0 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyExemptionHundredMapper extends BaseMapper<TeamStrategyExemptionHundred> {
}

View File

@ -1,11 +0,0 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyExemptionOrdinaryMapper extends BaseMapper<TeamStrategyExemptionOrdinary> {
}

View File

@ -0,0 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyHundred;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyHundredMapper extends BaseMapper<TeamStrategyHundred> {
}

View File

@ -0,0 +1,10 @@
package com.muyu.marketing.team.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TeamStrategyOrdinaryMapper extends BaseMapper<TeamStrategyOrdinary> {
}

View File

@ -55,4 +55,27 @@ public interface ActivityTeamProductSkuInfoService extends IService<ActivityTeam
public boolean deleteById(List<Long> skuByIdDeleteList); public boolean deleteById(List<Long> skuByIdDeleteList);
/**
*
* @param activityTeamProductSkuUpdModel
* @return
*/
public boolean update(ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel);
/**
*
* @param activityTeamProductSkuUpdModelList
* @return
*/
public boolean batchUpdate(List<ActivityTeamProductSkuUpdModel> activityTeamProductSkuUpdModelList);
/**
*
* @param activityTeamProductSkuSettingModel
*/
public default void setting(ActivityTeamProductSkuSettingModel activityTeamProductSkuSettingModel){
this.batchSave(activityTeamProductSkuSettingModel.getActivityTeamProductSkuAddModelList());
this.batchUpdate(activityTeamProductSkuSettingModel.getActivityTeamProductSkuUpdModelList());
this.removeByIds(activityTeamProductSkuSettingModel.getRemoveIds());
}
} }

View File

@ -1,8 +0,0 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
public interface TeamStrategyExemptionHundredService extends IService<TeamStrategyExemptionHundred> {
}

View File

@ -1,7 +0,0 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
public interface TeamStrategyExemptionOrdinaryService extends IService<TeamStrategyExemptionOrdinary> {
}

View File

@ -2,7 +2,10 @@ package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyExemption; import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
public interface TeamStrategyExemptionService extends IService<TeamStrategyExemption> { /**
*
*/
public interface TeamStrategyExemptionService extends ActivityTeamStrategy, IService<TeamStrategyExemption> {
} }

View File

@ -0,0 +1,11 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyHundred;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
/**
*
*/
public interface TeamStrategyHundredService extends ActivityTeamStrategy, IService<TeamStrategyHundred> {
}

View File

@ -0,0 +1,11 @@
package com.muyu.marketing.team.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
/**
*
*/
public interface TeamStrategyOrdinaryService extends ActivityTeamStrategy, IService<TeamStrategyOrdinary> {
}

View File

@ -1,16 +0,0 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.domain.TeamStrategyExemptionHundred;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionHundredMapper;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionHundredService;
import com.muyu.marketing.team.service.TeamStrategyExemptionService;
import org.springframework.stereotype.Service;
@Service
public class TeamStrategyExemptionHundredServiceImpl extends ServiceImpl<TeamStrategyExemptionHundredMapper, TeamStrategyExemptionHundred>
implements TeamStrategyExemptionHundredService {
}

View File

@ -1,13 +0,0 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionOrdinaryMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionOrdinaryService;
import org.springframework.stereotype.Service;
@Service
public class TeamStrategyExemptionOrdinaryServiceImpl extends ServiceImpl<TeamStrategyExemptionOrdinaryMapper, TeamStrategyExemptionOrdinary>
implements TeamStrategyExemptionOrdinaryService {
}

View File

@ -4,10 +4,62 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyExemption; import com.muyu.marketing.domain.TeamStrategyExemption;
import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper; import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper;
import com.muyu.marketing.team.service.TeamStrategyExemptionService; import com.muyu.marketing.team.service.TeamStrategyExemptionService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Log4j2
@Service("team-strategy-exemption")
public class TeamStrategyExemptionServiceImpl extends ServiceImpl<TeamStrategyExemptionMapper, TeamStrategyExemption> public class TeamStrategyExemptionServiceImpl extends ServiceImpl<TeamStrategyExemptionMapper, TeamStrategyExemption>
implements TeamStrategyExemptionService { implements TeamStrategyExemptionService {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 免单团 - [{}]", activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
} }

View File

@ -0,0 +1,66 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyHundred;
import com.muyu.marketing.team.mapper.TeamStrategyHundredMapper;
import com.muyu.marketing.team.service.TeamStrategyHundredService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
@Log4j2
@Service("team-strategy-hundred")
public class TeamStrategyHundredServiceImpl extends ServiceImpl<TeamStrategyHundredMapper, TeamStrategyHundred>
implements TeamStrategyHundredService {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 百人团 - [{}]", activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -0,0 +1,66 @@
package com.muyu.marketing.team.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.marketing.domain.TeamStrategyOrdinary;
import com.muyu.marketing.team.mapper.TeamStrategyOrdinaryMapper;
import com.muyu.marketing.team.service.TeamStrategyOrdinaryService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
@Log4j2
@Service("team-strategy-ordinary")
public class TeamStrategyOrdinaryServiceImpl extends ServiceImpl<TeamStrategyOrdinaryMapper, TeamStrategyOrdinary>
implements TeamStrategyOrdinaryService {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
log.info("参加 - 普通团 - [{}]", activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -0,0 +1,44 @@
package com.muyu.marketing.team.strategy;
import org.apache.ibatis.annotations.Param;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:03
*/
public interface ActivityTeamStrategy {
/**
*
* @param activityTeamId ID
*/
public void openTeam(Long activityTeamId);
/**
*
* @param teamId ID
*/
public void applyTeam(Long teamId);
/**
*
* @param teamId ID
* @param orderNumber
*/
public void addTeam(Long teamId, String orderNumber);
/**
* 退
* @param teamId ID
*/
public void backTeam(Long teamId);
/**
*
* @param teamId ID
*/
public void settle(Long teamId);
}

View File

@ -0,0 +1,85 @@
package com.muyu.marketing.team.strategy.impl;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.SpringUtils;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:28
*/
@Service
@Primary
public class ActivityTeamStrategyImpl implements ActivityTeamStrategy {
/**
*
*
* @param activityTeamId ID
*/
@Override
public void openTeam(Long activityTeamId) {
// 假设这里是通过方法获取的typeactivityTeamId.toString()
// "team-strategy-exemption"
// "team-strategy-hundred"
// "team-strategy-ordinary"
String activityTeamType = null;
if (activityTeamId == null) {
throw new ServiceException("activityTeamId is null");
}else if (activityTeamId == 0) {
activityTeamType = "team-strategy-exemption";
}else if (activityTeamId == 1) {
activityTeamType = "team-strategy-hundred";
}else if (activityTeamId == 2) {
activityTeamType = "team-strategy-ordinary";
}
ActivityTeamStrategy activityTeamStrategy = SpringUtils.getBean(activityTeamType);
activityTeamStrategy.openTeam(activityTeamId);
}
/**
*
*
* @param teamId ID
*/
@Override
public void applyTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
* @param orderNumber
*/
@Override
public void addTeam(Long teamId, String orderNumber) {
}
/**
* 退
*
* @param teamId ID
*/
@Override
public void backTeam(Long teamId) {
}
/**
*
*
* @param teamId ID
*/
@Override
public void settle(Long teamId) {
}
}

View File

@ -0,0 +1,28 @@
package com.muyu.test;
import com.muyu.marketing.MuYuMarketIngApplication;
import com.muyu.marketing.team.strategy.ActivityTeamStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
*
*
* @author DongZeLiang
* @date 2024-11-29 15:40
*/
@SpringBootTest(classes = MuYuMarketIngApplication.class)
public class TeamStrategyTest {
@Autowired
private ActivityTeamStrategy activityTeamStrategy;
@Test
public void testStrategy() {
activityTeamStrategy.openTeam(0L);
activityTeamStrategy.openTeam(1L);
activityTeamStrategy.openTeam(2L);
}
}