From 24739c7e321adca7729754cbd882f417f1b87d24 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 11 七月 2019 17:59:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 92 insertions(+), 27 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java
index 59a9273..82140ba 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserMoneyDetailServiceImpl.java
@@ -1,9 +1,9 @@
package com.yeshi.fanli.service.impl.user;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -17,6 +17,8 @@
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
@@ -27,6 +29,13 @@
@Resource
private UserMoneyDetailMapper userMoneyDetailMapper;
+
+ @Override
+ public void addUserMoneyDetail(UserMoneyDetail detail) throws UserMoneyDetailException {
+ if (detail == null || detail.getMoney() == null || detail.getType() == null || detail.getUserInfo() == null)
+ throw new UserMoneyDetailException(1, "淇℃伅涓嶅畬鏁�");
+ userMoneyDetailMapper.insertSelective(detail);
+ }
@Override
public List<UserMoneyDetailHistoryVO> listUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime) {
@@ -44,9 +53,20 @@
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(list.get(0).getCreateTime().getTime());
UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO();
- vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)));
+ vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1));
finalList.add(vo);
+ } else {
+ if (maxTime != null) {//
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(maxTime.getTime());
+ UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO();
+ vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1));
+ vo.getMonth().setExpend("0");
+ vo.getMonth().setIncome("0");
+ finalList.add(vo);
+ }
}
+
} else {// 浜屾璇锋眰
int size = 21;
@@ -83,49 +103,66 @@
list = tempList;
}
- if (list != null)
+ if (list != null) {
+ if (userMoneyDetailId != null && list.size() > 0) {
+ UserMoneyDetail umd = userMoneyDetailMapper.selectByPrimaryKey(userMoneyDetailId);
+ if (!TimeUtil.getGernalTime(umd.getCreateTime().getTime(), "yyyy-MM")
+ .equalsIgnoreCase(TimeUtil.getGernalTime(list.get(0).getCreateTime().getTime(), "yyyy-MM"))) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(list.get(0).getCreateTime().getTime());
+ UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO();
+ vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1));
+ finalList.add(vo);
+ }
+
+ }
for (int i = 0; i < list.size(); i++) {
if (i > 0 && !TimeUtil.getGernalTime(list.get(i - 1).getCreateTime().getTime(), "yyyy-MM")
.equalsIgnoreCase(TimeUtil.getGernalTime(list.get(i).getCreateTime().getTime(), "yyyy-MM"))) {// 鏈潯鏁版嵁涓庝笂鏉℃暟鎹笉鏄悓涓�鏈堝垯鎻掑叆鏈堜唤
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(list.get(i).getCreateTime().getTime());
UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO();
- vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)));
+ vo.setMonth(new UserMonthMoneyVO(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1));
finalList.add(vo);
}
UserMoneyDetailHistoryVO vo = new UserMoneyDetailHistoryVO();
vo.setDetail(list.get(i));
finalList.add(vo);
}
+ }
// 缁熻鏈堣祫閲�
Map<Integer, UserMoneyDetailHistoryVO> monthMap = new TreeMap<>();
- for (int i = 0; i < finalList.size(); i++) {
- if (finalList.get(i).getMonth() != null)
- monthMap.put(i, finalList.get(i));
- }
+ if (finalList.size() > 1)
+ for (int i = 0; i < finalList.size(); i++) {
+ if (finalList.get(i).getMonth() != null)
+ monthMap.put(i, finalList.get(i));
+ }
- List<String> dateFormat = new ArrayList<>();
- Iterator<Integer> keys = monthMap.keySet().iterator();
- while (keys.hasNext()) {
- Integer key = keys.next();
- String date = "";
- date += monthMap.get(key).getMonth().getYear();
- date += "-";
- date += (monthMap.get(key).getMonth().getMonth() + "").length() < 2
- ? "0" + monthMap.get(key).getMonth().getMonth() : monthMap.get(key).getMonth().getMonth();
- dateFormat.add(date);
- }
- List<UserMonthMoneyVO> voList = userMoneyDetailMapper.selectMonthMoneyByUid(uid, dateFormat);
+ if (!monthMap.isEmpty()) {
+ List<String> dateFormat = new ArrayList<>();
+ Iterator<Integer> keys = monthMap.keySet().iterator();
+ while (keys.hasNext()) {
+ Integer key = keys.next();
+ String date = "";
+ date += monthMap.get(key).getMonth().getYear();
+ date += "-";
+ date += (monthMap.get(key).getMonth().getMonth() + "").length() < 2
+ ? "0" + monthMap.get(key).getMonth().getMonth() : monthMap.get(key).getMonth().getMonth();
+ dateFormat.add(date);
+ }
+ List<UserMonthMoneyVO> voList = userMoneyDetailMapper.selectMonthMoneyByUid(uid, dateFormat);
- int p = 0;
- keys = monthMap.keySet().iterator();
- while (keys.hasNext()) {
- Integer key = keys.next();
- finalList.get(key).getMonth().setExpend(voList.get(p).getExpend());
- finalList.get(key).getMonth().setIncome(voList.get(p).getIncome());
- p++;
+ int p = 0;
+ keys = monthMap.keySet().iterator();
+ while (keys.hasNext()) {
+ Integer key = keys.next();
+ // 鍘婚櫎鏀嚭璐熷彿
+ finalList.get(key).getMonth().setExpend(voList.get(p).getExpend().replace("-", ""));
+ finalList.get(key).getMonth().setIncome(voList.get(p).getIncome());
+ p++;
+ }
}
return finalList;
}
@@ -148,4 +185,32 @@
return monthCount + detailCount;
}
+ @Override
+ public List<UserMoneyDetail> listByUidWithState(Long uid, int page, int pageSize) {
+ return userMoneyDetailMapper.selectByUidWithState(uid, (page - 1) * pageSize, pageSize);
+ }
+
+ @Override
+ public long countByUidWithState(Long uid) {
+ return userMoneyDetailMapper.selectCountByUidWithState(uid);
+ }
+
+ @Override
+ public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate,
+ Date maxDate) {
+ List<String> list = new ArrayList<>();
+ if (typeList != null)
+ for (UserMoneyDetailTypeEnum type : typeList) {
+ list.add(type.name());
+ }
+ BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate);
+ return money == null ? new BigDecimal(0) : money;
+ }
+
+ @Override
+ public UserMoneyDetail selectByTypeAndUidAndIdentifyCode(UserMoneyDetailTypeEnum type, Long uid,
+ Long sourceIdentifyId) {
+ return userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(type, uid, sourceIdentifyId);
+ }
+
}
--
Gitblit v1.8.0