|
|
@@ -1,5 +1,6 @@
|
|
|
package com.ruoyi.shop.business.service.impl;
|
|
|
|
|
|
+import cn.dev33.satoken.secure.BCrypt;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
@@ -18,6 +19,7 @@ import com.ruoyi.common.constant.Constants;
|
|
|
import com.ruoyi.common.core.domain.PageQuery;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.enums.ExceptionEnum;
|
|
|
+import com.ruoyi.common.enums.order.OrderType;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.BeanCopyUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
@@ -36,11 +38,13 @@ import com.ruoyi.shop.business.mapper.UserBusinessRoleMapper;
|
|
|
import com.ruoyi.shop.business.service.IUserBusinessIntegralRecordService;
|
|
|
import com.ruoyi.shop.business.service.IUserBusinessRoleService;
|
|
|
import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
|
|
|
-import com.ruoyi.common.enums.order.OrderType;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
import com.ruoyi.user.domain.User;
|
|
|
+import com.ruoyi.user.domain.bo.BalanceToIntegralBo;
|
|
|
import com.ruoyi.user.domain.bo.UserBo;
|
|
|
+import com.ruoyi.user.domain.bo.UserChangeBalanceBo;
|
|
|
import com.ruoyi.user.domain.vo.UserVo;
|
|
|
+import com.ruoyi.user.enums.BalanceSourceType;
|
|
|
import com.ruoyi.user.enums.IntegralBillType;
|
|
|
import com.ruoyi.user.enums.IntegralSourceType;
|
|
|
import com.ruoyi.user.service.IUserService;
|
|
|
@@ -51,7 +55,10 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -489,6 +496,39 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
|
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void balanceToIntegral(BalanceToIntegralBo bo, Long userId) {
|
|
|
+ User user = userService.getById(userId, true);
|
|
|
+ if(!BCrypt.checkpw(bo.getPayPassword(), user.getPayPassword()))
|
|
|
+ {
|
|
|
+ throw new ServiceException("支付密码错误");
|
|
|
+ }
|
|
|
+ Business business = businessService.loadById(bo.getBusinessId(), true);
|
|
|
+ // 检查商家状态
|
|
|
+ business.isValid(true);
|
|
|
+ //先扣余额
|
|
|
+ userService.changeUserBalance(UserChangeBalanceBo.builder()
|
|
|
+ .userId(userId)
|
|
|
+ .entryValue(bo.getIntegral())
|
|
|
+ .isAdd(false)
|
|
|
+ .sourceType(BalanceSourceType.BALANCE_TO_INTEGRAL)
|
|
|
+ .remark("用户余额转存积分")
|
|
|
+ .businessId(business.getBusinessId())
|
|
|
+ .businessName(business.getBusinessName())
|
|
|
+ .build());
|
|
|
+ //在加积分
|
|
|
+ changeUserIntegral(UserBusinessChangeIntegralBo.builder()
|
|
|
+ .userId(userId)
|
|
|
+ .businessId(bo.getBusinessId())
|
|
|
+ .integral(bo.getIntegral())
|
|
|
+ .isAdd(true)
|
|
|
+ .canExpire(false)
|
|
|
+ .sourceType(IntegralSourceType.BALANCE_TO_INTEGRAL)
|
|
|
+ .remark("用户余额转存积分")
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private List<UserBusinessVerifierIntegralVo> convertVerifyList(List<UserBusinessVerifierIntegralVo> voList) {
|
|
|
return voList.stream().map(vo -> {
|