zoujiajian 2 年 前
コミット
5f3a6c0e3a

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserMapper.java

@@ -70,4 +70,7 @@ public interface UserMapper extends BaseMapper<User> {
 
     @Update("update user set sub_apply_money = sub_apply_money - #{needApplyMoney} where id = #{id} and sub_apply_money >= #{needApplyMoney} and sub_apply_money > 0")
     Integer suUserSubApplyMoney(@Param("id") Long id, @Param("needApplyMoney") BigDecimal needApplyMoney);
+
+    @Update("update user set sub_apply_money = sub_apply_money + #{addApplyMoney} where id = #{id} and sub_apply_money = #{subApplyMoney}")
+    Integer addDistributeSubMoney(@Param("id") Long id, @Param("subApplyMoney") BigDecimal subApplyMoney, @Param("addApplyMoney") BigDecimal addApplyMoney);
 }

+ 6 - 1
netflix-service/src/main/java/com/cyksj/service/pay/impl/TransferFuncServiceImpl.java

@@ -372,7 +372,12 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 				} else {
 					distributeMoneyApply.setVerifyStatus(DistributeMoneyApply.Status.fail);
 					distributeMoneyApply.setReason(alipayResponse.getSubMsg());
-					userBenefitsService.addDistributePoints(userId, distributeMoneyApply.getPoints());
+					if (mType == DistributeMoneyApply.MType.ds){
+						userBenefitsService.addDistributePoints(userId, distributeMoneyApply.getPoints());
+					}
+					if (mType == DistributeMoneyApply.MType.sub) {
+						userBenefitsService.addDistributeSubMoney(userId, needApplyMoney);
+					}
 					if (StrUtil.equals(alipayResponse.getSubCode(), "SECURITY_CHECK_FAILED")) {
 						return GatewayResponse.FAIL.newBuilder().setMsg("当前支付宝提现人数较多,请稍后再试").toResult();
 					}

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/user/UserBenefitsService.java

@@ -44,4 +44,9 @@ public interface UserBenefitsService {
 	 * 扣除店铺主用户 提成金额
 	 */
 	void deductYhShopTakeMoney(Long orderId, Long shopUserId, BigDecimal deductMoney);
+
+	/**
+	 * 返回用户邀请奖励提成
+	 */
+	void addDistributeSubMoney(Long userId, BigDecimal needApplyMoney);
 }

+ 16 - 0
netflix-service/src/main/java/com/cyksj/service/user/impl/UserBenefitsServiceImpl.java

@@ -169,6 +169,22 @@ public class UserBenefitsServiceImpl implements UserBenefitsService {
 		}
 	}
 
+	@Override
+	public void addDistributeSubMoney(Long userId, BigDecimal addApplyMoney) {
+		if (addApplyMoney.compareTo(BigDecimal.ZERO) <= 0) {
+			return;
+		}
+		while (true) {
+			User user = userMapper.selectById(userId);
+			if (user == null) break;
+			BigDecimal subApplyMoney = user.getSubApplyMoney();
+			Integer success = userMapper.addDistributeSubMoney(user.getId(), subApplyMoney, addApplyMoney);
+			if (success == 1) {
+				break;
+			}
+		}
+	}
+
 	private void deductYhsMoneyRecord(Long orderId, Long shopUserId, BigDecimal deductMoney) {
 		try {
 			YhShopDistributeOrdersDeductPointsRecord record = new YhShopDistributeOrdersDeductPointsRecord();