From 0f4459e4201fdc19185b7dd03215871f036acd70 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 28 五月 2025 16:45:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java | 198 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 195 insertions(+), 3 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java index 7462917..22124d1 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java @@ -1,21 +1,47 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.account.api.dto.GrantCouponDto; import com.ruoyi.account.api.feignClient.AppCouponClient; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.log.enums.OperatorType; +import com.ruoyi.common.security.annotation.Logical; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.other.api.domain.Region; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.dto.GoodsDTO; import com.ruoyi.other.query.CouponQuery; +import com.ruoyi.other.service.IRegionService; import com.ruoyi.other.service.TActivityService; import com.ruoyi.other.service.TCouponService; import com.ruoyi.other.service.TGoodsService; +import com.ruoyi.system.api.domain.SysUser; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -33,24 +59,58 @@ @Autowired private AppCouponClient appCouponClient; + + @Autowired + private IRegionService regionService; + + + + + + + /** + * 远程调用 根据名称 查询优惠券ids + * @return + */ + @PostMapping("/getCouponIdsByName/{name}") + public R<List<Integer>> getCouponIdsByName(@PathVariable("name")String name) { + List<Integer> collect = tCouponService.list(new QueryWrapper<TCoupon>() + .eq("name", name)).stream().map(TCoupon::getId).collect(Collectors.toList()); + return R.ok(collect); + } + + + @RequiresPermissions(value = {"/coupon/add"}, logical = Logical.OR) @PostMapping("/saveGoods") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加") + @Log(title = "【优惠券管理】添加优惠券", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE) public AjaxResult saveActivity(@RequestBody TCoupon dto) { tCouponService.save(dto); return AjaxResult.success(); } + + + @RequiresPermissions(value = {"/coupon/del"}, logical = Logical.OR) @GetMapping("/delete") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券删除") - public AjaxResult delete(Integer id) { - tCouponService.removeById(id); + @Log(title = "【优惠券管理】删除优惠券", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) + public AjaxResult delete(String ids) { + tCouponService.removeBatchByIds(Arrays.asList(ids.split(","))); return AjaxResult.success(); } + + + @RequiresPermissions(value = {"/coupon/update"}, logical = Logical.OR) @PostMapping("/updateVip") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券修改") + @Log(title = "【优惠券管理】修改优惠券", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) public AjaxResult updateActivity(@RequestBody TCoupon dto) { tCouponService.updateById(dto); return AjaxResult.success(); } + + + @RequiresPermissions(value = {"/coupon/select"}, logical = Logical.OR) @GetMapping("/getInfo") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情") public AjaxResult<TCoupon> getInfo(Integer id) { @@ -61,16 +121,148 @@ byId.setUseCount(appCouponClient.getUseCountByCouponId(id).getData()); return AjaxResult.ok(byId); } + + + @RequiresPermissions(value = {"/coupon/select"}, logical = Logical.OR) @PostMapping("/exchangeRecord") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录") public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) { + List<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData(); + for (ExchangeRecordVO record : data) { + TCoupon byId = tCouponService.getById(record.getCouponId()); + if (byId!=null){ + if (byId.getDiscountAmount()!=null){ + record.setDiscountAmount("¥"+byId.getDiscountAmount()); - return AjaxResult.ok(null); + }else{ + record.setDiscountAmount("¥"+byId.getMaximumDiscountAmount()); + } + if (Objects.equals(byId.getMeetTheConditions(), BigDecimal.ZERO)){ + record.setMeetTheConditions("无门槛"); + }else{ + record.setMeetTheConditions("满"+byId.getMeetTheConditions()+"元可用"); + } + record.setCoverPicture(byId.getCoverPicture()); + record.setDetailsPicture(byId.getDetailsPicture()); + } + } + PageInfo<ExchangeRecordVO> exchangeRecordVOPageInfo = new PageInfo<>(1, 99999999); + exchangeRecordVOPageInfo.setRecords(data); + return AjaxResult.ok(exchangeRecordVOPageInfo); } + + + + @RequiresPermissions(value = {"/coupon/send"}, logical = Logical.OR) + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券") + @PostMapping(value = "/grantCoupon") + @Log(title = "【优惠券管理】发放优惠券", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE) + public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) { + TCoupon byId = tCouponService.getById(dto.getCouponId()); + Integer waysToObtain = byId.getWaysToObtain(); + dto.setWaysToObtain(waysToObtain); + switch (byId.getValidityPeriodMode()){ + case 1: + dto.setEndTime(byId.getEndTime()); + break; + case 2: + dto.setEndTime(LocalDateTime.now().plusDays(byId.getDays())); + break; + } + if (StringUtils.hasLength(dto.getProvinceCode())){ + for (String s : dto.getProvinceCode().split(",")) { + Region code = regionService.getOne(new QueryWrapper<Region>() + .eq("code", s)); + List<String> collect = regionService.list(new QueryWrapper<Region>() + .eq("parent_id", code.getId())).stream().map(Region::getCode).collect(Collectors.toList()); + StringBuilder temp = new StringBuilder(); + for (String string : collect) { + temp.append(string).append(","); + } + if (StringUtils.hasLength(dto.getCityCode())){ + String s1 = dto.getCityCode() + "," + temp; + // 去除最后一位字符 + dto.setCityCode(s1.substring(0, s1.length() - 1)); + }else{ + String substring = temp.substring(0, temp.length() - 1); + dto.setCityCode(substring); + } + } + + } + appCouponClient.grantCoupon(dto); + return AjaxResult.success(); + } + + + @RequiresPermissions(value = {"/coupon"}, logical = Logical.OR) @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询") @PostMapping(value = "/pageList") public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) { return AjaxResult.ok(tCouponService.pageList(dto)); } + + + @RequiresPermissions(value = {"/vipSetting/list"}, logical = Logical.OR) + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询") + @PostMapping(value = "/pageList3") + public AjaxResult<List<TCoupon>> pageList() { + List<TCoupon> tCoupons = new ArrayList<>(); + + List<TCoupon> list = tCouponService.lambdaQuery().eq(TCoupon::getStatus, 1) + .orderByDesc(TCoupon::getCreateTime).list(); + for (TCoupon tCoupon : list) { + if (tCoupon.getValidityPeriodMode()==1){ + if (LocalDateTime.now().isBefore(tCoupon.getEndTime())){ + tCoupons.add(tCoupon); + } + }else{ + tCoupons.add(tCoupon); + } + } + return AjaxResult.ok(tCoupons); + } + + /** + * 小程序远程调用 获取优惠券信息 + */ + @PostMapping(value = "/getCouponInfoByCouponIds") + public R<List<CouponListVOVO>> getCouponInfoByCouponIds(@RequestBody List<CouponListVOVO> list) { + for (CouponListVOVO couponListVOVO : list) { + TCoupon byId = tCouponService.getById(couponListVOVO.getCouponId()); + BeanUtils.copyProperties(byId,couponListVOVO); + couponListVOVO.setCouponName(byId.getName()); + } + return R.ok(list); + } + + /** + * 根据id获取优惠券信息 + * @param id + * @return + */ + @PostMapping(value = "/getCouponById1/{id}") + public R<TCoupon> getCouponById1(@PathVariable(value = "id") Integer id){ + TCoupon coupon = tCouponService.getById(id); + return R.ok(coupon); + } + + @PostMapping(value = "/getCouponById") + public R<TCoupon> getCouponById(@RequestParam("id") Integer id){ + TCoupon coupon = tCouponService.getById(id); + return R.ok(coupon); + } + + + /** + * 修改优惠券 + * @param coupon + * @return + */ + @PostMapping(value = "/updateCoupon") + public R updateCoupon(@RequestBody TCoupon coupon){ + tCouponService.updateById(coupon); + return R.ok(); + } } -- Gitblit v1.7.1