Ver código fonte

[统计][修改][晚上业态分析]

release_toaliyun_real
luozukai 6 anos atrás
pai
commit
ed6b607c93
4 arquivos alterados com 52 adições e 50 exclusões
  1. +23
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java
  2. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxBusinessService.java
  3. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java
  4. +25
    -45
      mallinkService/src/main/resources/mapper/WxBusinessMapper.xml

+ 23
- 2
mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java Ver arquivo

@@ -69,7 +69,28 @@ public class WxBusinessController extends BaseController {
wxBusiness.setStartdate(sdT.parse(sd.format(sDate)+" 00:00:00"));
wxBusiness.setEnddate(sdT.parse(sd.format(eDate)+" 23:59:59"));
}
return wxBusinessService.businessDataList(wxBusiness);

List<Map<String,Object>> mapList = wxBusinessService.businessDataList(wxBusiness);
for (Map<String,Object> map:mapList) {
if(map.get("rent") == null){
map.put("rent",0);
}
if(map.get("sale") == null){
map.put("sale",0);
map.put("rentSaleRate",0);
continue;
}
BigDecimal sale = new BigDecimal(map.get("sale").toString());
BigDecimal rent = new BigDecimal(map.get("rent").toString());
if(sale.doubleValue() <= 0){
map.put("rentSaleRate",0);
continue;
}else {
BigDecimal divide = rent.divide(sale, 2, BigDecimal.ROUND_HALF_UP);
map.put("rentSaleRate", divide);
}
}
return new ResultData(mapList);
}

@ApiOperation("导出业态数据列表")
@@ -86,7 +107,7 @@ public class WxBusinessController extends BaseController {
wxBusiness.setStartdate(sdT.parse(sd.format(sDate)+" 00:00:00"));
wxBusiness.setEnddate(sdT.parse(sd.format(eDate)+" 23:59:59"));
}
List<Map<String,Object>> dataList = (List<Map<String,Object>>)wxBusinessService.businessDataList(wxBusiness).data;
List<Map<String,Object>> dataList = wxBusinessService.businessDataList(wxBusiness);
List<WxBusinessDataVo> exeList = new ArrayList<>();
for (Map<String,Object> m:dataList) {
WxBusinessDataVo businessDataVo = new WxBusinessDataVo();


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxBusinessService.java Ver arquivo

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBusiness;
import java.util.List;
import java.util.Map;

public interface WxBusinessService {

@@ -42,7 +43,7 @@ public interface WxBusinessService {



ResultData businessDataList(WxBusiness wxBusiness);
List<Map<String,Object>> businessDataList(WxBusiness wxBusiness);

ResultData devoteList(WxBusiness wxBusiness,Integer pageNum, Integer pageSize);



+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java Ver arquivo

@@ -57,8 +57,8 @@ public class WxBusinessServiceImpl implements WxBusinessService {


@Override
public ResultData businessDataList(WxBusiness wxBusiness) {
return new ResultData(wxBusinessMapper.businessDataList(wxBusiness));
public List<Map<String,Object>> businessDataList(WxBusiness wxBusiness) {
return wxBusinessMapper.businessDataList(wxBusiness);
}

@Override


+ 25
- 45
mallinkService/src/main/resources/mapper/WxBusinessMapper.xml Ver arquivo

@@ -115,36 +115,6 @@
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.business_id = b.id and m.tenant_id=#{tenantId} and m.status = 1 and m.is_del = 0 )
/100,2) rent,

round(
round(
(select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
from wx_merchant m
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = b.id and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
/
(select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
from wx_merchant m
left join wx_merchant_shop mtd on mtd.merchant_id = m.id
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.business_id = b.id and m.tenant_id=#{tenantId} and m.status = 1 and m.is_del = 0 )
/100,2)
/
round(
(select
(select if(sum(br.receive_pay) is null,0,sum(br.receive_pay)) receive_pay from wx_merchant m
left join wx_bill_rent br on(br.merchant_id=m.id) where m.business_id = b.id and m.tenant_id=#{tenantId} and br.receive_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
+
(select if(sum(br.receive_pay) is null,0,sum(br.receive_pay)) receive_pay from wx_merchant m
left join wx_bill_property br on(br.merchant_id=m.id) where m.business_id = b.id and m.tenant_id=#{tenantId} and br.receive_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
from dual) /
(select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
from wx_merchant m
left join wx_merchant_shop mtd on mtd.merchant_id = m.id
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.business_id = b.id and m.status = 1 and m.is_del = 0 )
/100,2)
,4)
rentSaleRate,
round(
(select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
@@ -159,44 +129,54 @@
</select>

<select id="devoteList" parameterType="com.iformall.domain.po.WxBusiness" resultType="hashmap">
select m.name merchantName,round(if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))/if(sum(ws.operation_area) is null,0,sum(ws.operation_area)) /100,2) sale,
select mm.name merchantName,

round(
(select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
from wx_merchant m
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = #{id} and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate})
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = #{id} and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 and m.id = mm.id)
/
(select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
from wx_merchant m
left join wx_merchant_shop mtd on mtd.merchant_id = m.id
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.status = 1 and m.is_del = 0 and m.business_id = #{id} and m.tenant_id=#{tenantId})
/100,2) saleRate,
where m.status = 1 and m.is_del = 0 and m.business_id = #{id} and m.tenant_id=#{tenantId} and m.id = mm.id)
/100,2) sale,

round(
round(if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))/if(sum(ws.operation_area) is null,0,sum(ws.operation_area)) /100,2)/
(

round(
(select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
from wx_merchant m
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = #{id} and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate})
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = #{id} and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 and m.id = mm.id)/
(select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
from wx_merchant m
left join wx_merchant_shop mtd on mtd.merchant_id = m.id
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.status = 1 and m.is_del = 0 and m.business_id = #{id} and m.tenant_id=#{tenantId} and m.id = mm.id)/100,2)
/
round(
(select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
from wx_merchant m
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = #{id} and m.tenant_id=#{tenantId} and mtd.create_date between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
/
(select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
from wx_merchant m
left join wx_merchant_shop mtd on mtd.merchant_id = m.id
left join wx_shop ws on(mtd.shop_id = ws.id)
where m.status = 1 and m.is_del = 0 and m.business_id = #{id} and m.tenant_id=#{tenantId})
where m.business_id = #{id} and m.tenant_id=#{tenantId} and m.status = 1 and m.is_del = 0 )
/100,2)
)
,2) devoteRate

from wx_merchant m
left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id
left join wx_merchant_shop wmt on wmt.merchant_id = m.id
from wx_merchant mm
left join wx_merchant_trade_daily mtd on mtd.merchant_id = mm.id
left join wx_merchant_shop wmt on wmt.merchant_id = mm.id
left join wx_shop ws on(wmt.shop_id = ws.id)
where m.business_id=#{id} and m.tenant_id=#{tenantId}
and m.status = 1 and m.is_del = 0
where mm.business_id=#{id} and mm.tenant_id=#{tenantId}
and mm.status = 1 and mm.is_del = 0
and mtd.create_date between #{startdate} and #{enddate}
group by m.id
group by mm.id
order by devoteRate desc

<if test="null != limitStart and null != limitEnd">


Carregando…
Cancelar
Salvar