| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- package com.tzy.app.controller;
- import java.util.Arrays;
- import java.util.List;
- import com.github.pagehelper.PageHelper;
- import com.tzy.app.dto.ActDto;
- import com.tzy.app.dto.AppActivityConfigDto;
- import com.tzy.common.core.domain.MsgResult;
- import com.tzy.common.core.domain.entity.SysUser;
- import com.tzy.common.dto.OutDTO;
- import com.tzy.common.exception.ServiceException;
- import com.tzy.common.utils.ShiroUtils;
- import com.tzy.common.utils.StringUtils;
- import com.tzy.coupon.card.dto.CouponDto;
- import com.tzy.coupon.card.service.CardBaseInfoService;
- import com.tzy.coupon.card.service.CardRecordService;
- import com.tzy.coupon.card.service.IAppUserCardRecordService;
- import com.tzy.framework.util.RedisUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.beanutils.ConvertUtils;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.*;
- import com.tzy.common.annotation.Log;
- import com.tzy.common.enums.BusinessType;
- import com.tzy.app.domain.AppActConfig;
- import com.tzy.app.service.IAppActConfigService;
- import com.tzy.common.core.controller.BaseController;
- import com.tzy.common.core.domain.AjaxResult;
- import com.tzy.common.utils.poi.ExcelUtil;
- import com.tzy.common.core.page.TableDataInfo;
- import javax.annotation.Resource;
- /**
- * appActConfigController
- *
- * @author tencheer
- * @date 2022-08-08
- */
- @Slf4j
- @Api("商家活动管理")
- @RestController
- @RequestMapping("/act/config")
- public class AppActConfigController extends BaseController {
- @Resource private IAppActConfigService appActConfigService;
- @Resource private CardBaseInfoService cardBaseInfoService;
- @Resource private CardRecordService cardRecordService;
- @Resource private RedisUtils redisUtils;
- /**
- * 查询appActConfig列表
- */
- @ApiOperation("获取商家活动列表")
- @Log(title = "appActConfig", businessType = BusinessType.SEARCH)
- @PostMapping("/page")
- public TableDataInfo page(@RequestBody AppActConfig appActConfig) {
- PageHelper.startPage(appActConfig.getPage(), appActConfig.getRows());
- List<AppActivityConfigDto> actConfigList = appActConfigService.selectAppActConfigList(appActConfig);
- return getDataTable(actConfigList);
- }
- /**
- * 修改appActConfig
- */
- @ApiOperation("根据ID查询商家活动")
- @Log(title = "appActConfig", businessType = BusinessType.SEARCH)
- @GetMapping("/find/{id}")
- public OutDTO find(@PathVariable("id") Long id) {
- AppActivityConfigDto appActConfig = appActConfigService.selectAppActConfigById(id);
- return OutDTO.ok().put("actConfig", appActConfig);
- }
- /**
- * 新增保存appActConfig
- */
- @ApiOperation("新增商家活动")
- @Log(title = "appActConfig", businessType = BusinessType.INSERT)
- @PostMapping("/add")
- public OutDTO addSave(@RequestBody AppActConfig appActConfig) {
- appActConfigService.insertAppActConfig(appActConfig);
- return OutDTO.ok();
- }
- /**
- * 修改保存appActConfig
- */
- @ApiOperation("修改商家活动")
- @Log(title = "appActConfig", businessType = BusinessType.UPDATE)
- @PostMapping("/update")
- public OutDTO editSave(@RequestBody AppActConfig appActConfig) {
- appActConfigService.updateAppActConfig(appActConfig);
- return OutDTO.ok();
- }
- /**
- * 删除appActConfig
- */
- @ApiOperation("删除商家活动")
- @Log(title = "appActConfig", businessType = BusinessType.DELETE)
- @PostMapping( "/del")
- public OutDTO delete(String ids) {
- appActConfigService.deleteAppActConfigByIds(ids);
- return OutDTO.ok();
- }
- @ApiOperation("获取商家活动绑定的优惠券")
- @Log(title = "appActConfig", businessType = BusinessType.SEARCH)
- @GetMapping( "/cards/{id}")
- public OutDTO findByIds(@PathVariable("id") Long id){
- // 根据ID查询活动
- AppActivityConfigDto appActConfig = appActConfigService.selectAppActConfigById(id);
- if(appActConfig == null){
- throw new ServiceException("活动不存在");
- }
- String couponIds = appActConfig.getCouponIds();
- if(StringUtils.isEmpty(couponIds)){
- throw new ServiceException("优惠券信息不存在");
- }
- String[] splits = couponIds.split(",");
- Long[] couponIdArr = (Long[]) ConvertUtils.convert(splits, Long.class);
- List<CouponDto> couponDtoList = cardBaseInfoService.findCardByIds(couponIdArr);
- couponDtoList.forEach(couponDto -> {
- int usedNum = cardRecordService.countUsedByCardId(couponDto.getId()); // 优惠券已使用数量
- couponDto.setUsedNum(usedNum);
- });
- return OutDTO.ok().put("couponList", couponDtoList);
- }
- @ApiOperation("开启关闭商家活动")
- @Log(title = "appActConfig", businessType = BusinessType.UPDATE)
- @PostMapping("/open")
- public OutDTO open(@RequestBody AppActConfig appActConfig){
- Long id = appActConfig.getId();
- if(id == null){
- throw new ServiceException("参数id不能为空");
- }
- Long status = appActConfig.getStatus();
- if(status == null){
- throw new ServiceException("参数status不能为空");
- }
- appActConfigService.updateStatus(id, status);
- redisUtils.del("app_act_cache"); // 每次开启关闭商家活动删除缓存
- return OutDTO.ok();
- }
- }
|