|
|
|
@@ -0,0 +1,119 @@ |
|
|
|
package com.simple.service.impl; |
|
|
|
|
|
|
|
import apple.laf.JRSUIUtils; |
|
|
|
import com.simple.domain.po.WxDateAmountRecord; |
|
|
|
import com.simple.domain.po.WxMerchant; |
|
|
|
import com.simple.domain.po.WxMerchantTradeDaily; |
|
|
|
import com.simple.domain.po.WxShop; |
|
|
|
import com.simple.mapper.WxDateAmountRecordMapper; |
|
|
|
import com.simple.mapper.WxMerchantMapper; |
|
|
|
import com.simple.mapper.WxMerchantTradeDailyMapper; |
|
|
|
import com.simple.mapper.WxShopMapper; |
|
|
|
import com.simple.service.DataTowerService; |
|
|
|
import com.simple.utils.DateUtils; |
|
|
|
import org.apache.log4j.Logger; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class DataTowerServiceImpl implements DataTowerService { |
|
|
|
|
|
|
|
private Logger logger = Logger.getLogger(getClass()); |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxShopMapper wxShopMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxMerchantMapper wxMerchantMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxDateAmountRecordMapper wxDateAmountRecordMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Map<String, Object> queryRunning(String tenantId) { |
|
|
|
WxShop wxShop = new WxShop(); |
|
|
|
wxShop.setTenantId(tenantId); |
|
|
|
wxShop.setStatus(1); |
|
|
|
List<WxShop> yczlist = wxShopMapper.findList(wxShop); |
|
|
|
wxShop.setStatus(0); |
|
|
|
List<WxShop> wczlist = wxShopMapper.findList(wxShop); |
|
|
|
|
|
|
|
//出租与未出租 |
|
|
|
HashMap<String, Object> datamap = new HashMap<>(); |
|
|
|
int yczsize = yczlist.size(); |
|
|
|
int wczsize = wczlist.size(); |
|
|
|
int size = yczsize + wczsize; |
|
|
|
if(size==0){ |
|
|
|
datamap.put("yczsl",0); |
|
|
|
datamap.put("wczsl",0); |
|
|
|
datamap.put("yczl",0); |
|
|
|
datamap.put("wczl",0); |
|
|
|
}else{ |
|
|
|
datamap.put("yczsl",yczsize); |
|
|
|
datamap.put("wczsl",wczsize); |
|
|
|
double yczld=((double)yczsize/size)*100; |
|
|
|
double dczl = new BigDecimal(yczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
|
|
|
double wczld = ((double) wczsize / size) * 100; |
|
|
|
double wczl = new BigDecimal(wczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
|
|
|
datamap.put("yczl", dczl+"%"); |
|
|
|
datamap.put("wczl", wczl+"%"); |
|
|
|
} |
|
|
|
|
|
|
|
//上报 |
|
|
|
WxMerchant wxMerchant = new WxMerchant(); |
|
|
|
wxMerchant.setTenantId(tenantId); |
|
|
|
wxMerchant.setStatus(1); |
|
|
|
List<WxMerchant> merchants = wxMerchantMapper.findList(wxMerchant); |
|
|
|
|
|
|
|
WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); |
|
|
|
wxMerchantTradeDaily.setTenantId(tenantId); |
|
|
|
String reportdate = DateUtils.getTimeBefore(1, new Date()); |
|
|
|
wxMerchantTradeDaily.setReportDate(reportdate); |
|
|
|
List<WxMerchantTradeDaily> tradelist = wxMerchantTradeDailyMapper.findList(wxMerchantTradeDaily); |
|
|
|
int merchantsize = merchants.size(); |
|
|
|
int tradesize = tradelist.size(); |
|
|
|
if(merchantsize>0 && tradesize>0){ |
|
|
|
double shsbld = ((double)tradesize/merchantsize)*100; |
|
|
|
double shsbl = new BigDecimal(shsbld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
|
|
|
datamap.put("shsbl",shsbl+"%"); |
|
|
|
}else{ |
|
|
|
datamap.put("shsbl",0); |
|
|
|
} |
|
|
|
|
|
|
|
int shsbjg = tradelist.stream().mapToInt(WxMerchantTradeDaily::getTradeAmt).sum(); |
|
|
|
datamap.put("shsbjg",shsbjg); |
|
|
|
|
|
|
|
List<Map<String,Object>> recordlist=wxDateAmountRecordMapper.queryprice(tenantId); |
|
|
|
Map<Object, Object> collect = recordlist.stream().collect(Collectors.toMap(m -> { |
|
|
|
return m.get("date"); |
|
|
|
}, m -> { |
|
|
|
return m.get("price"); |
|
|
|
})); |
|
|
|
|
|
|
|
TreeMap<Object, Object> recordmap = new TreeMap<>(); |
|
|
|
recordmap.putAll(collect); |
|
|
|
|
|
|
|
/*WxDateAmountRecord wxDateAmountRecord = new WxDateAmountRecord(); |
|
|
|
wxDateAmountRecord.setTenantId(tenantId); |
|
|
|
wxDateAmountRecord.setType(0); |
|
|
|
List<WxDateAmountRecord> records = wxDateAmountRecordMapper.findList(wxDateAmountRecord); |
|
|
|
Map<Date, Integer> recordmap = records.stream(). |
|
|
|
collect(Collectors.groupingBy(WxDateAmountRecord::getDate, |
|
|
|
TreeMap::new, |
|
|
|
Collectors.summingInt(r -> { |
|
|
|
return r.getPayPrice().intValue(); |
|
|
|
})));*/ |
|
|
|
|
|
|
|
datamap.put("records",recordmap); |
|
|
|
|
|
|
|
return datamap; |
|
|
|
} |
|
|
|
} |