Преглед изворни кода

fix 审核失败归还积分

zoujiajian пре 3 година
родитељ
комит
0988234aaf

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

@@ -22,6 +22,6 @@ public interface UserMapper extends BaseMapper<User> {
     @Update("update user set points = points - #{points} where id = #{id} and points >= #{points} and points > 0")
     Integer subPoints(@Param("id") Long id, @Param("points") BigDecimal points);
 
-    @Update("update user set points = points + #{points} where id = #{id} and points >=0")
-    Integer addPoints(@Param("id") Long id, @Param("points") BigDecimal points);
+    @Update("update user set points = points + #{addPoints} where id = #{id} and points = #{originalPoints} and points >=0")
+    Integer updatePoints(@Param("id") Long id, @Param("originalPoints") BigDecimal originalPoints, @Param("addPoints") BigDecimal addPoints);
 }

+ 11 - 4
netflix-service/src/main/java/com/cyksj/task/Scheduler.java

@@ -222,10 +222,17 @@ public class Scheduler {
             } else {
                 wait.setSendStatus(DistributeWaitingSendPoints.Status.success);
                 log.info("更新用户积分开始=====>");
-                Integer update = userMapper.addPoints(user.getId(), wait.getPoints());
-                if (update == 1) {
-                    distributeWaitingSendPointsMapper.updateById(wait);
-                    log.info("分销积分表订单id:{}发放积分success", wait.getOrderId());
+                while (true) {
+                    user = userMapper.selectById(sharedId);
+                    if (user == null) {
+                        break;
+                    }
+                    Integer update = userMapper.updatePoints(user.getId(), wait.getPoints(), user.getPoints());
+                    if (update == 1) {
+                        distributeWaitingSendPointsMapper.updateById(wait);
+                        log.info("分销积分表订单id:{}发放积分success", wait.getOrderId());
+                        break;
+                    }
                 }
             }
         });

+ 21 - 5
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -7,13 +7,11 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.OrderDonMapper;
+import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.manage.distribute.DistributeMoneyApplyMapper;
 import com.cyksj.mapper.manage.distribute.DistributePointsExchangeMoneyMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
-import com.cyksj.model.entity.DistributeMoneyApply;
-import com.cyksj.model.entity.DistributePointsExchangeMoney;
-import com.cyksj.model.entity.GoodsDon;
-import com.cyksj.model.entity.UserPlatDistributeRate;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.request.DistributeApplyMoneyReq;
 import com.cyksj.model.request.UserDistributeReq;
 import com.cyksj.model.views.DistributeMoneyApplyView;
@@ -26,6 +24,7 @@ import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -45,6 +44,7 @@ import java.util.Optional;
 @RestController
 @RequestMapping("/manage/distribute")
 @RequiredArgsConstructor
+@Slf4j
 public class DistributeController {
 
 	private final DistributeService distributeService;
@@ -61,6 +61,8 @@ public class DistributeController {
 
 	private final GoodsDonMapper goodsDonMapper;
 
+	private final UserMapper userMapper;
+
 	/**
 	 * 添加固定推广者
 	 */
@@ -190,7 +192,21 @@ public class DistributeController {
 		if (DistributeMoneyApply.Status.fail.name().equals(distributeApplyMoneyReq.getVerifyStatus()) && StrUtil.isEmpty(distributeApplyMoneyReq.getReason())) {
 			throw BusinessRuntimeException.getInstance("拒绝原因为空");
 		}
-		distributeMoneyApply.setReason(distributeApplyMoneyReq.getReason());
+		if (DistributeMoneyApply.Status.fail.name().equals(distributeApplyMoneyReq.getVerifyStatus())) {
+			distributeMoneyApply.setReason(distributeApplyMoneyReq.getReason());
+			while (true) {
+				User user = userMapper.selectById(distributeMoneyApply.getUserId());
+				if (user == null) {
+					break;
+				}
+				BigDecimal points = user.getPoints();
+				Integer update = userMapper.updatePoints(user.getId(), points, distributeMoneyApply.getPoints());
+				if (update == 1) {
+					log.info("归还积分:{}至用户{}结束", distributeMoneyApply.getPoints(), user.getId());
+					break;
+				}
+			}
+		}
 		distributeMoneyApplyMapper.updateById(distributeMoneyApply);
 		return GatewayResponse.SUCCESS.newBuilder().toResult("审核操作成功");
 	}

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/user/DistributePopularizeController.java

@@ -107,7 +107,7 @@ public class DistributePopularizeController {
 		DistributePopularizeView distributePopularizeView = new DistributePopularizeView();
 		String domain = envCommonService.getHost();
 //		distributePopularizeView.setUrl(String.format("https://%s/8081/api/auth/weChat?url=https://%s/yinhe/web&sharedId=%s", domain, domain, userId));
-		distributePopularizeView.setUrl(String.format("https://%s/yinhe/web/login?sharedId=%s", domain, userId));
+		distributePopularizeView.setUrl(String.format("https://%s/yinhe/web?sharedId=%s", domain, userId));
 		distributePopularizeView.setUrlCode(QrCodeUtil.generateAsBase64(distributePopularizeView.getUrl(), QrConfig.create(), "png"));
 		User user = userMapper.selectById(userId);
 		distributePopularizeView.setGotPoints(user.getPoints());