From 985e48474a3decdcab3d5d99dc0b5211b381c2a6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 02 七月 2025 09:19:45 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang into 2.0
---
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java | 148 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 134 insertions(+), 14 deletions(-)
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
index baa4810..d6fc5dc 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
@@ -1,18 +1,43 @@
package com.ruoyi.goods.controller.business;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.goods.api.domain.LotteryEvent;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.goods.api.domain.TLotteryEvent;
+import com.ruoyi.goods.api.domain.TLotteryEventPrize;
+import com.ruoyi.goods.domain.dto.DelShopLotteryDrawDto;
+import com.ruoyi.goods.domain.dto.ShopLotteryDrawListDto;
+import com.ruoyi.goods.domain.dto.ShopWinningRecordDto;
+import com.ruoyi.goods.domain.vo.ShopLotteryDrawListVo;
+import com.ruoyi.goods.domain.vo.ShopLotteryDrawVo;
+import com.ruoyi.goods.domain.vo.ShopWinningRecordVo;
+import com.ruoyi.goods.service.goods.GoodsService;
+import com.ruoyi.goods.service.lottery.ILotteryEventPrizeService;
import com.ruoyi.goods.service.lottery.ILotteryEventService;
-import org.springframework.web.bind.annotation.*;
+import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
+import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.poji.shop.Shop;
+import com.ruoyi.system.api.service.RemoteMemberService;
+import com.ruoyi.system.api.service.RemoteShopService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.List;
/**
* @author zhibing.pu
* @Date 2025/5/8 18:13
*/
+@Api(value = "商户端商户相关接口", tags = "商户端商户相关接口", description = "商户端商户相关接口")
@RestController
@RequestMapping("/mer/lotteryEvent")
public class MerLotteryEventController {
@@ -20,19 +45,114 @@
@Resource
private ILotteryEventService lotteryEventService;
+ @Resource
+ private RemoteShopService remoteShopService;
- /**
- * 根据开启方式获取活动列表
- *
- * @param activityType
- * @return
- */
- @ResponseBody
- @PostMapping("/getLotteryEventList")
- public R<List<LotteryEvent>> getLotteryEventList(@RequestParam("activityType") Integer activityType) {
- List<LotteryEvent> list = lotteryEventService.list(new LambdaQueryWrapper<LotteryEvent>().eq(LotteryEvent::getActivityType, activityType)
- .eq(LotteryEvent::getDelFlag, 0).last(" and now() between start_time and end_time"));
- return R.ok(list);
+ @Resource
+ private ILotteryEventPrizeService lotteryEventPrizeService;
+
+ @Resource
+ private IUserLotteryEventService userLotteryEventService;
+
+ @Resource
+ private GoodsService goodsService;
+
+ @Resource
+ private RemoteMemberService remoteMemberService;
+
+
+ @RequestMapping(value = "/getShopLotteryDrawList", method = RequestMethod.POST)
+ @ApiOperation(value = "获取门店抽奖活动列表【2.0】")
+ public R<ShopLotteryDrawVo> getShopLotteryDrawList(@RequestBody ShopLotteryDrawListDto dto) {
+ Page<ShopLotteryDrawListVo> page = new Page<>();
+ page.setSize(dto.getPageSize());
+ page.setCurrent(dto.getPageNum());
+ Shop shop = remoteShopService.getShop(dto.getShopId()).getData();
+ ShopLotteryDrawVo shopLotteryDrawVo = new ShopLotteryDrawVo();
+ shopLotteryDrawVo.setLotteryDrawFlag(shop.getLotteryDrawFlag());
+ List<ShopLotteryDrawListVo> shopLotteryDrawList = lotteryEventService.getShopLotteryDrawList(page, dto.getShopId());
+ page.setRecords(shopLotteryDrawList);
+ shopLotteryDrawVo.setPage(page);
+ return R.ok(shopLotteryDrawVo);
+ }
+
+ @RequestMapping(value = "/delShopLotteryDraw", method = RequestMethod.POST)
+ @ApiOperation(value = "门店删除抽奖活动【2.0】")
+ public R delShopLotteryDraw(@RequestBody DelShopLotteryDrawDto dto) {
+ TLotteryEvent lotteryEvent = lotteryEventService.getById(dto.getId());
+ if (null == lotteryEvent) {
+ return R.fail("抽奖活动不存在");
+ }
+ if (LocalDateTime.now().isAfter(lotteryEvent.getStartTime())) {
+ return R.fail("活动已开始,不能删除!");
+ }
+ if (!lotteryEvent.getShopId().equals(dto.getShopId())) {
+ return R.fail("删除失败,该活动不属于该店铺");
+ }
+ lotteryEvent.setDelFlag(1);
+ lotteryEventService.updateById(lotteryEvent);
+ return R.ok();
+ }
+
+
+ @RequestMapping(value = "/getShopLotteryDrawInfo", method = RequestMethod.POST)
+ @ApiOperation(value = "获取门店抽奖详情【2.0】")
+ public R<TLotteryEvent> getShopLotteryDrawInfo(@RequestBody DelShopLotteryDrawDto dto) {
+ TLotteryEvent lotteryEvent = lotteryEventService.getById(dto.getId());
+ if (null == lotteryEvent || 1 == lotteryEvent.getDelFlag()) {
+ return R.fail("抽奖活动不存在");
+ }
+ if (!lotteryEvent.getShopId().equals(dto.getShopId().intValue())) {
+ return R.fail("查询失败");
+ }
+ List<TLotteryEventPrize> list = lotteryEventPrizeService.list(new LambdaQueryWrapper<TLotteryEventPrize>().eq(TLotteryEventPrize::getLotteryEventId, dto.getId()));
+ lotteryEvent.setPrizes(list);
+ return R.ok(lotteryEvent);
+ }
+
+
+ @RequestMapping(value = "/editShopLotteryDraw", method = RequestMethod.POST)
+ @ApiOperation(value = "保存门店抽奖【2.0】")
+ public R editShopLotteryDraw(@RequestBody TLotteryEvent lotteryEvent) {
+ if (lotteryEvent.getId() == null) {
+ lotteryEvent.setId(IdUtils.simpleUUID());
+ String weiXinQrCode = remoteMemberService.getWeiXinQrCode("id=" + lotteryEvent.getId() + "&activityType=" + lotteryEvent.getActivityType(), "/pages/turntable/index");
+ lotteryEvent.setWxMiniProgramQrCode(weiXinQrCode);
+ }
+ lotteryEvent.setUpdateTime(LocalDateTime.now());
+ lotteryEvent.setUpdateUserId(SecurityUtils.getUserId());
+ lotteryEventService.saveOrUpdate(lotteryEvent);
+ //先删除原有的奖品
+ lotteryEventPrizeService.remove(new LambdaQueryWrapper<TLotteryEventPrize>().eq(TLotteryEventPrize::getLotteryEventId, lotteryEvent.getId()));
+ //添加新的奖品
+ List<TLotteryEventPrize> prizes = lotteryEvent.getPrizes();
+ prizes.forEach(s -> {
+ s.setId(IdUtils.simpleUUID());
+ if (s.getPrizeType() == 2 && StringUtils.isEmpty(s.getObjectName())) {
+ Goods goods = goodsService.getById(s.getObjectId());
+ s.setObjectName(goods.getGoodsName());
+ }
+ s.setLotteryEventId(lotteryEvent.getId());
+ });
+ lotteryEventPrizeService.saveOrUpdateBatch(prizes);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/getShopWinningRecord", method = RequestMethod.POST)
+ @ApiOperation(value = "获取中奖记录列表【2.0】")
+ public R<Page<ShopWinningRecordVo>> getShopWinningRecord(@RequestBody ShopWinningRecordDto dto) {
+ TLotteryEvent lotteryEvent = lotteryEventService.getById(dto.getId());
+ if (null == lotteryEvent) {
+ return R.fail("抽奖活动不存在");
+ }
+ if (!lotteryEvent.getShopId().equals(dto.getShopId().intValue())) {
+ return R.fail("查询失败");
+ }
+ Page<ShopWinningRecordVo> page = new Page<>();
+ page.setSize(dto.getPageSize());
+ page.setCurrent(dto.getPageNum());
+ List<ShopWinningRecordVo> shopWinningRecordVoList = userLotteryEventService.getShopWinningRecord(page, dto.getId());
+ return R.ok(page.setRecords(shopWinningRecordVoList));
}
--
Gitblit v1.7.1