From 25494bca2766974ec5dc85244907b5e1e5642404 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 17 八月 2024 15:56:13 +0800
Subject: [PATCH] 8.17
---
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java | 25 +++++
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java | 53 ++++++++++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java | 35 +++++++
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/InfoCouponDto.java | 35 +++++++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipCouponDto.java | 10 ++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 87 +++++++++++++++--
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java | 3
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java | 12 +-
8 files changed, 244 insertions(+), 16 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java
new file mode 100644
index 0000000..28613f6
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java
@@ -0,0 +1,25 @@
+package com.ruoyi.account.api.dto;
+
+import com.ruoyi.account.api.model.TAppUserCar;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class AppUserInfoDto {
+ @ApiModelProperty("1是0否")
+ private Integer isVip;
+ @ApiModelProperty("vip结束时间")
+ private LocalDateTime vipExpireTime;
+ @ApiModelProperty("当天是否签到")
+ private Integer isSign;
+ @ApiModelProperty("当前积分")
+ private Integer points;
+ @ApiModelProperty("当前优惠卷数量")
+ private Integer couponNum;
+ @ApiModelProperty("当前绑定的车辆")
+ private List<TAppUserCar> userCars;
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/InfoCouponDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/InfoCouponDto.java
new file mode 100644
index 0000000..1af4b89
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/InfoCouponDto.java
@@ -0,0 +1,35 @@
+package com.ruoyi.account.api.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class InfoCouponDto {
+ @ApiModelProperty(value = "优惠券名称")
+ @TableField("name")
+ private String name;
+ @ApiModelProperty(value = "优惠方式(1=满减,2=抵扣)")
+ @TableField("preferential_mode")
+ private Integer preferentialMode;
+
+ @ApiModelProperty(value = "优惠金额")
+ @TableField("discount_amount")
+ private BigDecimal discountAmount;
+ @ApiModelProperty(value = "满减条件为0时无条件")
+ @TableField("meet_the_conditions")
+ private BigDecimal meetTheConditions;
+
+ @ApiModelProperty(value = "折扣")
+ @TableField("discount")
+ private BigDecimal discount;
+ @ApiModelProperty(value = "结束时间")
+ @TableField("end_time")
+ private LocalDateTime endTime;
+ @ApiModelProperty(value = "开始时间")
+ @TableField("start_time")
+ private LocalDateTime startTime;
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
index d6a6fa3..b3bea84 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
@@ -45,6 +45,9 @@
@ApiModelProperty(value = "结束时间")
@TableField("end_time")
private LocalDateTime endTime;
+ @ApiModelProperty(value = "开始时间")
+ @TableField("start_time")
+ private LocalDateTime startTime;
@ApiModelProperty(value = "获得方式(1=积分兑换,2=现金购买)")
@TableField("ways_to_obtain")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipCouponDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipCouponDto.java
new file mode 100644
index 0000000..f725386
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipCouponDto.java
@@ -0,0 +1,10 @@
+package com.ruoyi.other.api.dto;
+
+import com.ruoyi.other.api.domain.TCoupon;
+import lombok.Data;
+
+@Data
+public class VipCouponDto {
+ private TCoupon tCoupon;
+ private Integer num;
+ }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java
new file mode 100644
index 0000000..0783c96
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java
@@ -0,0 +1,35 @@
+package com.ruoyi.other.api.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.License;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+@Data
+public class VipInfoDto {
+
+ @ApiModelProperty("月卡价格")
+ private BigDecimal monthlyCard;
+ @ApiModelProperty("季卡价格")
+ private BigDecimal seasonCard;
+ @ApiModelProperty("年卡价格")
+ private BigDecimal annualCard;
+ @ApiModelProperty("最高抵扣价格")
+ private BigDecimal maximumDeduction;
+ @ApiModelProperty("抵扣次数")
+ private Integer discountTimes;
+
+ @ApiModelProperty(value = "双倍积分开关(0=否,1=是)")
+ private Integer doubleIntegration;
+
+ @ApiModelProperty(value = "商城专享价开关(0=否,1=是)")
+ private Integer mallExclusivePrice;
+ @ApiModelProperty(value = "可赠送的优惠卷列表")
+
+ private List<VipCouponDto> vipCouponDtos;
+
+ @ApiModelProperty(value = "最高总折扣")
+ private BigDecimal totalDiscount;
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index b8205c8..c65c39b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -1,6 +1,7 @@
package com.ruoyi.account.controller;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -21,15 +22,18 @@
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TExchangeOrder;
import com.ruoyi.other.api.domain.TCompany;
+import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TUserTag;
import com.ruoyi.other.api.feignClient.OtherClient;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.Duration;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
@@ -70,6 +74,13 @@
@Resource
private ExchangeOrderClient exchangeOrderClient;
+ @Resource
+ private TAppUserSignService signService;
+ @Resource
+ private TAppCouponService appCouponService;
+ @Resource
+ private TAppUserCarService carService;
+
@ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"})
@@ -91,6 +102,20 @@
}
return R.ok(data);
}
+
+
+ @ApiOperation(value = "单位下拉框", tags = {"用户管理-单位管理"})
+ @PostMapping(value = "/unit/select")
+ public R<List<TCompany>> unitSelect() {
+ UnitListQueryDto unitListQueryDto = new UnitListQueryDto();
+ unitListQueryDto.setPageCurr(1);
+ unitListQueryDto.setPageSize(9999);
+ //拿到单位列表
+ R<Page<TCompany>> pageR = otherClient.queryUnitPage(unitListQueryDto);
+
+ return R.ok(pageR.getData().getRecords());
+ }
+
@ApiOperation(value = "单位管理添加或编辑", tags = {"用户管理-单位管理"})
@PostMapping(value = "/unit/addOrUpdate")
@@ -262,7 +287,7 @@
return R.ok(userDetailDto);
}
- @ApiOperation(value = "用户详情积分明细", tags = {"用户管理-用户列表"})
+ @ApiOperation(value = "用户详情积分明细", tags = {"后台-用户管理-用户列表","小程序-个人中心"})
@PostMapping(value = "/user/points/page")
public R<Page<TAppUserIntegralChange>> pointsDetail(@RequestBody PointsQueryDto pointsQueryDto) {
List<Integer> types = new ArrayList<>();
@@ -298,7 +323,7 @@
}
- @ApiOperation(value = "用户详情积分明细", tags = {"用户管理-用户列表"})
+ @ApiOperation(value = "冻结解冻用户", tags = {"后台-用户管理-用户列表"})
@PostMapping(value = "/user/status/change")
public R pointsDetail(@RequestBody UserChangeDto userChangeDto) {
TAppUser appUser = appUserService.getById(userChangeDto.getUserId());
@@ -306,14 +331,56 @@
appUserService.updateById(appUser);
return R.ok();
}
-// @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"})
-// @PostMapping(value = "/user/info")
-// public R info() {
-// Long userId = 1L;
-// TAppUser byId = appUserService.getById(userId);
-//
-//
-// }
+
+ @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"})
+ @PostMapping(value = "/user/info")
+ public R<AppUserInfoDto> info() {
+ Long userId = 1L;
+ TAppUser byId = appUserService.getById(userId);
+ AppUserInfoDto appUserInfoDto = new AppUserInfoDto();
+
+ //判断会员
+ if (byId.getVipEndTime()==null||byId.getVipEndTime().isBefore(LocalDateTime.now())){
+ appUserInfoDto.setIsVip(0);
+ }else {
+ appUserInfoDto.setIsVip(1);
+ appUserInfoDto.setVipExpireTime(byId.getVipEndTime());
+ }
+ //判断当天是否签到
+ Long count = signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).count();
+ appUserInfoDto.setIsSign(count>0?1:0);
+ //获取当前拥有的优惠卷数量
+ Long coupons = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).eq(TAppCoupon::getStatus, 1).count();
+ appUserInfoDto.setCouponNum(Math.toIntExact(coupons));
+ //当前绑定的车辆
+ List<TAppUserCar> list = carService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).list();
+ appUserInfoDto.setUserCars(list);
+ return R.ok(appUserInfoDto);
+
+
+ }
+
+ @ApiOperation(value = "优惠卷列表不分页(1可使用2不可用)", tags = {"小程序-个人中心"})
+ @PostMapping(value = "/user/coupon")
+ public R<List<InfoCouponDto>> userCoupon(@RequestParam("type") Integer type) {
+ LocalDateTime now = LocalDateTime.now();
+
+ List<InfoCouponDto> couponDtos = new ArrayList<>();
+ List<TAppCoupon> list = appCouponService.lambdaQuery().le(TAppCoupon::getStartTime, now).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, type).list();
+ for (TAppCoupon tAppCoupon : list) {
+ TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class);
+ InfoCouponDto infoCouponDto = new InfoCouponDto();
+ BeanUtils.copyProperties(coupon,infoCouponDto);
+ couponDtos.add(infoCouponDto);
+
+ }
+
+
+ return R.ok(couponDtos);
+
+
+ }
+
@ApiOperation(value = "赠送会员", tags = {"用户管理-用户列表"})
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
index 0012af4..b477141 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
@@ -82,12 +82,12 @@
//获取detail里结束时间大于当前时间的数据,并将enttime延长
TAppUserVipDetail tAppUserVipDetail = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, nowUser.getId()).orderByDesc(TAppUserVipDetail::getEndTime).last("limit 1").one();
- TAppUserVipDetail newAppUser = new TAppUserVipDetail();
- newAppUser.setAppUserId(nowUser.getId());
- newAppUser.setStartTime(tAppUserVipDetail.getEndTime());
- newAppUser.setEndTime(tAppUserVipDetail.getEndTime().plusMonths(plusDay).minusDays(1));
- newAppUser.setVipId(vipId);
- tAppUserVipDetailService.save(newAppUser);
+// TAppUserVipDetail newAppUser = new TAppUserVipDetail();
+// newAppUser.setAppUserId(nowUser.getId());
+// newAppUser.setStartTime(tAppUserVipDetail.getEndTime());
+ tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plusMonths(plusDay).minusDays(1));
+// newAppUser.setVipId(vipId);
+ tAppUserVipDetailService.updateById(tAppUserVipDetail);
// tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plusDays(plusDay));
// tAppUserVipDetailService.updateById(tAppUserVipDetail);
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index 6868a19..dfd4f46 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -1,13 +1,19 @@
package com.ruoyi.other.controller;
+import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.dto.SendCouponDto;
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.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.domain.TUserTag;
import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.dto.VipCouponDto;
+import com.ruoyi.other.api.dto.VipInfoDto;
+import com.ruoyi.other.service.TCouponService;
import com.ruoyi.other.service.TVipService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -16,6 +22,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -33,6 +42,8 @@
public class TVipController {
@Autowired
private TVipService vipService;
+ @Resource
+ private TCouponService couponService;
@PostMapping("/saveVip")
@ApiOperation(value = "会员添加")
public AjaxResult saveVip(@RequestBody TVip dto) {
@@ -122,5 +133,47 @@
}
}
+
+ @ApiOperation(value = "会员信息", tags = {"小程序-个人中心"})
+ @PostMapping("/vipInfo")
+ public AjaxResult vipInfo() {
+ List<VipInfoDto> vipInfoDtos = new ArrayList<>();
+ List<TVip> vips = vipService.lambdaQuery().eq(TVip::getReveal, 1).list();
+ for (TVip vip : vips) {
+ VipInfoDto vipInfoDto = new VipInfoDto();
+ vipInfoDto.setMonthlyCard(vip.getMonthlyCardReveal()==1?vip.getMonthlyCard():null);
+ vipInfoDto.setSeasonCard(vip.getSeasonCardReveal()==1?vip.getSeasonCard():null);
+ vipInfoDto.setAnnualCard(vip.getAnnualCardReveal()==1?vip.getAnnualCard():null);
+ vipInfoDto.setMaximumDeduction(vip.getMaximumDeduction());
+ vipInfoDto.setDiscountTimes(vip.getDiscountTimes());
+ vipInfoDto.setDoubleIntegration(vip.getDoubleIntegration());
+ vipInfoDto.setMallExclusivePrice(vip.getMallExclusivePrice());
+ List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
+ List<VipCouponDto> vipCouponDtos = new ArrayList<>();
+ if (!javaList.isEmpty()){
+ for (SendCouponDto sendCouponDto : javaList) {
+ VipCouponDto vipCouponDto = new VipCouponDto();
+ TCoupon byId = couponService.getById(sendCouponDto.getId());
+ vipCouponDto.setNum(sendCouponDto.getNumber());
+ vipCouponDto.setTCoupon(byId);
+ vipCouponDtos.add(vipCouponDto);
+ }
+ }
+
+ vipInfoDto.setVipCouponDtos(vipCouponDtos);
+
+ //计算总折扣
+ BigDecimal total = BigDecimal.ZERO;
+ total = total.add(vip.getMaximumDeduction().multiply(BigDecimal.valueOf(vip.getDiscountTimes())));
+ for (VipCouponDto vipCouponDto : vipCouponDtos) {
+ TCoupon tCoupon = vipCouponDto.getTCoupon();
+ total.add(tCoupon.getDiscount());
+ }
+ vipInfoDto.setTotalDiscount(total);
+ vipInfoDtos.add(vipInfoDto);
+ }
+ return AjaxResult.success(vipInfoDtos);
+ }
+
}
--
Gitblit v1.7.1