|
@@ -3,13 +3,17 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
|
|
import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
|
|
import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
|
|
import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
|
|
import com.yonge.cooleshow.biz.dal.enums.FrozenTypeEnum;
|
|
import com.yonge.cooleshow.biz.dal.enums.FrozenTypeEnum;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.TimeTypeEnum;
|
|
import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
|
|
import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
|
|
import com.yonge.cooleshow.biz.dal.support.DistributedLock;
|
|
import com.yonge.cooleshow.biz.dal.support.DistributedLock;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
|
|
+import com.yonge.toolset.utils.date.DateUtil;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -19,6 +23,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.UserAccountSearch;
|
|
import com.yonge.cooleshow.biz.dal.dao.UserAccountDao;
|
|
import com.yonge.cooleshow.biz.dal.dao.UserAccountDao;
|
|
import com.yonge.cooleshow.biz.dal.service.UserAccountService;
|
|
import com.yonge.cooleshow.biz.dal.service.UserAccountService;
|
|
|
|
|
|
|
|
+import java.util.Calendar;
|
|
import java.util.concurrent.Future;
|
|
import java.util.concurrent.Future;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
@@ -62,6 +67,28 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpResponseResult<AccountTotal> accountTotal(TotalReq totalReq) {
|
|
|
|
+ //参数处理
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ if (TimeTypeEnum.MONTH.equals(totalReq.getTimeType())) {
|
|
|
|
+ String[] classDateSp = totalReq.getDateTime().split("-");
|
|
|
|
+ calendar.set(Integer.parseInt(classDateSp[0]), Integer.parseInt(classDateSp[1]), 1, 0, 0, 0);
|
|
|
|
+ totalReq.setStartTime(calendar.getTime());
|
|
|
|
+ totalReq.setEndTime(DateUtil.dayEnd(DateUtil.getLastDayOfMonth(calendar.getTime())));
|
|
|
|
+ } else if (TimeTypeEnum.YEAR.equals(totalReq.getTimeType())) {
|
|
|
|
+ calendar.set(Integer.parseInt(totalReq.getDateTime()), 1, 1, 0, 0, 0);
|
|
|
|
+ totalReq.setStartTime(calendar.getTime());
|
|
|
|
+
|
|
|
|
+ calendar.set(Integer.parseInt(totalReq.getDateTime()), 12, 1, 0, 0, 0);
|
|
|
|
+ totalReq.setEndTime(DateUtil.dayEnd(DateUtil.getLastDayOfMonth(calendar.getTime())));
|
|
|
|
+ } else {
|
|
|
|
+ return HttpResponseResult.failed("参数异常");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
private HttpResponseResult<UserAccountRecord> doAccountChange(UserAccountRecordDto accountRecordDto) {
|
|
private HttpResponseResult<UserAccountRecord> doAccountChange(UserAccountRecordDto accountRecordDto) {
|
|
if (FrozenTypeEnum.FROZEN.equals(accountRecordDto.getFrozenType())) {
|
|
if (FrozenTypeEnum.FROZEN.equals(accountRecordDto.getFrozenType())) {
|
|
baseMapper.frozenChangeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
|
|
baseMapper.frozenChangeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
|