|
|
@@ -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;
|
|
|
|
|
|
/**
|
|
|
@@ -432,6 +439,7 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
|
|
|
|
|
|
@Override
|
|
|
public TableDataInfo<BusinessIntegralVo> businessPage(UserBusinessRoleBo bo, PageQuery pageQuery) {
|
|
|
+ buildTime(bo);
|
|
|
Page<BusinessIntegralVo> businessIntegralVoPage = baseMapper.businessPage(bo, pageQuery.build());
|
|
|
businessIntegralVoPage.setRecords(businessIntegralVoPage.getRecords().stream().map(vo -> {
|
|
|
vo.setWaitUseIntegral(vo.getTotalGrantIntegral().subtract(vo.getUsedIntegral()));
|
|
|
@@ -440,6 +448,15 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
|
|
|
return TableDataInfo.build(businessIntegralVoPage);
|
|
|
}
|
|
|
|
|
|
+ private void buildTime(UserBusinessRoleBo bo) {
|
|
|
+ if (ObjectUtil.isNotNull(bo.getStartTime())) {
|
|
|
+ bo.setStartTime(DateUtil.beginOfDay(bo.getStartTime()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotNull(bo.getEndTime())) {
|
|
|
+ bo.setEndTime(DateUtil.endOfDay(bo.getEndTime()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public BigDecimal businessTotalIntegral(Long businessId) {
|
|
|
return baseMapper.businessTotalIntegral(businessId);
|
|
|
@@ -482,6 +499,7 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
|
|
|
|
|
|
@Override
|
|
|
public List<BusinessIntegralVo> businessList(UserBusinessRoleBo bo) {
|
|
|
+ buildTime(bo);
|
|
|
List<BusinessIntegralVo> businessIntegralVos = baseMapper.businessList(bo);
|
|
|
return businessIntegralVos.stream().map(vo -> {
|
|
|
vo.setWaitUseIntegral(vo.getTotalGrantIntegral().subtract(vo.getUsedIntegral()));
|
|
|
@@ -489,6 +507,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 -> {
|