From 9ff0db3f0cca9eab06d04a9773d725a1acc831d8 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期二, 23 十二月 2025 12:00:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java | 136 +++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBigGiftPackageOrderMapper.java | 6
ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml | 25 ++
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProfitPageListVo.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/model/TIntegralSettlement.java | 15 +
ruoyi-system/src/main/resources/mapper/system/TBigGiftPackageOrderMapper.xml | 36 ++++
ruoyi-system/src/main/java/com/ruoyi/system/vo/UserProfitPageListVo.java | 42 ++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java | 67 +++++++
ruoyi-system/src/main/java/com/ruoyi/system/query/UserProfitPageListQuery.java | 28 +++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommissionTransactionFlowServiceImpl.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java | 7
ruoyi-system/src/main/java/com/ruoyi/system/query/UserPromotionPageListQuery.java | 26 ++
ruoyi-system/src/main/java/com/ruoyi/system/model/TCommissionTransactionFlow.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/vo/UserPromotionPageListVo.java | 53 +++++
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/UserIndexController.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java | 52 +++++
ruoyi-system/src/main/java/com/ruoyi/system/service/TBigGiftPackageOrderService.java | 6
ruoyi-system/src/main/java/com/ruoyi/system/vo/PromotionPageListVo.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java | 6
20 files changed, 506 insertions(+), 13 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
index bed98f8..b8cd676 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
@@ -12,6 +12,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.BasePage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.exception.ServiceException;
@@ -28,7 +29,7 @@
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.*;
import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.IntegralChangeRecordVo;
+import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
@@ -44,6 +45,7 @@
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
@@ -94,6 +96,9 @@
@Autowired
private TBigGiftPackageOrderService bigGiftPackageOrderService;
+
+ @Autowired
+ private TIntegralSettlementService integralSettlementService;
@ApiOperation(value = "用户管理分页列表")
@@ -567,5 +572,134 @@
return R.ok(tBigGiftPackageOrderPage);
}
+
+ @ApiOperation(value = "用户- 推广记录")
+ @PostMapping("/promotionPageList")
+ public R<Page<UserPromotionPageListVo>> promotionPageList(@RequestBody @Valid UserPromotionPageListQuery query) {
+ Page<UserPromotionPageListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
+ List<UserPromotionPageListVo> list = appUserService.userPromotionPageList(page,query);
+ page.setRecords(list);
+ return R.ok(page);
+ }
+
+
+
+ @ApiOperation(value = "用户-推广记录导出")
+ @PostMapping(value = "/exportUserPromotion")
+ @Log(title = "推广记录-导出", businessType = BusinessType.EXPORT)
+ public void exportUserPromotion(@RequestBody @Valid UserPromotionPageListQuery query){
+
+ List<UserPromotionPageListVo> list = appUserService.userPromotionPageListExport(query);
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), UserPromotionPageListVo.class, list);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("推广记录导出信息.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ @ApiOperation(value = "用户收益明细")
+ @PostMapping("/profitUserPageList")
+ public R<Page<UserProfitPageListVo>> profitUserPageList(@RequestBody @Valid UserProfitPageListQuery query) {
+ Page<UserProfitPageListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
+ List<UserProfitPageListVo> list = bigGiftPackageOrderService.profitUserPageList(page,query);
+
+ page.setRecords(list);
+ return R.ok(page);
+ }
+
+
+ @ApiOperation(value = "用户收益明细导出")
+ @PostMapping(value = "/exportUserProfit")
+ @Log(title = "收益明细-导出", businessType = BusinessType.EXPORT)
+ public void exportUserProfit(@RequestBody @Valid UserProfitPageListQuery query){
+
+ List<UserProfitPageListVo> list = bigGiftPackageOrderService.profitUserPageListExport(query);
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), UserProfitPageListVo.class, list);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("收益明细导出信息.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ @ApiOperation(value = "用户- 结算记录")
+ @PostMapping("/settlementPageList")
+ public R<Page<TIntegralSettlement>> settlementPageList(@RequestBody @Valid GoldChangeRecordQuery query) {
+ Page<TIntegralSettlement> page = new Page<>(query.getPageNum(), query.getPageSize());
+ LambdaQueryWrapper<TIntegralSettlement> queryWrapper = new LambdaQueryWrapper<TIntegralSettlement>().eq(TIntegralSettlement::getAppUserId, query.getUserId()).orderByDesc(TIntegralSettlement::getCreateTime);
+ Page<TIntegralSettlement> integralSettlementPage = integralSettlementService.page(page, queryWrapper);
+ return R.ok(integralSettlementPage);
+ }
+
+ @ApiOperation(value = "用户结算记录导出")
+ @PostMapping(value = "/exportSettlementPageList")
+ @Log(title = "结算记录-导出", businessType = BusinessType.EXPORT)
+ public void exportSettlementPageList(@RequestBody @Valid GoldChangeRecordQuery query){
+
+ List<TIntegralSettlement> list = integralSettlementService.list(new LambdaQueryWrapper<TIntegralSettlement>().eq(TIntegralSettlement::getAppUserId, query.getUserId()).orderByDesc(TIntegralSettlement::getCreateTime));
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TIntegralSettlement.class, list);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("结算记录导出信息.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+
}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/UserIndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/UserIndexController.java
index f277d35..5fde33b 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/UserIndexController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/UserIndexController.java
@@ -72,7 +72,7 @@
Date now = new Date();
List<TCommissionTransactionFlow> list = commissionTransactionFlowService.lambdaQuery().eq(TCommissionTransactionFlow::getAppUserId, userId)
.between(TCommissionTransactionFlow::getCreateTime, DateUtil.beginOfMonth(now), DateUtil.endOfMonth(now)).list();
- Integer total = list.stream().mapToInt(TCommissionTransactionFlow::getCommissionAmount).sum();
+ BigDecimal total = list.stream().map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
appUser.setEstimatedMonthlyIntegral(total);
}
return R.ok(appUser);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java
index d0546e8..874b5ab 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java
@@ -6,7 +6,9 @@
import com.ruoyi.system.model.TAppUser;
import com.ruoyi.system.query.AppUserListQuery;
import com.ruoyi.system.query.PromotionPageListQuery;
+import com.ruoyi.system.query.UserPromotionPageListQuery;
import com.ruoyi.system.vo.PromotionPageListVo;
+import com.ruoyi.system.vo.UserPromotionPageListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -33,4 +35,9 @@
List<TAppUser> transferPageUserList(@Param("query") AppUserListQuery query, @Param("pageInfo") PageInfo<TAppUser> pageInfo);
+ List<UserPromotionPageListVo> userPromotionPageList(@Param("page") Page<UserPromotionPageListVo> page, @Param("query") UserPromotionPageListQuery query);
+
+ List<UserPromotionPageListVo> userPromotionPageListExport(@Param("query") UserPromotionPageListQuery query);
+
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBigGiftPackageOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBigGiftPackageOrderMapper.java
index 6773fd0..c81f912 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBigGiftPackageOrderMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBigGiftPackageOrderMapper.java
@@ -6,7 +6,9 @@
import com.ruoyi.system.query.BigGiftPackageOrderQuery;
import com.ruoyi.system.query.GoldChangeRecordQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
+import com.ruoyi.system.query.UserProfitPageListQuery;
import com.ruoyi.system.vo.ProfitPageListVo;
+import com.ruoyi.system.vo.UserProfitPageListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -32,4 +34,8 @@
List<TBigGiftPackageOrder> pageOrderList(@Param("tBigGiftPackageOrderPage") Page<TBigGiftPackageOrder> tBigGiftPackageOrderPage, @Param("query") GoldChangeRecordQuery query);
+ List<UserProfitPageListVo> profitUserPageList(@Param("page") Page<UserProfitPageListVo> page, @Param("query") UserProfitPageListQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime);
+
+ List<UserProfitPageListVo> profitUserPageListExport(@Param("query") UserProfitPageListQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java
index 5fcd6f8..eede909 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java
@@ -129,6 +129,6 @@
@ApiModelProperty(value = "当月预估积分")
@TableField(exist = false)
- private Integer estimatedMonthlyIntegral;
+ private BigDecimal estimatedMonthlyIntegral;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCommissionTransactionFlow.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCommissionTransactionFlow.java
index 4cefaf3..5f48c40 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCommissionTransactionFlow.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCommissionTransactionFlow.java
@@ -58,7 +58,7 @@
@ApiModelProperty(value = "佣金收入金额")
@TableField("commission_amount")
- private Integer commissionAmount;
+ private BigDecimal commissionAmount;
@ApiModelProperty(value = "添加时间")
@TableField("create_time")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TIntegralSettlement.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TIntegralSettlement.java
index 0f9a650..7eb1ebf 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TIntegralSettlement.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TIntegralSettlement.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.model;
import java.math.BigDecimal;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
@@ -8,6 +10,8 @@
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -39,19 +43,25 @@
@ApiModelProperty(value = "结算周期")
@TableField("settlement_interval")
+ @Excel(name = "结算周期")
private String settlementInterval;
@ApiModelProperty(value = "结算开始时间")
@TableField("settlement_start_time")
+ @Excel(name = "结算开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate settlementStartTime;
@ApiModelProperty(value = "结算结束时间")
@TableField("settlement_end_time")
+ @Excel(name = "结算结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate settlementEndTime;
@ApiModelProperty(value = "合计结算积分")
@TableField("total_settlement_integral")
- private BigDecimal totalSettlementIntegral;
+ @Excel(name = "结算积分")
+ private Integer totalSettlementIntegral;
@ApiModelProperty(value = "添加时间")
@TableField("create_time")
@@ -71,9 +81,8 @@
@ApiModelProperty("备注")
@TableField("remark")
+ @Excel(name = "备注")
private String remark;
-
-
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/UserProfitPageListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/UserProfitPageListQuery.java
new file mode 100644
index 0000000..67781bb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/UserProfitPageListQuery.java
@@ -0,0 +1,28 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel("用户收益明细分页查询参数")
+public class UserProfitPageListQuery extends BasePage {
+ @ApiModelProperty("用户姓名")
+ private String userName;
+
+ @ApiModelProperty("用户手机号")
+ private String phone;
+
+ @ApiModelProperty("订单编号")
+ private String code;
+
+ @ApiModelProperty("下单时间 2022-02-02 - 2022-03-03")
+ private String createTime;
+
+ @ApiModelProperty("用户id")
+ @NotNull(message = "用户id不能为空")
+ private Integer userId;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/UserPromotionPageListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/UserPromotionPageListQuery.java
new file mode 100644
index 0000000..0c8fbca
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/UserPromotionPageListQuery.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+
+@Data
+@ApiModel(value = "用户推广记录列表查询参数")
+public class UserPromotionPageListQuery extends BasePage {
+
+
+ @ApiModelProperty(value = "用户名")
+ private String userName;
+
+ @ApiModelProperty(value = "联系电话")
+ private String phone;
+
+ @ApiModelProperty(value = "用户id")
+ @NotNull(message = "用户id不能为空")
+ private Integer userId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java
index 0d90d7e..ad4ef34 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java
@@ -8,8 +8,10 @@
import com.ruoyi.system.query.AppUserListQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
import com.ruoyi.system.query.PromotionPageListQuery;
+import com.ruoyi.system.query.UserPromotionPageListQuery;
import com.ruoyi.system.vo.ProfitPageListVo;
import com.ruoyi.system.vo.PromotionPageListVo;
+import com.ruoyi.system.vo.UserPromotionPageListVo;
import javax.validation.Valid;
import java.util.List;
@@ -47,4 +49,8 @@
PageInfo<TAppUser> transferPageUserList(AppUserListQuery query);
+ List<UserPromotionPageListVo> userPromotionPageList(Page<UserPromotionPageListVo> page, @Valid UserPromotionPageListQuery query);
+
+ List<UserPromotionPageListVo> userPromotionPageListExport(@Valid UserPromotionPageListQuery query);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBigGiftPackageOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBigGiftPackageOrderService.java
index d50df3f..82a8d42 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBigGiftPackageOrderService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBigGiftPackageOrderService.java
@@ -7,8 +7,10 @@
import com.ruoyi.system.query.BigGiftPackageOrderQuery;
import com.ruoyi.system.query.GoldChangeRecordQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
+import com.ruoyi.system.query.UserProfitPageListQuery;
import com.ruoyi.system.vo.ProfitPageListVo;
import com.ruoyi.system.vo.PlaceOrderVO;
+import com.ruoyi.system.vo.UserProfitPageListVo;
import javax.validation.Valid;
import java.util.List;
@@ -55,4 +57,8 @@
List<TBigGiftPackageOrder> pageOrderList(Page<TBigGiftPackageOrder> tBigGiftPackageOrderPage, GoldChangeRecordQuery query);
+ List<UserProfitPageListVo> profitUserPageList(Page<UserProfitPageListVo> page, @Valid UserProfitPageListQuery query);
+
+ List<UserProfitPageListVo> profitUserPageListExport(@Valid UserProfitPageListQuery query);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java
index da4176e..c3134aa 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java
@@ -10,8 +10,10 @@
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.AppUserListQuery;
import com.ruoyi.system.query.PromotionPageListQuery;
+import com.ruoyi.system.query.UserPromotionPageListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.PromotionPageListVo;
+import com.ruoyi.system.vo.UserPromotionPageListVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -108,7 +110,68 @@
BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
promotionPageListVo.setTotalConsume(totalOne);
- Integer totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TCommissionTransactionFlow::getCommissionAmount).sum();
+ BigDecimal totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ promotionPageListVo.setTotalIncome(totalIncome);
+
+ Integer totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TIntegralSettlement::getTotalSettlementIntegral).sum();
+ promotionPageListVo.setTotalSettledIncome(totalSettledIncome);
+
+ }
+ }
+
+
+ return list;
+ }
+ @Override
+ public List<UserPromotionPageListVo> userPromotionPageList(Page<UserPromotionPageListVo> page, UserPromotionPageListQuery query) {
+ List<UserPromotionPageListVo> list = this.baseMapper.userPromotionPageList(page,query);
+
+ if (!list.isEmpty()) {
+ List<Integer> userIds = list.stream().map(UserPromotionPageListVo::getUserId).collect(Collectors.toList());
+// List<TPhysicalGoodsOrder> physicalGoodsOrders = tPhysicalGoodsOrderService.list(new LambdaQueryWrapper<TPhysicalGoodsOrder>().in(TPhysicalGoodsOrder::getAppUserId, userIds).notIn(TPhysicalGoodsOrder::getStatus,Arrays.asList(1,4)));
+ List<TBigGiftPackageOrder> giftPackageOrders = tBigGiftPackageOrderService.list(new LambdaQueryWrapper<TBigGiftPackageOrder>().in(TBigGiftPackageOrder::getAppUserId, userIds).notIn(TBigGiftPackageOrder::getStatus,Arrays.asList(1,5)));
+
+
+ List<TCommissionTransactionFlow> flows = tCommissionTransactionFlowService.list(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getAppUserId, userIds));
+
+ List<TIntegralSettlement> settlements = tIntegralSettlementService.list(new LambdaQueryWrapper<TIntegralSettlement>().in(TIntegralSettlement::getAppUserId, userIds));
+ for (UserPromotionPageListVo promotionPageListVo : list) {
+// BigDecimal total = physicalGoodsOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TPhysicalGoodsOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ promotionPageListVo.setTotalConsume(totalOne);
+
+ BigDecimal totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
+ promotionPageListVo.setTotalIncome(totalIncome);
+
+ Integer totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TIntegralSettlement::getTotalSettlementIntegral).sum();
+ promotionPageListVo.setTotalSettledIncome(totalSettledIncome);
+
+ }
+ }
+
+
+ return list;
+ }
+
+ @Override
+ public List<UserPromotionPageListVo> userPromotionPageListExport(UserPromotionPageListQuery query) {
+ List<UserPromotionPageListVo> list = this.baseMapper.userPromotionPageListExport(query);
+
+ if (!list.isEmpty()) {
+ List<Integer> userIds = list.stream().map(UserPromotionPageListVo::getUserId).collect(Collectors.toList());
+// List<TPhysicalGoodsOrder> physicalGoodsOrders = tPhysicalGoodsOrderService.list(new LambdaQueryWrapper<TPhysicalGoodsOrder>().in(TPhysicalGoodsOrder::getAppUserId, userIds).notIn(TPhysicalGoodsOrder::getStatus,Arrays.asList(1,4)));
+ List<TBigGiftPackageOrder> giftPackageOrders = tBigGiftPackageOrderService.list(new LambdaQueryWrapper<TBigGiftPackageOrder>().in(TBigGiftPackageOrder::getAppUserId, userIds).notIn(TBigGiftPackageOrder::getStatus,Arrays.asList(1,5)));
+
+
+ List<TCommissionTransactionFlow> flows = tCommissionTransactionFlowService.list(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getAppUserId, userIds));
+
+ List<TIntegralSettlement> settlements = tIntegralSettlementService.list(new LambdaQueryWrapper<TIntegralSettlement>().in(TIntegralSettlement::getAppUserId, userIds));
+ for (UserPromotionPageListVo promotionPageListVo : list) {
+// BigDecimal total = physicalGoodsOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TPhysicalGoodsOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ promotionPageListVo.setTotalConsume(totalOne);
+
+ BigDecimal totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
promotionPageListVo.setTotalIncome(totalIncome);
Integer totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TIntegralSettlement::getTotalSettlementIntegral).sum();
@@ -139,7 +202,7 @@
BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
promotionPageListVo.setTotalConsume(totalOne);
- Integer totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TCommissionTransactionFlow::getCommissionAmount).sum();
+ BigDecimal totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
promotionPageListVo.setTotalIncome(totalIncome);
Integer totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TIntegralSettlement::getTotalSettlementIntegral).sum();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
index 80bb4c4..229e1bc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBigGiftPackageOrderServiceImpl.java
@@ -21,6 +21,7 @@
import com.ruoyi.system.query.BigGiftPackageOrderQuery;
import com.ruoyi.system.query.GoldChangeRecordQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
+import com.ruoyi.system.query.UserProfitPageListQuery;
import com.ruoyi.system.service.TBigGiftPackageOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.service.TCommissionTransactionFlowService;
@@ -28,6 +29,7 @@
import com.ruoyi.system.utils.ICBCPayUtil;
import com.ruoyi.system.utils.OrderCodeGenerator;
import com.ruoyi.system.vo.PlaceOrderVO;
+import com.ruoyi.system.vo.UserProfitPageListVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -221,6 +223,56 @@
}
@Override
+ public List<UserProfitPageListVo> profitUserPageList(Page<UserProfitPageListVo> page, UserProfitPageListQuery query) {
+ String sTime = null;
+ String eTime = null;
+ if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){
+ String[] split = query.getCreateTime().split(" - ");
+ sTime = split[0] + " 00:00:00";
+ eTime = split[1] + " 23:59:59";
+ }
+
+ List<UserProfitPageListVo> profitPageListVos = this.baseMapper.profitUserPageList(page,query, sTime, eTime);
+
+
+ if(!profitPageListVos.isEmpty()){
+ List<Integer> orderIds = profitPageListVos.stream().map(UserProfitPageListVo::getId).collect(Collectors.toList());
+ List<TCommissionTransactionFlow> tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getOrderId, orderIds));
+ for (UserProfitPageListVo profitPageListVo : profitPageListVos) {
+ List<TCommissionTransactionFlow> flows = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserId().equals(query.getUserId())).collect(Collectors.toList());
+ profitPageListVo.setSelfProfit(flows.stream().map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+ }
+
+ return profitPageListVos;
+ }
+
+ @Override
+ public List<UserProfitPageListVo> profitUserPageListExport(UserProfitPageListQuery query) {
+ String sTime = null;
+ String eTime = null;
+ if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){
+ String[] split = query.getCreateTime().split(" - ");
+ sTime = split[0] + " 00:00:00";
+ eTime = split[1] + " 23:59:59";
+ }
+
+ List<UserProfitPageListVo> profitPageListVos = this.baseMapper.profitUserPageListExport(query, sTime, eTime);
+
+
+ if(!profitPageListVos.isEmpty()){
+ List<Integer> orderIds = profitPageListVos.stream().map(UserProfitPageListVo::getId).collect(Collectors.toList());
+ List<TCommissionTransactionFlow> tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getOrderId, orderIds));
+ for (UserProfitPageListVo profitPageListVo : profitPageListVos) {
+ List<TCommissionTransactionFlow> flows = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserId().equals(query.getUserId())).collect(Collectors.toList());
+ profitPageListVo.setSelfProfit(flows.stream().map(TCommissionTransactionFlow::getCommissionAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+ }
+
+ return profitPageListVos;
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public PlaceOrderVO placeOrder(BigGiftPlaceOrderDTO dto, Integer appUserId, String openid) {
// 1. 校验商品是否存在
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommissionTransactionFlowServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommissionTransactionFlowServiceImpl.java
index 2045deb..15fe997 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommissionTransactionFlowServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommissionTransactionFlowServiceImpl.java
@@ -197,7 +197,7 @@
flow.setOrderId(orderId);
flow.setOrderType(orderType);
flow.setOrderPrice(orderPrice);
- flow.setCommissionAmount(commissionAmount.intValue());
+ flow.setCommissionAmount(commissionAmount);
flow.setCreateTime(LocalDateTime.now());
save(flow);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProfitPageListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProfitPageListVo.java
index cf6f4d6..b29af9a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProfitPageListVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProfitPageListVo.java
@@ -37,9 +37,9 @@
@ApiModelProperty("推广员收益")
@Excel(name = "推广员收益", orderNum = "6", width = 20)
- private Integer saleProfit=0;
+ private BigDecimal saleProfit=BigDecimal.ZERO;
@ApiModelProperty("合伙人收益")
@Excel(name = "合伙人收益", orderNum = "7", width = 20)
- private Integer partnerProfit=0;
+ private BigDecimal partnerProfit=BigDecimal.ZERO;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/PromotionPageListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PromotionPageListVo.java
index e11cd31..e716e13 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/PromotionPageListVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PromotionPageListVo.java
@@ -62,7 +62,7 @@
@ApiModelProperty(value = "合计收益")
@Excel(name = "合计收益", width = 20)
- private Integer totalIncome;
+ private BigDecimal totalIncome;
@ApiModelProperty(value = "已结算收益")
@Excel(name = "已结算收益", width = 20)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserProfitPageListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserProfitPageListVo.java
new file mode 100644
index 0000000..2180dc7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserProfitPageListVo.java
@@ -0,0 +1,42 @@
+package com.ruoyi.system.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("收益明细Vo")
+public class UserProfitPageListVo {
+
+ @ApiModelProperty("订单id")
+ private Integer id;
+
+ @ApiModelProperty("订单编号")
+ @Excel(name = "订单编号", orderNum = "1", width = 20)
+ private String code;
+
+ @ApiModelProperty("下单时间")
+ @Excel(name = "下单时间", orderNum = "2", width = 20,format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("下单用户")
+ @Excel(name = "下单用户", orderNum = "3", width = 20)
+ private String userName;
+
+ @ApiModelProperty("用户手机号")
+ @Excel(name = "用户手机号", orderNum = "4", width = 20)
+ private String phone;
+
+ @ApiModelProperty("订单价格")
+ @Excel(name = "订单价格", orderNum = "5", width = 20)
+ private BigDecimal orderPrice;
+
+ @ApiModelProperty("本人收益金额")
+ @Excel(name = "本人收益金额", orderNum = "6", width = 20)
+ private BigDecimal selfProfit=BigDecimal.ZERO;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserPromotionPageListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserPromotionPageListVo.java
new file mode 100644
index 0000000..d0b1923
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserPromotionPageListVo.java
@@ -0,0 +1,53 @@
+package com.ruoyi.system.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+@Data
+@ApiModel(value = "用户推广记录列表Vo")
+public class UserPromotionPageListVo {
+ @ApiModelProperty(value = "头像")
+ @Excel(name = "头像", width = 20, imageType = 1, type = 2)
+ private String avatar;
+
+ @ApiModelProperty(value = "用户名")
+ @Excel(name = "用户名", width = 20)
+ private String userName;
+
+ @ApiModelProperty(value = "用户ID")
+ private Integer userId;
+
+ @ApiModelProperty(value = "联系电话")
+ @Excel(name = "联系电话", width = 20)
+ private String phone;
+
+ @ApiModelProperty(value = "性别 1=男,2=女")
+ @Excel(name = "性别",width = 20,replace ={ "男_1","女_2"})
+ private Integer gender;
+
+
+ @ApiModelProperty(value = "当前角色 1=游客,2=营销员,3=合伙人")
+ @Excel(name = "当前角色", width = 20, replace = {"游客_1", "营销员_2", "合伙人_3"})
+ private Integer roleName;
+
+ @ApiModelProperty(value = "状态 1=正常,2=冻结")
+ @Excel(name = "状态", width = 20, replace = {"使用中_1", "冻结_2"})
+ private Integer status;
+
+ @ApiModelProperty(value = "合计消费")
+ @Excel(name = "合计消费", width = 20)
+ private BigDecimal totalConsume;
+
+ @ApiModelProperty(value = "合计收益")
+ @Excel(name = "合计收益", width = 20)
+ private BigDecimal totalIncome;
+
+ @ApiModelProperty(value = "已结算收益")
+ @Excel(name = "已结算收益", width = 20)
+ private Integer totalSettledIncome;
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
index da12bb5..31469e6 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
@@ -116,4 +116,29 @@
order by t1.create_time desc
</select>
+ <select id="userPromotionPageList" resultType="com.ruoyi.system.vo.UserPromotionPageListVo">
+ select t1.id userId,t1.name userName,t1.phone phone,t1.gender,t1.profile_photo avatar,t1.user_type roleName,t1.status status
+ from t_app_user t1
+ where t1.referrer_user_id = #{query.userId} and t1.status !=3 and t1.referrer_status =2
+ <if test="query.userName != null and query.userName != ''">
+ and t1.name like concat('%',#{query.userName},'%')
+ </if>
+ <if test="query.phone != null and query.phone != ''">
+ and t1.phone like concat('%',#{query.phone},'%')
+ </if>
+ order by t1.create_time desc
+ </select>
+ <select id="userPromotionPageListExport" resultType="com.ruoyi.system.vo.UserPromotionPageListVo">
+ select t1.id userId,t1.name userName,t1.phone phone,t1.gender,t1.profile_photo avatar,t1.user_type roleName,t1.status status
+ from t_app_user t1
+ where t1.referrer_user_id = #{query.userId} and t1.status !=3 and t1.referrer_status =2
+ <if test="query.userName != null and query.userName != ''">
+ and t1.name like concat('%',#{query.userName},'%')
+ </if>
+ <if test="query.phone != null and query.phone != ''">
+ and t1.phone like concat('%',#{query.phone},'%')
+ </if>
+ order by t1.create_time desc
+ </select>
+
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TBigGiftPackageOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBigGiftPackageOrderMapper.xml
index 4b41628..15022eb 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TBigGiftPackageOrderMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TBigGiftPackageOrderMapper.xml
@@ -128,5 +128,41 @@
WHERE t1.del_flag = 0 and t2.id = #{query.userId}
order by t1.create_time desc
</select>
+ <select id="profitUserPageList" resultType="com.ruoyi.system.vo.UserProfitPageListVo">
+ select t1.id,t1.code,t1.create_time,t2.name userName,t2.phone,t1.order_price
+ from t_big_gift_package_order t1 left join t_app_user t2 on t1.app_user_id = t2.id
+ where t1.del_flag = 0 and t2.referrer_user_id = #{query.userId} and t2.referrer_status =2
+ <if test="query.phone != null and query.phone != ''">
+ AND t2.phone = #{query.phone}
+ </if>
+ <if test="query.code != null and query.code != ''">
+ AND t1.code = #{query.code}
+ </if>
+ <if test="query.userName != null and query.userName != ''">
+ AND t2.name like concat('%',#{query.userName},'%')
+ </if>
+ <if test="sTime !=null ">
+ AND t1.create_time BETWEEN #{sTime} AND #{eTime}
+ </if>
+ order by t1.create_time desc
+ </select>
+ <select id="profitUserPageListExport" resultType="com.ruoyi.system.vo.UserProfitPageListVo">
+ select t1.id,t1.code,t1.create_time,t2.name userName,t2.phone,t1.order_price
+ from t_big_gift_package_order t1 left join t_app_user t2 on t1.app_user_id = t2.id
+ where t1.del_flag = 0 and t2.referrer_user_id = #{query.userId} and t2.referrer_status =2
+ <if test="query.phone != null and query.phone != ''">
+ AND t2.phone = #{query.phone}
+ </if>
+ <if test="query.code != null and query.code != ''">
+ AND t1.code = #{query.code}
+ </if>
+ <if test="query.userName != null and query.userName != ''">
+ AND t2.name like concat('%',#{query.userName},'%')
+ </if>
+ <if test="sTime !=null ">
+ AND t1.create_time BETWEEN #{sTime} AND #{eTime}
+ </if>
+ order by t1.create_time desc
+ </select>
</mapper>
--
Gitblit v1.7.1