待分成金额
This commit is contained in:
parent
f2b4675ac3
commit
fdfc592f76
|
@ -0,0 +1,18 @@
|
|||
package com.ruoyi.common.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author wjh
|
||||
* 2024/10/29
|
||||
*/
|
||||
@Data
|
||||
public class LongDecimalVO {
|
||||
|
||||
private Long key;
|
||||
|
||||
private BigDecimal value;
|
||||
|
||||
}
|
|
@ -2,6 +2,7 @@ package com.ruoyi.ss.bonus.mapper;
|
|||
|
||||
import com.ruoyi.common.domain.vo.CommonCountVO;
|
||||
import com.ruoyi.common.domain.vo.CommonSumVO;
|
||||
import com.ruoyi.common.domain.vo.LongDecimalVO;
|
||||
import com.ruoyi.ss.bonus.domain.Bonus;
|
||||
import com.ruoyi.ss.bonus.domain.BonusProvideQuery;
|
||||
import com.ruoyi.ss.bonus.domain.BonusQuery;
|
||||
|
@ -130,4 +131,9 @@ public interface BonusMapper
|
|||
* @return
|
||||
*/
|
||||
int selectCount(@Param("query") BonusQuery query);
|
||||
|
||||
/**
|
||||
* 查询未分成金额,并以到账方分组
|
||||
*/
|
||||
List<LongDecimalVO> selectWaitAmountGroupByArrival(@Param("query") BonusQuery query);
|
||||
}
|
||||
|
|
|
@ -177,6 +177,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</where>
|
||||
</select>
|
||||
|
||||
<resultMap id="LongDecimalVO" type="LongDecimalVO" autoMapping="true">
|
||||
<id column="key" property="key"/>
|
||||
<id column="value" property="value" typeHandler="com.ruoyi.system.mapper.typehandler.NonNullDecimalTypeHandler"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectWaitAmountGroupByArrival" resultType="LongDecimalVO">
|
||||
select
|
||||
sb.arrival_id as `key`,
|
||||
sum(sb.wait_amount) as `value`
|
||||
<include refid="searchTables"/>
|
||||
<where>
|
||||
<include refid="searchCondition"/>
|
||||
</where>
|
||||
group by `key`
|
||||
</select>
|
||||
|
||||
<insert id="insertBonus" parameterType="Bonus" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into ss_bonus
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.ruoyi.ss.bonus.service;
|
|||
|
||||
import com.ruoyi.common.domain.vo.CommonCountVO;
|
||||
import com.ruoyi.common.domain.vo.CommonSumVO;
|
||||
import com.ruoyi.common.domain.vo.LongDecimalVO;
|
||||
import com.ruoyi.ss.bonus.domain.Bonus;
|
||||
import com.ruoyi.ss.bonus.domain.BonusProvideQuery;
|
||||
import com.ruoyi.ss.bonus.domain.BonusQuery;
|
||||
|
@ -147,4 +148,9 @@ public interface BonusService
|
|||
* 支付预计分成在指定时间的分成
|
||||
*/
|
||||
int payBonusBeforeTime(LocalDateTime time);
|
||||
|
||||
/**
|
||||
* 查询待分成金额,以到账方分组统计
|
||||
*/
|
||||
List<LongDecimalVO> selectWaitAmountGroupByArrival(BonusQuery query);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ruoyi.ss.bonus.service.impl;
|
|||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.domain.vo.CommonCountVO;
|
||||
import com.ruoyi.common.domain.vo.CommonSumVO;
|
||||
import com.ruoyi.common.domain.vo.LongDecimalVO;
|
||||
import com.ruoyi.common.enums.LoginType;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
|
@ -36,6 +37,7 @@ import java.math.BigDecimal;
|
|||
import java.math.RoundingMode;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
@ -410,6 +412,11 @@ public class BonusServiceImpl implements BonusService
|
|||
return sum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LongDecimalVO> selectWaitAmountGroupByArrival(BonusQuery query) {
|
||||
return bonusMapper.selectWaitAmountGroupByArrival(query);
|
||||
}
|
||||
|
||||
private int batchUpdateAmount(List<BonusVO> list) {
|
||||
if (CollectionUtils.isEmptyElement(list)) {
|
||||
return 0;
|
||||
|
|
|
@ -49,4 +49,8 @@ public class SmUserVo extends SmUser {
|
|||
@ApiModelProperty("实际服务费率")
|
||||
private BigDecimal realServiceRate;
|
||||
|
||||
@ApiModelProperty("未入账金额")
|
||||
@JsonView(JsonViewProfile.App.class)
|
||||
private BigDecimal waitBonusAmount;
|
||||
|
||||
}
|
||||
|
|
|
@ -29,4 +29,10 @@ public interface UserAssembler {
|
|||
* 拼接用户实际服务费率
|
||||
*/
|
||||
void assembleRealServiceRate(List<SmUserVo> list);
|
||||
|
||||
/**
|
||||
* 拼接未入账金额
|
||||
* @param list
|
||||
*/
|
||||
void assembleWaitBonusAmount(List<SmUserVo> list);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
package com.ruoyi.ss.user.service.impl;
|
||||
|
||||
import com.ruoyi.common.domain.vo.LongDecimalVO;
|
||||
import com.ruoyi.common.utils.ServiceUtil;
|
||||
import com.ruoyi.common.utils.collection.CollectionUtils;
|
||||
import com.ruoyi.ss.bonus.domain.Bonus;
|
||||
import com.ruoyi.ss.bonus.domain.BonusQuery;
|
||||
import com.ruoyi.ss.bonus.domain.enums.BonusArrivalType;
|
||||
import com.ruoyi.ss.bonus.domain.enums.BonusStatus;
|
||||
import com.ruoyi.ss.bonus.service.BonusService;
|
||||
import com.ruoyi.ss.device.domain.DeviceCountVO;
|
||||
import com.ruoyi.ss.device.domain.DeviceQuery;
|
||||
import com.ruoyi.ss.device.domain.enums.DeviceGroupBy;
|
||||
|
@ -18,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
@ -36,6 +43,9 @@ public class UserAssemblerImpl implements UserAssembler {
|
|||
@Autowired
|
||||
private ISysConfigService sysConfigService;
|
||||
|
||||
@Autowired
|
||||
private BonusService bonusService;
|
||||
|
||||
/**
|
||||
* 拼接用户店铺数量
|
||||
*
|
||||
|
@ -120,4 +130,28 @@ public class UserAssemblerImpl implements UserAssembler {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void assembleWaitBonusAmount(List<SmUserVo> list) {
|
||||
if (CollectionUtils.isEmptyElement(list)) {
|
||||
return ;
|
||||
}
|
||||
|
||||
BonusQuery query = new BonusQuery();
|
||||
query.setArrivalIds(CollectionUtils.map(list, SmUserVo::getUserId));
|
||||
query.setArrivalTypes(BonusArrivalType.userList());
|
||||
query.setStatus(BonusStatus.WAIT_DIVIDE.getStatus());
|
||||
List<LongDecimalVO> amountList = bonusService.selectWaitAmountGroupByArrival(query);
|
||||
|
||||
for (SmUserVo user : list) {
|
||||
LongDecimalVO sum = amountList.stream()
|
||||
.filter(item -> Objects.equals(item.getKey(), user.getUserId()))
|
||||
.findFirst().orElse(null);
|
||||
if (sum != null) {
|
||||
user.setWaitBonusAmount(sum.getValue());
|
||||
} else {
|
||||
user.setWaitBonusAmount(BigDecimal.ZERO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,6 +72,7 @@ public class AppUserController extends BaseController {
|
|||
userService.desensitization(list);
|
||||
userAssembler.assembleStoreCount(list);
|
||||
userAssembler.assembleDeviceCount(list);
|
||||
userAssembler.assembleWaitBonusAmount(list);
|
||||
return AjaxResult.success(user);
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ public class SmUserController extends BaseController
|
|||
userAssembler.assembleDeviceCount(list);
|
||||
userAssembler.assembleRealServiceRate(list);
|
||||
smUserService.desensitization(list);
|
||||
userAssembler.assembleWaitBonusAmount(list);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
@ -100,6 +101,7 @@ public class SmUserController extends BaseController
|
|||
userAssembler.assembleDeviceCount(list);
|
||||
userAssembler.assembleRealServiceRate(list);
|
||||
smUserService.desensitization(list);
|
||||
userAssembler.assembleWaitBonusAmount(list);
|
||||
return success(user);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user