From f6b20962bb0453683e9366a3f87b7ec9bfaed03c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 14 一月 2025 15:18:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java | 6
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java | 44 ++++
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java | 3
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java | 2
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 31 +++
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java | 3
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 15 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java | 6
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java | 25 ++
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java | 1
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java | 17 +
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/WithdrawalRequestsMapper.xml | 9
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShop.java | 5
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 110 +++++++---
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java | 3
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml | 2
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java | 20 +
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java | 7
ruoyi-common/pom.xml | 11 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java | 11 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 4
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java | 13
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 1
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java | 3
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 220 ++++++++++-----------
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/WithQuery.java | 4
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml | 3
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml | 4
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml | 3
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 2
30 files changed, 408 insertions(+), 180 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShop.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShop.java
index c43a629..4085997 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShop.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShop.java
@@ -28,4 +28,9 @@
*/
@TableField("shop_id")
private Integer shopId;
+ /**
+ * 角色(1=店长,2=店员,3=技师)
+ */
+ @TableField("role_type")
+ private Integer roleType;
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
index 833aa57..ad189f8 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -89,4 +89,7 @@
@ApiModelProperty(value = "预约单id")
private String technicianSubscribeId;
+ @ApiModelProperty("核销码BASE64")
+ private String writeOffCode;
+
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
index 471435f..b09a71e 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
@@ -144,6 +144,9 @@
@ApiModelProperty(value = "已提现金额")
@TableField("withdraw_money")
private BigDecimal withdrawMoney;
+ @ApiModelProperty(value = "审核中金额")
+ @TableField(exist = false)
+ private BigDecimal withdrawAuditMoney;
@ApiModelProperty(value = "余额")
@TableField("balance")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
index 00ab5fb..2fa939d 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
@@ -7,7 +7,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
import java.util.Set;
@Slf4j
@@ -54,6 +56,11 @@
public R<List<Shop>> getAllShop() {
return R.fail("获取所有门店失败:" + cause.getMessage());
}
+
+ @Override
+ public R<Map<String, BigDecimal>> getShopStatistics() {
+ return R.fail();
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
index ff0a740..e5a5a73 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
@@ -12,7 +12,9 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/**
@@ -65,4 +67,8 @@
*/
@PostMapping("/shop/getAllShop")
R<List<Shop>> getAllShop();
+
+
+ @GetMapping("/shop/getShopStatistics")
+ public R<Map<String, BigDecimal>> getShopStatistics();
}
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index a6129f8..9d86df3 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -31,6 +31,17 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.google.zxing</groupId>
+ <artifactId>core</artifactId>
+ <version>3.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.zxing</groupId>
+ <artifactId>javase</artifactId>
+ <version>3.4.1</version>
+ </dependency>
</dependencies>
</project>
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java
new file mode 100644
index 0000000..93bc31e
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java
@@ -0,0 +1,44 @@
+package com.ruoyi.common.core.utils.uuid;
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.WriterException;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Base64;
+
+public class QRCodeGenerator {
+
+ /**
+ * 生成二维码图片的base64编码
+ * @param text
+ * @param width
+ * @param height
+ * @return
+ * @throws WriterException
+ * @throws IOException
+ */
+ public static String generateQRCodeBase64(String text, int width, int height) throws WriterException, IOException {
+ QRCodeWriter qrCodeWriter = new QRCodeWriter();
+ BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
+
+ ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
+ MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
+ byte[] pngData = pngOutputStream.toByteArray();
+
+ return Base64.getEncoder().encodeToString(pngData);
+ }
+
+ public static void main(String[] args) {
+ try {
+ String text = "Hello, World!";
+ String base64QRCode = generateQRCodeBase64(text, 200, 200);
+ System.out.println("Base64 QR Code: " + base64QRCode);
+ } catch (WriterException | IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 2f17c3a..e28674b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -164,6 +164,7 @@
AppUserShop appUserShop = new AppUserShop();
appUserShop.setAppUserId(appUser.getId());
appUserShop.setShopId(sysUser1.getObjectId());
+ appUserShop.setRoleType(2);
appUserShopClient.saveAppUserShop(appUserShop);
appUser.setUserType(2);
appUserClient.editAppUserById(appUser);
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
index 9f57d1e..d1cd882 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
@@ -207,6 +207,7 @@
<if test="roleType != null and roleType != ''">role_type,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="objectId != null and objectId != ''">objectId,</if>
+ <if test="appUserId != null and appUserId != ''">app_user_id,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@@ -223,6 +224,7 @@
<if test="roleType != null and roleType != ''">#{roleType},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="objectId != null and objectId != ''">#{objectId},</if>
+ <if test="appUserId != null and appUserId != ''">#{appUserId},</if>
sysdate()
)
</insert>
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 25f0f98..806b875 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -137,6 +137,8 @@
@PostMapping("/editAppUserById")
public R<Void> editAppUserById(@RequestBody AppUser appUser) {
appUserService.updateById(appUser);
+ appUserService.update(new LambdaUpdateWrapper<AppUser>().eq(AppUser::getId, appUser.getId())
+ .set(AppUser::getLastShopTime, appUser.getLastShopTime()));
return R.ok();
}
@@ -319,13 +321,13 @@
user.setShopName(shop.getName());
}
}
- Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
- Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count1 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count2 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count3 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count4 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count5 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count6 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+ Long count7 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
user.setCount1(count1);
user.setCount2(count2);
user.setCount3(count3);
@@ -744,108 +746,6 @@
@GetMapping("/commissionDetail")
@ApiOperation(value = "分佣统计", tags = "管理后台-首页统计")
public R<CommissionDetail> commissionDetail(CommissionDetail cd) {
- Long userid = tokenService.getLoginUser().getUserid();
- SysUser sysUser = sysUserClient.getSysUser(userid).getData();
- LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0);
- if(sysUser.getRoleType() == 2){
- queryWrapper.eq(AppUser::getShopId, sysUser.getObjectId());
- }
- LocalDateTime startTime = cd.getStartTime();
- LocalDateTime endTime = cd.getEndTime();
- queryWrapper.ge(null != startTime, AppUser::getCreateTime, startTime);
- queryWrapper.le(null != endTime, AppUser::getCreateTime, endTime);
- queryWrapper.orderByAsc(AppUser::getCreateTime);
- List<AppUser> appUserList = appUserService.list(queryWrapper);
- if (appUserList.isEmpty()) {
- return R.ok(new CommissionDetail());
- }
- BigDecimal totalCommission = BigDecimal.ZERO;
- BigDecimal totalServiceFee = BigDecimal.ZERO;
- BigDecimal totalUserCommission = BigDecimal.ZERO;
- Map<Integer, BigDecimal> vipCommissions = new HashMap<>();
- Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new TreeMap<>();
- for (AppUser appUser : appUserList) {
- BigDecimal distributionAmount = Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO);
- totalCommission = totalCommission.add(distributionAmount);
- Integer vipId = appUser.getVipId();
- if (vipId != null && vipId >= 1 && vipId <= 7) {
- vipCommissions.merge(vipId, distributionAmount, BigDecimal::add);
-
- String dateKey = appUser.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
- dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>())
- .merge(vipId, distributionAmount, BigDecimal::add);
- }
- }
- List<Shop> data = shopClient.getAllShop().getData();
- if(sysUser.getRoleType() == 2){
- data = Arrays.asList(shopClient.getShopById(sysUser.getObjectId()).getData());
- }
- for (Shop shop : data) {
- totalServiceFee = totalServiceFee.add(shop.getServerGiveawayMoney());
- totalUserCommission = totalUserCommission.add(shop.getGiveawayMoney());
- }
-
- R<List<ShopBalanceStatement>> r = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), null);
- List<ShopBalanceStatement> data1 = r.getData();
- if (!CollectionUtils.isEmpty(data1)){
- for (ShopBalanceStatement shopBalanceStatement : data1) {
- String dateKey = shopBalanceStatement.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
- Integer type = shopBalanceStatement.getType();
- if (type == 1){
- type = 8;
- }else if (type == 2){
- type = 9;
- }else {
- type = 10;
- }
- dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>())
- .merge(type, shopBalanceStatement.getVariableAmount(), BigDecimal::add);
- }
- }
-
-
- CommissionDetail commissionDetail = new CommissionDetail();
- commissionDetail.setTotalCommission(totalCommission);
- commissionDetail.setTotalServiceFee(totalServiceFee);
- commissionDetail.setTotalUserCommission(totalUserCommission);
-
- commissionDetail.setTotalNormalCommission(vipCommissions.getOrDefault(1, BigDecimal.ZERO));
- commissionDetail.setTotalGoldCommission(vipCommissions.getOrDefault(2, BigDecimal.ZERO));
- commissionDetail.setTotalDiamondCommission(vipCommissions.getOrDefault(3, BigDecimal.ZERO));
- commissionDetail.setTotalAgentCommission(vipCommissions.getOrDefault(4, BigDecimal.ZERO));
- commissionDetail.setTotalSuperAgentCommission(vipCommissions.getOrDefault(5, BigDecimal.ZERO));
- commissionDetail.setTotalTopAgentCommission(vipCommissions.getOrDefault(6, BigDecimal.ZERO));
- commissionDetail.setTotalPartnerCommission(vipCommissions.getOrDefault(7, BigDecimal.ZERO));
-
- List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream()
- .map(entry -> {
- CommissionDate commissionDate = new CommissionDate();
- commissionDate.setDate(entry.getKey());
- Map<Integer, BigDecimal> dailyCommissions = entry.getValue();
- commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO));
- commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO));
- commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO));
- commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO));
- commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO));
- commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO));
- commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO));
- BigDecimal add = commissionDate.getNormalCommission().add(commissionDate.getGoldCommission()).add(commissionDate.getDiamondCommission()).add(commissionDate.getAgentCommission())
- .add(commissionDate.getSuperAgentCommission()).add(commissionDate.getTopAgentCommission()).add(commissionDate.getPartnerCommission());
- commissionDate.setTotalCommission(add);
-
- commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO));
- commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO));
- commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO));
- return commissionDate;
- })
- .collect(Collectors.toList());
-
- commissionDetail.setCommissionDateList(commissionDateList);
- return R.ok(commissionDetail);
- }
-
-
- public R<CommissionDetail> commissionDetail2(CommissionDetail cd) {
if (cd.getStartTime() == null || cd.getEndTime() == null) {
return R.fail("请选择时间");
}
@@ -858,7 +758,7 @@
getDatesBetween(cd.getStartTime(), cd.getEndTime()).forEach(date -> {
for (int i = 1; i < 8; i++){
List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>()
- .eq(BalanceChangeRecord::getCreateTime, date)
+ .between(BalanceChangeRecord::getCreateTime, date, date.plusDays(1))
.eq(BalanceChangeRecord::getChangeType,4)
.eq(BalanceChangeRecord::getVipId, i));
BigDecimal reduce = list.stream().map(BalanceChangeRecord::getChangeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -886,7 +786,99 @@
}
}
});
- return null;
+
+
+ BigDecimal totalCommission = BigDecimal.ZERO;
+ BigDecimal totalNormalCommission = BigDecimal.ZERO;
+
+ BigDecimal totalGoldCommission = BigDecimal.ZERO;
+
+ BigDecimal totalDiamondCommission = BigDecimal.ZERO;
+
+ BigDecimal totalAgentCommission = BigDecimal.ZERO;
+
+ BigDecimal totalSuperAgentCommission = BigDecimal.ZERO;
+
+ BigDecimal totalTopAgentCommission = BigDecimal.ZERO;
+
+ BigDecimal totalPartnerCommission = BigDecimal.ZERO;
+
+ List<AppUser> allAppUserList = appUserService.list();
+ for (AppUser appUser : allAppUserList) {
+ BigDecimal totalDistributionAmount = appUser.getTotalDistributionAmount();
+ totalCommission = totalCommission.add(totalDistributionAmount);
+ if (appUser.getVipId() == 1){
+ totalNormalCommission = totalNormalCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 2){
+ totalGoldCommission = totalGoldCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 3){
+ totalDiamondCommission = totalDiamondCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 4){
+ totalAgentCommission = totalAgentCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 5){
+ totalSuperAgentCommission = totalSuperAgentCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 6){
+ totalTopAgentCommission = totalTopAgentCommission.add(totalDistributionAmount);
+ }
+ if (appUser.getVipId() == 7){
+ totalPartnerCommission = totalPartnerCommission.add(totalDistributionAmount);
+ }
+ }
+
+ R<Map<String, BigDecimal>> shopStatistics = shopClient.getShopStatistics();
+ Map<String, BigDecimal> data = shopStatistics.getData();
+ BigDecimal totalServiceFee = BigDecimal.ZERO;
+ BigDecimal totalUserCommission = BigDecimal.ZERO;
+ if (data != null){
+ totalServiceFee = data.get("serverGiveawayMoney");
+ totalUserCommission = data.get("lowerLevelGiveawayMoney");
+ }
+
+ CommissionDetail commissionDetail = new CommissionDetail();
+ commissionDetail.setTotalCommission(totalCommission);
+ commissionDetail.setTotalServiceFee(totalServiceFee);
+ commissionDetail.setTotalUserCommission(totalUserCommission);
+
+ commissionDetail.setTotalNormalCommission(totalNormalCommission);
+ commissionDetail.setTotalGoldCommission(totalGoldCommission);
+ commissionDetail.setTotalDiamondCommission(totalDiamondCommission);
+ commissionDetail.setTotalAgentCommission(totalAgentCommission);
+ commissionDetail.setTotalSuperAgentCommission(totalSuperAgentCommission);
+ commissionDetail.setTotalTopAgentCommission(totalTopAgentCommission);
+ commissionDetail.setTotalPartnerCommission(totalPartnerCommission);
+
+
+ List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream()
+ .map(entry -> {
+ CommissionDate commissionDate = new CommissionDate();
+ commissionDate.setDate(entry.getKey());
+ Map<Integer, BigDecimal> dailyCommissions = entry.getValue();
+ commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO));
+ commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO));
+ commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO));
+ commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO));
+ commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO));
+ commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO));
+ commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO));
+ BigDecimal add = commissionDate.getNormalCommission().add(commissionDate.getGoldCommission()).add(commissionDate.getDiamondCommission()).add(commissionDate.getAgentCommission())
+ .add(commissionDate.getSuperAgentCommission()).add(commissionDate.getTopAgentCommission()).add(commissionDate.getPartnerCommission());
+ commissionDate.setTotalCommission(add);
+
+ commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO));
+ commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO));
+ commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO));
+ return commissionDate;
+ })
+ .collect(Collectors.toList());
+
+ commissionDetail.setCommissionDateList(commissionDateList);
+
+ return R.ok(commissionDetail);
}
@@ -906,7 +898,8 @@
.limit(daysBetween + 1)
.collect(Collectors.toList());
}
-
+
+
/**
* 上传图片
@@ -951,7 +944,8 @@
*/
@PostMapping("/clearBindShop")
public R clearBindShop(@RequestParam("shopId") Integer shopId){
- appUserService.update(new LambdaUpdateWrapper<AppUser>().eq(AppUser::getShopId, shopId).set(AppUser::getShopId, null));
+ appUserService.update(new LambdaUpdateWrapper<AppUser>().eq(AppUser::getShopId, shopId).set(AppUser::getShopId, null)
+ .set(AppUser::getUserType,1));
return R.ok();
}
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
index ecc3f7e..d90e2db 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
@@ -59,6 +59,9 @@
if(null != appUserShop.getShopId()){
wrapper.eq(AppUserShop::getShopId, appUserShop.getShopId());
}
+ if(null != appUserShop.getRoleType()){
+ wrapper.eq(AppUserShop::getRoleType, appUserShop.getRoleType());
+ }
appUserShopService.remove(wrapper);
return R.ok();
}
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 3839d5e..32bb927 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
@@ -134,7 +134,11 @@
@GetMapping("/user/list")
@ApiOperation(value = "积分管理-用户积分明细(必传用户id)", tags = "后台")
public R<Page<UserPoint>> userlist(UserPoint userPoint) {
- Page<UserPoint> page = userPointService.lambdaQuery().eq(UserPoint::getAppUserId, userPoint.getAppUserId()).orderByDesc(UserPoint::getCreateTime).page(Page.of(userPoint.getPageNum(), userPoint.getPageSize()));
+ Page<UserPoint> page = userPointService.lambdaQuery()
+ .eq(UserPoint::getType, userPoint.getType())
+ .eq(UserPoint::getAppUserId, userPoint.getAppUserId())
+ .orderByDesc(UserPoint::getCreateTime)
+ .page(Page.of(userPoint.getPageNum(), userPoint.getPageSize()));
for (UserPoint record : page.getRecords()) {
int i = record.getHistoricalPoint() - record.getBalance();
if (i>0){
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/WithQuery.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/WithQuery.java
index 5acba8a..da3c1f7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/WithQuery.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/WithQuery.java
@@ -8,10 +8,10 @@
@Data
public class WithQuery {
@ApiModelProperty("用户名称")
- private String name;
+ private String userName;
@ApiModelProperty("电话")
- private String phone;
+ private String userPhone;
private Integer pageNum;
private Integer pageSize;
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
index 7eaf99d..48543ce 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
@@ -43,7 +43,7 @@
longitude,
latitude,
phone
- from t_app_user where city_code = #{cityCode} and del_flag = 0 and status = 1 and vip_id >= 4
+ from t_app_user where ((city_code = #{cityCode} and vip_id >= 4) or id = 1) and del_flag = 0 and status = 1
<if test="null != nearbyReferrer.name and '' != nearbyReferrer.name">
and `name` like CONCAT('%', #{nearbyReferrer.name}, '%')
</if>
@@ -86,7 +86,7 @@
SELECT ta.id, ta.phone, ta.`name`, ta.vip_id, ta.shop_id, ta.status
FROM t_app_user ta
<where>
- ta.del_flag = 0
+ ta.del_flag = 0 and ta.status != 3
<if test="null != appUser.name and '' != appUser.name">
and ta.`name` like CONCAT('%',#{appUser.name},'%')
</if>
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
index f1db46f..34cf6d5 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -34,8 +34,9 @@
tbcr.after_amount
FROM
t_balance_change_record tbcr
- LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id
+ LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id
<where>
+ and tbcr.change_type = 4
<if test="changeRecord.userName != null and changeRecord.userName != ''">
and tau.name like concat('%',#{changeRecord.userName},'%')
</if>
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/WithdrawalRequestsMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/WithdrawalRequestsMapper.xml
index 7f913d7..a33a8cd 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/WithdrawalRequestsMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/WithdrawalRequestsMapper.xml
@@ -23,11 +23,12 @@
select t1.*,t2.name as userName,t2.phone as userPhone
from t_withdrawal_requests t1
left join t_app_user t2 on t1.app_user_id = t2.id
- <if test="withQuery.phone != null and withQuery.phone != ''">
- AND t2.phone LIKE concat('%',#{withQuery.phone},'%')
+ where 1 = 1
+ <if test="withQuery.userPhone != null and withQuery.userPhone != ''">
+ AND t2.phone LIKE concat('%',#{withQuery.userPhone},'%')
</if>
- <if test="withQuery.name != null and withQuery.name != ''">
- AND t2.phone LIKE concat('%',#{withQuery.name},'%')
+ <if test="withQuery.userName != null and withQuery.userName != ''">
+ AND t2.name LIKE concat('%',#{withQuery.userName},'%')
</if>
order by t1.create_time desc
</select>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 6e38450..4ac605c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.QRCodeGenerator;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.enums.OrderStatus;
@@ -41,6 +42,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
@@ -215,6 +217,14 @@
Long id = data.get(0).getId();
orderDetailVO.setTechnicianSubscribeId(id.toString());
}
+ }
+ // 生成核销码BASE64
+ try {
+ String base64 = QRCodeGenerator.generateQRCodeBase64(order.getOrderNumber(), 124, 124);
+ orderDetailVO.setWriteOffCode(base64);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ServiceException("生成核销码失败");
}
return orderDetailVO;
}
@@ -439,11 +449,12 @@
appUser.setBalance(balance.add(paymentAmount).setScale(2, RoundingMode.HALF_EVEN));
appUser.setShopAmount(appUser.getShopAmount().subtract(paymentAmount).setScale(2, RoundingMode.HALF_EVEN));
//查询最后一次的消费订单
- Order order1 = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getAppUserId, order.getAppUserId()).eq(Order::getPayStatus, 2).eq(Order::getDelFlag, 0).in(Order::getOrderStatus, Arrays.asList(2, 3, 4, 8)).ne(Order::getId, order.getId()).last(" order by create_time desc limit 0, 1"));
+ Order order1 = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getAppUserId, order.getAppUserId()).eq(Order::getPayStatus, 2)
+ .eq(Order::getDelFlag, 0).in(Order::getOrderStatus, Arrays.asList(1, 2, 3, 4, 8)).ne(Order::getId, order.getId()).last(" order by create_time desc limit 0, 1"));
if(null != order1){
appUser.setLastShopTime(order1.getCreateTime());
}else{
- appUser.setLastShopTime(LocalDateTime.MIN);
+ appUser.setLastShopTime(null);
}
//构建账户余额流水明细
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 307c92a..b1e22d4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -569,11 +569,11 @@
}
}else{
//部分商品适用
- BigDecimal goodsMoney = BigDecimal.ZERO;
+ BigDecimal goodsMoney = BigDecimal.ZERO;
for (MyShoppingCartVo myShoppingCartVo : goodsList) {
Integer goodsId = myShoppingCartVo.getGoodsId();
BigDecimal cash = myShoppingCartVo.getCash();
- if(forGoodIds.contains(goodsId)){
+ if(forGoodIds.contains(String.valueOf(goodsId))){
goodsMoney = goodsMoney.add(cash);
}
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java
index 348da92..88aa5b8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java
@@ -71,5 +71,7 @@
private String afterSaleTime;
@ApiModelProperty("活动名称")
private String activityName;
+ @ApiModelProperty("核销码BASE64")
+ private String writeOffCode;
}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 4d39cdd..cf7d0ff 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -93,7 +93,7 @@
SELECT
count(*) as total,
SUM( CASE WHEN tor.order_type = 1 THEN 1 ELSE 0 END ) as serviceTotal,
- SUM( CASE WHEN tor.order_type = 2 THEN 1 ELSE 0 END ) as singleTotal,
+ SUM( CASE WHEN tor.order_type = 2 and distribution_mode = 1 THEN 1 ELSE 0 END ) as singleTotal,
SUM( tor.total_amount ) as totalMoney,
SUM( CASE WHEN tor.order_type = 1 THEN tor.total_amount ELSE 0 END ) as serviceTotalMoney,
SUM( CASE WHEN tor.order_type = 2 THEN tor.total_amount ELSE 0 END ) as singleTotalMoney
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
index 7bde80d..5f6df24 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
@@ -170,18 +170,21 @@
private void count(Long userid, List<CouponInfo> list1, List<CouponInfo> returnList) {
for (CouponInfo couponInfo : list1) {
Long count = appUserClient.getCouponCount(-1L, couponInfo.getId()).getData();
- if(couponInfo.getSendNum() <= count){
- couponInfo.setMaxNum(count.intValue() - couponInfo.getSendNum());
- for (int i = 0; i < couponInfo.getMaxNum(); i++) {
- returnList.add(couponInfo);
- }
+ if(count >= couponInfo.getSendNum()){
continue;
}
count = appUserClient.getCouponCount(userid, couponInfo.getId()).getData();
couponInfo.setMaxNum(couponInfo.getMaxNum() - count.intValue());
- for (int i = 0; i < couponInfo.getMaxNum(); i++) {
- returnList.add(couponInfo);
+ if((couponInfo.getSendNum() - count) >= couponInfo.getMaxNum()){
+ for (int i = 0; i < couponInfo.getMaxNum(); i++) {
+ returnList.add(couponInfo);
+ }
+ }else{
+ for (int i = 0; i < (couponInfo.getSendNum() - count); i++) {
+ returnList.add(couponInfo);
+ }
}
+
}
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
index e175199..bfcb218 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsCategoryController.java
@@ -64,6 +64,7 @@
public R<Page<GoodsCategory>> list(@ApiParam("页码") @RequestParam Integer pageNum,@ApiParam("每一页数据大小") Integer pageSize, GoodsCategory goodsCategory){
Page<GoodsCategory> page = goodsCategoryService.lambdaQuery()
.like(StringUtils.isNotEmpty(goodsCategory.getName()),GoodsCategory::getName, goodsCategory.getName())
+ .eq(GoodsCategory::getDelFlag,0)
.page(Page.of(pageNum, pageSize));
return R.ok(page);
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
index 8572df7..9a6fa18 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
@@ -8,6 +8,7 @@
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.feignClient.OrderClient;
import com.ruoyi.order.model.Order;
@@ -56,10 +57,12 @@
@GetMapping("/goodsList")
@ApiOperation(value = "获取商品评价", tags = {"小程序-获取商品评价"})
- public R<List<GoodsEvaluate>> goodsList(@ApiParam("商品id") Integer goodsId){
- List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId).eq(GoodsEvaluate::getDelFlag, 0)
- .eq(GoodsEvaluate::getStatus, 2).isNotNull(GoodsEvaluate::getComment).ne(GoodsEvaluate::getComment, "").orderByDesc(GoodsEvaluate::getCreateTime).list();
- for (GoodsEvaluate goodsEvaluate : list) {
+ public R<PageInfo<GoodsEvaluate>> goodsList(@ApiParam("商品id") Integer goodsId, Integer pageNum, Integer pageSize){
+ PageInfo<GoodsEvaluate> pageInfo = new PageInfo<>(pageNum, pageSize);
+ PageInfo<GoodsEvaluate> page = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId).eq(GoodsEvaluate::getDelFlag, 0)
+ .eq(GoodsEvaluate::getStatus, 2).isNotNull(GoodsEvaluate::getComment).ne(GoodsEvaluate::getComment, "")
+ .orderByDesc(GoodsEvaluate::getCreateTime).page(pageInfo);
+ for (GoodsEvaluate goodsEvaluate : page.getRecords()) {
AppUser appUserById = appUserClient.getAppUserById(goodsEvaluate.getAppUserId());
if(null != appUserById){
goodsEvaluate.setUserName(appUserById.getName());
@@ -67,7 +70,7 @@
goodsEvaluate.setIdStr(String.valueOf(goodsEvaluate.getId()));
}
}
- return R.ok(list);
+ return R.ok(page);
}
/**
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
index 63a0b98..e8d1e6e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -26,6 +26,7 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.util.Collection;
import java.util.List;
import java.util.List;
@@ -89,42 +90,83 @@
@GetMapping("/commissionStatistics/info")
@ApiOperation(value = "门店余额明细上方数据", notes = "门店余额明细", tags = {"门店后台"})
- public R<ShopBalanceDto> shopCommissionStatisticsinfo(){
+ public R<ShopBalanceDto> shopCommissionStatisticsinfo(Integer type){
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
ShopBalanceDto dto = new ShopBalanceDto();
- List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
- List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
- BigDecimal bigDecimal1 = new BigDecimal(0);
- for (ShopBalanceStatement shopBalanceStatement : list) {
- bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
- }
- for (ShopBalanceStatement shopBalanceStatement : list1) {
- bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
- }
- dto.setBigDecimal1(bigDecimal1);
-
- BigDecimal bigDecimal2= new BigDecimal(0);
- for (ShopBalanceStatement shopBalanceStatement : list) {
- bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
- }
- dto.setBigDecimal2(bigDecimal2);
-
- BigDecimal bigDecimal3= new BigDecimal(0);
- for (ShopBalanceStatement shopBalanceStatement : list1) {
- bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
- }
- dto.setBigDecimal3(bigDecimal3);
-
- List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
- BigDecimal bigDecimal4= new BigDecimal(0);
- for (ShopBalanceStatement shopBalanceStatement : list2) {
- bigDecimal4 = bigDecimal4.add(shopBalanceStatement.getVariableAmount());
- }
- dto.setBigDecimal4(bigDecimal4);
-
Shop byId = shopService.getById(objectId);
- dto.setBigDecimal5(byId.getCanWithdrawMoney());
- dto.setBigDecimal6(byId.getWithdrawMoney());
+
+ if (type==null){
+ List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
+ List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
+ BigDecimal bigDecimal1 = new BigDecimal(0);
+ for (ShopBalanceStatement shopBalanceStatement : list) {
+ bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
+ }
+ for (ShopBalanceStatement shopBalanceStatement : list1) {
+ bigDecimal1 = bigDecimal1.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal1(bigDecimal1);
+
+ BigDecimal bigDecimal2= new BigDecimal(0);
+ for (ShopBalanceStatement shopBalanceStatement : list) {
+ bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal2(bigDecimal2);
+
+ BigDecimal bigDecimal3= new BigDecimal(0);
+ for (ShopBalanceStatement shopBalanceStatement : list1) {
+ bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal3(bigDecimal3);
+
+ List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
+ BigDecimal bigDecimal4= new BigDecimal(0);
+ for (ShopBalanceStatement shopBalanceStatement : list2) {
+ bigDecimal4 = bigDecimal4.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal4(bigDecimal4);
+
+ dto.setBigDecimal5(byId.getCanWithdrawMoney());
+ dto.setBigDecimal6(byId.getWithdrawMoney());
+ return R.ok(dto);
+ }else{
+ switch (type){
+ case 1:
+ // 关联用户分拥
+ BigDecimal bigDecimal = new BigDecimal("0");
+ List<ShopBalanceStatement> list1 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 1).list();
+ for (ShopBalanceStatement shopBalanceStatement : list1) {
+ bigDecimal = bigDecimal.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal3(bigDecimal);
+ dto.setBigDecimal1(bigDecimal);
+ break;
+ case 2:
+ // 下级门店分佣
+ BigDecimal bigDecimal2= new BigDecimal(0);
+ List<ShopBalanceStatement> list2 = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 2).list();
+ for (ShopBalanceStatement shopBalanceStatement : list2) {
+ bigDecimal2 = bigDecimal2.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal4(bigDecimal2);
+ dto.setBigDecimal1(bigDecimal2);
+ break;
+ case 3:
+ // 服务费分佣
+ List<ShopBalanceStatement> list = shopBalanceStatementService.lambdaQuery().eq(ShopBalanceStatement::getShopId,objectId).eq(ShopBalanceStatement::getType, 3).list();
+ BigDecimal bigDecimal3= new BigDecimal(0);
+ for (ShopBalanceStatement shopBalanceStatement : list) {
+ bigDecimal3 = bigDecimal3.add(shopBalanceStatement.getVariableAmount());
+ }
+ dto.setBigDecimal2(bigDecimal3);
+ dto.setBigDecimal1(bigDecimal3);
+ break;
+ case 4:
+ // 余额提现
+ dto.setBigDecimal6(byId.getWithdrawMoney());
+ break;
+ }
+ }
return R.ok(dto);
}
@@ -178,7 +220,7 @@
@RequestParam(value = "date") LocalDateTime date){
List<ShopBalanceStatement> list = shopBalanceStatementService.list(new LambdaQueryWrapper<ShopBalanceStatement>()
.eq(ShopBalanceStatement::getType, type)
- .in(ShopBalanceStatement::getCreateTime, date));
+ .between(ShopBalanceStatement::getCreateTime, date.with(LocalTime.MIN), date.with(LocalTime.MAX)));
return R.ok(list);
}
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index e4aa1fa..f86f1f1 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -124,6 +124,7 @@
AppUserShop appUserShop = new AppUserShop();
appUserShop.setAppUserId(appUser.getId());
appUserShop.setShopId(shopId);
+ appUserShop.setRoleType(1);
R<Void> r = appUserClient.addAppUserShop(appUserShop);
if (R.isError(r)){
throw new RuntimeException("添加失败");
@@ -176,7 +177,7 @@
userShop.setShopId(shopId);
userShop.setRoleType(1);
userShop.setRoleId(2L);
- userShop.setNickName(sysUser.getNickName());
+ userShop.setNickName(user.getNickName());
userShop.setCreateTime(LocalDateTime.now());
userShopClient.saveUserShop(userShop);
}
@@ -210,7 +211,14 @@
}
Shop shop = shopService.getById(id);
shop.setDelFlag(1);
+
shopService.updateById(shop);
+ // 查询有没有门店绑定这个被删除的门店
+ List<Shop> shops = shopService.lambdaQuery().eq(Shop::getPid, shop.getId()).list();
+ for (Shop shop1 : shops) {
+ shop1.setPid(0);
+ }
+ shopService.updateBatchById(shops);
appUserClient.clearBindShop(shop.getId());
UserShop userShop = new UserShop();
userShop.setShopId(shop.getId());
@@ -284,6 +292,7 @@
AppUserShop appUserShop = new AppUserShop();
appUserShop.setAppUserId(appUser.getId());
appUserShop.setShopId(shop.getId());
+ appUserShop.setRoleType(1);
appUserShopClient.delAppUserShop(appUserShop);
//添加新管理员
@@ -291,7 +300,11 @@
appUserShop = new AppUserShop();
appUserShop.setAppUserId(appUser.getId());
appUserShop.setShopId(shop.getId());
+ appUserShop.setRoleType(1);
appUserClient.addAppUserShop(appUserShop);
+ appUser.setUserType(2);
+ appUserClient.editAppUserById(appUser);
+
//修改管理员
shop.setAppUserId(appUser.getId());
@@ -706,5 +719,21 @@
return R.ok(list);
}
+
+ @GetMapping("/getShopStatistics")
+ public R<Map<String, BigDecimal> > getShopStatistics(){
+ List<Shop> shopList = shopService.list();
+ BigDecimal serverGiveawayMoney = BigDecimal.ZERO;
+ BigDecimal lowerLevelGiveawayMoney = BigDecimal.ZERO;
+ for (Shop shop : shopList) {
+ serverGiveawayMoney = serverGiveawayMoney.add(shop.getServerGiveawayMoney());
+ lowerLevelGiveawayMoney = lowerLevelGiveawayMoney.add(shop.getLowerLevelGiveawayMoney());
+ }
+ Map<String, BigDecimal> map = new HashMap<>();
+ map.put("serverGiveawayMoney", serverGiveawayMoney);
+ map.put("lowerLevelGiveawayMoney", lowerLevelGiveawayMoney);
+ return R.ok(map);
+ }
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
index f0a432b..be86361 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
@@ -127,6 +127,14 @@
public R<Shop> shopCommissionStatisticsinfo(){
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
Shop byId = shopService.getById(objectId);
+ List<ShopWithdraw> list = shopWithdrawService.lambdaQuery().eq(ShopWithdraw::getShopId, objectId)
+ .eq(ShopWithdraw::getAuditStatus, 0).list();
+ if (!list.isEmpty()){
+ BigDecimal bigDecimal = list.stream().map(ShopWithdraw::getMoney).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+ byId.setWithdrawAuditMoney(bigDecimal);
+ }else {
+ byId.setWithdrawAuditMoney(BigDecimal.ZERO);
+ }
return R.ok(byId);
}
@@ -137,6 +145,9 @@
SysUser sysUser = sysUserClient.getSysUser(userid).getData();
Integer objectId = sysUser.getObjectId();
Shop shop = shopService.getById(objectId);
+ if (money.compareTo(BigDecimal.ZERO)==0){
+ return R.fail("提现金额必须大于零");
+ }
if (money.compareTo(shop.getCanWithdrawMoney())>0){
return R.fail("提现金额不能大于可提现金额");
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
index cac368d..32aafb7 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
@@ -50,7 +50,8 @@
private SysUserClient sysUserClient;
@Resource
private AppUserShopClient appUserShopClient;
-
+ @Resource
+ private AppUserClient appUserClient;
@@ -79,8 +80,7 @@
return R.ok(page);
}
- @Resource
- private AppUserClient appUserClient;
+
@PostMapping("/manage/addorupdate")
@ApiOperation(value = "添加编辑", tags = {"门店-技师列表"})
public R<Page<Technician>> add(@RequestBody Technician technician) {
@@ -105,6 +105,7 @@
AppUserShop appUserShop = new AppUserShop();
appUserShop.setShopId(sysUser.getObjectId());
appUserShop.setAppUserId(appUser.getId());
+ appUserShop.setRoleType(3);
appUserShopClient.saveAppUserShop(appUserShop);
}else {
@@ -130,12 +131,21 @@
technicianService.saveOrUpdate(technician);
return R.ok();
}
+
+
+
+
@GetMapping("/manage/delete")
@ApiOperation(value = "删除", tags = {"门店-技师列表"})
public R<Page<Technician>> delete(@RequestParam Integer id) {
technicianService.removeById(id);
return R.ok();
}
+
+
+
+
+
@GetMapping("/manage/changeStatus")
@ApiOperation(value = "上下架", tags = {"门店-技师列表"})
public R<Page<Technician>> changeStatus(@RequestParam Integer id,@RequestParam@ApiParam("状态(1=下架,2=上架)") Integer status) {
@@ -144,6 +154,10 @@
technicianService.updateById(byId);
return R.ok();
}
+
+
+
+
@GetMapping("/manage/changesubscri")
@ApiOperation(value = "修改预约状态", tags = {"门店-技师列表"})
public R<Page<Technician>> changesubscri(@RequestParam Integer id,@RequestParam@ApiParam("预约状态(1=可预约,2=不可预约)") Integer subscribeStatus) {
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java
index df9ff8c..03e72ce 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java
@@ -27,7 +27,8 @@
*/
List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(PageInfo<TechnicianSubscribeVO> pageInfo,
@Param("shopId") Long shopId,
- @Param("status") Integer status);
+ @Param("status") Integer status,
+ @Param("technicianId") Integer technicianId);
List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop1(PageInfo<TechnicianSubscribeVO> pageInfo,
@Param("shopId") Long shopId,
@Param("status") Integer status, @Param("phone")String phone,
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
index 3bc5b95..0f8de83 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
@@ -5,14 +5,19 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserShopClient;
import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.AppUserShop;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
+import com.ruoyi.other.api.domain.Technician;
import com.ruoyi.other.api.domain.TechnicianSubscribe;
import com.ruoyi.other.enums.TechnicianStatus;
import com.ruoyi.other.mapper.TechnicianSubscribeMapper;
+import com.ruoyi.other.service.TechnicianService;
import com.ruoyi.other.service.TechnicianSubscribeService;
import com.ruoyi.other.vo.TechnicianSubscribeVO;
import org.springframework.data.redis.connection.RedisZSetCommands;
@@ -24,6 +29,7 @@
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
/**
@@ -45,6 +51,13 @@
@Resource
private AppUserClient appUserClient;
+ @Resource
+ private TokenService tokenService;
+ @Resource
+ private AppUserShopClient appUserShopClient;
+ @Resource
+ private TechnicianService technicianService;
+
@@ -52,7 +65,17 @@
@Override
public PageInfo<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(Long shopId, Integer status, Integer pageCurr, Integer pageSize) {
PageInfo<TechnicianSubscribeVO> pageInfo = new PageInfo(pageCurr, pageSize);
- List<TechnicianSubscribeVO> list = technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop(pageInfo, shopId, status);
+ Long userid = tokenService.getLoginUserApplet().getUserid();
+ List<AppUserShop> data = appUserShopClient.getAppUserShop(userid).getData();
+ Optional<AppUserShop> first = data.stream().filter(s -> s.getShopId() == shopId.intValue() && s.getRoleType() == 3).findFirst();
+ Integer technicianId = null;
+ if(first.isPresent()){
+ AppUserShop appUserShop = first.get();
+ Technician technician = technicianService.getOne(new LambdaQueryWrapper<Technician>().eq(Technician::getAppUserId, appUserShop.getAppUserId())
+ .eq(Technician::getShopId, appUserShop.getShopId()).eq(Technician::getDelFlag, 0).eq(Technician::getStatus, 1));
+ technicianId = technician.getId();
+ }
+ List<TechnicianSubscribeVO> list = technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop(pageInfo, shopId, status, technicianId);
for (TechnicianSubscribeVO technicianSubscribeVO : list) {
String id = technicianSubscribeVO.getId();
TechnicianSubscribe technicianSubscribe = this.getById(id);
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml
index 32f51d2..d8da8e6 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml
@@ -24,6 +24,9 @@
<if test="status != null">
AND tts.status = #{status}
</if>
+ <if test="technicianId != null">
+ AND tts.technician_id = #{technicianId}
+ </if>
ORDER BY tts.create_time DESC
</select>
<select id="getTechnicianSubscribeByUserAndShop1" resultType="com.ruoyi.other.vo.TechnicianSubscribeVO">
--
Gitblit v1.7.1