更新会员成长值 不对
订单退款 全额 部分 问题
This commit is contained in:
@@ -65,4 +65,9 @@ public class MkPointsConfigServiceImpl extends ServiceImpl<MkPointsConfigMapper,
|
||||
mkPointsUserService.alterPoints(null, shopUser.getId(), orderInfo.getShopId(), PointsConstant.ADD,
|
||||
awardPoints.intValue(), orderInfo.getId(), StrUtil.format("消费¥{}送{}积分", payAmount, awardPoints.intValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeConsumeAwardPoints(Long shopId, Long userId, Long orderId, String orderNo) {
|
||||
mkPointsUserService.removePointByOrder(shopId, userId, orderId, orderNo, "订单退款扣除赠送积分");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,4 +168,49 @@ public class MkPointsUserServiceImpl extends ServiceImpl<MkPointsUserMapper, MkP
|
||||
acUserMsgService.addUserMsg(msg);
|
||||
return record.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void removePointByOrder(Long shopId, Long userId, Long orderId, String orderNo, String reason) {
|
||||
MkPointsUser pointsUser = getPointsUser(shopId, null, userId);
|
||||
MkPointsUserRecord one = pointsUserRecordService.getOne(query()
|
||||
.eq(MkPointsUserRecord::getMkPointsUserId, pointsUser.getId())
|
||||
.eq(MkPointsUserRecord::getShopId, shopId)
|
||||
.eq(MkPointsUserRecord::getSourceId, orderId.toString())
|
||||
.eq(MkPointsUserRecord::getFloatType, PointsConstant.ADD.getValue())
|
||||
.orderBy(MkPointsUserRecord::getId, true)
|
||||
);
|
||||
if (one == null) {
|
||||
return;
|
||||
}
|
||||
Long floatPoints = Math.abs(one.getFloatPoints());
|
||||
pointsUser.setPointBalance(pointsUser.getPointBalance() - floatPoints);
|
||||
saveOrUpdate(pointsUser);
|
||||
|
||||
MkPointsUserRecord record = MkPointsUserRecord.builder()
|
||||
.mkPointsUserId(pointsUser.getId())
|
||||
.shopId(pointsUser.getShopId())
|
||||
.shopUserId(pointsUser.getShopUserId())
|
||||
.floatType(PointsConstant.SUB.getValue())
|
||||
.floatPoints(floatPoints)
|
||||
.balancePoints(pointsUser.getPointBalance())
|
||||
.sourceId(orderId.toString())
|
||||
.content(reason)
|
||||
.build();
|
||||
boolean save = pointsUserRecordService.save(record);
|
||||
if (!save) {
|
||||
throw new CzgException("积分操作失败,积分记录保存失败");
|
||||
}
|
||||
|
||||
AcUserMsg msg = new AcUserMsg()
|
||||
.setUserId(pointsUser.getUserId())
|
||||
.setShopId(shopId)
|
||||
.setSourceId(orderId)
|
||||
.setSourceType("order")
|
||||
.setType("points")
|
||||
.setReadStatus(0)
|
||||
.setTitle("积分扣除")
|
||||
.setContent(StrUtil.format("订单退款积分扣除提醒:{} 积分已扣除,订单号:{}!", floatPoints, orderNo));
|
||||
acUserMsgService.addUserMsg(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,12 +120,12 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
break;
|
||||
case "ORDER":
|
||||
conditionMap.put("ORDER", orderInfoService.count(query().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue()));
|
||||
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())) >= Integer.parseInt(item.getValue()));
|
||||
|
||||
break;
|
||||
case "COST_AMOUNT":
|
||||
conditionMap.put("COST_AMOUNT", orderInfoService.getOneAs(query().select("IFNULL(sum(pay_amount), 0) as total_amount ").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()), BigDecimal.class)
|
||||
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()), BigDecimal.class)
|
||||
.compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||
|
||||
break;
|
||||
@@ -309,6 +309,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
return false;
|
||||
}
|
||||
ShopUser upShopUser = new ShopUser();
|
||||
upShopUser.setId(shopUser.getId());
|
||||
if (shopUser.getExperience() == null) {
|
||||
upShopUser.setExperience(0L);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user