package com.dsh.account.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.dsh.account.entity.TAppUser;
|
import com.dsh.account.entity.UserIntegralChanges;
|
import com.dsh.account.mapper.TAppUserMapper;
|
import com.dsh.account.mapper.UserIntegralChangesMapper;
|
import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse;
|
import com.dsh.account.service.UserIntegralChangesService;
|
import com.dsh.account.util.DateTimeHelper;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import javax.annotation.Resource;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 用户积分变动记录 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-07-10
|
*/
|
@Service
|
public class UserIntegralChangesServiceImpl extends ServiceImpl<UserIntegralChangesMapper, UserIntegralChanges> implements UserIntegralChangesService {
|
|
@Resource
|
private TAppUserMapper tauMapper;
|
|
@Override
|
public IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
|
IntegralDetailsResponse vo = new IntegralDetailsResponse();
|
List<IntegralDetailsResponse.IntegralsData> details = new ArrayList<>();
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
|
|
Date monthStart = null;
|
Date monthEnd = null;
|
if (StringUtils.hasText(yearMonth)) {
|
monthStart = DateTimeHelper.getCurrentIdetMouthStart(yearMonth);
|
monthEnd = DateTimeHelper.getCurrentIdeaMouthEnd(yearMonth);
|
} else {
|
monthStart = DateTimeHelper.getCurrentMouthStart();
|
monthEnd = DateTimeHelper.getCurrentMouthEnd();
|
}
|
List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new EntityWrapper<UserIntegralChanges>()
|
.eq("appUserId",userIdFormRedis )
|
.between("insertTime",monthStart,monthEnd)
|
.orderBy("insertTime",false));
|
if (userIntegralChanges.size() > 0 ){
|
for (UserIntegralChanges userIntegralChange : userIntegralChanges) {
|
IntegralDetailsResponse.IntegralsData detail= new IntegralDetailsResponse.IntegralsData();
|
switch (userIntegralChange.getType()){
|
case 1:
|
detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
|
detail.setConsumeName("赠送积分");
|
detail.setDetailsType(2);
|
break;
|
case 2:
|
detail.setConsumeAmount("-"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
|
detail.setConsumeName("兑换商品");
|
detail.setDetailsType(1);
|
break;
|
case 3:
|
detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
|
detail.setConsumeName("完成课后练习");
|
detail.setDetailsType(2);
|
break;
|
case 4:
|
detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
|
detail.setConsumeTime(simpleDateFormat.format(userIntegralChange.getInsertTime()));
|
detail.setConsumeName("观看教学视频");
|
detail.setDetailsType(2);
|
break;
|
default:
|
break;
|
}
|
detail.setConsumeTime(simpleDateFormat.format(userIntegralChange.getInsertTime()));
|
details.add(detail);
|
}
|
if (null != recordId){
|
details = details.stream()
|
.filter(obj -> obj instanceof IntegralDetailsResponse.IntegralsData)
|
.filter(obj -> Objects.equals(obj.getDetailsType(), recordId))
|
.collect(Collectors.toList());
|
}
|
TAppUser tAppUser = tauMapper.selectById(userIdFormRedis);
|
vo.setWpGold(tAppUser.getIntegral());
|
vo.setDetailList(details);
|
}
|
return vo;
|
}
|
}
|