|
|
@@ -605,51 +605,212 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
|
|
|
}
|
|
|
|
|
|
|
|
|
+// public R countGmv(Integer dynamicsId, String finalPrice, Integer orderId, Integer expertId, Integer expertOrderId) {
|
|
|
+// LambdaQueryWrapper<LifeUserExpertWorks> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+// lambdaQueryWrapper.eq(LifeUserExpertWorks::getExpertId, expertId);
|
|
|
+// lambdaQueryWrapper.eq(LifeUserExpertWorks::getOrderId, expertOrderId);
|
|
|
+// lambdaQueryWrapper.eq(LifeUserExpertWorks::getDynamicsId, dynamicsId);
|
|
|
+// lambdaQueryWrapper.eq(LifeUserExpertWorks::getDeleteFlag, 0);
|
|
|
+// LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(lambdaQueryWrapper);
|
|
|
+// //用户购买订单 订单金额加入达人gmv中
|
|
|
+// if (lifeUserExpertWorks != null) {
|
|
|
+// BigDecimal price = new BigDecimal(finalPrice);
|
|
|
+// lifeUserExpertWorks.setOrderGmv(lifeUserExpertWorks.getOrderGmv().add(price));
|
|
|
+// lifeUserExpertWorksMapper.updateById(lifeUserExpertWorks);
|
|
|
+// }
|
|
|
+//
|
|
|
+// LambdaQueryWrapper<LifeUserExpertOrder> lifeUserExpertOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+// lifeUserExpertOrderLambdaQueryWrapper.eq(LifeUserExpertOrder::getId, expertOrderId);
|
|
|
+// lifeUserExpertOrderLambdaQueryWrapper.eq(LifeUserExpertOrder::getDeleteFlag, 0);
|
|
|
+// LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(lifeUserExpertOrderLambdaQueryWrapper);
|
|
|
+//
|
|
|
+// //查询达人购买商户订单状态不是已完成
|
|
|
+// //判断达人动态浏览数和gmv 是否达到达人设置的限定值
|
|
|
+// if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 5) {
|
|
|
+// LifeUserExpertWorks lifeUserExpertWorks1 = lifeUserExpertWorksMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertWorks>()
|
|
|
+// .eq(LifeUserExpertWorks::getOrderId, expertOrderId)
|
|
|
+// .eq(LifeUserExpertWorks::getExpertId, expertId)
|
|
|
+// .eq(LifeUserExpertWorks::getDynamicsId, dynamicsId)
|
|
|
+// .eq(LifeUserExpertWorks::getDeleteFlag, 0));
|
|
|
+// LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>()
|
|
|
+// .eq(LifeUserDynamics::getId, dynamicsId)
|
|
|
+// .eq(LifeUserDynamics::getDeleteFlag, 0));
|
|
|
+// if (lifeUserDynamics != null) {
|
|
|
+// if (lifeUserExpertWorks1.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0
|
|
|
+// && lifeUserDynamics.getLiulanCount() >= lifeUserExpertOrder.getOrderPlayCount()) {
|
|
|
+// lifeUserExpertOrder.setStatus(5);
|
|
|
+// lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //用户订单字段设置达人订单id 标识 该用户是从达人gmv链接进入购买订单的
|
|
|
+// LambdaQueryWrapper<LifeUserOrder> userOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+// userOrderLambdaQueryWrapper.eq(LifeUserOrder::getId, orderId);
|
|
|
+// LifeUserOrder lifeUserOrder = lifeUserOrderMapper.selectOne(userOrderLambdaQueryWrapper);
|
|
|
+// lifeUserOrder.setExpertOrderId(expertOrderId);
|
|
|
+// lifeUserOrderMapper.updateById(lifeUserOrder);
|
|
|
+// return R.success("请求成功");
|
|
|
+// }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增加gmv金额
|
|
|
+ * qxy
|
|
|
+ * @param dynamicsId
|
|
|
+ * @param finalPrice
|
|
|
+ * @param orderId
|
|
|
+ * @param expertId
|
|
|
+ * @param expertOrderId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public R countGmv(Integer dynamicsId, String finalPrice, Integer orderId, Integer expertId, Integer expertOrderId) {
|
|
|
- LambdaQueryWrapper<LifeUserExpertWorks> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(LifeUserExpertWorks::getExpertId, expertId);
|
|
|
- lambdaQueryWrapper.eq(LifeUserExpertWorks::getOrderId, expertOrderId);
|
|
|
- lambdaQueryWrapper.eq(LifeUserExpertWorks::getDynamicsId, dynamicsId);
|
|
|
- lambdaQueryWrapper.eq(LifeUserExpertWorks::getDeleteFlag, 0);
|
|
|
- LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(lambdaQueryWrapper);
|
|
|
- //用户购买订单 订单金额加入达人gmv中
|
|
|
+ // 参数校验
|
|
|
+ if (dynamicsId == null
|
|
|
+ || finalPrice == null
|
|
|
+ || orderId == null
|
|
|
+ || expertId == null
|
|
|
+ || expertOrderId == null) {
|
|
|
+ return R.fail("参数不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 1. 更新达人作品GMV
|
|
|
+ updateExpertWorksGmv(dynamicsId, finalPrice, expertId, expertOrderId);
|
|
|
+
|
|
|
+ // 2. 检查并更新达人订单状态
|
|
|
+ checkAndUpdateExpertOrderStatus(dynamicsId, expertId, expertOrderId);
|
|
|
+
|
|
|
+ // 3. 更新用户订单的达人订单ID标识
|
|
|
+ updateUserOrderExpertId(orderId, expertOrderId);
|
|
|
+
|
|
|
+ return R.success("请求成功");
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ //错误日志
|
|
|
+ log.error("更新GMV失败,dynamicsId: {}, orderId: {}" +
|
|
|
+ ", expertId: {}, expertOrderId: {}"
|
|
|
+ , e);
|
|
|
+
|
|
|
+ return R.fail("更新GMV失败:" + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新达人作品GMV
|
|
|
+ * qxy
|
|
|
+ * @param dynamicsId
|
|
|
+ * @param finalPrice
|
|
|
+ * @param expertId
|
|
|
+ * @param expertOrderId
|
|
|
+ */
|
|
|
+ private void updateExpertWorksGmv(Integer dynamicsId,
|
|
|
+ String finalPrice,
|
|
|
+ Integer expertId,
|
|
|
+ Integer expertOrderId) {
|
|
|
+ //查询达人作品
|
|
|
+ LambdaQueryWrapper<LifeUserExpertWorks> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(LifeUserExpertWorks::getExpertId, expertId)
|
|
|
+ .eq(LifeUserExpertWorks::getOrderId, expertOrderId)
|
|
|
+ .eq(LifeUserExpertWorks::getDynamicsId, dynamicsId)
|
|
|
+ .eq(LifeUserExpertWorks::getDeleteFlag, 0);
|
|
|
+
|
|
|
+ LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(queryWrapper);
|
|
|
+
|
|
|
if (lifeUserExpertWorks != null) {
|
|
|
+ //达人作品GMV字段 存入 订单金额
|
|
|
BigDecimal price = new BigDecimal(finalPrice);
|
|
|
- lifeUserExpertWorks.setOrderGmv(lifeUserExpertWorks.getOrderGmv().add(price));
|
|
|
+ BigDecimal currentGmv = lifeUserExpertWorks.getOrderGmv();
|
|
|
+ if (currentGmv == null) {
|
|
|
+ currentGmv = BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ lifeUserExpertWorks.setOrderGmv(currentGmv.add(price));
|
|
|
lifeUserExpertWorksMapper.updateById(lifeUserExpertWorks);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- LambdaQueryWrapper<LifeUserExpertOrder> lifeUserExpertOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lifeUserExpertOrderLambdaQueryWrapper.eq(LifeUserExpertOrder::getId, expertOrderId);
|
|
|
- lifeUserExpertOrderLambdaQueryWrapper.eq(LifeUserExpertOrder::getDeleteFlag, 0);
|
|
|
- LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(lifeUserExpertOrderLambdaQueryWrapper);
|
|
|
+ /**
|
|
|
+ * 检查并更新达人订单状态
|
|
|
+ * 当GMV和浏览数达到设定值时,将订单状态更新为已完成
|
|
|
+ * qxy
|
|
|
+ * @param dynamicsId
|
|
|
+ * @param expertId
|
|
|
+ * @param expertOrderId
|
|
|
+ */
|
|
|
+ private void checkAndUpdateExpertOrderStatus(Integer dynamicsId, Integer expertId, Integer expertOrderId) {
|
|
|
+ // 查询达人订单
|
|
|
+ LambdaQueryWrapper<LifeUserExpertOrder> orderQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderQueryWrapper.eq(LifeUserExpertOrder::getId, expertOrderId)
|
|
|
+ .eq(LifeUserExpertOrder::getDeleteFlag, 0);
|
|
|
+ LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(orderQueryWrapper);
|
|
|
+
|
|
|
+ // 如果订单不存在或已经是已完成状态,则不需要处理
|
|
|
+ if (lifeUserExpertOrder == null || lifeUserExpertOrder.getStatus().equals(5)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //查询达人购买商户订单状态不是已完成
|
|
|
- //判断达人动态浏览数和gmv 是否达到达人设置的限定值
|
|
|
- if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 5) {
|
|
|
- LifeUserExpertWorks lifeUserExpertWorks1 = lifeUserExpertWorksMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertWorks>()
|
|
|
- .eq(LifeUserExpertWorks::getOrderId, expertOrderId)
|
|
|
- .eq(LifeUserExpertWorks::getExpertId, expertId)
|
|
|
- .eq(LifeUserExpertWorks::getDynamicsId, dynamicsId)
|
|
|
- .eq(LifeUserExpertWorks::getDeleteFlag, 0));
|
|
|
- LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectOne(new LambdaQueryWrapper<LifeUserDynamics>()
|
|
|
- .eq(LifeUserDynamics::getId, dynamicsId)
|
|
|
- .eq(LifeUserDynamics::getDeleteFlag, 0));
|
|
|
- if (lifeUserDynamics != null) {
|
|
|
- if (lifeUserExpertWorks1.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0
|
|
|
- && lifeUserDynamics.getLiulanCount() >= lifeUserExpertOrder.getOrderPlayCount()) {
|
|
|
- lifeUserExpertOrder.setStatus(5);
|
|
|
- lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
- }
|
|
|
- }
|
|
|
+ // 查询达人作品(复用查询条件,避免重复查询)
|
|
|
+ LambdaQueryWrapper<LifeUserExpertWorks> worksQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ worksQueryWrapper.eq(LifeUserExpertWorks::getOrderId, expertOrderId)
|
|
|
+ .eq(LifeUserExpertWorks::getExpertId, expertId)
|
|
|
+ .eq(LifeUserExpertWorks::getDynamicsId, dynamicsId)
|
|
|
+ .eq(LifeUserExpertWorks::getDeleteFlag, 0);
|
|
|
+ LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(worksQueryWrapper);
|
|
|
+
|
|
|
+ if (lifeUserExpertWorks == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询达人动态
|
|
|
+ LambdaQueryWrapper<LifeUserDynamics> dynamicsQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ dynamicsQueryWrapper.eq(LifeUserDynamics::getId, dynamicsId)
|
|
|
+ .eq(LifeUserDynamics::getDeleteFlag, 0);
|
|
|
+ LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectOne(dynamicsQueryWrapper);
|
|
|
+
|
|
|
+ if (lifeUserDynamics == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断是否达到完成条件:GMV达到设定值 且 浏览数达到设定值
|
|
|
+ //达人作品gmv (每笔订单金额累加)
|
|
|
+ BigDecimal currentGmv = lifeUserExpertWorks.getOrderGmv();
|
|
|
+
|
|
|
+ //达人订单gmv (设定值)
|
|
|
+ BigDecimal targetGmv = lifeUserExpertOrder.getOrderGmv();
|
|
|
+
|
|
|
+ //达人动态正常浏览量
|
|
|
+ Integer currentViewCount = lifeUserDynamics.getLiulanCount();
|
|
|
+
|
|
|
+ //达人订单浏览量 (设定值)
|
|
|
+ Integer targetViewCount = lifeUserExpertOrder.getOrderPlayCount();
|
|
|
+
|
|
|
+ if (currentGmv != null && targetGmv != null
|
|
|
+ && currentGmv.compareTo(targetGmv) >= 0
|
|
|
+ && currentViewCount != null && targetViewCount != null
|
|
|
+ && currentViewCount >= targetViewCount) {
|
|
|
+ lifeUserExpertOrder.setStatus(5);
|
|
|
+ lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新用户订单的达人订单ID标识
|
|
|
+ * 标识该用户是从达人GMV链接进入购买订单的
|
|
|
+ * qxy
|
|
|
+ * @param orderId
|
|
|
+ * @param expertOrderId
|
|
|
+ */
|
|
|
+ private void updateUserOrderExpertId(Integer orderId, Integer expertOrderId) {
|
|
|
+
|
|
|
+ LambdaQueryWrapper<LifeUserOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(LifeUserOrder::getId, orderId);
|
|
|
+ LifeUserOrder lifeUserOrder = lifeUserOrderMapper.selectOne(queryWrapper);
|
|
|
+
|
|
|
+ if (lifeUserOrder == null) {
|
|
|
+ log.warn("用户订单不存在,orderId: {}" + orderId);
|
|
|
+ return;
|
|
|
}
|
|
|
- //用户订单字段设置达人订单id 标识 该用户是从达人gmv链接进入购买订单的
|
|
|
- LambdaQueryWrapper<LifeUserOrder> userOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- userOrderLambdaQueryWrapper.eq(LifeUserOrder::getId, orderId);
|
|
|
- LifeUserOrder lifeUserOrder = lifeUserOrderMapper.selectOne(userOrderLambdaQueryWrapper);
|
|
|
+
|
|
|
lifeUserOrder.setExpertOrderId(expertOrderId);
|
|
|
lifeUserOrderMapper.updateById(lifeUserOrder);
|
|
|
- return R.success("请求成功");
|
|
|
}
|
|
|
|
|
|
public boolean addUserStoreBrowseNumber(LifeBrowseRecord lifeBrowseRecord) {
|