Kaynağa Gözat

[统计][修改][添加业态分析]

release_toaliyun_real
luozukai 7 yıl önce
ebeveyn
işleme
92c415f349
9 değiştirilmiş dosya ile 128 ekleme ve 43 silme
  1. +15
    -37
      mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java
  3. +6
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java
  4. +6
    -3
      mallinkService/src/main/java/com/iformall/service/WxBusinessService.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java
  6. +10
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java
  7. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java
  8. +10
    -0
      mallinkService/src/main/java/com/iformall/utils/DateUtils.java
  9. +77
    -0
      mallinkService/src/main/resources/mapper/WxBusinessMapper.xml

+ 15
- 37
mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java Dosyayı Görüntüle

@@ -8,6 +8,7 @@ import com.iformall.domain.po.WxBusiness;
import com.iformall.domain.po.WxSubBusiness;
import com.iformall.service.WxBusinessService;
import com.iformall.service.WxSubBusinessService;
import com.iformall.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -16,10 +17,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import java.text.SimpleDateFormat;
import java.util.*;

@RestController
@RequestMapping("wxBusiness")
@@ -54,40 +54,18 @@ public class WxBusinessController extends BaseController {
@ApiOperation("业态分析接口")
@GetMapping("businessDataList")
@SystemControllerLog(description = "业态分析接口")
public ResultData businessDataList(@ModelAttribute WxBusiness wxBusiness) {
public ResultData businessDataList(@ModelAttribute WxBusiness wxBusiness) throws Exception{
logger.debug("[" + getIpAddr() + "] WxBusinessController::businessDataList");
List<Map<String,String>> result = new ArrayList<>();
Map<String,String> map = new HashMap<>();
map.put("title","餐饮");//业态
map.put("id","1");//业态id
map.put("volume","2323.23");//营业额
map.put("sale","32323.23");//销售坪效
map.put("rent","32323.23");//租赁坪效
map.put("rentSaleRate","0.23");//租售比
map.put("comPrice","香奈儿");//客单价
map.put("maxCom","32323.23");//贡献率最高商户
result.add(map);
map = new HashMap<>();
map.put("title","娱乐");//业态
map.put("id","2");//业态id
map.put("volume","2323.23");//营业额
map.put("sale","32323.23");//销售坪效
map.put("rent","32323.23");//租赁坪效
map.put("rentSaleRate","0.23");//租售比
map.put("comPrice","香奈儿");//客单价
map.put("maxCom","32323.23");//贡献率最高商户
result.add(map);
map = new HashMap<>();
map.put("title","影视");//业态
map.put("id","3");//业态id
map.put("volume","2323.23");//营业额
map.put("sale","32323.23");//销售坪效
map.put("rent","32323.23");//租赁坪效
map.put("rentSaleRate","0.23");//租售比
map.put("comPrice","香奈儿");//客单价
map.put("maxCom","32323.23");//贡献率最高商户
result.add(map);
return new ResultData(result);
wxBusiness.setTenantId(getTenantId());
if(wxBusiness.getStartdate() == null || wxBusiness.getEnddate() == null){
Date sDate = DateUtils.getFirstDayForCurrMonth(DateUtils.getLastMonthToDay());
Date d = DateUtils.getLastDayForMonth(DateUtils.getLastMonthToDay());
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
wxBusiness.setStartdate(sdT.parse(sd.format(sDate)+" 00:00:00"));
wxBusiness.setEnddate(sdT.parse(sd.format(d)+" 23:59:59"));
}
return wxBusinessService.businessDataList(wxBusiness);
}

@ApiOperation("贡献率排行")


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java Dosyayı Görüntüle

@@ -38,6 +38,8 @@ public class WxBusiness implements Serializable {
@Transient
@io.swagger.annotations.ApiModelProperty(value="查询-结束时间",name="enddate")
private Date enddate;
@Transient
private String tenantId;

public static enum Field
{


+ 6
- 0
mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java Dosyayı Görüntüle

@@ -2,6 +2,7 @@ package com.iformall.mapper;

import java.util.*;
import com.iformall.common.CommonMapper;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBusiness;
import io.lettuce.core.dynamic.annotation.Param;

@@ -12,4 +13,9 @@ public interface WxBusinessMapper extends CommonMapper<WxBusiness, String> {
List<WxBusiness> findListAll();
List<WxBusiness> findListForMerchant(@Param("tenantId") String tenantId);
List<WxBusiness> findListForCoupon(@Param("tenantId") String tenantId);


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

List<Map<String,Object>> devoteList(WxBusiness wxBusiness);
}

+ 6
- 3
mallinkService/src/main/java/com/iformall/service/WxBusinessService.java Dosyayı Görüntüle

@@ -1,6 +1,7 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBusiness;

import java.util.List;
@@ -40,9 +41,11 @@ public interface WxBusinessService {
*/
WxBusiness getById(Integer id);



ResultData businessDataList(WxBusiness wxBusiness);

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



+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java Dosyayı Görüntüle

@@ -40,5 +40,5 @@ public interface WxSubBusinessService {
*/
WxSubBusiness getById(Integer id);

}

+ 10
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java Dosyayı Görüntüle

@@ -2,8 +2,8 @@ package com.iformall.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBusiness;
import com.iformall.enums.EnumBusiness;
import com.iformall.enums.EnumBusinessFilter;
import com.iformall.mapper.WxBusinessMapper;
import com.iformall.service.WxBusinessService;
@@ -50,4 +50,13 @@ public class WxBusinessServiceImpl implements WxBusinessService {
}


@Override
public ResultData businessDataList(WxBusiness wxBusiness) {
return new ResultData(wxBusinessMapper.businessDataList(wxBusiness));
}

@Override
public ResultData devoteList(WxBusiness wxBusiness, Integer pageNum, Integer pageSize) {
return new ResultData(PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxBusinessMapper.devoteList(wxBusiness)));
}
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java Dosyayı Görüntüle

@@ -2,6 +2,7 @@ package com.iformall.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBusiness;
import com.iformall.domain.po.WxSubBusiness;
import com.iformall.mapper.WxBusinessMapper;
@@ -43,5 +44,4 @@ public class WxSubBusinessServiceImpl implements WxSubBusinessService {
return wxSubBusinessMapper.selectByPrimaryKey(id);
}


}

+ 10
- 0
mallinkService/src/main/java/com/iformall/utils/DateUtils.java Dosyayı Görüntüle

@@ -1166,5 +1166,15 @@ public class DateUtils {

}

/**
* 获取上个月的今天
*/
public static Date getLastMonthToDay() {
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
return calendar.getTime();
}

}

+ 77
- 0
mallinkService/src/main/resources/mapper/WxBusinessMapper.xml Dosyayı Görüntüle

@@ -80,7 +80,84 @@
order by create_date asc
</select>

<select id="businessDataList" parameterType="com.iformall.domain.po.WxBusiness" resultType="hashmap">
select b.id,b.title,

round(
(select 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})
/100,2) volume,
round(
(select 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})
/
(select 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})
/100,2) sale,
round(
(select
(select 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})
+
(select 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})
from dual) /
(select 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} )
/100,2) rent,
round(
(select 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})
/
(select 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})
/100,2)
/
round(
(select
(select 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})
+
(select 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})
from dual) /
(select 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)
/100,2) rentSaleRate,
round(
(select 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}) /
(select count(mtd.id)
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})
/100,2) comPrice
from wx_business b
limit 20
</select>

<select id="devoteList" parameterType="com.iformall.domain.po.WxBusiness" resultType="hashmap">

</select>

</mapper>

Yükleniyor…
İptal
Kaydet