| | |
| | | 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.common.core.utils.uuid.IdUtils; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.goods.api.domain.LotteryEvent; |
| | | import com.ruoyi.goods.api.domain.LotteryEventPrize; |
| | | 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.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 { |
| | |
| | | @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; |
| | | |
| | | |
| | | @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) { |
| | | LotteryEvent 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<LotteryEvent> getShopLotteryDrawInfo(@RequestBody DelShopLotteryDrawDto dto) { |
| | | LotteryEvent lotteryEvent = lotteryEventService.getById(dto.getId()); |
| | | if (null == lotteryEvent) { |
| | | return R.fail("抽奖活动不存在"); |
| | | } |
| | | if (!lotteryEvent.getShopId().equals(dto.getShopId())) { |
| | | return R.fail("查询失败"); |
| | | } |
| | | List<LotteryEventPrize> list = lotteryEventPrizeService.list(new LambdaQueryWrapper<LotteryEventPrize>().eq(LotteryEventPrize::getLotteryEventId, dto.getId())); |
| | | lotteryEvent.setPrizes(list); |
| | | return R.ok(lotteryEvent); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/editShopLotteryDraw", method = RequestMethod.POST) |
| | | @ApiOperation(value = "保存门店抽奖【2.0】") |
| | | public R editShopLotteryDraw(@RequestBody LotteryEvent lotteryEvent) { |
| | | if (lotteryEvent.getId() == null) { |
| | | lotteryEvent.setId(IdUtils.simpleUUID()); |
| | | } |
| | | lotteryEvent.setUpdateTime(LocalDateTime.now()); |
| | | lotteryEvent.setUpdateUserId(SecurityUtils.getUserId()); |
| | | lotteryEventService.saveOrUpdate(lotteryEvent); |
| | | //先删除原有的奖品 |
| | | lotteryEventPrizeService.remove(new LambdaQueryWrapper<LotteryEventPrize>().eq(LotteryEventPrize::getLotteryEventId, lotteryEvent.getId())); |
| | | //添加新的奖品 |
| | | List<LotteryEventPrize> 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) { |
| | | LotteryEvent lotteryEvent = lotteryEventService.getById(dto.getId()); |
| | | if (null == lotteryEvent) { |
| | | return R.fail("抽奖活动不存在"); |
| | | } |
| | | if (!lotteryEvent.getShopId().equals(dto.getShopId())) { |
| | | 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)); |
| | | } |
| | | |
| | | |