账单-金币统计-统计-强制使用索引
This commit is contained in:
@@ -10,6 +10,8 @@ import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.utils.BlankUtil;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.CurrencyEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.user.UsersBaseService;
|
||||
import com.accompany.sharding.mapper.BillRecordMapper;
|
||||
@@ -43,18 +45,20 @@ public class BillRecordAdminService extends BaseService {
|
||||
private GiftService giftService;
|
||||
|
||||
public void pageBillRecordList(Page<BillRecord> page, Long erbanNo, Integer billType, String startDate, String endDate){
|
||||
Long uid = null;
|
||||
QueryWrapper<BillRecord> wrapper = new QueryWrapper<>();
|
||||
|
||||
if (erbanNo != null) {
|
||||
Users users = usersBaseService.getUsersByErBanNo(erbanNo);
|
||||
if (users == null) {
|
||||
return;
|
||||
}
|
||||
uid = users.getUid();
|
||||
Long uid = users.getUid();
|
||||
wrapper.lambda().eq(BillRecord::getUid, uid);
|
||||
}
|
||||
|
||||
List<Integer> bList = new ArrayList<>();
|
||||
QueryWrapper<BillRecord> wrapper = new QueryWrapper<>();
|
||||
|
||||
if(billType != null){
|
||||
List<Integer> bList = new ArrayList<>();
|
||||
if(billType.equals(Constant.BillType.openNoble)){
|
||||
bList = Arrays.asList(Constant.BillType.openNoble, Constant.BillType.renewNoble);
|
||||
}else if(billType.equals(Constant.BillType.purchaseCarGoods)){
|
||||
@@ -62,15 +66,14 @@ public class BillRecordAdminService extends BaseService {
|
||||
}else {
|
||||
bList.add(billType);
|
||||
}
|
||||
wrapper.lambda().in(BillRecord::getObjType, bList)
|
||||
.in(BillRecord::getPartitionId, Arrays.stream(PartitionEnum.values()).map(PartitionEnum::getId).sorted().toList());
|
||||
}
|
||||
|
||||
wrapper.lambda().eq(uid != null, BillRecord::getUid, uid)
|
||||
.ge(!BlankUtil.isBlank(startDate), BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(startDate))
|
||||
.le(!BlankUtil.isBlank(endDate),BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(endDate));
|
||||
if (!CollectionUtils.isEmpty(bList)) {
|
||||
wrapper.lambda().in(BillRecord::getObjType, bList);
|
||||
}
|
||||
wrapper.lambda().orderByDesc(BillRecord::getCreateTime);
|
||||
|
||||
wrapper.lambda().ge(!BlankUtil.isBlank(startDate), BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(startDate))
|
||||
.le(!BlankUtil.isBlank(endDate),BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(endDate))
|
||||
.orderByDesc(BillRecord::getCreateTime);
|
||||
billRecordService.page(page, wrapper);
|
||||
}
|
||||
|
||||
|
@@ -131,14 +131,14 @@
|
||||
</select>-->
|
||||
|
||||
<select id="statDiamondBillRecord" resultType="com.accompany.sharding.vo.DiamondBillRecordStatVo">
|
||||
select br.partition_id,
|
||||
br.obj_type,
|
||||
select br.obj_type,
|
||||
br.partition_id,
|
||||
sum(br.amount) `total_diamond`
|
||||
from bill_record br
|
||||
where br.partition_id = #{partitionId}
|
||||
and br.obj_type in <foreach item="id" index="index" collection="objTypeList" open="(" close=")" separator=",">#{id}</foreach>
|
||||
and br.create_time >= #{startTime} and br.create_time <= #{endTime}
|
||||
group by br.partition_id, br.obj_type
|
||||
from bill_record br force index (idx_obj_type_partition_id_create_time)
|
||||
where br.obj_type in <foreach item="id" index="index" collection="objTypeList" open="(" close=")" separator=",">#{id}</foreach>
|
||||
and br.partition_id = #{partitionId}
|
||||
and br.create_time between #{startTime} and #{endTime}
|
||||
group by br.obj_type
|
||||
</select>
|
||||
|
||||
</mapper>
|
@@ -46,7 +46,7 @@ public class DiamondStatService {
|
||||
Date systemStartTime = DateTimeUtil.converLocalDateTimeToDate(startOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
|
||||
|
||||
// 获取当天的最后一秒
|
||||
ZonedDateTime endOfDay = hourAgo.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
||||
ZonedDateTime endOfDay = hourAgo.withHour(23).withMinute(59).withSecond(59).withNano(999);
|
||||
Date systemEndTime = DateTimeUtil.converLocalDateTimeToDate(endOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
|
||||
|
||||
List<Integer> diamondObjTypeList = Arrays.stream(BillObjTypeEnum.values()).filter(billObjTypeEnum -> CurrencyEnum.DIAMOND.equals(billObjTypeEnum.getCurrency()))
|
||||
|
@@ -261,8 +261,8 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper, BillRecord>
|
||||
|
||||
QueryWrapper<BillRecord> wrapper = new QueryWrapper<>();
|
||||
wrapper.lambda().eq(BillRecord::getUid, uid)
|
||||
.between(BillRecord::getCreateTime, systemStartTime, systemEndTime)
|
||||
.eq(BillRecord::getCurrency, currencyType)
|
||||
.between(BillRecord::getCreateTime, systemStartTime, systemEndTime)
|
||||
.eq(null != billType, BillRecord::getBillType, billType)
|
||||
.in(!CollectionUtils.isEmpty(objTypeList), BillRecord::getObjType, objTypeList)
|
||||
.orderByDesc(BillRecord::getCreateTime);
|
||||
|
Reference in New Issue
Block a user