From c00d0d3bc399b6648145dfd955cedbea90f5f99d Mon Sep 17 00:00:00 2001
From: jiangqs <343695869@qq.com>
Date: 星期日, 18 六月 2023 17:38:22 +0800
Subject: [PATCH] 看板

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java |  179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 179 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
index 5a0aa94..c663856 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -1,10 +1,34 @@
 package com.ruoyi.goods.service.impl.activity;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.bean.BeanUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.goods.domain.dto.MgtActivityEditDto;
+import com.ruoyi.goods.domain.dto.MgtActivityGoodsEditDto;
+import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
 import com.ruoyi.goods.domain.pojo.activity.Activity;
+import com.ruoyi.goods.domain.pojo.activity.ActivityTotal;
+import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
+import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo;
+import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
 import com.ruoyi.goods.mapper.activity.ActivityMapper;
+import com.ruoyi.goods.service.activity.ActivityGoodsService;
 import com.ruoyi.goods.service.activity.ActivityService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.goods.service.activity.ActivityTotalService;
+import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
+import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
+import com.ruoyi.system.api.service.RemoteShopService;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +41,159 @@
 @Service
 public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements ActivityService {
 
+    @Resource
+    private ActivityMapper activityMapper;
+
+    @Resource
+    private ActivityGoodsService activityGoodsService;
+
+    @Resource
+    private ActivityTotalService activityTotalService;
+
+    @Resource
+    private RemoteShopService remoteShopService;
+    /**
+     * @param mgtActivityEditDto
+     * @return void
+     * @description 平台编辑活动
+     * @author jqs
+     * @date 2023/6/14 15:12
+     */
+    @Override
+    public void editMgtActivity(MgtActivityEditDto mgtActivityEditDto) {
+        Activity activity;
+        // 获取当前时间
+        Date nowTime = new Date();
+        // 如果活动ID不为空,则表示修改活动信息
+        if (StringUtils.isNotBlank(mgtActivityEditDto.getActivityId())) {
+            // 获取活动信息
+            activity = this.getById(mgtActivityEditDto.getActivityId());
+            // 如果活动状态不为0,则表示活动正在进行中,不能修改
+            if (activity.getActivityStatus() != 0) {
+                throw new ServiceException(AppErrorConstant.ACTIVITY_ING_EDIT);
+            }
+            // 删除活动商品信息
+            activityGoodsService.deleteByActivityId(activity.getActivityId());
+        } else {
+            // 如果活动ID为空,则表示新增活动信息
+            activity = new Activity();
+            // 生成活动ID
+            String activityId = IdUtils.simpleUUID();
+            activity.setActivityId(activityId);
+            activity.setDelFlag(0);
+            activity.setCreateUserId(mgtActivityEditDto.getUserId());
+            activity.setCreateTime(nowTime);
+            ActivityTotal activityTotal = new ActivityTotal();
+            activityTotal.setActivityId(activityId);
+            activityTotal.setOrderTotal(0);
+            activityTotal.setPersonTotal(0);
+            activityTotal.setRefundTotal(0);
+            activityTotal.setOrderMoneyTotal(BigDecimal.ZERO);
+            activityTotalService.save(activityTotal);
+        }
+        // 获取活动开始时间和结束时间
+        Date activityStartTime = mgtActivityEditDto.getActivityStartTime();
+        Date activityEndTime = mgtActivityEditDto.getActivityEndTime();
+        // 根据当前时间和活动时间判断活动状态
+        if (nowTime.compareTo(activityStartTime) < 0) {
+            activity.setActivityStatus(0);
+        } else if (nowTime.compareTo(activityStartTime) >= 0 && nowTime.compareTo(activityEndTime) <= 0) {
+            activity.setActivityStatus(1);
+        } else if (nowTime.compareTo(activityEndTime) > 0) {
+            activity.setActivityStatus(2);
+        }
+        // 设置活动信息
+        activity.setActivityName(mgtActivityEditDto.getActivityName());
+        activity.setActivityStartTime(activityStartTime);
+        activity.setActivityEndTime(activityEndTime);
+        activity.setGroupBuyNumber(mgtActivityEditDto.getGroupBuyNumber());
+        activity.setPurchaseLimitationFlag(mgtActivityEditDto.getPurchaseLimitationFlag());
+        activity.setLimitNumber(mgtActivityEditDto.getLimitNumber());
+        activity.setPropagandaPoster(mgtActivityEditDto.getPropagandaPoster());
+        activity.setAreaFlag(mgtActivityEditDto.getAreaFlag());
+        activity.setDesignatedArea(mgtActivityEditDto.getDesignatedArea());
+        activity.setShopFlag(mgtActivityEditDto.getShopFlag());
+        activity.setApplicableShop(mgtActivityEditDto.getApplicableShop());
+        activity.setUpdateUserId(mgtActivityEditDto.getUserId());
+        activity.setUpdateTime(nowTime);
+        activity.setRecommendFlag(mgtActivityEditDto.getRecommendFlag());
+        this.saveOrUpdate(activity);
+        // 获取活动商品信息
+        List<MgtActivityGoodsEditDto> mgtActivityGoodsEditDtoList = mgtActivityEditDto.getMgtActivityGoodsEditDtoList();
+        // 如果活动商品信息不为空,则保存活动商品信息
+        if (!mgtActivityGoodsEditDtoList.isEmpty()) {
+            List<ActivityGoods> activityGoodsList = mgtActivityGoodsEditDtoList.stream().map(
+                    dto -> {
+                        ActivityGoods activityGoods = new ActivityGoods();
+                        activityGoods.setDelFlag(0);
+                        activityGoods.setGoodsId(dto.getGoodsId());
+                        activityGoods.setActivityId(activity.getActivityId());
+                        activityGoods.setActivityPrice(dto.getActivityPrice());
+                        activityGoods.setActivitySubscription(dto.getActivitySubscription());
+                        activityGoods.setActivityNumber(dto.getActivityNumber());
+                        activityGoods.setActivityDeadline(activity.getActivityEndTime());
+                        activityGoods.setSellOutFlag(0);
+                        return activityGoods;
+                    }
+            ).collect(Collectors.toList());
+            if (!activityGoodsList.isEmpty()) {
+                activityGoodsService.saveBatch(activityGoodsList);
+            }
+        }
+    }
+
+    /**
+     * @description  分页获取活动列表
+     * @author  jqs
+     * @date    2023/6/14 16:39
+     * @param mgtActivityPageDto
+     * @return  List<MgtActivityPageVo>
+     */
+    @Override
+    public List<MgtActivityPageVo> pageMgtActivity(Page page, MgtActivityPageDto mgtActivityPageDto){
+        List<MgtActivityPageVo> mgtActivityPageVoList = activityMapper.pageMgtActivity(page, mgtActivityPageDto);
+        return mgtActivityPageVoList;
+    }
+
+    /**
+     * @description  获取活动编辑信息
+     * @author  jqs
+     * @date    2023/6/14 17:30
+     * @param activityId
+     * @return  MgtActivityGetVo
+     */
+    @Override
+    public MgtActivityGetVo getMgtActivity(String activityId){
+        MgtActivityGetVo mgtActivityGetVo = new MgtActivityGetVo();
+        Activity activity = this.getById(activityId);
+        BeanUtils.copyProperties(activity, mgtActivityGetVo);
+        //活动关联商户
+        if(activity.getShopFlag()==2&&StringUtils.isNotBlank(activity.getApplicableShop())){
+            String applicableShop = activity.getApplicableShop();
+            List<MgtSimpleShopVo> mgtSimpleShopVoList= remoteShopService.listShopSimpleVoByIds(applicableShop).getData();
+            mgtActivityGetVo.setMgtSimpleShopVosList(mgtSimpleShopVoList);
+        }
+        //活动关联商品
+        List<MgtActivityGoodsListVo> mgtActivityGoodsVoList = activityGoodsService.listVoByActivityId(activityId);
+        mgtActivityGetVo.setMgtActivityGoodsVoList(mgtActivityGoodsVoList);
+        return mgtActivityGetVo;
+    }
+
+    /**
+     * @description 平台删除活动
+     * @author  jqs
+     * @date    2023/6/14 18:12
+     * @param activityId
+     * @return  void
+     */
+    @Override
+    public void deleteMgtActivity(String activityId){
+        Activity activity = this.getById(activityId);
+        if (activity.getActivityStatus() != 0) {
+            throw new ServiceException(AppErrorConstant.ACTIVITY_ING_DELETE);
+        }
+        activity.setDelFlag(1);
+        activity.setActivityStatus(-1);
+        this.saveOrUpdate(activity);
+    }
 }

--
Gitblit v1.7.1