From 1d64c14b6b0e9bbcae2736f83c0a498b5083d1d6 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 16 十二月 2024 17:11:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java | 14
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderBalancePaymentService.java | 11
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/VipSetting.java | 4
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java | 9
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderBalancePaymentServiceImpl.java | 15
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100ListVo.java | 22
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/CouponInfoMapper.java | 3
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 2
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java | 23
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 322 +++++++++++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderBalancePaymentMapper.java | 11
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java | 1
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java | 10
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java | 1
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java | 2
ruoyi-service/ruoyi-order/pom.xml | 6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100Vo.java | 27 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 73 ++
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderBalancePaymentMapper.xml | 6
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java | 5
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml | 4
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 59 ++
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 40 +
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java | 3
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java | 1
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java | 101 ++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java | 58 ++
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java | 6
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java | 1
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml | 22
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java | 39 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 48 ++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java | 5
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java | 5
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java | 24
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java | 34 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 50 ++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/MapTrackKD100Vo.java | 36 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java | 8
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageList.java | 32 +
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml | 18
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java | 2
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java | 1
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderBalancePayment.java | 39 +
ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java | 12
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 25
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java | 47 +
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java | 2
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/CouponInfo.java | 23
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 10
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java | 27
51 files changed, 1,245 insertions(+), 104 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java
index 69f2a2e..741226b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
+import java.util.Collections;
import java.util.List;
/**
@@ -71,16 +72,32 @@
log.error("获取直推会员数失败:{}", cause.getMessage());
throw new RuntimeException("获取直推会员数失败");
}
-
- @Override
+
+ @Override
+ public R<List<AppUser>> getAppUserByName(String name) {
+ return R.fail("根据用户名称模糊搜索用户列表失败:" + cause.getMessage());
+ }
+
+ @Override
+ public R<List<AppUser>> getAppUserByPhone(String phone) {
+ return R.fail("根据用户电话模糊搜索用户列表失败:" + cause.getMessage());
+ }
+
+
+ @Override
public R<Void> addAppUserShop(AppUserShop appUserShop) {
return R.fail("添加失败");
}
@Override
- public R<AppUser> getAppUserByPhone(String phone) {
+ public R<AppUser> getAppUserByPhone1(String phone) {
return R.fail("通过手机号查询用户失败");
}
+
+ @Override
+ public List<AppUser> listByIds(List<String> list) {
+ return Collections.emptyList();
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index 1f101d7..41b5740 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -58,7 +58,27 @@
@PostMapping("/app-user/getVipCount")
R<Long> getVipCount(@RequestParam("userId")Long userId, @RequestParam("vipId") Integer vipId );
- @GetMapping("/getAppUserByPhone")
- public R<AppUser> getAppUserByPhone(@RequestParam("phone") String phone);
+ @GetMapping("/app-user/listByIds")
+ List<AppUser> listByIds(List<String> list);
+
+ /**
+ * 根据用户名称模糊搜索用户列表
+ * @param name
+ * @return
+ */
+ @PostMapping("/app-user/getAppUserByName")
+ R<List<AppUser>> getAppUserByName(@RequestParam("name") String name);
+
+ /**
+ * 根据用户电话模糊搜索用户列表
+ * @param phone
+ * @return
+ */
+ @PostMapping("/app-user/getAppUserByPhone")
+ R<List<AppUser>> getAppUserByPhone(@RequestParam("phone") String phone);
+
+
+ @PostMapping("/app-user/getAppUserByPhone1")
+ R<AppUser> getAppUserByPhone1(String phone);
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
index a7914ca..071b668 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -265,6 +265,11 @@
private LocalDateTime lastOrderTime;
+ public String getIdStr(){
+ return String.valueOf(id);
+ }
+
+
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
index cae6761..f3d999c 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
@@ -31,7 +31,7 @@
@ApiModelProperty("订单id")
private Long orderId;
- @ApiModelProperty("类型:1充值2提现3红包4分佣5商城购物")
+ @ApiModelProperty("类型:1充值2提现3红包4分佣5商城购物6订单取消回退")
private Integer changeType;
@ApiModelProperty("变更前金额")
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
index 18a0e1d..67f81a7 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java
@@ -11,6 +11,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.time.LocalDate;
import java.time.LocalDateTime;
/**
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java
index b47c109..fd2cebb 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java
@@ -3,10 +3,13 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springframework.web.bind.annotation.RequestParam;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -72,14 +75,20 @@
@ApiModelProperty(value = "开始时间")
@TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
@TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@TableField(exist = false)
private List<Long> userIds;
+ @TableField(exist = false)
+ private Integer pageNum;
+ @TableField(exist = false)
+ private Integer pageSize;
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
index 5818bc6..aa4ac8c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java
@@ -57,6 +57,11 @@
public R<Order> getLastOrder(Long appUserId) {
return R.fail("获取订单失败");
}
+
+ @Override
+ public R<List<Order>> byUserId(Long appUserId) {
+ return R.fail();
+ }
};
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
index 6e0a0fe..ca1a03f 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
@@ -104,7 +104,6 @@
@TableField("discount_total_amount")
private BigDecimal discountTotalAmount;
-
@ApiModelProperty(value = "实际支付价格")
@TableField("payment_amount")
private BigDecimal paymentAmount;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderBalancePayment.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderBalancePayment.java
new file mode 100644
index 0000000..0b5b89d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderBalancePayment.java
@@ -0,0 +1,39 @@
+package com.ruoyi.order.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/13 16:41
+ */
+@Data
+@TableName("t_order_balance_payment")
+public class OrderBalancePayment {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.NONE)
+ private Long id;
+ /**
+ * 订单id
+ */
+ @TableField("order_id")
+ private Long orderId;
+ /**
+ * 红包支付金额
+ */
+ @TableField("red_packet_amount")
+ private BigDecimal redPacketAmount;
+ /**
+ * 分销金额支付金额
+ */
+ @TableField("distribution_amount")
+ private BigDecimal distributionAmount;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/CouponInfo.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/CouponInfo.java
index 5b352f5..7598c4c 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/CouponInfo.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/CouponInfo.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.account.api.model.AppUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -11,6 +12,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.List;
/**
* <p>
@@ -126,14 +128,29 @@
@TableField("shelf_status")
private Integer shelfStatus;
+ @ApiModelProperty(value = "指定会员等级,逗号隔开")
+ private String vipIds;
+
@ApiModelProperty(value = "已发放数量")
@TableField(exist = false)
private Long sendNumNow;
- @ApiModelProperty(value = "指定会员等级,逗号隔开")
- private String vipIds;
+ @ApiModelProperty(value = "其他商品名称")
+ private String goodsNameJson;
- public String getIdStr() {
+
+ @ApiModelProperty(value = "其他商品名称")
+ @TableField(exist = false)
+ private List<String> goodsNameList;
+
+ @TableField(exist = false)
+ private List<Goods> goods;
+
+ @TableField(exist = false)
+ private List<AppUser> appUserList;
+
+
+ public String getIdStr(){
return String.valueOf(id);
}
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/VipSetting.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/VipSetting.java
index 799df1d..07fc02d 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/VipSetting.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/VipSetting.java
@@ -52,6 +52,10 @@
@TableField("vip_withdrawal_role")
private Integer vipWithdrawalRole;
+ @ApiModelProperty(value = "钱包提现权限:1开0关")
+ @TableField("vip_agent_level_up_role")
+ private Integer vipAgentLevelUpRole;
+
@ApiModelProperty(value = "最低提现门槛")
@TableField("vip_withdrawal_min_amount")
private BigDecimal vipWithdrawalMinAmount;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java
index 0135ce7..177fa9f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java
@@ -11,5 +11,6 @@
@ApiModelProperty(value = "用户名称")
private String nickName;
+ private Integer objectId;
}
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java
index b12fb31..262921f 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java
@@ -16,6 +16,10 @@
* 用户密码
*/
private String password;
+ /**
+ * 登录平台类型(1=平台,2=门店)
+ */
+ private Integer roleType;
public String getUsername()
{
@@ -36,4 +40,12 @@
{
this.password = password;
}
+
+ public Integer getRoleType() {
+ return roleType;
+ }
+
+ public void setRoleType(Integer roleType) {
+ this.roleType = roleType;
+ }
}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
index 14c12e1..0067210 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
@@ -9,9 +9,9 @@
public class MsgUtil {
- public final static String ecName= "四川明星新能源科技有限公司";
- public final static String secretKey= "MX_xny2023?9";
- public final static String sign= "1PUAVuY2b";
+ public final static String ecName= "";
+ public final static String secretKey= "";
+ public final static String sign= "";
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java
index 5092f3f..505b9c3 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java
@@ -1,5 +1,7 @@
package com.ruoyi.common.core.web.page;
+import io.swagger.annotations.ApiModel;
+
import java.io.Serializable;
import java.util.List;
@@ -8,6 +10,7 @@
*
* @author ruoyi
*/
+@ApiModel
public class TableDataInfo<T> implements Serializable
{
private static final long serialVersionUID = 1L;
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 5651b84..03bb721 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
@@ -10,6 +10,7 @@
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysDept;
import com.ruoyi.system.api.domain.SysRole;
@@ -69,6 +70,9 @@
@Resource
private UserShopService userShopService;
+ @Resource
+ private TokenService tokenService;
+
@@ -77,7 +81,7 @@
* 获取用户列表
*/
@GetMapping("/list")
- @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult list(GetSysUserList getSysUserList) {
PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize());
PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList);
@@ -88,7 +92,7 @@
* 获取用户选择列表
*/
@PostMapping("/getChangeUserList")
- @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表"})
+ @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表", "门店后台-部门管理"})
public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) {
return AjaxResult.success(userService.getChangeUserList(query));
}
@@ -98,9 +102,14 @@
*/
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping("/add")
- @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult add(@RequestBody SysUser user) {
user.setUserName(user.getPhonenumber());
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser1 = userService.getById(userid);
+ if(sysUser1.getRoleType() == 2){
+ user.setObjectId(sysUser1.getObjectId());
+ }
if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
user.setNickName(user.getPhonenumber());
}
@@ -141,7 +150,7 @@
/**
* 根据用户编号获取详细信息
*/
- @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理", "门店后台-部门管理"})
@GetMapping("/getInfo/{userId}")
public AjaxResult getInfo(@PathVariable Long userId) {
userService.checkUserDataScope(userId);
@@ -164,7 +173,7 @@
*/
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/update")
- @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult edit(@Validated @RequestBody SysUser user) {
user.setUserName(user.getPhonenumber());
if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
@@ -214,7 +223,7 @@
*/
@Log(title = "用户管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{userIds}")
- @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult remove(@PathVariable Long[] userIds) {
if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) {
return error("当前用户不能删除");
@@ -226,7 +235,7 @@
@PostMapping("/shopUserStart")
- @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) {
if (shopUserStart.getUserId() == null) {
return AjaxResult.error("userId不能为空");
@@ -352,7 +361,7 @@
*/
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd")
- @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理"})
+ @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理", "门店后台-部门管理"})
public AjaxResult resetPwd(@RequestBody SysUser user) {
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java
index 05c7100..58f136f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/GetSysUserList.java
@@ -22,4 +22,5 @@
private List<Integer> roleIds;
@ApiModelProperty(value = "账户状态(0=正常,1=禁用)")
private Integer status;
+ private Integer objectId;
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 08b41c6..5909863 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -509,6 +509,11 @@
@Override
public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) {
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser1 = this.getById(userid);
+ if(sysUser1.getRoleType() == 2){
+ getSysUserList.setObjectId(sysUser1.getObjectId());
+ }
List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList);
for (SysUser sysUser : list) {
List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
@@ -541,6 +546,11 @@
@Override
public PageInfo<SysUser> getChangeUserList(ChangeUserQuery query) {
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser1 = this.getById(userid);
+ if(sysUser1.getRoleType() == 2){
+ query.setObjectId(sysUser1.getObjectId());
+ }
PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
List<SysUser> list = this.baseMapper.getChangeUserList(pageInfo, query);
return pageInfo.setRecords(list);
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 74e1f8c..a6316a3 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
@@ -113,11 +113,19 @@
</select>
<select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
- select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
+ select user_id, user_name from sys_user where user_name = #{userName}
+ <if test="null != objectId">
+ and objectId = #{objectId}
+ </if>
+ and del_flag = '0' limit 1
</select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
- select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
+ select user_id, phonenumber from sys_user where phonenumber = #{phonenumber}
+ <if test="null != objectId">
+ and objectId = #{objectId}
+ </if>
+ and del_flag = '0' limit 1
</select>
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
@@ -141,6 +149,9 @@
</if>
<if test="null != req.status">
and status = #{req.status}
+ </if>
+ <if test="null != req.objectId">
+ and objectId = #{req.objectId}
</if>
and del_flag = '0' and role_type =1
order by create_time desc
@@ -168,6 +179,9 @@
<if test="query.nickName != null and query.nickName != ''">
AND nick_name LIKE concat('%',#{query.nickName},'%')
</if>
+ <if test="null != query.objectId">
+ and objectId = #{query.objectId}
+ </if>
AND del_flag = '0'
AND role_type = 1
</where>
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 f06387c..ce599a6 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
@@ -1,6 +1,15 @@
package com.ruoyi.account.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.UserCancellationLog;
+import com.ruoyi.account.api.model.UserCoupon;
+import com.ruoyi.account.api.model.UserSignRecord;
+import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.account.service.UserCancellationLogService;
+import com.ruoyi.account.service.UserCouponService;
+import com.ruoyi.account.service.UserSignRecordService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.*;
@@ -73,6 +82,10 @@
public R<LoginVo> mobileLogin(@RequestBody MobileLogin mobileLogin){
return appUserService.mobileLogin(mobileLogin);
}
+
+
+
+
@ResponseBody
@@ -348,6 +361,34 @@
appUserService.onlineRecord();
return R.ok();
}
+
+
+
+
+
+ /**
+ * 根据用户名称模糊搜索用户列表
+ * @param name
+ * @return
+ */
+ @PostMapping("/getAppUserByName")
+ public R<List<AppUser>> getAppUserByName(@RequestParam("name") String name){
+ List<AppUser> list = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
+ .like(AppUser::getName, name));
+ return R.ok(list);
+ }
+
+ /**
+ * 根据用户电话模糊搜索用户列表
+ * @param phone
+ * @return
+ */
+ @PostMapping("/getAppUserByPhone")
+ public R<List<AppUser>> getAppUserByPhone(@RequestParam("phone") String phone){
+ List<AppUser> list = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
+ .like(AppUser::getPhone, phone));
+ return R.ok(list);
+ }
/**
* 获取用户列表
@@ -473,14 +514,20 @@
- @GetMapping("/getAppUserByPhone")
- public R<AppUser> getAppUserByPhone(String phone){
- AppUser appUser = appUserService.lambdaQuery().eq(AppUser::getPhone, phone).one();
+
+ @GetMapping("/listByIds")
+ List<AppUser> listByIds(List<String> list){
+ return appUserService.listByIds(list);
+ }
+
+
+
+ @PostMapping("/getAppUserByPhone1")
+ public R<AppUser> getAppUserByPhone1(@RequestParam("phone") String phone){
+ AppUser appUser = appUserService.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
+ .eq(AppUser::getPhone, phone));
return R.ok(appUser);
}
-
-
-
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
index 60e083f..3428da9 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -14,7 +14,9 @@
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.other.api.domain.Goods;
+import com.ruoyi.other.api.domain.PointSetting;
import com.ruoyi.other.api.feignClient.GoodsClient;
+import com.ruoyi.other.api.feignClient.PointSettingClient;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -54,12 +56,15 @@
private UserPointService userPointService;
@Resource
private GoodsClient goodsClient;
+
+ @Resource
+ private PointSettingClient pointSettingClient;
@GetMapping("/mine/list")
- @ApiOperation(value = "已领取列表", tags = {"小程序-个人中心-优惠劵","后台管理-活动管理-优惠券管理"})
+ @ApiOperation(value = "已领取列表", tags = {"小程序-个人中心-优惠劵"})
public R<Page<UserCoupon>> minelist(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @ApiParam("1未使用2已使用3已过期") Integer status) {
Long userid = tokenService.getLoginUserApplet().getUserid();
Page<UserCoupon> page = userCouponService.lambdaQuery()
@@ -121,7 +126,7 @@
if (data==null){
return R.fail("当前优惠券不存在,请刷新后重试");
}
- if (data.getSendType()!=1&&byId.getLavePoint().compareTo(data.getNeedPoint().intValue())==-1){
+ if (data.getSendType()!=1&& byId.getLavePoint().compareTo(data.getNeedPoint().intValue()) < 0){
return R.fail("当前积分不足,兑换失败");
}
//检验发放时间
@@ -131,23 +136,27 @@
}
//如果是积分兑换,增加积分的历史记录
if (data.getSendType()!=1){
+ int point = data.getNeedPoint().intValue();
+ Integer lavePoint = byId.getLavePoint();
+ //扣除积分
+ byId.setLavePoint(byId.getLavePoint() - point);
+ appUserService.updateById(byId);
+
UserPoint userPoint = new UserPoint();
userPoint.setType(4);
- userPoint.setHistoricalPoint(byId.getLavePoint());
- userPoint.setVariablePoint(data.getNeedPoint().intValue());
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(point);
+ userPoint.setBalance(byId.getLavePoint());
userPoint.setAppUserId(userid);
userPoint.setObjectId(Long.valueOf(data.getId()));
userPointService.save(userPoint);
- //扣除积分
- byId.setLavePoint(byId.getLavePoint() - userPoint.getVariablePoint());
- appUserService.updateById(byId);
}
//增加优惠券记录,根据时间类型设置开始结束时间
UserCoupon userCoupon = new UserCoupon();
userCoupon.setAppUserId(userid);
if (data.getPeriodType()==1) {
- userCoupon.setStartTime(data.getPeriodStartTime());
- userCoupon.setEndTime(data.getPeriodEndTime());
+ userCoupon.setStartTime(data.getPeriodStartTime().atTime(0,0,0));
+ userCoupon.setEndTime(data.getPeriodEndTime().atTime(0,0,0));
}else {
userCoupon.setStartTime(now);
userCoupon.setEndTime(now.plusDays(data.getPeriodDays()));
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 d13afbd..780bc3d 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
@@ -128,8 +128,9 @@
*/
@GetMapping("/list")
@ApiOperation(value = "积分变更记录", tags = "管理后台-财务统计-用户积分统计")
- public R<IPage<UserPoint>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
- IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(pageNum, pageSize), userPoint);
+ public R<IPage<UserPoint>> list(UserPoint userPoint) {
+ System.out.println("1111111111111111111111");
+ IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
return R.ok(userPointPage);
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 64a32a1..a58ae1f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -306,8 +306,14 @@
if (pointSetting == null){
throw new RuntimeException("积分设置不存在");
}
- appUser.setLavePoint(pointSetting.getGetRegisPoint());
- appUser.setTotalPoint(0);
+ Integer getRegisPoint = pointSetting.getGetRegisPoint();
+ Integer getRegisPoint1 = getRegisPoint;
+ //计算可用积分比例
+ if(1 == pointSetting.getGetRegisPointOpen()){
+ getRegisPoint1 = getRegisPoint1 * (100 - pointSetting.getGetRegisPoint());
+ }
+ appUser.setLavePoint(getRegisPoint1);
+ appUser.setTotalPoint(getRegisPoint);
//根据平台的配置未达标,则标注为可修改推广人
appUser.setChangePromoter(0);
appUser.setLongitude(registerAccount.getLongitude());
@@ -320,6 +326,18 @@
// appUser.setDistrict();
// appUser.setDistrictCode();
this.save(appUser);
+ //增加积分变动记录
+ if(getRegisPoint1 > 0){
+ //构建积分流水记录
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(10);
+ userPoint.setHistoricalPoint(0);
+ userPoint.setVariablePoint(getRegisPoint1);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(appUser.getId());
+ userPointService.save(userPoint);
+ }
//获取微信推广二维码
String fileName = UUID.randomUUID() + ".jpg";
weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.DEVELOP, filePath + fileName);
@@ -376,6 +394,28 @@
*/
public void vipUpgrade(Long id){
AppUser appUser = this.getById(id);
+ Integer lavePoint = appUser.getLavePoint();
+ //计算积分
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ Integer newPoint = pointSetting.getNewPoint();
+ Integer newPoint1 = newPoint;
+ if(null != pointSetting && 1 == pointSetting.getGetNewPointOpen()){
+ newPoint1 = newPoint1 * (100 - pointSetting.getGetNewPoint());
+ }
+ appUser.setLavePoint(appUser.getLavePoint() + newPoint1);
+ appUser.setTotalPoint(appUser.getTotalPoint() + newPoint);
+ //记录积分变动
+ if(newPoint1 > 0){
+ //构建积分流水记录
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(3);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(newPoint1);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(appUser.getId());
+ userPointService.save(userPoint);
+ }
Integer vipId = appUser.getVipId();
//钻石会员
VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData();
@@ -592,9 +632,13 @@
PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
if(null != pointSetting){
int hourPoint = pointSetting.getHourPoint().intValue();
+ int hourPoint1 = hourPoint;
+ if(1 == pointSetting.getWorkPointOpen()){
+ hourPoint1 = hourPoint1 * (100 - pointSetting.getWorkPoint());
+ }
Integer lavePoint = appUser.getLavePoint();
appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
- appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
+ appUser.setLavePoint(appUser.getLavePoint() + hourPoint1);
this.updateById(appUser);
//添加积分变动记录
UserPoint userPoint = new UserPoint();
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
index 39c2e17..2e58044 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -164,20 +164,20 @@
@Override
public UserPointStatistics getStatistics(UserPoint userPoint) {
- List<Long> userIds = new ArrayList<>();
- if (StringUtils.isNotEmpty(userPoint.getUserName())) {
- userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
+ if (StringUtils.isNotEmpty(userPoint.getUserName()) || StringUtils.isNotEmpty(userPoint.getPhone())) {
+ List<Long> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
.select(AppUser::getId)
- .like(AppUser::getName, userPoint.getUserName()))
+ .like(StringUtils.isNotEmpty(userPoint.getUserName()),AppUser::getName, userPoint.getUserName())
+ .like(StringUtils.isNotEmpty(userPoint.getPhone()),AppUser::getPhone, userPoint.getPhone()))
.stream()
.map(appUserId -> (Long) appUserId)
.collect(Collectors.toList());
+ userPoint.setUserIds(userIds);
}
List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint);
Map<Integer, Integer> userBalanceMap = userPointList.stream()
.collect(Collectors.toMap(UserPoint::getType, UserPoint::getBalance));
-
Integer consumePoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.CONSUME.getCode())).orElse(0);
@@ -213,8 +213,8 @@
Page<UserPoint> userPointPage = page(page, new LambdaQueryWrapper<UserPoint>()
.in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
- .eq(UserPoint::getType, userPoint.getType())
- .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
+ .eq(userPoint.getType() != null, UserPoint::getType, userPoint.getType())
+ .between( userPoint.getStartTime()!= null && userPoint.getEndTime() !=null,UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
.orderByDesc(UserPoint::getCreateTime));
userPointPage.getRecords().forEach(userPoint1 -> appUserList.stream()
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
index bb07244..c045836 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
@@ -50,15 +50,23 @@
ROW_NUMBER() OVER (PARTITION BY type ORDER BY create_time DESC) AS rn
FROM
t_user_point
- ) AS subquery
+ <where>
+ <if test="startTime != null and endTime != null">
+ create_time BETWEEN #{startTime} AND #{endTime}
+ </if>
+ <if test="type != null">
+ AND type = #{type}
+ </if>
+ <if test="userIds != null and userIds.size !=0">
+ AND app_user_id IN
+ <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
+ #{item}
+ </foreach>
+ </if>
+ </where>
+ ) AS subquery
WHERE
rn = 1
- <if test="type != null">
- AND type = #{type}
- </if>
- <if test="appUserId != null">
- AND app_user_id = #{appUserId}
- </if>
</select>
</mapper>
diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml
index 788f0f9..b0095a7 100644
--- a/ruoyi-service/ruoyi-order/pom.xml
+++ b/ruoyi-service/ruoyi-order/pom.xml
@@ -150,6 +150,12 @@
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.github.kuaidi100-api</groupId>
+ <artifactId>sdk</artifactId>
+ <version>1.0.11</version>
+ </dependency>
</dependencies>
<build>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 05397e6..1f95358 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -14,8 +14,7 @@
import com.ruoyi.order.model.Order;
import com.ruoyi.order.service.CommissionService;
import com.ruoyi.order.service.OrderService;
-import com.ruoyi.order.vo.OrderDetailVO;
-import com.ruoyi.order.vo.OrderVO;
+import com.ruoyi.order.vo.*;
import com.ruoyi.other.api.domain.BaseSetting;
import com.ruoyi.other.api.feignClient.BaseSettingClient;
import com.ruoyi.system.api.model.LoginUser;
@@ -213,5 +212,50 @@
}
+
+
+ @ResponseBody
+ @GetMapping("/getOrderPageList")
+ @ApiOperation(value = "获取订单列表", tags = {"管理后台-订单管理", "门店后台-订单管理"})
+ public TableDataInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList){
+ startPage();
+ List<OrderPageListVo> list = orderService.getOrderPageList(orderPageList);
+ return getDataTable(list);
+ }
+
+
+ @ResponseBody
+ @PutMapping("/confirmDelivery/{orderId}")
+ @ApiOperation(value = "已发货操作", tags = {"管理后台-订单管理"})
+ public R confirmDelivery(@PathVariable("orderId") String orderId, String code){
+ return orderService.confirmDelivery(orderId, code);
+ }
+
+
+ @ResponseBody
+ @PutMapping("/cancelOrder/{orderId}")
+ @ApiOperation(value = "取消订单操作", tags = {"管理后台-订单管理"})
+ public R cancelOrder(@PathVariable("orderId") Long orderId){
+ return orderService.cancelOrder(orderId);
+ }
+
+ @ResponseBody
+ @PutMapping("/receivingOperation/{orderId}")
+ @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理"})
+ public R receivingOperation(@PathVariable("orderId") Long orderId){
+ return orderService.receivingOperation(orderId);
+ }
+
+
+ @ResponseBody
+ @GetMapping("/getOrderInfo/{orderId}")
+ @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理"})
+ public R<OrderInfoVo> getOrderInfo(@PathVariable("orderId") Long orderId){
+ OrderInfoVo orderInfo = orderService.getOrderInfo(orderId);
+ return R.ok(orderInfo);
+ }
+
+
+
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderBalancePaymentMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderBalancePaymentMapper.java
new file mode 100644
index 0000000..c0f2b59
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderBalancePaymentMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.model.OrderBalancePayment;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/13 16:44
+ */
+public interface OrderBalancePaymentMapper extends BaseMapper<OrderBalancePayment> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
index eae8c99..44414e8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -1,6 +1,8 @@
package com.ruoyi.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.vo.OrderPageList;
+import com.ruoyi.order.vo.OrderPageListVo;
import com.ruoyi.order.vo.OrderVO;
import com.ruoyi.order.model.Order;
import org.apache.ibatis.annotations.Param;
@@ -20,4 +22,12 @@
* 查询用户id
*/
List<OrderVO> selectOrderListByUserId(@Param("status") Integer status, @Param("userId") Long userId);
+
+
+ /**
+ * 管理后台获取订单列表数据
+ * @param orderPageList
+ * @return
+ */
+ List<OrderPageListVo> getOrderPageList(@Param("item") OrderPageList orderPageList);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderBalancePaymentService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderBalancePaymentService.java
new file mode 100644
index 0000000..f8be0d0
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderBalancePaymentService.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.model.OrderBalancePayment;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/13 16:43
+ */
+public interface OrderBalancePaymentService extends IService<OrderBalancePayment> {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
index d710205..4ee3d67 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
@@ -1,9 +1,10 @@
package com.ruoyi.order.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.R;
import com.ruoyi.order.model.Order;
-import com.ruoyi.order.vo.OrderDetailVO;
-import com.ruoyi.order.vo.OrderVO;
+import com.ruoyi.order.vo.*;
+import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@@ -23,5 +24,45 @@
boolean check(Order order, Integer shopId, Long userId);
void writeOff(String code,Integer shopId);
-
+
+
+ /**
+ * 获取管理后台订单列表数据
+ * @param orderPageList
+ * @return
+ */
+ List<OrderPageListVo> getOrderPageList(OrderPageList orderPageList);
+
+
+ /**
+ * 确认发货操作
+ * @param orderId
+ * @param code
+ * @return
+ */
+ R confirmDelivery(String orderId, String code);
+
+
+ /**
+ * 取消订单操作
+ * @param orderId
+ * @return
+ */
+ R cancelOrder(Long orderId);
+
+
+ /**
+ * 收货操作
+ * @param orderId
+ * @return
+ */
+ R receivingOperation(Long orderId);
+
+
+ /**
+ * 获取订单详情
+ * @param orderId
+ * @return
+ */
+ OrderInfoVo getOrderInfo(Long orderId);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderBalancePaymentServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderBalancePaymentServiceImpl.java
new file mode 100644
index 0000000..a99b9d2
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderBalancePaymentServiceImpl.java
@@ -0,0 +1,15 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.mapper.OrderBalancePaymentMapper;
+import com.ruoyi.order.model.OrderBalancePayment;
+import com.ruoyi.order.service.OrderBalancePaymentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/13 16:43
+ */
+@Service
+public class OrderBalancePaymentServiceImpl extends ServiceImpl<OrderBalancePaymentMapper, OrderBalancePayment> implements OrderBalancePaymentService {
+}
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 433629f..ac220ed 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
@@ -1,12 +1,14 @@
package com.ruoyi.order.service.impl;
import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.AppUserClient;
-import com.ruoyi.account.api.model.AppUserShop;
-import com.ruoyi.account.api.model.UserAddress;
+import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient;
+import com.ruoyi.account.api.feignClient.UserPointClient;
+import com.ruoyi.account.api.model.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
@@ -15,24 +17,28 @@
import com.ruoyi.order.mapper.OrderGoodMapper;
import com.ruoyi.order.mapper.OrderMapper;
import com.ruoyi.order.model.Order;
+import com.ruoyi.order.model.OrderBalancePayment;
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.order.service.CommissionService;
+import com.ruoyi.order.service.OrderBalancePaymentService;
import com.ruoyi.order.service.OrderService;
-import com.ruoyi.order.vo.OrderDetailVO;
-import com.ruoyi.order.vo.OrderGoodsVO;
-import com.ruoyi.order.vo.OrderVO;
+import com.ruoyi.order.util.ExpressDeliveryUtil;
+import com.ruoyi.order.util.vo.QueryKD100Vo;
+import com.ruoyi.order.vo.*;
import com.ruoyi.other.api.domain.*;
-import com.ruoyi.other.api.feignClient.BaseSettingClient;
-import com.ruoyi.other.api.feignClient.ShopClient;
-import com.ruoyi.other.api.feignClient.TechnicianClient;
+import com.ruoyi.other.api.feignClient.*;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -61,6 +67,29 @@
private CommissionService commissionService;
@Resource
private BaseSettingClient baseSettingClient;
+
+ @Resource
+ private SysUserClient sysUserClient;
+
+ @Resource
+ private BalanceChangeRecordClient balanceChangeRecordClient;
+
+ @Resource
+ private UserPointClient userPointClient;
+
+ @Resource
+ private PointSettingClient pointSettingClient;
+
+ @Resource
+ private OrderBalancePaymentService orderBalancePaymentService;
+
+ @Resource
+ private VipSettingClient vipSettingClient;
+
+ @Resource
+ private GoodsClient goodsClient;
+
+
@Override
@@ -223,4 +252,277 @@
Long days = jsonObject.getLong("days");
commissionService.addToCommissionDelayQueue(order.getId(), LocalDateTime.now().plusDays(days));
}
+
+
+ /**
+ * 管理后台获取订单列表数据
+ * @param orderPageList
+ * @return
+ */
+ @Override
+ public List<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) {
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+ if(2 == sysUser.getRoleType()){
+ orderPageList.setShopId(sysUser.getObjectId());
+ }
+ //搜索条件,用户姓名
+ if(StringUtils.isNotEmpty(orderPageList.getUserName())){
+ List<AppUser> data = appUserClient.getAppUserByName(orderPageList.getUserName()).getData();
+ List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList());
+ if(null != orderPageList.getAppUserIds()){
+ List<Long> appUserIds = orderPageList.getAppUserIds();
+ appUserIds.addAll(collect);
+ orderPageList.setAppUserIds(appUserIds);
+ }else{
+ orderPageList.setAppUserIds(collect);
+ }
+ }
+ //搜索条件,用户电话
+ if(StringUtils.isNotEmpty(orderPageList.getPhone())){
+ List<AppUser> data = appUserClient.getAppUserByPhone(orderPageList.getPhone()).getData();
+ List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList());
+ if(null != orderPageList.getAppUserIds()){
+ List<Long> appUserIds = orderPageList.getAppUserIds();
+ appUserIds.addAll(collect);
+ orderPageList.setAppUserIds(appUserIds);
+ }else{
+ orderPageList.setAppUserIds(collect);
+ }
+ }
+
+ List<OrderPageListVo> list = this.baseMapper.getOrderPageList(orderPageList);
+ for (OrderPageListVo orderPageListVo : list) {
+ Long appUserId = orderPageListVo.getAppUserId();
+ AppUser appUser = appUserClient.getAppUserById(appUserId);
+ orderPageListVo.setUserName(appUser.getName());
+ orderPageListVo.setPhone(appUser.getPhone());
+ }
+ return list;
+ }
+
+
+ /**
+ * 确认发货操作
+ * @param orderId
+ * @param code
+ * @return
+ */
+ @Override
+ public R confirmDelivery(String orderId, String code) {
+ Order order = this.getById(orderId);
+ if(1 == order.getPayStatus()){
+ return R.fail("订单还未完成支付");
+ }
+ if(1 == order.getOrderType() || null == order.getAddressJson()){
+ return R.fail("该订单不支付快递配送");
+ }
+ if(1 != order.getOrderStatus()){
+ return R.fail("无效的操作");
+ }
+ //添加快递号和修改订单状态
+ order.setExpressJson(code);
+ order.setOrderStatus(2);
+ this.updateById(order);
+ return R.ok();
+ }
+
+
+ /**
+ * 取消订单操作
+ * @param orderId
+ * @return
+ */
+ @Override
+ public R cancelOrder(Long orderId) {
+ Order order = this.getById(orderId);
+ if(Arrays.asList(4, 5, 6, 7, 8).contains(order.getOrderStatus())){
+ return R.fail("无效的操作");
+ }
+ order.setOrderStatus(5);
+ this.updateById(order);
+ //开始退款
+ Integer payMethod = order.getPayMethod();
+ BigDecimal paymentAmount = order.getPaymentAmount();
+ AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+ if(1 == payMethod){
+ //微信退款
+ }
+ if(2 == payMethod){
+ //余额退款
+ OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId));
+ BigDecimal balance = appUser.getBalance();
+ appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setBalance(balance.add(paymentAmount).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setShopAmount(appUser.getShopAmount().subtract(paymentAmount).setScale(2, RoundingMode.HALF_EVEN));
+
+ //构建账户余额流水明细
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setOrderId(orderId);
+ balanceChangeRecord.setAppUserId(order.getAppUserId());
+ balanceChangeRecord.setChangeType(6);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(paymentAmount);
+ balanceChangeRecord.setAfterAmount(appUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+ Integer lavePoint = appUser.getLavePoint();
+ if(3 == payMethod){
+ //积分退款
+ appUser.setLavePoint(appUser.getLavePoint() + order.getPoint());
+
+ //开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款
+ if(null != order.getExpressAmount() && BigDecimal.ZERO.compareTo(order.getExpressAmount()) < 0){
+ BigDecimal expressAmount = order.getExpressAmount();
+ if(1 == order.getExpressPayMethod()){
+ //微信退款
+ }
+ if(2 == order.getExpressPayMethod()){
+ //余额退款
+ OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId));
+ BigDecimal balance = appUser.getBalance();
+ appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setBalance(balance.add(expressAmount).setScale(2, RoundingMode.HALF_EVEN));
+ //构建账户余额流水明细
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setOrderId(orderId);
+ balanceChangeRecord.setAppUserId(order.getAppUserId());
+ balanceChangeRecord.setChangeType(6);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(expressAmount);
+ balanceChangeRecord.setAfterAmount(appUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+ }
+ }
+ //退回获得的消费积分
+ //需要先检查会员等级时候回回退,使用回退后的会员等级查询配置
+ Integer getPoint = order.getGetPoint();
+ boolean vipDemotion = vipDemotion(appUser.getShopPoint() - getPoint, appUser.getVipId());
+ PointSetting pointSetting = pointSettingClient.getPointSetting(vipDemotion ? appUser.getVipId() - 1 : appUser.getVipId()).getData();
+ int earnPoint1 = getPoint;
+ if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
+ earnPoint1 = getPoint / (100 - pointSetting.getBuyPoint());
+ }
+ appUser.setLavePoint(lavePoint - getPoint);
+ appUser.setShopPoint(appUser.getShopPoint() - earnPoint1);
+ appUser.setTotalPoint(appUser.getTotalPoint() - earnPoint1);
+ if(vipDemotion){
+ appUser.setVipId(appUser.getVipId() - 1);
+ }
+ //构建积分流水明细
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(11);
+ userPoint.setHistoricalPoint(lavePoint);
+ Integer point = appUser.getLavePoint() - lavePoint;
+ userPoint.setVariablePoint(point >= 0 ? point : point * -1);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(order.getAppUserId());
+ userPoint.setObjectId(orderId);
+ userPointClient.saveUserPoint(userPoint);
+ appUserClient.editAppUserById(appUser);
+ return R.ok();
+ }
+
+
+
+ /**
+ * 会员降级检测
+ */
+ public boolean vipDemotion(Integer shopPoint, Integer vipId){
+ if(vipId == 1 || vipId > 3){
+ return false;
+ }
+ VipSetting vipSetting = vipSettingClient.getVipSetting(vipId).getData();
+ Integer vipLevelUpShopRole = vipSetting.getVipLevelUpShopRole();
+ Integer vipLevelUpShop = vipSetting.getVipLevelUpShop();
+ if(1 == vipLevelUpShopRole && shopPoint < vipLevelUpShop){
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * 收货操作
+ * @param orderId
+ * @return
+ */
+ @Override
+ public R receivingOperation(Long orderId) {
+ Order order = this.getById(orderId);
+ if(order.getOrderStatus() != 2){
+ return R.fail("无效的操作");
+ }
+ order.setOrderStatus(4);
+ this.updateById(order);
+ return R.ok();
+ }
+
+
+ /**
+ * 获取订单详情
+ * @param orderId
+ * @return
+ */
+ @Override
+ public OrderInfoVo getOrderInfo(Long orderId) {
+ Order order = this.getById(orderId);
+ OrderInfoVo orderInfo = new OrderInfoVo();
+ orderInfo.setId(orderId.toString());
+ orderInfo.setOrderNumber(order.getOrderNumber());
+ orderInfo.setOrderStatus(order.getOrderStatus());
+ orderInfo.setCreateTime(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+ orderInfo.setUserName(appUser.getName());
+ orderInfo.setPhone(appUser.getPhone());
+ orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getExpressJson()) ? "单品-快递配送" : "单品-自提"));
+ Shop shop = shopClient.getShopById(order.getShopId()).getData();
+ if(null != shop){
+ orderInfo.setShopName(shop.getName());
+ }
+ orderInfo.setPaymentMethod(order.getPayMethod());
+ orderInfo.setTotalAmount(order.getTotalAmount());
+ if(StringUtils.isNotEmpty(order.getCouponJson())){
+ CouponInfo couponInfo = JSON.parseObject(order.getCouponJson(), CouponInfo.class);
+ orderInfo.setCouponName(couponInfo.getCouponName());
+ }
+ orderInfo.setDiscountAmount(order.getDiscountTotalAmount());
+ orderInfo.setExpressAmount(order.getExpressAmount());
+ orderInfo.setPaymentAmount(order.getPaymentAmount());
+ orderInfo.setPoint(order.getGetPoint());
+ if(StringUtils.isNotEmpty(order.getAddressJson())){
+ UserAddress userAddress = JSON.parseObject(order.getAddressJson(), UserAddress.class);
+ orderInfo.setRecipient(userAddress.getRecieveName() + "-" + userAddress.getRecievePhone());
+ orderInfo.setAddress(userAddress.getRecieveAddress());
+ }
+ if(StringUtils.isNotEmpty(order.getExpressJson())){
+ JSONObject jsonObject = JSON.parseObject(order.getExpressJson());
+ String com = jsonObject.getString("com");
+ String num = jsonObject.getString("num");
+ QueryKD100Vo queryKD100Vo = ExpressDeliveryUtil.kd100QueryTrack(com, num);
+ orderInfo.setExpress(queryKD100Vo);
+ }
+ List<OrderGood> orderGoods = orderGoodMapper.selectList(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId).eq(OrderGood::getDelFlag, 0));
+ int sum = orderGoods.stream().mapToInt(OrderGood::getNum).sum();
+ orderInfo.setGoodsNum(sum);
+ List<Object> goodsJson = new ArrayList<>();
+ for (OrderGood orderGood : orderGoods) {
+ Goods goods = JSON.parseObject(orderGood.getGoodJson(), Goods.class);
+ Map<String, Object> map = new HashMap<>();
+ map.put("name", goods.getName());
+ map.put("imgUrl", goods.getHomePagePicture());
+ map.put("number", orderGood.getNum());
+ goodsJson.add(map);
+ }
+ orderInfo.setGoodsJson(JSON.toJSONString(goodsJson));
+ return orderInfo;
+ }
}
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 94fdcd3..9519d05 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
@@ -15,12 +15,10 @@
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.mapper.ShoppingCartMapper;
import com.ruoyi.order.model.Order;
+import com.ruoyi.order.model.OrderBalancePayment;
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.order.model.ShoppingCart;
-import com.ruoyi.order.service.CommissionService;
-import com.ruoyi.order.service.OrderGoodService;
-import com.ruoyi.order.service.OrderService;
-import com.ruoyi.order.service.ShoppingCartService;
+import com.ruoyi.order.service.*;
import com.ruoyi.order.vo.*;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.other.api.feignClient.*;
@@ -108,6 +106,18 @@
+
+ @Resource
+ private PointSettingClient pointSettingClient;
+
+ @Resource
+ private OrderBalancePaymentService orderBalancePaymentService;
+
+
+
+
+
+
/**
* 获取购物车列表
* @param type
@@ -854,17 +864,22 @@
}
//账户余额
+ BigDecimal redPacketAmount = BigDecimal.ZERO;
+ BigDecimal distributionAmount = BigDecimal.ZERO;
if(2 == shoppingCartPayment.getPaymentType()){
BigDecimal totalRedPacketAmount = appUser.getTotalRedPacketAmount();
BigDecimal totalDistributionAmount = appUser.getTotalDistributionAmount();
BigDecimal balance = appUser.getBalance();
+ //红包金额满足支付
if(paymentMoney.compareTo(totalRedPacketAmount) <= 0){
totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney);
balance = balance.subtract(paymentMoney);
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setBalance(balance);
+ redPacketAmount = paymentMoney;
}else{
paymentMoney = paymentMoney.subtract(totalRedPacketAmount);
+ redPacketAmount = totalRedPacketAmount;
totalRedPacketAmount = BigDecimal.ZERO;
if(paymentMoney.compareTo(totalDistributionAmount) <= 0){
totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney);
@@ -872,6 +887,7 @@
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setTotalDistributionAmount(totalDistributionAmount);
appUser.setBalance(balance);
+ distributionAmount = paymentMoney;
}else{
paymentMoney = paymentMoney.subtract(totalDistributionAmount);
totalDistributionAmount = BigDecimal.ZERO;
@@ -879,17 +895,23 @@
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setTotalDistributionAmount(totalDistributionAmount);
appUser.setBalance(balance);
+ distributionAmount = totalDistributionAmount;
}
}
//构建积分流水记录
if(earnPoint > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = earnPoint;
+ if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
+ earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
+ }
appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
- appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
+ appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
UserPoint userPoint = new UserPoint();
userPoint.setType(1);
- userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
+ userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint1);
userPoint.setVariablePoint(earnPoint);
userPoint.setBalance(appUser.getLavePoint());
userPoint.setCreateTime(LocalDateTime.now());
@@ -925,11 +947,16 @@
//积分支付
if(3 == shoppingCartPayment.getPaymentType()){
Integer lavePoint = appUser.getLavePoint();
- appUser.setLavePoint(lavePoint - orderPoint);
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = earnPoint;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
+ earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
+ }
+ appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
- appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
+ appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
- appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
appUser.setLastShopTime(LocalDateTime.now());
appUserClient.editAppUserById(appUser);
//检查消费积分满足后升级会员
@@ -937,25 +964,15 @@
//构建积分流水记录
UserPoint userPoint = new UserPoint();
- userPoint.setType(4);
+ userPoint.setType(1);
userPoint.setHistoricalPoint(lavePoint);
- userPoint.setVariablePoint(orderPoint);
+ Integer point = appUser.getLavePoint() - lavePoint;
+ userPoint.setVariablePoint(point >= 0 ? point : point * -1);
userPoint.setBalance(appUser.getLavePoint());
userPoint.setCreateTime(LocalDateTime.now());
userPoint.setAppUserId(appUser.getId());
userPoint.setObjectId(order.getId());
userPointClient.saveUserPoint(userPoint);
- if(earnPoint > 0){
- userPoint = new UserPoint();
- userPoint.setType(1);
- userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
- userPoint.setVariablePoint(earnPoint);
- userPoint.setBalance(appUser.getLavePoint());
- userPoint.setCreateTime(LocalDateTime.now());
- userPoint.setAppUserId(appUser.getId());
- userPoint.setObjectId(order.getId());
- userPointClient.saveUserPoint(userPoint);
- }
//如果有运费,需要先扣除账户积分,再进行支付。支付成功后修改订单状态,未支付成功则回退积分,删除的订单
if(expressFee.compareTo(BigDecimal.ZERO) > 0){
if(shoppingCartPayment.getFreightPaymentType() == 1){
@@ -970,8 +987,10 @@
balance = balance.subtract(expressFee);
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setBalance(balance);
+ redPacketAmount = expressFee;
}else{
expressFee = expressFee.subtract(totalRedPacketAmount);
+ redPacketAmount = totalRedPacketAmount;
totalRedPacketAmount = BigDecimal.ZERO;
if(expressFee.compareTo(totalDistributionAmount) <= 0){
totalDistributionAmount = totalDistributionAmount.subtract(expressFee);
@@ -979,6 +998,7 @@
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setTotalDistributionAmount(totalDistributionAmount);
appUser.setBalance(balance);
+ distributionAmount = expressFee;
}else{
expressFee = expressFee.subtract(totalDistributionAmount);
totalDistributionAmount = BigDecimal.ZERO;
@@ -986,6 +1006,7 @@
appUser.setTotalRedPacketAmount(totalRedPacketAmount);
appUser.setTotalDistributionAmount(totalDistributionAmount);
appUser.setBalance(balance);
+ distributionAmount = totalDistributionAmount;
}
}
@@ -1021,6 +1042,14 @@
this.removeBatchByIds(ids);
}
}
+ //添加账户余额支付明细
+ if(redPacketAmount.compareTo(BigDecimal.ZERO) > 0 || distributionAmount.compareTo(BigDecimal.ZERO) > 0){
+ OrderBalancePayment orderBalancePayment = new OrderBalancePayment();
+ orderBalancePayment.setOrderId(order.getId());
+ orderBalancePayment.setRedPacketAmount(redPacketAmount);
+ orderBalancePayment.setDistributionAmount(distributionAmount);
+ orderBalancePaymentService.save(orderBalancePayment);
+ }
return R.ok(order.getId().toString());
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java
new file mode 100644
index 0000000..050d860
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java
@@ -0,0 +1,101 @@
+package com.ruoyi.order.util;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.google.gson.Gson;
+import com.kuaidi100.sdk.api.QueryTrack;
+import com.kuaidi100.sdk.api.QueryTrackMap;
+import com.kuaidi100.sdk.contant.CompanyConstant;
+import com.kuaidi100.sdk.core.IBaseClient;
+import com.kuaidi100.sdk.pojo.HttpResult;
+import com.kuaidi100.sdk.request.QueryTrackParam;
+import com.kuaidi100.sdk.request.QueryTrackReq;
+import com.kuaidi100.sdk.response.QueryTrackMapResp;
+import com.kuaidi100.sdk.utils.SignUtils;
+import com.ruoyi.order.util.vo.MapTrackKD100Vo;
+import com.ruoyi.order.util.vo.QueryKD100Vo;
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * 快递工具类
+ * @author zhibing.pu
+ * @Date 2024/12/13 18:05
+ */
+@Slf4j
+public class ExpressDeliveryUtil {
+
+ private static String customer = "8FC09A2DE534142E93BE068830FCA43E";
+
+ private static String key = "KFBYEnrO3201";
+
+
+ /**
+ * 查询快递实时数据
+ * @param com 快递公司代码
+ * @param num 快递单号
+ * @return
+ */
+ public static QueryKD100Vo kd100QueryTrack(String com, String num){
+ QueryTrackReq queryTrackReq = new QueryTrackReq();
+ QueryTrackParam queryTrackParam = new QueryTrackParam();
+ queryTrackParam.setCom(com);
+ queryTrackParam.setNum(num);
+ String param = new Gson().toJson(queryTrackParam);
+
+ queryTrackReq.setParam(param);
+ queryTrackReq.setCustomer(customer);
+ queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
+
+ IBaseClient baseClient = new QueryTrack();
+ HttpResult execute = null;
+ try {
+ execute = baseClient.execute(queryTrackReq);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ String result = execute.getBody();
+ QueryKD100Vo queryKD100Vo = JSON.parseObject(result, QueryKD100Vo.class);
+ return queryKD100Vo;
+ }
+
+
+ /**
+ * 快递100查询带有地图轨迹数据的快递详情
+ * @param com 快递公司代码
+ * @param num 快递单号
+ * @param from 触发城市名称
+ * @param to 到达城市名称
+ * @return
+ */
+ public static MapTrackKD100Vo kd100MapTrack(String com, String num, String from, String to){
+ QueryTrackReq queryTrackReq = new QueryTrackReq();
+ QueryTrackParam queryTrackParam = new QueryTrackParam();
+ queryTrackParam.setCom(CompanyConstant.YD);
+ queryTrackParam.setNum(num);
+ queryTrackParam.setFrom(from);
+ queryTrackParam.setTo(to);
+ queryTrackParam.setResultv2("2");
+ String param = new Gson().toJson(queryTrackParam);
+
+ queryTrackReq.setParam(param);
+ queryTrackReq.setCustomer(customer);
+ queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
+
+ IBaseClient baseClient = new QueryTrackMap();
+ HttpResult execute = null;
+ try {
+ execute = baseClient.execute(queryTrackReq);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ String result = execute.getBody();
+ MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(result, MapTrackKD100Vo.class);
+ return mapTrackKD100Vo;
+ }
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/MapTrackKD100Vo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/MapTrackKD100Vo.java
new file mode 100644
index 0000000..c61fbf8
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/MapTrackKD100Vo.java
@@ -0,0 +1,36 @@
+package com.ruoyi.order.util.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/16 15:09
+ */
+@Data
+@ApiModel
+public class MapTrackKD100Vo {
+ @ApiModelProperty("快递状态(0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签)")
+ private String state;
+ @ApiModelProperty("是否签收标记,0未签收,1已签收,请忽略,明细状态请参考state字段")
+ private String ischeck;
+ @ApiModelProperty("快递公司编码")
+ private String com;
+ @ApiModelProperty("单号")
+ private String nu;
+ @ApiModelProperty("轨迹地图链接")
+ private String trailUrl;
+ @ApiModelProperty("预计到达时间")
+ private String arrivalTime;
+ @ApiModelProperty("平均耗时")
+ private String totalTime;
+ @ApiModelProperty("到达还需多少时间")
+ private String remainTime;
+ @ApiModelProperty("是否存在环路")
+ private Boolean isLoop;
+ @ApiModelProperty("查询结果数组")
+ private List<QueryKD100ListVo> data;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100ListVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100ListVo.java
new file mode 100644
index 0000000..12ec29c
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100ListVo.java
@@ -0,0 +1,22 @@
+package com.ruoyi.order.util.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/16 15:00
+ */
+@Data
+@ApiModel
+public class QueryKD100ListVo {
+ @ApiModelProperty("内容")
+ private String context;
+ @ApiModelProperty("时间")
+ private String time;
+ @ApiModelProperty("格式化为后时间")
+ private String ftime;
+ @ApiModelProperty("本数据元对应的物流状态名称或者高级状态名称,实时查询接口中提交resultv2=1或者resultv2=4标记后才会出现")
+ private String status;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100Vo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100Vo.java
new file mode 100644
index 0000000..31e2339
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/vo/QueryKD100Vo.java
@@ -0,0 +1,27 @@
+package com.ruoyi.order.util.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 快递100查询快递详情
+ * @author zhibing.pu
+ * @Date 2024/12/16 14:56
+ */
+@Data
+@ApiModel
+public class QueryKD100Vo {
+ @ApiModelProperty("快递状态(0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签)")
+ private String state;
+ @ApiModelProperty("是否签收标记,0未签收,1已签收,请忽略,明细状态请参考state字段")
+ private String ischeck;
+ @ApiModelProperty("快递公司编码")
+ private String com;
+ @ApiModelProperty("单号")
+ private String nu;
+ @ApiModelProperty("查询结果数组")
+ private List<QueryKD100ListVo> data;
+}
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
new file mode 100644
index 0000000..75039e3
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java
@@ -0,0 +1,58 @@
+package com.ruoyi.order.vo;
+
+import com.ruoyi.order.util.vo.QueryKD100Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/13 17:37
+ */
+@Data
+@ApiModel
+public class OrderInfoVo {
+ @ApiModelProperty("订单id")
+ private String id;
+ @ApiModelProperty("订单编号")
+ private String orderNumber;
+ @ApiModelProperty("下单时间")
+ private String createTime;
+ @ApiModelProperty("订单状态(1待发货2待收货3待使用4已完成5已取消6已退款7售后中8已评价)")
+ private Integer orderStatus;
+ @ApiModelProperty("下单用户")
+ private String userName;
+ @ApiModelProperty("联系电话")
+ private String phone;
+ @ApiModelProperty("订单类型")
+ private String orderType;
+ @ApiModelProperty("核销门店")
+ private String shopName;
+ @ApiModelProperty("支付方式(1=微信,2=余额,3=积分)")
+ private Integer paymentMethod;
+ @ApiModelProperty("订单总金额")
+ private BigDecimal totalAmount;
+ @ApiModelProperty("优惠券")
+ private String couponName;
+ @ApiModelProperty("抵扣金额")
+ private BigDecimal discountAmount;
+ @ApiModelProperty("快递费")
+ private BigDecimal expressAmount;
+ @ApiModelProperty("支付金额")
+ private BigDecimal paymentAmount;
+ @ApiModelProperty("获得积分")
+ private Integer point;
+ @ApiModelProperty("收件人")
+ private String recipient;
+ @ApiModelProperty("收件地址")
+ private String address;
+ @ApiModelProperty("物流信息")
+ private QueryKD100Vo express;
+ @ApiModelProperty("商品数量")
+ private Integer goodsNum;
+ @ApiModelProperty("商品信息")
+ private String goodsJson;
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageList.java
new file mode 100644
index 0000000..e3b7a5b
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageList.java
@@ -0,0 +1,32 @@
+package com.ruoyi.order.vo;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/12 17:29
+ */
+@Data
+@ApiModel
+public class OrderPageList extends BasePage {
+ @ApiModelProperty("订单编号")
+ public String code;
+ @ApiModelProperty("下单用户")
+ private String userName;
+ @ApiModelProperty("联系电话")
+ private String phone;
+ @ApiModelProperty("商品类型(1=服务,2=单品)")
+ private Integer goodsType;
+ @ApiModelProperty("支付方式(1=微信,2=余额,3=积分)")
+ private Integer paymentType;
+ @ApiModelProperty("订单状态(1待发货2待收货3待使用4已完成5已取消6已退款7售后中8已评价)")
+ private Integer status;
+
+ private Integer shopId;
+ private List<Long> appUserIds;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java
new file mode 100644
index 0000000..7c97847
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderPageListVo.java
@@ -0,0 +1,39 @@
+package com.ruoyi.order.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/12 17:34
+ */
+@Data
+@ApiModel
+public class OrderPageListVo {
+ @ApiModelProperty("订单id")
+ private String id;
+ @ApiModelProperty("订单编号")
+ private String code;
+ @ApiModelProperty("下单时间")
+ private String createTime;
+ @ApiModelProperty("下单用户")
+ private String userName;
+ @ApiModelProperty("联系电话")
+ private String phone;
+ @ApiModelProperty("商品类型(1=服务,2=单品)")
+ private Integer goodsType;
+ @ApiModelProperty("支付方式(1=微信,2=余额,3=积分)")
+ private Integer paymentType;
+ @ApiModelProperty("订单金额")
+ private BigDecimal orderMoney;
+ @ApiModelProperty("订单状态(1待发货2待收货3待使用4已完成5已取消6已退款7售后中8已评价)")
+ private Integer status;
+
+ /**
+ * 用户id
+ */
+ private Long appUserId;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderBalancePaymentMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderBalancePaymentMapper.xml
new file mode 100644
index 0000000..20086a9
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderBalancePaymentMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.order.mapper.OrderBalancePayment">
+
+
+</mapper>
\ No newline at end of file
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 e6f9770..f71d000 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
@@ -37,4 +37,44 @@
ORDER BY
o.create_time DESC
</select>
+
+
+
+ <select id="getOrderPageList" resultType="com.ruoyi.order.vo.OrderPageListVo">
+ select
+ id,
+ order_number as code,
+ DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') as createTime,
+ app_user_id as appUserId,
+ order_type as goodsType,
+ pay_method as paymentType,
+ total_amount as orderMoney,
+ order_status as status
+ from t_order where del_flag = 0 and pay_status = 2
+ <if test="null != item.code and '' != item.code">
+ and order_number like CONCAT('%', #{item.code}, '%')
+ </if>
+ <if test="null != item.appUserIds and item.appUserIds.size() > 0">
+ and app_user_id in
+ <foreach collection="item.appUserIds" separator="," item="tem" index="index" open="(" close=")">
+ #{tem}
+ </foreach>
+ </if>
+ <if test="null != item.goodsType">
+ and order_type = #{item.goodsType}
+ </if>
+ <if test="null != item.paymentType">
+ and pay_method = #{item.paymentType}
+ </if>
+ <if test="null != item.status and 4 != item.status">
+ and order_status = #{item.status}
+ </if>
+ <if test="null != item.status and 4 == item.status">
+ and order_status in (4, 8)
+ </if>
+ <if test="null != item.shopId">
+ and shop_id = #{item.shopId} and address_json is null
+ </if>
+ order by create_time desc
+ </select>
</mapper>
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 811b9fa..606861f 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
@@ -1,18 +1,23 @@
package com.ruoyi.other.controller;
+import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.feignClient.UserCouponClient;
import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.UserCoupon;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.CouponInfo;
+import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.service.CouponInfoService;
+import com.ruoyi.other.service.GoodsService;
import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -20,6 +25,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.util.Arrays;
import java.util.List;
import java.time.LocalDateTime;
@@ -44,6 +50,8 @@
private AppUserClient appUserClient;
@Resource
private UserCouponClient userCouponClient;
+ @Resource
+ private GoodsService goodsService;
@GetMapping("/list")
@ApiOperation(value = "优惠劵管理-列表", tags = {"管理后台-活动管理"})
@@ -64,6 +72,18 @@
@ApiOperation(value = "优惠劵管理-详情", tags = {"管理后台-活动管理"})
public R<CouponInfo> detail(@RequestParam("id") Integer id) {
CouponInfo byId = couponInfoService.getById(id);
+ byId.setGoodsNameList(JSON.parseArray(byId.getGoodsNameJson(), String.class));
+ String forGoodIds = byId.getForGoodIds();
+ if (StringUtils.isNotEmpty(forGoodIds)){
+ List<Goods> goods = goodsService.listByIds(Arrays.asList(forGoodIds.split(",")));
+ byId.setGoods(goods);
+ }
+ String personIds = byId.getPersonIds();
+ if (StringUtils.isNotEmpty(personIds)){
+ List<AppUser> appUserList = appUserClient.listByIds(Arrays.asList(personIds.split(",")));
+ byId.setAppUserList(appUserList);
+ }
+
return R.ok(byId);
}
@@ -79,6 +99,8 @@
@PostMapping("/edit")
@ApiOperation(value = "优惠劵管理-编辑", tags = {"管理后台-活动管理"})
public R<Void> edit(@RequestBody CouponInfo couponInfo) {
+ List<String> goodsNameList = couponInfo.getGoodsNameList();
+ couponInfo.setGoodsNameJson(JSON.toJSONString(goodsNameList));
couponInfoService.updateById(couponInfo);
return R.ok();
}
@@ -100,6 +122,8 @@
@ApiOperation(value = "优惠劵管理-添加", tags = {"管理后台-活动管理"})
public R<Void> add(@RequestBody CouponInfo couponInfo) {
couponInfo.setShelfStatus(0);
+ List<String> goodsNameList = couponInfo.getGoodsNameList();
+ couponInfo.setGoodsNameJson(JSON.toJSONString(goodsNameList));
couponInfoService.save(couponInfo);
return R.ok();
}
@@ -153,5 +177,15 @@
return R.ok(couponInfos);
}
+
+ /**
+ * 获取领取记录
+ */
+
+ @GetMapping("/getReceiveRecord")
+ public R<IPage<UserCoupon>> getReceiveRecord(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize,UserCoupon userCoupon) {
+ return null;
+ }
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
index 18c5f56..9867001 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
@@ -180,7 +180,7 @@
GoodsCategory goodsCategory = goodsCategoryService.getById(g.getGoodsCategoryId());
Integer shopId = goodsBargainPrice.getShopId();
Shop shop = shopService.getById(shopId);
- R<AppUser> r = appUserClient.getAppUserByPhone(shop.getPhone());
+ R<AppUser> r = appUserClient.getAppUserByPhone1(shop.getPhone());
if (R.isError(r)){
throw new RuntimeException("获取店长信息失败");
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
index d918033..c0fe645 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
@@ -58,8 +58,8 @@
@GetMapping("/getSysPhone")
@ApiOperation(value = "获取客服电话", tags = {"管理后台-客服电话", "门店后台-客服电话"})
public R<Phone> getSysPhone(){
- Long userid = tokenService.getLoginUser().getUserid();
- SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+ Long userId = tokenService.getLoginUser().getSysUser().getUserId();
+ SysUser sysUser = sysUserClient.getSysUser(userId).getData();
LambdaQueryWrapper<Phone> wrapper = new LambdaQueryWrapper<>();
if(sysUser.getRoleType() == 1){
wrapper.eq(Phone::getType, 1);
@@ -75,8 +75,8 @@
@PostMapping("/savePhone")
@ApiOperation(value = "保存客服电话", tags = {"管理后台-客服电话", "门店后台-客服电话"})
public R savePhone(@RequestBody Phone phone){
- Long userid = tokenService.getLoginUser().getUserid();
- SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+ Long userId = tokenService.getLoginUser().getSysUser().getUserId();
+ SysUser sysUser = sysUserClient.getSysUser(userId).getData();
//平台配置
if(sysUser.getRoleType() == 1){
Phone one = phoneService.getOne(new LambdaQueryWrapper<Phone>().eq(Phone::getType, 1));
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 7aa69f8..ecb2180 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
@@ -80,7 +80,7 @@
shop.setCustomOrderNumber(0);
shopService.save(shop);
- LoginUser loginUserApplet = tokenService.getLoginUserApplet();
+ LoginUser loginUserApplet = tokenService.getLoginUser();
AppUserShop appUserShop = new AppUserShop();
appUserShop.setAppUserId(loginUserApplet.getUserid());
appUserShop.setShopId(shop.getId());
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/CouponInfoMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/CouponInfoMapper.java
index 90b27a0..c8626d8 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/CouponInfoMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/CouponInfoMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.other.api.domain.CouponInfo;
+import org.apache.ibatis.annotations.Param;
/**
* <p>
@@ -13,5 +14,5 @@
* @since 2024-11-20
*/
public interface CouponInfoMapper extends BaseMapper<CouponInfo> {
- IPage<CouponInfo> queryCouponInfoPage(IPage<CouponInfo> page, CouponInfo couponInfo);
+ IPage<CouponInfo> queryCouponInfoPage(@Param("page") IPage<CouponInfo> page, @Param("couponInfo") CouponInfo couponInfo);
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
index f5dd91b..accf87f 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
@@ -20,6 +20,7 @@
@Override
public ShopPointStatistics statistics() {
+ ShopPointStatistics shopPointStatistics = new ShopPointStatistics();
return null;
}
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
index e7f1abd..520af51 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
@@ -101,7 +101,7 @@
@Override
public Boolean cheUserByPhone(String phone) {
- R<AppUser> r = appUserClient.getAppUserByPhone(phone);
+ R<AppUser> r = appUserClient.getAppUserByPhone1(phone);
if (R.isError(r)){
return false;
}
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml
index 4c34d60..59d9526 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml
@@ -35,8 +35,8 @@
<if test="couponInfo.couponType != null">
AND tci.coupon_type = #{couponInfo.couponType}
</if>
- <if test="couponInfo.send_type != null">
- AND tci.send_type = #{couponInfo.send_type}
+ <if test="couponInfo.sendType != null">
+ AND tci.send_type = #{couponInfo.sendType}
</if>
<if test="couponInfo.personType != null">
AND tci.person_type = #{couponInfo.personType}
--
Gitblit v1.7.1