Przeglądaj źródła

修改兑换逻辑

silent 4 lat temu
rodzic
commit
2081d5a037

+ 11 - 10
src/main/java/org/springblade/gateway/point_gateway/service/impl/PointExchangeServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.yeepay.yop.sdk.service.common.response.YopResponse;
 import io.jsonwebtoken.lang.Assert;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.enums.AppConstant;
 import org.springblade.common.utils.BeanPropertyUtil;
@@ -27,7 +28,6 @@ import org.springblade.sing.point.entity.UserPufaPoint;
 import org.springblade.sing.point.service.IPointRecordService;
 import org.springblade.sing.point.service.IUserPufaPointService;
 import org.springblade.sing.user.entity.UserAddress;
-import org.springblade.sing.user.service.ILoginUserService;
 import org.springblade.sing.user.service.IUserAddressService;
 import org.springblade.sing.yeepay.entity.YeepayOrder;
 import org.springblade.sing.yeepay.enums.YeepayOrderPayStatus;
@@ -137,7 +137,8 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 		YeepayOrder yeepayOrder = yeepayOrderService.getById(orderId);
 		UserPufaPoint user = userPufaPointService.getOne(new LambdaQueryWrapper<UserPufaPoint>().eq(UserPufaPoint::getPhone, yeepayOrder.getPhone()));
 
-		if (yeepayOrder.getUsePoint() != null && !yeepayOrder.getUsePoint().equals(BigDecimal.ZERO)) {
+		//判断使用积分不小于零
+		if (ObjectUtils.isNotEmpty(yeepayOrder.getUsePoint()) && yeepayOrder.getUsePoint().compareTo(BigDecimal.ZERO) > 0) {
 
 			//更新用户积分
 			user.setPufaPoint(user.getPufaPoint().subtract(yeepayOrder.getUsePoint()));
@@ -203,7 +204,7 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 		BigDecimal exchangeNum = BigDecimal.valueOf(yeepayOrder.getNum());
 		BigDecimal exchangePoint = goods.getPoint().multiply(exchangeNum);
 
-		if (type == 1){
+		if (type == 1) {
 			if (user.getPufaPoint().compareTo(BigDecimal.ZERO) <= 0) {
 				throw new PointExchangeException("积分不足");
 			}
@@ -231,9 +232,9 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 			//map.put("msg","兑换成功");
 			//return map;
 		}
-		if (type == 2 || type == 0){
+		if (type == 2 || type == 0) {
 			BigDecimal amount;
-			if (type == 2){
+			if (type == 2) {
 				if (user.getPufaPoint().compareTo(yeepayOrder.getUsePoint()) < 0) {
 					throw new PointExchangeException("积分不足");
 				}
@@ -241,7 +242,7 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 				//如果用户输入的积分足够,则使用积分支付
 				if (yeepayOrder.getUsePoint().compareTo(exchangePoint) > 0) {
 					type = 1;
-					return this.merge(yeepayOrder,type);
+					return this.merge(yeepayOrder, type);
 				}
 				//需要的现金
 				BigDecimal usePoint = exchangePoint.subtract(yeepayOrder.getUsePoint());
@@ -255,7 +256,7 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 				pointRecord.setPhone(yeepayOrder.getPhone());
 				pointRecord.setActiveId(yeepayOrder.getActiveId());
 				Assert.isTrue(pointRecordService.save(pointRecord), "兑换失败");
-			}else {
+			} else {
 				amount = exchangePoint.divide(BigDecimal.valueOf(100));
 			}
 
@@ -272,9 +273,9 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 			yeepayOrder.setCallbackUrl(callbackUrl);
 			yeepayOrder.setCreateTime(new Date());
 			yeepayOrder.setUserId(user.getUserId());
-			if (StringUtil.isEmpty(yeepayOrder.getUsePoint())){
+			if (StringUtil.isEmpty(yeepayOrder.getUsePoint())) {
 				yeepayOrder.setUsePoint(BigDecimal.ZERO);
-			}else {
+			} else {
 				yeepayOrder.setUsePoint(yeepayOrder.getUsePoint());
 			}
 			yeepayOrder.setUsePoint(BigDecimal.ZERO);
@@ -331,7 +332,7 @@ public class PointExchangeServiceImpl implements PointExchangeService {
 				map.put("package", prePayTnJson.get("package"));
 				map.put("signType", prePayTnJson.get("signType"));
 				map.put("paySign", prePayTnJson.get("paySign"));
-				map.put("orderId",uniqueOrderNo);
+				map.put("orderId", uniqueOrderNo);
 
 			} catch (Exception e) {
 				throw new Exception(e.getMessage());