From 1051f8d5815fc5886c663e40733901e83583affa Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 22 八月 2024 15:39:24 +0800
Subject: [PATCH] 用户信息
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 238 insertions(+), 2 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 8197d08..0443f6c 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,8 +1,48 @@
package com.ruoyi.account.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+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;
+import com.ruoyi.other.api.vo.CouponListVOVO;
+import com.ruoyi.account.api.vo.ExchangeRecordVO;
+import com.ruoyi.account.service.TAppCouponService;
+import com.ruoyi.account.service.TAppUserCarService;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.vo.SiteInfoVO;
+import com.ruoyi.common.core.domain.R;
+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.common.security.service.TokenService;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.feignClient.OtherClient;
+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.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -15,6 +55,202 @@
@RestController
@RequestMapping("/t-app-coupon")
public class TAppCouponController {
+ @Autowired
+ private TAppCouponService tAppCouponService;
+ @Resource
+ private OtherClient otherClient;
+ @Autowired
+ private TAppUserCarService appUserCarService;
+ @Autowired
+ private TokenService tokenService;
+ @Autowired
+ private ChargingPileClient chargingPileClient;
+ @Autowired
+ private ChargingOrderClient chargingOrderClient;
+
+ @Resource
+ private ChargingGunClient chargingGunClient;
+
+
+ /**
+ * 小程序扫一扫 添加车辆
+ * @param dto
+ * @return
+ */
+ @ApiOperation(value = "添加车辆", tags = {"小程序-扫一扫"})
+ @PostMapping(value = "/scan/addCar")
+ public AjaxResult addCar(@RequestBody TAppUserCar dto) {
+ dto.setAppUserId(tokenService.getLoginUserApplet().getUserId());
+ appUserCarService.save(dto);
+ return AjaxResult.success();
+ }
+ /**
+ * 查询用户可用优惠券数量
+ * @return
+ */
+ @ApiOperation(value = "通过充电枪id和预付金额获取电站详情", tags = {"小程序-扫一扫"})
+ @GetMapping(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();
+ data.setChargingGunId(id);
+ List<TAppUserCar> cars = appUserCarService.list(new QueryWrapper<TAppUserCar>()
+ .eq("app_user_id",tokenService.getLoginUserApplet().getUserId())
+ .orderByDesc("create_time"));
+ Long data1 = chargingOrderClient.getCar().getData();
+ if (!cars.isEmpty()){
+ if (data1 == -1){
+ // 没有充电订单 展示最新添加的车辆
+ data.setLicensePlate(cars.get(0).getLicensePlate());
+ data.setVehicleBrand(cars.get(0).getVehicleBrand());
+ data.setId(cars.get(0).getId());
+ }else{
+ for (TAppUserCar car : cars) {
+ if (car.getId().equals(data1)){
+ data.setLicensePlate(car.getLicensePlate());
+ data.setVehicleBrand(car.getVehicleBrand());
+ data.setId(car.getId());
+ }
+ }
+ }
+ }
+ 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);
+ }
+ /**
+ * 查询用户可用优惠券数量
+ * @param dto
+ * @return
+ */
+ @ApiOperation(value = "选择优惠券分页查询", tags = {"小程序-扫一扫"})
+ @PostMapping(value = "/scan/couponList")
+ public AjaxResult<PageInfo<CouponListVOVO>> couponList(@RequestBody CouponListDto dto) {
+ PageInfo<CouponListVOVO> res = tAppCouponService.couponList(dto);
+ return AjaxResult.ok(res);
+ }
+ /**
+ * 选择车辆列表 远程调用
+ * @return
+ */
+ @ApiOperation(value = "选择车辆列表", tags = {"小程序-扫一扫"})
+ @PostMapping(value = "/scan/carList")
+ public R<List<TAppUserCar>> carList() {
+ List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
+ .eq("app_user_id",tokenService.getLoginUserApplet().getUserId()));
+ return R.ok(appUserId);
+ }
+
+ /**
+ * 管理后台远程调用 根据优惠券ids 查询对应的发放数量
+ * @return 优惠券ids 查询每个优惠券的发放数量
+ */
+ @PostMapping("/getCountByCouponIds/{couponIds}")
+ public R<List<Integer>> getCountByCouponIds(@PathVariable("couponIds")String couponIds) {
+ // 最终结果 和优惠券id一一对应
+ List<Integer> res = new ArrayList<>();
+ String[] split = couponIds.split(",");
+ // 查询每个优惠券的发放数量
+ for (String s : split) {
+ res.add(tAppCouponService.list(new QueryWrapper<TAppCoupon>()
+ .eq("coupon_id", s)
+ .eq("del_flag",0)
+ ).size());
+ }
+ return R.ok(res);
+ }
+
+ /**
+ * 后台远程调用 根据优惠券id 查询使用数量
+ * @param couponId
+ * @return
+ */
+ @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());
+ }
+ /**
+ * 后台远程调用 根据优惠券id 查询领取记录
+ * @param couponId
+ * @return
+ */
+ @PostMapping("/getExchangeRecordByCouponId")
+ public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
+ return R.ok(tAppCouponService.pagelist(couponId));
+ }
+
+ @Autowired
+ private TAppUserTagService appUserTagService;
+ @Autowired
+ private TAppUserService appUserService;
+
+ /**
+ * 后台远程调用 给用户发放优惠券
+ */
+ @PostMapping("/grantCoupon")
+ public R grantCoupon(@RequestBody GrantCouponDto dto){
+ List<TAppCoupon> res = new ArrayList<>();
+ 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);
+ res.add(tAppCoupon);
+ }
+ tAppCouponService.saveBatch(res);
+ break;
+ case 2:
+ // 根据市codes 查询用户ids
+ List<Long> collect1 = appUserService.list(new QueryWrapper<TAppUser>()
+ .in("city_code", Arrays.asList(dto.getCityCode().split(","))))
+ .stream().map(TAppUser::getId).collect(Collectors.toList());
+ 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);
+ 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);
+ res.add(tAppCoupon);
+ }
+ tAppCouponService.saveBatch(res);
+ break;
+ }
+
+
+
+ return R.ok();
+ }
}
--
Gitblit v1.7.1