| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package com.ruoyi.app.mendian;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ruoyi.common.annotation.Anonymous;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.system.domain.PromotionActivity;
- import com.ruoyi.system.dto.PromotionActivitySaveRequest;
- import com.ruoyi.system.service.IPromotionActivityService;
- import com.ruoyi.system.utils.Auth;
- import com.ruoyi.system.utils.JwtUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- /**
- * 商家端促销活动管理
- *
- * 2026-10-19 满额免运(008 T074):保存请求改用 PromotionActivitySaveRequest DTO
- * (与旧请求体字段兼容),操作者ID从 token 解析并传入服务层做门店归属校验;
- * 列表对 type=5 返回按日期计算的有效状态。
- */
- @RestController
- @RequestMapping("/system/shPromotionActivity")
- public class ShPromotionActivityController extends BaseController
- {
- @Autowired
- private IPromotionActivityService promotionActivityService;
- /**
- * 查询商家促销活动列表
- */
- @Anonymous
- @Auth
- @GetMapping("/list")
- public AjaxResult list(@RequestHeader String token,
- @RequestParam Integer page,
- @RequestParam Integer size,
- @RequestParam Long storeId,
- @RequestParam(required = false) Integer type,
- @RequestParam(required = false) Integer status)
- {
- IPage<PromotionActivity> pageParam = new Page<>(page, size);
- IPage<PromotionActivity> result = promotionActivityService.selectActivityPage(pageParam, storeId, type, status);
- return success(result);
- }
- /**
- * 获取促销活动详细信息(含规则)
- */
- @Anonymous
- @Auth
- @GetMapping("/{id}")
- public AjaxResult getInfo(@RequestHeader String token, @PathVariable("id") Long id)
- {
- PromotionActivity activity = promotionActivityService.selectActivityWithRules(id, resolveOperator(token));
- return success(activity);
- }
- /**
- * 新增促销活动
- */
- @Anonymous
- @Auth
- @PostMapping
- public AjaxResult add(@RequestHeader String token, @RequestBody PromotionActivitySaveRequest request)
- {
- PromotionActivity activity = request.toActivity();
- return toAjax(promotionActivityService.createActivity(activity, request.getRules(), resolveOperator(token)));
- }
- /**
- * 结束促销活动
- */
- @Anonymous
- @Auth
- @PutMapping("/{id}/end")
- public AjaxResult end(@RequestHeader String token, @PathVariable("id") Long id)
- {
- return toAjax(promotionActivityService.endActivity(id, resolveOperator(token)));
- }
- /**
- * 修改促销活动(仅未开始;type=5 按有效状态判定)
- */
- @Anonymous
- @Auth
- @PutMapping
- public AjaxResult edit(@RequestHeader String token, @RequestBody PromotionActivitySaveRequest request)
- {
- PromotionActivity activity = request.toActivity();
- return toAjax(promotionActivityService.updateActivity(activity, request.getRules(), resolveOperator(token)));
- }
- /**
- * 删除促销活动(仅未开始)
- */
- @Anonymous
- @Auth
- @DeleteMapping("/{id}")
- public AjaxResult remove(@RequestHeader String token, @PathVariable("id") Long id)
- {
- return toAjax(promotionActivityService.deleteActivity(id, resolveOperator(token)));
- }
- /**
- * 从 token 解析操作者用户ID(@Auth 切面已完成验签,这里只取可信id)
- */
- private Long resolveOperator(String token)
- {
- String userId = new JwtUtil().getusid(token);
- return userId == null ? null : Long.valueOf(userId);
- }
- }
|