|
@@ -0,0 +1,55 @@
|
|
|
+package com.caimei.modules.shiro.service.impl;
|
|
|
+
|
|
|
+import com.caimei.modules.shiro.dao.HomePageDao;
|
|
|
+import com.caimei.modules.shiro.service.HomePageService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class HomePageServiceImpl implements HomePageService {
|
|
|
+ @Autowired
|
|
|
+ private HomePageDao homePageDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> receivableAmount(String endTime, String startTime) {
|
|
|
+ Map<String, Object> map = new HashMap();
|
|
|
+ //订单总额
|
|
|
+ Long payTotalFee = homePageDao.findTotalFee(endTime, startTime);
|
|
|
+ //余额支付总金额
|
|
|
+ Long balancePayFee = homePageDao.findBalance(endTime, startTime);
|
|
|
+ //已收总金额
|
|
|
+ Long associateAmount = homePageDao.findAssociate(endTime, startTime);
|
|
|
+ Long amountReceived = balancePayFee + associateAmount;
|
|
|
+ DecimalFormat df = new DecimalFormat("0%");
|
|
|
+ String percentage = "0%";
|
|
|
+ if (amountReceived != 0 && payTotalFee != 0) {
|
|
|
+ percentage = df.format(amountReceived * 1.0 / payTotalFee);
|
|
|
+ }
|
|
|
+ map.put("payTotalFee", payTotalFee);
|
|
|
+ map.put("amountReceived", amountReceived);
|
|
|
+ map.put("percentage", percentage);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> orderQuantity(String endTime, String startTime) {
|
|
|
+ Map<String, Object> map = new HashMap();
|
|
|
+ DecimalFormat df = new DecimalFormat("0%");
|
|
|
+ //订单总数量
|
|
|
+ Integer count = homePageDao.orderQuantity(endTime, startTime, "");
|
|
|
+ //已收款数量
|
|
|
+ Integer received = homePageDao.orderQuantity(endTime, startTime, "3");
|
|
|
+ String receivedPercentage = df.format(received * 1.0 / count);
|
|
|
+ //部分收款数量
|
|
|
+ Integer portion = homePageDao.orderQuantity(endTime, startTime, "2");
|
|
|
+ String portionPercentage = df.format(portion * 1.0 / count);
|
|
|
+ map.put("count", count);
|
|
|
+ map.put("receivedPercentage", receivedPercentage);
|
|
|
+ map.put("portionPercentage", portionPercentage);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+}
|