lineChartDay(String loginUserId, String rangeDate);
}
diff --git a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml
index ee08fbe..7a11284 100644
--- a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml
+++ b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml
@@ -74,4 +74,28 @@
from qn_acc_bill a where a.id = #{sid}
+
+
+
+
+
+
diff --git a/src/main/java/com/quinn/service/AccBillService.java b/src/main/java/com/quinn/service/AccBillService.java
index d72c56e..183c814 100644
--- a/src/main/java/com/quinn/service/AccBillService.java
+++ b/src/main/java/com/quinn/service/AccBillService.java
@@ -1,11 +1,13 @@
package com.quinn.service;
import com.quinn.common.wx.AccBillDTO;
+import com.quinn.common.wx.AccExpendDTO;
import com.quinn.pojo.AccBill;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
*
@@ -22,4 +24,10 @@ public interface AccBillService extends IService {
List listIncomeBillOrder(String userId,String rangeDate);
List listExpendBillOrder(String userId,String rangeDate);
AccBillDTO getAccBill(Integer sid);
+
+ List groupDetailList(String userId, Integer expendId, String rangeDate);
+
+ List groupList(String userId, String rangeDate);
+
+ Map lineChart(String loginUserId, String rangeDate);
}
diff --git a/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java b/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java
index 9725cf6..781bf86 100644
--- a/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java
+++ b/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java
@@ -1,16 +1,19 @@
package com.quinn.service.impl;
-import com.quinn.common.wx.AccBillDTO;
+import com.quinn.common.wx.*;
import com.quinn.pojo.AccBill;
import com.quinn.mapper.AccBillMapper;
import com.quinn.service.AccBillService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.quinn.utils.QuinnUtils;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
*
@@ -63,4 +66,48 @@ public class AccBillServiceImpl extends ServiceImpl impl
public AccBillDTO getAccBill(Integer sid) {
return accBillMapper.getAccBill(sid);
}
+
+ @Override
+ public List groupDetailList(String userId, Integer expendId, String rangeDate) {
+ String startDate = rangeDate + "-01";
+ String endDate = rangeDate + "-31";
+ return accBillMapper.groupDetailList(userId,expendId,startDate,endDate);
+ }
+
+ @Override
+ public List groupList(String userId, String rangeDate) {
+ String startDate = rangeDate + "-01";
+ String endDate = rangeDate + "-31";
+ List accExpendDTOS = accBillMapper.groupList(userId, startDate, endDate);
+ double sumMoney = 0;
+ for (AccExpendDTO e : accExpendDTOS) {
+ sumMoney = sumMoney + e.getMoney();
+ }
+ for (AccExpendDTO d : accExpendDTOS) {
+ double progress = 0;
+ try{
+ progress = d.getMoney() / sumMoney;
+ progress = Math.floor(progress * 10000) / 100;
+ }catch (Exception e){
+ // do nothing
+ }
+ d.setProgress(progress);
+ }
+ return accExpendDTOS;
+ }
+
+ @Override
+ public Map lineChart(String loginUserId, String rangeDate) {
+ String startDate = rangeDate + "-01";
+ String endDate = rangeDate + "-31";
+ List dayLines = accBillMapper.lineChartDay(loginUserId, rangeDate);
+ if (!CollectionUtils.isEmpty(dayLines)){
+ Map expends = dayLines.stream().filter(x -> AccBillType.EXPEND.equals(x.getAccBillType())).collect(Collectors.toMap(DayLine::getMonth, DayLine::getMoney, (k1, k2) -> k1));
+ Map incomes = dayLines.stream().filter(x -> AccBillType.INCOME.equals(x.getAccBillType())).collect(Collectors.toMap(DayLine::getMonth, DayLine::getMoney, (k1, k2) -> k1));
+ Map transfers = dayLines.stream().filter(x -> AccBillType.TRANSFER.equals(x.getAccBillType())).collect(Collectors.toMap(DayLine::getMonth, DayLine::getMoney, (k1, k2) -> k1));
+ Map repayments = dayLines.stream().filter(x -> AccBillType.REPAYMENT.equals(x.getAccBillType())).collect(Collectors.toMap(DayLine::getMonth, DayLine::getMoney, (k1, k2) -> k1));
+ }
+ List eachDay = QuinnUtils.getEachDay(rangeDate);
+ return null;
+ }
}
diff --git a/src/main/java/com/quinn/utils/QuinnUtils.java b/src/main/java/com/quinn/utils/QuinnUtils.java
index c54a27c..f991309 100644
--- a/src/main/java/com/quinn/utils/QuinnUtils.java
+++ b/src/main/java/com/quinn/utils/QuinnUtils.java
@@ -6,10 +6,7 @@ import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Random;
-import java.util.UUID;
+import java.util.*;
public class QuinnUtils {
@@ -19,6 +16,7 @@ public class QuinnUtils {
private final static SimpleDateFormat sdfm = new SimpleDateFormat( "yyyyMMddHHmmss");
private final static SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd");
private final static SimpleDateFormat sdfv = new SimpleDateFormat( "yyyy-MM-dd");
+ private final static SimpleDateFormat sdfMonth = new SimpleDateFormat( "yyyy-MM");
public static String getUuid(){
return UUID.randomUUID().toString().replaceAll("-","");
@@ -40,6 +38,61 @@ public class QuinnUtils {
return sdfv.format(date);
}
+ public static List getLatestMonth(String rangeDate){
+ List result = new ArrayList<>();
+ for (int i=0 ; i < 6; i++){
+ Date date = new Date();
+ try {
+ date = sdfMonth.parse(rangeDate);
+ } catch (ParseException e) {
+ //
+ }
+ date.setMonth(date.getMonth() + i - 5 );
+ result.add(sdfMonth.format(date));
+ }
+ return result;
+ }
+
+ public static List getEachDay(String rangeDate){
+ List result = new ArrayList<>();
+ String mothText = rangeDate.substring(5);
+ String yearText = rangeDate.substring(0,4);
+ int month = Integer.parseInt(mothText);
+ int year = Integer.parseInt(yearText);
+ boolean isRunN = false;
+ if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
+ isRunN = true;
+ }
+ if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
+ for (int i = 1; i <= 31; i++){
+ if (i < 10){
+ result.add(rangeDate + "-0" + i);
+ }else {
+ result.add(rangeDate + "-" + i);
+ }
+ }
+ }
+ if (month == 4 || month == 6 || month == 9 || month == 11){
+ for (int i = 1; i <= 30; i++){
+ if (i < 10){
+ result.add(rangeDate + "-0" + i);
+ }else {
+ result.add(rangeDate + "-" + i);
+ }
+ }
+ }
+ if (month == 2){
+ for (int i = 1; i <= (isRunN ? 29 : 28); i++){
+ if (i < 10){
+ result.add(rangeDate + "-0" + i);
+ }else {
+ result.add(rangeDate + "-" + i);
+ }
+ }
+ }
+ return result;
+ }
+
public static String getCode(){
int length = 6;
//随机数