diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TeamOpenKeyConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TeamOpenKeyConstants.java new file mode 100644 index 0000000..4cd634b --- /dev/null +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/TeamOpenKeyConstants.java @@ -0,0 +1,14 @@ +package com.muyu.common.core.constant; + +/** + * @Author 夜は眠れるかい? + * @Date 2024/12/1 19:46 + * 好好学习,天天向上 + */ +public class TeamOpenKeyConstants { + + /** + * 开团标识 + */ + public static final String TEAM_OPEN_KEY = "team_open_key:"; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java index 683008c..55a674a 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java @@ -14,6 +14,9 @@ import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +/** + * @author zhuyufeng + */ @Data @SuperBuilder @NoArgsConstructor diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java index 63286e2..a2ca1e2 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java @@ -11,6 +11,9 @@ import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +/** + * @author zhuyufeng + */ @Data @SuperBuilder @NoArgsConstructor @@ -23,11 +26,11 @@ public class ActivityTeamOpenInfo extends BaseEntity { * 主键 */ @TableId(value = "id", type = IdType.AUTO) - private long id; + private Long id; /** * 团购活动ID */ - private long teamId; + private Long teamId; /** * 团购类型 */ @@ -35,7 +38,7 @@ public class ActivityTeamOpenInfo extends BaseEntity { /** * 团购策略 */ - private String teamStrategyId; + private Long teamStrategyId; /** * 参团类型 */ @@ -49,7 +52,7 @@ public class ActivityTeamOpenInfo extends BaseEntity { /** * 商品ID */ - private String productId; + private Long productId; /** * 商品名称 */ @@ -61,7 +64,7 @@ public class ActivityTeamOpenInfo extends BaseEntity { /** * 开团标识 */ - private String key; + private String openKey; /** * 订单ID */ diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java index 0225603..fe21ec2 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java @@ -7,6 +7,9 @@ import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; +/** + * @author zhuyufeng + */ @Data @SuperBuilder @NoArgsConstructor diff --git a/muyu-modules/muyu-marketing/marketing-server/pom.xml b/muyu-modules/muyu-marketing/marketing-server/pom.xml index c886cbf..cb7bfe0 100644 --- a/muyu-modules/muyu-marketing/marketing-server/pom.xml +++ b/muyu-modules/muyu-marketing/marketing-server/pom.xml @@ -121,4 +121,4 @@ - \ No newline at end of file + diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java index de0a3db..236ca35 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java @@ -3,6 +3,7 @@ package com.muyu.marketing; import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableMyFeignClients; import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -15,6 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableCustomSwagger2 @EnableMyFeignClients @SpringBootApplication +@MapperScan("com.muyu.marketing.team.mapper") public class MuYuMarketIngApplication { public static void main (String[] args) { SpringApplication.run(MuYuMarketIngApplication.class, args); diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamOpenController.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamOpenController.java new file mode 100644 index 0000000..e016209 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamOpenController.java @@ -0,0 +1,34 @@ +package com.muyu.marketing.team.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author 夜は眠れるかい? + * @Date 2024/12/1 10:37 + * 好好学习,天天向上 + */ +@RestController +@RequestMapping("teamOpen") +public class ActivityTeamOpenController { + + @Autowired + private ActivityTeamStrategy activityTeamStrategy; + + /** + * 开团 + * @param activityTeamId + * @param teamProjectSkuId + * @return + */ + @GetMapping("openTeam/{activityTeamId}/{teamProjectSkuId}") + public Result openTeam(@PathVariable Long activityTeamId,@PathVariable Long teamProjectSkuId){ + activityTeamStrategy.openTeam(activityTeamId,teamProjectSkuId); + return Result.success(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java index 0d3baa9..19b3648 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java @@ -2,10 +2,11 @@ package com.muyu.marketing.team.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.marketing.domain.ActivityTeamInfo; -import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; -import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import org.apache.ibatis.annotations.Mapper; +/** + * @author zhuyufeng + */ @Mapper public interface ActivityTeamInfoMapper extends BaseMapper { diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java index 70311b1..6a23491 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java @@ -3,8 +3,9 @@ package com.muyu.marketing.team.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.marketing.domain.ActivityTeamOpenInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface ActivityTeamOpenInfoMapper extends BaseMapper { - + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionHundredMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionHundredMapper.java index 10c7b87..481a200 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionHundredMapper.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionHundredMapper.java @@ -5,7 +5,10 @@ import com.muyu.marketing.domain.TeamStrategyExemption; import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import org.apache.ibatis.annotations.Mapper; +/** + * @author zhuyufeng + */ @Mapper public interface TeamStrategyExemptionHundredMapper extends BaseMapper { - + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java index 966bb1a..740bbab 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java @@ -5,6 +5,9 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.model.*; +/** + * @author zhuyufeng + */ public interface ActivityTeamInfoService extends IService { diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java index dcd70eb..96c7c51 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java @@ -2,9 +2,13 @@ package com.muyu.marketing.team.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum; +import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamOpenInfo; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +/** + * @author zhuyufeng + */ public interface ActivityTeamOpenInfoService extends IService { /** diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java index 2fa904f..6cd21cf 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java @@ -2,15 +2,18 @@ package com.muyu.marketing.team.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.core.domain.Result; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; -import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import com.muyu.marketing.domain.model.*; import java.util.List; +/** + * @author zhuyufeng + */ public interface ActivityTeamProductSkuInfoService extends IService { - public default List getActivityTeamProductSkuInfoByTeamId(Long teamId){ + public default List getActivityTeamProductSkuInfoByTeamId(Long teamId) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); return this.list(lambdaQueryWrapper); @@ -19,6 +22,7 @@ public interface ActivityTeamProductSkuInfoService extends IService activityTeamProductSkuAddModelList); /** * 通过拼团活动ID获取拼团下商品SKU集合 + * * @param teamId 活动ID * @return 拼团商品SKU集合 */ @@ -62,4 +69,21 @@ public interface ActivityTeamProductSkuInfoService extends IService activityTeamProductSkuUpdModelList); + /** + * 根据活动id和商品id获取活动商品sku的集合 + * + * @param teamId + * @param productId + * @return + */ + public Result> findListByTeamIdAndProductId(Long teamId, Long productId); + + /** + * 根据ID获取团购商品SKU信息 + * + * @param id + * @return + */ + public Result findById(Long id); + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionHundredService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionHundredService.java index e8f4444..81edf93 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionHundredService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionHundredService.java @@ -2,7 +2,12 @@ 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; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; -public interface TeamStrategyExemptionHundredService extends IService { +/** + * @author zhuyufeng + */ +public interface TeamStrategyExemptionHundredService extends ActivityTeamStrategy, IService { + + public void addTeam(Long teamId, String orderNumber); } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionOrdinaryService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionOrdinaryService.java index 307cf36..a346662 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionOrdinaryService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionOrdinaryService.java @@ -2,6 +2,10 @@ package com.muyu.marketing.team.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; -public interface TeamStrategyExemptionOrdinaryService extends IService { +/** + * @author zhuyufeng + */ +public interface TeamStrategyExemptionOrdinaryService extends ActivityTeamStrategy, IService { } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java index 7111bf7..ef60e2c 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java @@ -3,15 +3,23 @@ package com.muyu.marketing.team.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum; +import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamOpenInfo; import com.muyu.marketing.team.mapper.ActivityTeamOpenInfoMapper; import com.muyu.marketing.team.service.ActivityTeamOpenInfoService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +/** + * @author zhuyufeng + */ @Service public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl implements ActivityTeamOpenInfoService { + @Autowired + private ActivityTeamOpenInfoMapper activityTeamOpenInfoMapper; + /** * 通过活动ID和开团类型查询开团数量 * diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java index 2800e2d..47abaa3 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java @@ -3,6 +3,7 @@ package com.muyu.marketing.team.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; import com.muyu.common.core.exception.ServiceException; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.model.*; @@ -24,7 +25,7 @@ import java.util.stream.Collectors; @Service public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl - implements ActivityTeamProductSkuInfoService { + implements ActivityTeamProductSkuInfoService { @Autowired private ProjectSkuCache projectSkuCache; @@ -46,7 +47,7 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue()); - if (discountPriceModelOptional.isEmpty()){ + if (discountPriceModelOptional.isEmpty()) { throw new ServiceException("团购活动下没有商品绑定"); } return discountPriceModelOptional.get(); @@ -91,7 +92,7 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl findListByTeamId(Long teamId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId); + queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); List list = this.list(queryWrapper); return list.stream().map(ActivityTeamProductSkuModel::FindBuild).toList(); // return list.stream().map(activityTeamProductSkuInfo -> ActivityTeamProductSkuModel.FindBuild(activityTeamProductSkuInfo)).toList(); @@ -106,9 +107,9 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(ActivityTeamProductSkuInfo::getTeamPrice,activityTeamProductSkuUpdModel.getTeamPrice()); - updateWrapper.set(ActivityTeamProductSkuInfo::getTeamStock,activityTeamProductSkuUpdModel.getTeamStock()); - updateWrapper.eq(ActivityTeamProductSkuInfo::getId,activityTeamProductSkuUpdModel.getId()); + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamPrice, activityTeamProductSkuUpdModel.getTeamPrice()); + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamStock, activityTeamProductSkuUpdModel.getTeamStock()); + updateWrapper.eq(ActivityTeamProductSkuInfo::getId, activityTeamProductSkuUpdModel.getId()); return this.update(updateWrapper); } @@ -126,4 +127,33 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl> findListByTeamIdAndProductId(Long teamId, Long productId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); + queryWrapper.eq(ActivityTeamProductSkuInfo::getProductId, productId); + List list = this.list(queryWrapper); + List activityTeamProductSkuModels = list.stream().map(ActivityTeamProductSkuModel::FindBuild).toList(); + return Result.success(activityTeamProductSkuModels); + } + + /** + * 根据id获取团购商品sku信息 + * + * @param id + * @return + */ + @Override + public Result findById(Long id) { + ActivityTeamProductSkuInfo teamProductSkuInfo = this.getById(id); + return Result.success(teamProductSkuInfo); + } + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionHundredServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionHundredServiceImpl.java index 73986fa..d5d155c 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionHundredServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionHundredServiceImpl.java @@ -1,19 +1,134 @@ 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.common.core.constant.TeamOpenKeyConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.uuid.UUID; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.LoginUser; +import com.muyu.marketing.domain.*; 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 com.muyu.marketing.team.service.*; +import com.muyu.product.cache.ProjectInfoCache; +import com.muyu.product.domain.ProjectInfo; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; /** * @author zhuyufeng */ -@Service +@Log4j2 +@Service("team-strategy-hundred") public class TeamStrategyExemptionHundredServiceImpl extends ServiceImpl - implements TeamStrategyExemptionHundredService { + implements TeamStrategyExemptionHundredService { + @Autowired + private ActivityTeamInfoService activityTeamInfoService; + + @Autowired + private ProjectInfoCache projectInfoCache; + + @Autowired + private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + + @Autowired + private StringRedisTemplate redisTemplate; + + @Autowired + private ActivityTeamOpenInfoService activityTeamOpenInfoService; + + + /** + * 开团-百人团 + * + * @param activityTeamId 团购活动id + * @param activityTeamId 活动商品规格的id + */ + @Override + public void openTeam(Long activityTeamId,Long teamProjectSkuId) { + //添加拼团活动执行表 + ActivityTeamOpenInfo teamOpenInfo = new ActivityTeamOpenInfo(); + teamOpenInfo.setTeamId(activityTeamId); + teamOpenInfo.setTeamType("百人团"); + //根据团购活动id查询活动表获取团购策略id + ActivityTeamInfo teamInfo = activityTeamInfoService.getById(activityTeamId); + teamOpenInfo.setTeamStrategyId(teamInfo.getStrategyId()); + //参团类型 + teamOpenInfo.setExecutiveType("开团"); + //拿到活动结束时间 + teamOpenInfo.setEndTime(teamInfo.getEndTime()); + //根据活动对象获取商品信息 + teamOpenInfo.setProductId(teamInfo.getProductId()); + ProjectInfo projectInfo = projectInfoCache.get(teamInfo.getProductId()); + teamOpenInfo.setProductName(projectInfo.getName()); + //根据活动商品sku的id查询列表,获取商品sku信息 + Result teamProductSkuInfo = activityTeamProductSkuInfoService.findById(teamProjectSkuId); + teamOpenInfo.setProductSku(teamProductSkuInfo.getData().getProductSku()); + //生成开团标识 + String key = UUID.randomUUID().toString(); + teamOpenInfo.setOpenKey(key); + //获取当前登录人信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + teamOpenInfo.setCreateBy(loginUser.getUsername()); + //执行开团操作 + boolean save = this.activityTeamOpenInfoService.save(teamOpenInfo); + //最后把开团标识存进redis(团购id+用户id+团购活动id,key) + if (save){ + redisTemplate.opsForValue().set(TeamOpenKeyConstants.TEAM_OPEN_KEY+ + teamOpenInfo.getId()+":"+loginUser.getUserid()+":" + +teamOpenInfo.getTeamId(),key); + } + } + + /** + * 申请加团,得到申请的令牌 + * + * @param teamId 团id + */ + @Override + public void applyTeam(Long teamId) { + + } + + /** + * 参团 + * 需要拿到开团标识 + * + * @param teamId 团id + * @param orderNumber 订单编号 + */ + @Override + public void addTeam(Long teamId, String orderNumber) { + //添加拼团活动执行表 + ActivityTeamOpenInfo teamOpenInfo = new ActivityTeamOpenInfo(); + teamOpenInfo.setTeamId(teamId); + teamOpenInfo.setTeamType("百人团"); + //根据团购活动id查询活动表获取团购策略id + ActivityTeamInfo teamInfo = activityTeamInfoService.getById(teamId); + teamOpenInfo.setTeamStrategyId(teamInfo.getStrategyId()); + //参团类型 + teamOpenInfo.setExecutiveType("参团"); + } + + /** + * 退团 + * + * @param teamId + */ + @Override + public void exitTeam(Long teamId) { + + } + + /** + * 结算团 + * + * @param teamId + */ + @Override + public void settleTeam(Long teamId) { + + } } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java index e0588e8..6e89042 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java @@ -4,13 +4,44 @@ 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 lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; /** * @author zhuyufeng */ -@Service +@Log4j2 +@Service("team-strategy-ordinary") public class TeamStrategyExemptionOrdinaryServiceImpl extends ServiceImpl implements TeamStrategyExemptionOrdinaryService { + /** + * 开团-普通团 + * @param activityTeamId 团购活动id + * @param teamProjectSkuId 团购活动商品规格id + */ + @Override + public void openTeam(Long activityTeamId,Long teamProjectSkuId) { + log.info("参加-普通团-[{}]", activityTeamId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void exitTeam(Long teamId) { + + } + + @Override + public void settleTeam(Long teamId) { + + } } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java index eaae29d..f027175 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java @@ -4,18 +4,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.marketing.domain.TeamStrategyExemption; import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper; import com.muyu.marketing.team.service.TeamStrategyExemptionService; +import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; /** * @author zhuyufeng */ -@Service +@Log4j2 +@Service("team-strategy-free") public class TeamStrategyExemptionServiceImpl extends ServiceImpl implements TeamStrategyExemptionService { @Override - public void openTeam(Long activityTeamId) { - + public void openTeam(Long activityTeamId,Long teamProjectSkuId) { + log.info("参加-免单团-[{}]",activityTeamId); } @Override diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java index ded5b13..c06ddf4 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java @@ -11,8 +11,9 @@ public interface ActivityTeamStrategy { * 开团 * * @param activityTeamId 团购活动id + * @param teamProjectSkuId 团购活动商品规格id */ - public void openTeam(Long activityTeamId); + public void openTeam(Long activityTeamId,Long teamProjectSkuId); /** * 申请加团 diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java new file mode 100644 index 0000000..01c9ae0 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java @@ -0,0 +1,58 @@ +package com.muyu.marketing.team.strategy.impl; + +import com.muyu.common.core.utils.SpringUtils; +import com.muyu.marketing.domain.ActivityTeamInfo; +import com.muyu.marketing.team.service.ActivityTeamInfoService; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +/** + * @Author 夜は眠れるかい? + * @Date 2024/12/1 14:58 + * 好好学习,天天向上 + */ +@Service +@Primary +public class ActivityTeamStrategyImpl implements ActivityTeamStrategy { + + @Autowired + private ActivityTeamInfoService activityTeamInfoService; + + /** + * 开团 + * @param activityTeamId 团购活动id + * @param teamProjectSkuId 团购活动商品规格id + */ + @Override + public void openTeam(Long activityTeamId,Long teamProjectSkuId) { + //先根据活动id查询活动的拼团类型 + ActivityTeamInfo teamInfo = activityTeamInfoService.getById(activityTeamId); + //获取活动拼团类型 + String teamStrategyType = teamInfo.getStrategyType(); + //根据不同的拼团类型,调用不同的策略类 + ActivityTeamStrategy activityTeamStrategy = SpringUtils.getBean(teamStrategyType); + activityTeamStrategy.openTeam(activityTeamId,teamProjectSkuId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void exitTeam(Long teamId) { + + } + + @Override + public void settleTeam(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/mapper/team/activityTeamOpenInfoMapper.xml b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/mapper/team/activityTeamOpenInfoMapper.xml new file mode 100644 index 0000000..9631abd --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/mapper/team/activityTeamOpenInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/StrategyTest.java b/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/StrategyTest.java new file mode 100644 index 0000000..d9021af --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/StrategyTest.java @@ -0,0 +1,24 @@ +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 夜は眠れるかい? + * @Date 2024/12/1 15:22 + * 好好学习,天天向上 + */ +@SpringBootTest(classes = MuYuMarketIngApplication.class) +public class StrategyTest { + + @Autowired + private ActivityTeamStrategy activityTeamStrategy; + + @Test + public void test() { + activityTeamStrategy.openTeam(0L); + } +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java index f1e3d62..8d1b1a9 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java @@ -38,6 +38,7 @@ import com.muyu.common.core.web.page.TableDataInfo; @RestController @RequestMapping("/info") public class ProjectInfoController extends BaseController { + @Autowired private ProjectInfoService projectInfoService;