Просмотр исходного кода

[数据塔台-运营数据][修改]:实现数据逻辑

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
781a1707e3
5 измененных файлов: 158 добавлений и 76 удалений
  1. +10
    -67
      mallinkAdmin/src/main/java/com/simple/controller/DataTowerController.java
  2. +6
    -5
      mallinkService/src/main/java/com/simple/mapper/WxDateAmountRecordMapper.java
  3. +10
    -0
      mallinkService/src/main/java/com/simple/service/DataTowerService.java
  4. +119
    -0
      mallinkService/src/main/java/com/simple/service/impl/DataTowerServiceImpl.java
  5. +13
    -4
      mallinkService/src/main/resources/mapper/WxDateAmountRecordMapper.xml

+ 10
- 67
mallinkAdmin/src/main/java/com/simple/controller/DataTowerController.java Просмотреть файл

@@ -1,15 +1,16 @@
package com.simple.controller;

import com.simple.common.ResultData;
import com.simple.service.DataTowerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Api(description = "数据塔台")
@RestController
@@ -19,75 +20,17 @@ public class DataTowerController extends BaseController {

private Logger logger = Logger.getLogger(DataTowerController.class);

@Autowired
private DataTowerService dataTowerService;

@ApiOperation("查询客流")
@PostMapping("/queryCustomer")
public ResultData queryCustomer() {

List<List> series = new ArrayList<>();
@ApiOperation("查询运营")
@PostMapping("/queryRunning")
public ResultData queryRunning() {

List<Integer> seriesdata = new ArrayList<>();
seriesdata.add(1);
seriesdata.add(2);
seriesdata.add(3);
seriesdata.add(4);
seriesdata.add(5);
seriesdata.add(6);
seriesdata.add(7);
seriesdata.add(8);
seriesdata.add(9);
seriesdata.add(10);
seriesdata.add(11);
seriesdata.add(12);
seriesdata.add(13);
seriesdata.add(14);
seriesdata.add(15);
seriesdata.add(16);
seriesdata.add(17);
seriesdata.add(18);
series.add(seriesdata);
seriesdata = new ArrayList<>();
seriesdata.add(10);
seriesdata.add(20);
seriesdata.add(30);
seriesdata.add(40);
seriesdata.add(50);
seriesdata.add(60);
seriesdata.add(70);
seriesdata.add(80);
seriesdata.add(90);
seriesdata.add(100);
seriesdata.add(110);
seriesdata.add(120);
seriesdata.add(130);
seriesdata.add(140);
seriesdata.add(150);
seriesdata.add(160);
seriesdata.add(170);
seriesdata.add(180);
series.add(seriesdata);
seriesdata = new ArrayList<>();
seriesdata.add(100);
seriesdata.add(200);
seriesdata.add(300);
seriesdata.add(400);
seriesdata.add(500);
seriesdata.add(600);
seriesdata.add(700);
seriesdata.add(800);
seriesdata.add(900);
seriesdata.add(1000);
seriesdata.add(1100);
seriesdata.add(1200);
seriesdata.add(1300);
seriesdata.add(1400);
seriesdata.add(1500);
seriesdata.add(1600);
seriesdata.add(1700);
seriesdata.add(1800);
series.add(seriesdata);
Map<String,Object> data=dataTowerService.queryRunning(getTenantId());

return new ResultData(series);
return new ResultData(data);
}




+ 6
- 5
mallinkService/src/main/java/com/simple/mapper/WxDateAmountRecordMapper.java Просмотреть файл

@@ -1,17 +1,18 @@
package com.simple.mapper;

import java.util.*;
import com.simple.common.CommonMapper;
import org.apache.ibatis.annotations.Param;
import com.simple.domain.po.WxDateAmountRecord;

import java.util.List;
import java.util.Map;

public interface WxDateAmountRecordMapper extends CommonMapper<WxDateAmountRecord, String> {

List<WxDateAmountRecord> findList(WxDateAmountRecord wxDateAmountRecord);
int updateAmount(WxDateAmountRecord wxDateAmountRecord);

List<Map<String,Object>> queryprice(String tenantId);
}

+ 10
- 0
mallinkService/src/main/java/com/simple/service/DataTowerService.java Просмотреть файл

@@ -0,0 +1,10 @@
package com.simple.service;


import java.util.Map;

public interface DataTowerService {

Map<String,Object> queryRunning(String tenantId);

}

+ 119
- 0
mallinkService/src/main/java/com/simple/service/impl/DataTowerServiceImpl.java Просмотреть файл

@@ -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;
}
}

+ 13
- 4
mallinkService/src/main/resources/mapper/WxDateAmountRecordMapper.xml Просмотреть файл

@@ -96,8 +96,17 @@
and type=#{type} and date = #{date}
</update>

<select id="queryprice" resultType="hashmap">
select date,sum(pay_price) price from wx_date_amount_record
where tenant_id=#{value} and type=0
group by date
limit 30
</select>






</mapper>

Загрузка…
Отмена
Сохранить