From 80835bcc12f4788c1a88da61e623b362e57f1cb1 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 24 八月 2024 09:31:43 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 104 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java index 29dd21b..14de43b 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java @@ -1,19 +1,33 @@ package com.ruoyi.other.controller; +import java.time.LocalDateTime; +import com.ruoyi.account.api.dto.GrantCouponDto; +import com.ruoyi.account.api.feignClient.AppCouponClient; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.dto.AppGoodQuery; +import com.ruoyi.common.core.dto.PointChangeDto; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; -import com.ruoyi.other.api.domain.TActivity; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.feignClient.OrderClient; +import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.common.core.dto.ExchangeDto; import com.ruoyi.other.api.dto.AdvertisingDTO; import com.ruoyi.other.api.dto.GoodsDTO; import com.ruoyi.other.service.TActivityService; -import com.ruoyi.other.service.TAdvertisingService; +import com.ruoyi.other.service.TCouponService; import com.ruoyi.other.service.TGoodsService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; /** * <p> @@ -30,6 +44,16 @@ private TGoodsService goodsService; @Autowired private TActivityService activityService; + @Resource + private TokenService tokenService; + @Resource + private AppUserClient appUserClient; + @Resource + private OrderClient orderClient; + @Resource + private AppCouponClient appCouponClient; + @Resource + private TCouponService couponService; @@ -45,8 +69,8 @@ @GetMapping("/delete") @ApiOperation(tags = {"管理后台-商品管理"},value = "商品删除") - public AjaxResult delete(Integer id) { - goodsService.removeById(id); + public AjaxResult delete(String ids) { + goodsService.removeBatchByIds(Arrays.asList(ids.split(","))); return AjaxResult.success(); } @@ -62,7 +86,7 @@ @GetMapping("/getInfo") - @ApiOperation(tags = {"管理后台-商品管理"},value = "商品查看详情") + @ApiOperation(tags = {"管理后台-商品管理","小程序-兑换商城"},value = "商品查看详情") public AjaxResult<TGoods> getInfo(Integer id) { return AjaxResult.ok(goodsService.getById(id)); } @@ -74,6 +98,81 @@ public AjaxResult<PageInfo<TGoods>> pageList(@RequestBody GoodsDTO dto) { return AjaxResult.ok(goodsService.pageList(dto)); } + + + @ApiOperation(tags = {"小程序-兑换商城"},value = "商品列表分页查询") + @PostMapping(value = "/app/pageList") + public AjaxResult<PageInfo<TGoods>> apppageList(@RequestBody AppGoodQuery appGoodQuery) { + return AjaxResult.ok(goodsService.pageList1(appGoodQuery)); + } + + @ApiOperation(tags = {"小程序-兑换商城"},value = "积分兑换商品") + @PostMapping(value = "/app/shop") + public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) { + //检查当前用户积分是否够 + Long userId = tokenService.getLoginUserApplet().getUserId(); + Integer point = 0; + + if (exchangeDto.getGoodType()==1) { + //查询当前商品信息 + TGoods good = goodsService.getById(exchangeDto.getGoodId()); + point = good.getRedeemPoints(); + //检查当前用户是否到达兑换上限 + Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData(); + if (good.getLimitExchangeTimes() != -1 && count >= good.getLimitExchangeTimes()) { + return AjaxResult.error("当前用户已到达兑换上限"); + } + TAppUser user = appUserClient.getUserById(userId).getData(); + if (user.getPoints()<good.getRedeemPoints()){ + return AjaxResult.error("当前用户积分不足"); + } + }else { + TCoupon coupon = couponService.getById(exchangeDto.getGoodId()); + point = coupon.getRedeemPoints(); + + Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData(); + if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) { + return AjaxResult.error("当前用户已到达兑换上限"); + } + } + exchangeDto.setPoint(point); + //生成积分兑换成功的订单 + R<Long> longR = orderClient.exchangeCreate(exchangeDto); + if (exchangeDto.getGoodType()==2) { + //如果是优惠卷,赠送优惠卷给用户 + GrantCouponDto grantCouponDto = new GrantCouponDto(); + grantCouponDto.setUserIds(userId.toString()); + grantCouponDto.setCouponId(exchangeDto.getGoodId()); + grantCouponDto.setWaysToObtain(1); + grantCouponDto.setEndTime(LocalDateTime.now()); + appCouponClient.grantCoupon(grantCouponDto); + } + //生成消耗积分的记录 + PointChangeDto pointChangeDto = new PointChangeDto(); + pointChangeDto.setUserId(userId); + pointChangeDto.setPoints(point); + pointChangeDto.setRemark(longR.getData().toString()); + pointChangeDto.setType(6); + appUserClient.change(pointChangeDto); + return AjaxResult.success(); + + + } + +// @ApiOperation(tags = {"小程序-兑换商城"},value = "支付商品") +// @PostMapping(value = "/app/pay") +// public AjaxResult<PageInfo<TGoods>> pay(@RequestBody ExchangeDto exchangeDto) { +// +// //创建订单 +// +// //计算价格 +// +// //调起支付 +// +// +// +// } + /** * 根据id获取商品信息 -- Gitblit v1.7.1