|
|
@@ -0,0 +1,136 @@
|
|
|
+package shop.alien.store.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import shop.alien.entity.store.ActivitySignInConfig;
|
|
|
+import shop.alien.entity.store.ActivitySignInReward;
|
|
|
+import shop.alien.entity.store.vo.ActivityConfigVO;
|
|
|
+import shop.alien.mapper.ActivitySignRewardMapper;
|
|
|
+import shop.alien.store.service.ActivityConfigService;
|
|
|
+import shop.alien.mapper.ActivitySignInConfigMapper;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * 签到类型活动服务
|
|
|
+ * @author zhangchen
|
|
|
+ * @since 2025-9-8
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+@RequiredArgsConstructor
|
|
|
+public class ActivityConfigServiceImpl extends ServiceImpl<ActivitySignInConfigMapper, ActivitySignInConfig> implements ActivityConfigService {
|
|
|
+
|
|
|
+ private final ActivitySignInConfigMapper activitySignInConfigMapper;
|
|
|
+ private final ActivitySignRewardMapper activitySignRewardMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ActivitySignInConfig createOrUpdateActivity(ActivityConfigVO configVO) {
|
|
|
+ log.info("创建活动开始执行,请求参数: {}", configVO);
|
|
|
+ if(configVO == null) {
|
|
|
+ log.error("创建活动configVO为空。");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ List<ActivitySignInReward> activitySignInRewardList = configVO.getRewards();
|
|
|
+ if(CollectionUtils.isEmpty(activitySignInRewardList)) {
|
|
|
+ log.error("创建活动奖励配置为空。");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ ActivitySignInConfig activitySignInConfig = new ActivitySignInConfig();
|
|
|
+ if(configVO.getId() == null) {
|
|
|
+ //创建活动操作
|
|
|
+ BeanUtils.copyProperties(configVO, activitySignInConfig);
|
|
|
+ int configInsertResult = activitySignInConfigMapper.insert(activitySignInConfig);
|
|
|
+ if(configInsertResult == 0){
|
|
|
+ //插入活动配置数据失败,返回
|
|
|
+ log.error("插入活动配置数据失败, {}", configVO);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ activitySignInRewardList.forEach(item -> {
|
|
|
+ item.setActivityId(activitySignInConfig.getId());
|
|
|
+ activitySignRewardMapper.insert(item);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ //更新操作
|
|
|
+ BeanUtils.copyProperties(configVO, activitySignInConfig);
|
|
|
+ int configUpdateResult = activitySignInConfigMapper.updateById(activitySignInConfig);
|
|
|
+ if(configUpdateResult == 0){
|
|
|
+ //更新活动配置数据失败,返回
|
|
|
+ log.error("更新活动配置数据失败, {}", configVO);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ activitySignInRewardList.forEach(item -> {
|
|
|
+ activitySignRewardMapper.updateById(item);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return configVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ActivitySignInConfig updateActivity(Long id, ActivityConfigVO configVO) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ActivityConfigVO getActivitySignInConfigById(Long id) {
|
|
|
+ ActivityConfigVO activityConfigVO = new ActivityConfigVO();
|
|
|
+ if(id == null || id == 0){
|
|
|
+ //id为空
|
|
|
+ return activityConfigVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询签到活动配置信息
|
|
|
+ ActivitySignInConfig activitySignInConfig = activitySignInConfigMapper.selectById(id);
|
|
|
+ if(activitySignInConfig == null){
|
|
|
+ return activityConfigVO;
|
|
|
+ }
|
|
|
+ BeanUtils.copyProperties(activitySignInConfig, activityConfigVO);
|
|
|
+
|
|
|
+ // 查询活动奖励列表
|
|
|
+ LambdaQueryWrapper<ActivitySignInReward> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(ActivitySignInReward::getActivityId, id);
|
|
|
+ wrapper.eq(ActivitySignInReward::getDeleteFlag,0);
|
|
|
+ List <ActivitySignInReward> activitySignInRewardList = activitySignRewardMapper.selectList(wrapper);
|
|
|
+ if(CollectionUtils.isEmpty(activitySignInRewardList)){
|
|
|
+ return activityConfigVO;
|
|
|
+ }
|
|
|
+ activityConfigVO.setRewards(activitySignInRewardList);
|
|
|
+ return activityConfigVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<ActivitySignInConfig> getActivityList(int pageNum, int pageSize, String activityName) {
|
|
|
+ IPage<ActivitySignInConfig> iPage = new Page<>(pageNum, pageSize);
|
|
|
+ LambdaQueryWrapper<ActivitySignInConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ if(StringUtils.isNotBlank(activityName)){
|
|
|
+ lambdaQueryWrapper.like(ActivitySignInConfig::getActivityName, activityName);
|
|
|
+ }
|
|
|
+ return activitySignInConfigMapper.selectPage(iPage, lambdaQueryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean updateActivityStatus(Integer id, Integer status) {
|
|
|
+ if(id == null || status == null){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ ActivitySignInConfig activitySignInConfig = new ActivitySignInConfig();
|
|
|
+ activitySignInConfig.setId(id);
|
|
|
+ activitySignInConfig.setStatus(status);
|
|
|
+ int result = activitySignInConfigMapper.updateById(activitySignInConfig);
|
|
|
+ return result > 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void saveActivityRewards(Long activityId, List<ActivitySignInReward> rewards) {
|
|
|
+
|
|
|
+ }
|
|
|
+}
|