From 9fde9f917552f659d41fcfce5094f429a29b8ead Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 16 一月 2025 16:26:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java | 203 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 199 insertions(+), 4 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
index bf24222..491ed1a 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -1,12 +1,43 @@
package com.ruoyi.account.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.model.UserPoint;
+import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.account.service.UserPointService;
+import com.ruoyi.account.vo.TransferPoint;
+import com.ruoyi.account.vo.UserPointDetailVO;
+import com.ruoyi.account.vo.UserPointStatistics;
+import com.ruoyi.account.vo.UserPointVO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.feignClient.OrderClient;
+import com.ruoyi.order.model.Order;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.YearMonth;
+import java.util.List;
/**
* <p>
- * 前端控制器
+ * 前端控制器
* </p>
*
* @author luodangjia
@@ -14,7 +45,171 @@
*/
@RestController
@RequestMapping("/user-point")
-public class UserPointController {
+@Api(tags = "个人积分")
+public class UserPointController extends BaseController {
+ @Resource
+ private UserPointService userPointService;
+ @Resource
+ private AppUserService appUserService;
+ @Resource
+ private TokenService tokenService;
+
+ /**
+ * 获取个人积分
+ */
+ @GetMapping("/getUserPoint")
+ @ApiOperation("获取个人积分")
+ public R<UserPointVO> getUserPoint() {
+ return R.ok(userPointService.getUserPoint(SecurityUtils.getUserId()));
+ }
+
+ /**
+ * 获取变更明细
+ */
+ @GetMapping("/getUserPointDetail")
+ @ApiOperation("获取变更明细")
+ public R<PageInfo<UserPointDetailVO>> getUserPointDetail(@ApiParam("指定日期") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date,
+ @ApiParam("变动类型(1=消费积分,2=返佣积分,3=拉新人积分,4=兑换商品 " +
+ "5 = 门店业绩积分 6 =门店返佣积分7=技师业绩积分8 =转赠积分 9 =做工积分 " +
+ "10 =注册积分)") Integer type, Integer pageCurr, Integer pageSize) {
+ LocalDateTime startTime = null;
+ LocalDateTime endTime = null;
+ if (date != null) {
+ // 将 createTime 设置为当天的开始时间 (00:00)
+ startTime = date.atStartOfDay();
+
+ // 使用 YearMonth 来获取该月的最后一天
+ YearMonth yearMonth = YearMonth.from(date);
+ LocalDate lastDayOfMonth = yearMonth.atEndOfMonth();
+
+ // 将最后一天转换为 LocalDateTime,并设置为当天的最后一秒 (23:59:59.999)
+ endTime = lastDayOfMonth.atTime(LocalTime.MAX);
+ }
+
+ PageInfo<UserPointDetailVO> userPointDetail = userPointService.getUserPointDetail(SecurityUtils.getUserId(), startTime, endTime, type, pageCurr, pageSize);
+ return R.ok(userPointDetail);
+ }
+
+ /**
+ * 转赠积分
+ */
+ @PostMapping("/transferPoint")
+ @ApiOperation("转赠积分")
+ public R<Void> transferPoint(@RequestBody TransferPoint transferPoint) {
+ return userPointService.transferPoint(transferPoint.getPoint(), transferPoint.getPhone());
+ }
+
+
+ /**
+ * 保存积分流水记录
+ *
+ * @param userPoint
+ * @return
+ */
+ @PostMapping("/saveUserPoint")
+ public R saveUserPoint(@RequestBody UserPoint userPoint) {
+ userPointService.save(userPoint);
+ return R.ok();
+ }
+
+
+ /**
+ * 积分统计
+ */
+ @GetMapping("/statistics")
+ @ApiOperation(value = "积分统计", tags = "管理后台-财务统计-用户积分统计")
+ public R<UserPointStatistics> statistics(UserPoint userPoint) {
+ return R.ok(userPointService.getStatistics(userPoint));
+ }
+
+ /**
+ * 变更记录
+ */
+ @GetMapping("/list")
+ @ApiOperation(value = "积分变更记录", tags = "管理后台-财务统计-用户积分统计")
+ public R<IPage<UserPoint>> list(UserPoint userPoint) {
+ IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
+ return R.ok(userPointPage);
+ }
+ @Resource
+ private OrderClient orderClient;
+
+ @GetMapping("/user/list")
+ @ApiOperation(value = "积分管理-用户积分明细(必传用户id)", tags = "后台")
+ public R<Page<UserPoint>> userlist(UserPoint userPoint) {
+ Page<UserPoint> page = userPointService.lambdaQuery()
+ .eq(userPoint.getType()!=null,UserPoint::getType, userPoint.getType())
+ .eq(UserPoint::getAppUserId, userPoint.getAppUserId())
+ .orderByDesc(UserPoint::getCreateTime)
+ .page(Page.of(userPoint.getPageNum(), userPoint.getPageSize()));
+ for (UserPoint record : page.getRecords()) {
+ if (record.getType()==1 || record.getType()==11){
+ Order data = orderClient.getOrderById(record.getObjectId()).getData();
+ if (data!=null){
+ record.setExtention(data.getOrderNumber());
+ }
+ }
+ int i = record.getHistoricalPoint() - record.getBalance();
+ if (i>0){
+ record.setVariableType(2);
+ }else if (i<0){
+ record.setVariableType(1);
+ }else{
+ record.setVariableType(0);
+ }
+ }
+ return R.ok(page);
+ }
+
+
+
+ /**
+ * 导出
+ */
+ @GetMapping("/export")
+ @ApiOperation(value = "积分变更记录导出", tags = "管理后台-财务统计-用户积分统计")
+ public void export(HttpServletResponse response, UserPoint userPoint) {
+ IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(1, Integer.MAX_VALUE), userPoint);
+ List<UserPoint> userPointList = userPointPage.getRecords();
+ ExcelUtil<UserPoint> util = new ExcelUtil<>(UserPoint.class);
+ util.exportExcel(response, userPointList, "用户积分统计");
+ }
+
+
+ /**
+ * 获取积分变动记录
+ * @param userPoint
+ * @return
+ */
+ @PostMapping("/getUserPointList")
+ public R<List<UserPoint>> getUserPointList(@RequestBody UserPoint userPoint){
+ LambdaQueryWrapper<UserPoint> queryWrapper = new LambdaQueryWrapper<>();
+ if(null != userPoint.getType()){
+ queryWrapper.eq(UserPoint::getType, userPoint.getType());
+ }
+ if(null != userPoint.getObjectId()){
+ queryWrapper.eq(UserPoint::getObjectId, userPoint.getObjectId());
+ }
+ if(null != userPoint.getAppUserId()){
+ queryWrapper.eq(UserPoint::getAppUserId, userPoint.getAppUserId());
+ }
+ List<UserPoint> list = userPointService.list(queryWrapper);
+ return R.ok(list);
+ }
+
+
+
+ /**
+ * 判断当天是否分享获得过积分
+ * @param appUserId
+ * @return
+ */
+ @PostMapping("/judgmentDailyShare")
+ public R<Boolean> judgmentDailyShare(@RequestParam("appUserId") Long appUserId){
+ long count = userPointService.count(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUserId)
+ .eq(UserPoint::getType, 4).last(" and DATE_FORMAT(NOW(), '%Y-%m-%d') = DATE_FORMAT(create_time, '%Y-%m-%d')"));
+ return R.ok(count != 0);
+ }
}
--
Gitblit v1.7.1