From 348f9287e2961e9c73bfdd85bce345afd7e918ee Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 30 九月 2024 17:21:03 +0800
Subject: [PATCH] bug修改
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 158 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 137 insertions(+), 21 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index cee2bbe..f675847 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -1,12 +1,17 @@
package com.ruoyi.account.controller;
+import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.account.api.dto.CouponListDto;
import com.ruoyi.account.api.dto.GrantCouponDto;
import com.ruoyi.account.api.model.TAppCoupon;
+import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.account.api.model.TAppUserTag;
import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.service.TAppUserService;
+import com.ruoyi.account.service.TAppUserTagService;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
@@ -27,13 +32,18 @@
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
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 javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -48,20 +58,37 @@
public class TAppCouponController {
@Autowired
private TAppCouponService tAppCouponService;
+ @Resource
+ private OtherClient otherClient;
@Autowired
private TAppUserCarService appUserCarService;
@Autowired
private TokenService tokenService;
- @Autowired
+ @Resource
private ChargingPileClient chargingPileClient;
- @Autowired
+ @Resource
private ChargingOrderClient chargingOrderClient;
-
@Resource
private ChargingGunClient chargingGunClient;
+ @Autowired
+ private TAppUserTagService appUserTagService;
+ @Autowired
+ private TAppUserService appUserService;
+
+ /**
+ * 后台退款 回退优惠券使用状态
+ * @return
+ */
+ @PostMapping(value = "/refund/{id}")
+ public R refund(@PathVariable("id") String id) {
+ TAppCoupon byId = tAppCouponService.getById(id);
+ byId.setStatus(1);
+ tAppCouponService.updateById(byId);
+ return R.ok();
+ }
/**
* 小程序扫一扫 添加车辆
* @param dto
@@ -78,17 +105,20 @@
* 查询用户可用优惠券数量
* @return
*/
- @ApiOperation(value = "通过桩编号获取电站详情", tags = {"小程序-扫一扫"})
- @GetMapping(value = "/scan/siteInfo")
- public AjaxResult<SiteInfoVO> siteInfo(Integer id) {
+ @ApiOperation(value = "通过充电枪id和预付金额获取电站详情", tags = {"小程序-扫一扫"})
+ @PostMapping(value = "/scan/siteInfo")
+ public AjaxResult<SiteInfoVO> siteInfo(Integer id, BigDecimal money) {
TChargingGun chargingGun = chargingGunClient.getChargingGunById(id).getData();
TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId()).getData();
- SiteInfoVO data = chargingPileClient.getSiteInfoByNumber(chargingPile.getNumber().toString()).getData();
+ SiteInfoVO data = chargingPileClient.getSiteInfoByNumber1(chargingPile.getCode().toString()).getData();
data.setChargingGunId(id);
+ data.setChargeMode(chargingGun.getChargeMode());
List<TAppUserCar> cars = appUserCarService.list(new QueryWrapper<TAppUserCar>()
.eq("app_user_id",tokenService.getLoginUserApplet().getUserId())
.orderByDesc("create_time"));
Long data1 = chargingOrderClient.getCar().getData();
+ Integer data2 = otherClient.getAddCarIntegral().getData();
+ data.setIntegral(data2);
if (!cars.isEmpty()){
if (data1 == -1){
// 没有充电订单 展示最新添加的车辆
@@ -105,6 +135,15 @@
}
}
}
+ BigDecimal electrovalence = data.getElectrovalence();
+ BigDecimal vipElectrovalence = data.getVipElectrovalence();
+ // 计算预付金额能充多少度普通电
+ BigDecimal divide1 = money.divide(electrovalence, 2, BigDecimal.ROUND_HALF_UP);
+ // 计算冲会员电能充多少度会员电
+ BigDecimal divide = vipElectrovalence.divide(electrovalence, 2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal subtract = divide.subtract(divide1);
+ // 优惠金额
+ data.setMoney(subtract.multiply(vipElectrovalence).setScale(2, BigDecimal.ROUND_HALF_UP));
return AjaxResult.ok(data);
}
/**
@@ -134,8 +173,8 @@
* 管理后台远程调用 根据优惠券ids 查询对应的发放数量
* @return 优惠券ids 查询每个优惠券的发放数量
*/
- @PostMapping("/getCountByCouponIds")
- public R<List<Integer>> getCountByCouponIds(@RequestParam("couponIds") String couponIds) {
+ @PostMapping("/getCountByCouponIds/{couponIds}")
+ public R<List<Integer>> getCountByCouponIds(@PathVariable("couponIds")String couponIds) {
// 最终结果 和优惠券id一一对应
List<Integer> res = new ArrayList<>();
String[] split = couponIds.split(",");
@@ -154,8 +193,8 @@
* @param couponId
* @return
*/
- @PostMapping("/getUseCountByCouponId")
- public R<Integer> getUseCountByCouponId(Integer couponId){
+ @PostMapping("/getUseCountByCouponId/{couponId}")
+ public R<Integer> getUseCountByCouponId(@PathVariable("couponId") Integer couponId){
return R.ok(tAppCouponService.list(new QueryWrapper<TAppCoupon>()
.eq("coupon_id", couponId)
.eq("status",2)).size());
@@ -166,27 +205,104 @@
* @return
*/
@PostMapping("/getExchangeRecordByCouponId")
- public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
+ public R<List<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
return R.ok(tAppCouponService.pagelist(couponId));
}
+
+ @ApiOperation(value = "优惠卷可用数量", tags = {"小程序-站点管理-站点详情"})
+ @GetMapping(value = "/couponCount")
+ public R<Long> couponCount() {
+ LocalDateTime now = LocalDateTime.now();
+ return R.ok(tAppCouponService.lambdaQuery().le(TAppCoupon::getStartTime, now).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, 1).count());
+ }
+
+
/**
* 后台远程调用 给用户发放优惠券
*/
@PostMapping("/grantCoupon")
public R grantCoupon(@RequestBody GrantCouponDto dto){
+ dto.setWaysToObtain(3);
List<TAppCoupon> res = new ArrayList<>();
- for (String s : dto.getUserIds().split(",")) {
- TAppCoupon tAppCoupon = new TAppCoupon();
- tAppCoupon.setAppUserId(Long.valueOf(s));
- tAppCoupon.setCouponId(dto.getCouponId());
- tAppCoupon.setEndTime(dto.getEndTime());
- tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
- tAppCoupon.setStatus(1);
- res.add(tAppCoupon);
+ TCoupon coupon = otherClient.getCouponById(dto.getCouponId()).getData();
+
+ switch (dto.getType()){
+ case 1:
+ // 根据标签ids 查询用户ids
+ List<Long> collect = appUserTagService.list(new QueryWrapper<TAppUserTag>()
+ .in("user_tag_id", Arrays.asList(dto.getTags().split(","))))
+ .stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList());
+ for (Long l : collect) {
+ TAppCoupon tAppCoupon = new TAppCoupon();
+ tAppCoupon.setAppUserId(l);
+ tAppCoupon.setCouponId(dto.getCouponId());
+ tAppCoupon.setEndTime(dto.getEndTime());
+ tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
+ tAppCoupon.setStatus(1);
+ tAppCoupon.setCouponJson(JSON.toJSONString(coupon));
+ res.add(tAppCoupon);
+ }
+ tAppCouponService.saveBatch(res);
+ break;
+ case 2:
+ // 根据市codes 查询用户ids
+ List<Long> collect1 = new ArrayList<>();
+ // 根据市codes 查询用户ids
+ if (StringUtils.hasLength(dto.getProvinceCode())){
+ List<Long> collect2 = appUserService.list(new QueryWrapper<TAppUser>()
+ .in("province_code", Arrays.asList(dto.getProvinceCode().split(","))))
+ .stream().map(TAppUser::getId).collect(Collectors.toList());
+ collect1.addAll(collect2);
+ }
+ if (StringUtils.hasLength(dto.getCityCode())){
+ List<Long> collect2 = appUserService.list(new QueryWrapper<TAppUser>()
+ .in("city_code", Arrays.asList(dto.getCityCode().split(","))))
+ .stream().map(TAppUser::getId).collect(Collectors.toList());
+ collect1.addAll(collect2);
+ }
+ for (Long l : collect1) {
+ TAppCoupon tAppCoupon = new TAppCoupon();
+ tAppCoupon.setAppUserId(l);
+ tAppCoupon.setCouponId(dto.getCouponId());
+ tAppCoupon.setEndTime(dto.getEndTime());
+ tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
+ tAppCoupon.setStatus(1);
+ tAppCoupon.setCouponJson(JSON.toJSONString(coupon));
+ res.add(tAppCoupon);
+ }
+ tAppCouponService.saveBatch(res);
+ break;
+ case 3:
+ for (String s : dto.getUserIds().split(",")) {
+ TAppCoupon tAppCoupon = new TAppCoupon();
+ tAppCoupon.setAppUserId(Long.valueOf(s));
+ tAppCoupon.setCouponId(dto.getCouponId());
+ tAppCoupon.setEndTime(dto.getEndTime());
+ tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
+ tAppCoupon.setStatus(1);
+ tAppCoupon.setCouponJson(JSON.toJSONString(coupon));
+ res.add(tAppCoupon);
+ }
+ tAppCouponService.saveBatch(res);
+ break;
}
- tAppCouponService.saveBatch(res);
+
+
+
return R.ok();
}
+
+
+ /**
+ * 根据id获取优惠券领取记录
+ * @param id
+ * @return
+ */
+ @PostMapping("/getAppCouponById")
+ public R<TAppCoupon> getAppCouponById(@RequestParam("id") Long id){
+ TAppCoupon appCoupon = tAppCouponService.getById(id);
+ return R.ok(appCoupon);
+ }
}
--
Gitblit v1.7.1