diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java index aee728f91..b543d3cde 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java @@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; +import java.util.List; @TableName(value = "wx_card_info") @Data @@ -67,4 +68,7 @@ public class WxCardInfo extends TenantEntity { @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="查询-结束时间",name="enddate") protected Date enddate; + + @TableField(exist = false) + private List couponIdList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java index 1d10033ac..cb50bf112 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java @@ -2,6 +2,7 @@ package com.iformall.domain.vo; import cn.afterturn.easypoi.excel.annotation.Excel; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.annotation.TableField; @@ -47,5 +48,13 @@ public class WxCardSpendVo extends WxCardSpend { @io.swagger.annotations.ApiModelProperty(value="是否显示在卡消费订单",name="cardSpendListShow") @TableField(exist = false) private Integer cardSpendListShow; + + //券上架时间 + @TableField(exist = false) + private Date couponOnlineStartDate; + @TableField(exist = false) + private Date couponOnlineEndDate; + @TableField(exist = false) + private List cardIdList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java index 526f82675..f48d90c1e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java @@ -104,4 +104,12 @@ public class WxCardVo extends WxCardInfo { @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="卡状态",name="statusStr") protected String statusStr; + + //券上架时间 + @TableField(exist = false) + private Date couponOnlineStartDate; + @TableField(exist = false) + private Date couponOnlineEndDate; + @TableField(exist = false) + private List couponIdList; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCardInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCardInfoMapper.java index ded5eae3d..6d5c0eb5c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCardInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCardInfoMapper.java @@ -13,5 +13,7 @@ public interface WxCardInfoMapper extends CommonMapper { void updateTransferStatusByCouponId(Long couponId); List findList(WxCardInfo wxCardInfo); + + List findIdList(WxCardInfo wxCardInfo); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java index f223224d7..f64afb42d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java @@ -20,4 +20,6 @@ public interface WxMerchantShopMapper extends CommonMapper shopIds); List> rentRateHistory(Map params); + + List> rentRateHistoryByArea(Map params); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxShopService.java b/mallinkService/src/main/java/com/iformall/service/WxShopService.java index 3a15e6c38..edb466c26 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxShopService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxShopService.java @@ -48,7 +48,7 @@ public interface WxShopService { PageInfo> findListMap(WxShop record,Integer pageIndex,Integer pageSize); - List> rentRateHistory(TenantEntity tenantEntity,Map params); + List> rentRateHistory(TenantEntity tenantEntity,Map params,boolean byArea); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java index 708f82ae7..1744c8b41 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java @@ -4,8 +4,10 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.domain.po.WxCardInfo; +import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.vo.WxCardVo; import com.iformall.mapper.WxCardInfoMapper; +import com.iformall.mapper.WxCouponChannelMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxCardInfoService; import org.springframework.beans.factory.annotation.Autowired; @@ -23,9 +25,24 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { @Autowired ExcelService excelService; + + @Autowired + WxCouponChannelMapper wxCouponChannelMapper; @Override public PageInfo listAsPage(WxCardVo record, Integer pageIndex, Integer pageSize) { + if (null != record.getCouponOnlineStartDate() || null != record.getCouponOnlineEndDate() ) { + WxCouponChannel wxCouponChannelQ = new WxCouponChannel(); + wxCouponChannelQ.updateTenantInfo(record); + wxCouponChannelQ.setStartdate(record.getCouponOnlineStartDate()); + wxCouponChannelQ.setEnddate(record.getCouponOnlineEndDate()); + List ccIds = wxCouponChannelMapper.findCouponIdList(wxCouponChannelQ); + if (null == ccIds || ccIds.size() <= 0 ) { + record.setId(-999L); + }else { + record.setCouponIdList(ccIds); + } + } return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCardInfoMapper.findVoList(record)); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index f57def1b9..b4f1653f1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -79,6 +79,9 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Autowired WxCashOutService wxCashOutService; + + @Autowired + WxCouponChannelMapper wxCouponChannelMapper; @Override public WxCouponMerchant checkMerchantInCoupon(WxCardInfo cardInfo, Long merchantId) { @@ -383,6 +386,26 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Override public PageInfo listAsPage(WxCardSpendVo record, Integer pageIndex, Integer pageSize) { + if (null != record.getCouponOnlineStartDate() || null != record.getCouponOnlineEndDate() ) { + WxCouponChannel wxCouponChannelQ = new WxCouponChannel(); + wxCouponChannelQ.updateTenantInfo(record); + wxCouponChannelQ.setStartdate(record.getCouponOnlineStartDate()); + wxCouponChannelQ.setEnddate(record.getCouponOnlineEndDate()); + List ccIds = wxCouponChannelMapper.findCouponIdList(wxCouponChannelQ); + if (null == ccIds || ccIds.size() <= 0 ) { + record.setId(-999L); + }else { + WxCardInfo cardInfo = new WxCardInfo(); + cardInfo.updateTenantInfo(record); + cardInfo.setCouponIdList(ccIds); + List cardIdList = wxCardInfoMapper.findIdList(cardInfo); + if (null == cardIdList || cardIdList.size() <= 0 ) { + record.setId(-999L); + }else { + record.setCardIdList(ccIds); + } + } + } return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCardSpendMapper.findCardSpendVoList(record)); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 4b4cd6c66..cf8796a2a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -259,11 +259,7 @@ public class WxChartServiceImpl implements WxChartDataService { //出租率 if (chart.equals(EnumChart.CZL.getCode())) { - if (1 == chartByArea) { - return getRentRate(tenantEntity,false); - }else { - return getRentRate(tenantEntity,true); - } + return getRentRate(tenantEntity); } //租金收缴率 if (chart.equals(EnumChart.ZJSJL.getCode())) { @@ -479,12 +475,17 @@ public class WxChartServiceImpl implements WxChartDataService { //商铺出租率走势 if (chart.equals(EnumChart.RENT_RATE_HISTORY.getCode())) { - return getRentRateHistory(tenantEntity,paramsMap); + if (1 == chartByArea) { + return getRentRateHistory(tenantEntity,paramsMap,true); + }else { + return getRentRateHistory(tenantEntity,paramsMap,false); + } } //业务分析 if (chart.equals(EnumChart.BUSINESS.getCode())) { - return getBusiness(tenantEntity,paramsMap); + return getBusiness(tenantEntity,paramsMap); + } //电能分析 @@ -792,7 +793,7 @@ public class WxChartServiceImpl implements WxChartDataService { * @param tenantEntity * @return */ - private ResultData getRentRateHistory(TenantEntity tenantEntity,Map paramsMap) { + private ResultData getRentRateHistory(TenantEntity tenantEntity,Map paramsMap,boolean byArea) { Integer dateType = Integer.parseInt(paramsMap.get("dateType")); Map queryMap = new HashMap<>(); @@ -819,10 +820,33 @@ public class WxChartServiceImpl implements WxChartDataService { // get all WxShop query = new WxShop(); query.updateTenantInfo(tenantEntity); - Long total = wxShopMapper.getCountByWxShop(query); -// List allList = wxShopMapper.findList(query); - - List> mapList = wxShopService.rentRateHistory(tenantEntity,queryMap); + + Map result = null; + if (!byArea) { + result = rentHistoryByCount(tenantEntity, paramsMap, query, queryMap, dateType); + }else { + result = rentHistoryByArea(tenantEntity, paramsMap, query, queryMap, dateType); + } + if (null != result) { + return new ResultData(result); + }else { + result = new HashMap(); + if (dateType == 1) { + //出租率-日 + String systemTime = DateUtils.getSystemTime("yyyy/MM/dd"); + result.put(systemTime, "0%"); + } else { + //出租率-月 + String systemTime = DateUtils.getSystemTime("yyyy/MM"); + result.put(systemTime, "0%"); + } + return new ResultData(result); + } + } + + private Map rentHistoryByCount(TenantEntity tenantEntity,Map paramsMap,WxShop query,Map queryMap,Integer dateType) { + Long total = wxShopMapper.getCountByWxShop(query);; + List> mapList = wxShopService.rentRateHistory(tenantEntity,queryMap,false); if(CollectionUtils.isNotEmpty(mapList)){ String startTime = (String)mapList.get(0).get("xTime"); String endTime = (String)mapList.get(mapList.size()-1).get("xTime"); @@ -839,19 +863,33 @@ public class WxChartServiceImpl implements WxChartDataService { rentTotal += map.get(key); resultMap.put(key,formatDouble(rentTotal/all*100)+"%"); } - return new ResultData(resultMap); + return resultMap; } - Map result = new HashMap<>(); - if (dateType == 1) { - //出租率-日 - String systemTime = DateUtils.getSystemTime("yyyy/MM/dd"); - result.put(systemTime, "0%"); - } else { - //出租率-月 - String systemTime = DateUtils.getSystemTime("yyyy/MM"); - result.put(systemTime, "0%"); + return null; + } + + private Map rentHistoryByArea(TenantEntity tenantEntity,Map paramsMap,WxShop query,Map queryMap,Integer dateType) { + Long total = wxShopMapper.findAreaSum(query); + List> mapList = wxShopService.rentRateHistory(tenantEntity,queryMap,true); + if(CollectionUtils.isNotEmpty(mapList)){ + String startTime = (String)mapList.get(0).get("xTime"); + String endTime = (String)mapList.get(mapList.size()-1).get("xTime"); + List days = DateUtils.getTjTimeList(startTime, endTime, 1==dateType.intValue()?"0":"1"); + Map map = getMap(days); + for (Map m : mapList) { + map.put((String)m.get( "xTime"),(Long)m.get("buildArea")); + } + + double all = total; + Map resultMap = new LinkedMap(); + double rentTotal = 0; + for (String key : map.keySet()) { + rentTotal += map.get(key); + resultMap.put(key,formatDouble(rentTotal/all*100)+"%"); + } + return resultMap; } - return new ResultData(result); + return null; } public Map getMap(List days){ @@ -2688,29 +2726,19 @@ public class WxChartServiceImpl implements WxChartDataService { * 出租率 * @param tenantEntity */ - private ResultData getRentRate(TenantEntity tenantEntity,boolean byArea) { + private ResultData getRentRate(TenantEntity tenantEntity) { HashMap datamap = new HashMap<>(); //出租与未出租 int yczsize = 0; int wczsize = 0; - if (byArea) { - WxShop wxShop = new WxShop(); - wxShop.updateTenantInfo(tenantEntity); - wxShop.setStatus(EnumShopStatus.RENT.getCode()); - yczsize = wxShopMapper.findAreaSum(wxShop).intValue(); - wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); - wczsize = wxShopMapper.findAreaSum(wxShop).intValue(); - }else { - WxShop wxShop = new WxShop(); - wxShop.updateTenantInfo(tenantEntity); - wxShop.setStatus(EnumShopStatus.RENT.getCode()); - List yczlist = wxShopMapper.findList(wxShop); - wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); - List wczlist = wxShopMapper.findList(wxShop); - yczsize = yczlist.size(); - wczsize = wczlist.size(); - } - + WxShop wxShop = new WxShop(); + wxShop.updateTenantInfo(tenantEntity); + wxShop.setStatus(EnumShopStatus.RENT.getCode()); + List yczlist = wxShopMapper.findList(wxShop); + wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); + List wczlist = wxShopMapper.findList(wxShop); + yczsize = yczlist.size(); + wczsize = wczlist.size(); int size = yczsize + wczsize; if (size == 0) { datamap.put("yczsl", 0); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index 2f5026dc0..001881d2e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -534,7 +534,7 @@ public class WxShopServiceImpl implements WxShopService { } @Override - public List> rentRateHistory(TenantEntity tenantEntity,Map params){ + public List> rentRateHistory(TenantEntity tenantEntity,Map params,boolean byArea){ String building = StringUtils.trimToNull((String)params.get("building")); String floor = StringUtils.trimToNull((String)params.get("floor")); String businessId = StringUtils.trimToNull((String)params.get("businessId")); @@ -558,7 +558,11 @@ public class WxShopServiceImpl implements WxShopService { params.put("shopIds", shopIds); } } - return wxMerchantShopMapper.rentRateHistory(params); + if (!byArea) { + return wxMerchantShopMapper.rentRateHistory(params); + }else { + return wxMerchantShopMapper.rentRateHistoryByArea(params); + } } @Override diff --git a/mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml index 0f16b90d3..5bf630f4b 100644 --- a/mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml @@ -74,6 +74,12 @@ and `create_date` between #{startdate} and #{enddate} + + and ci.coupon_id in + + #{cidItem} + + and id in @@ -196,6 +202,12 @@ #{sItem} + + and ci.coupon_id in + + #{cidItem} + + and ci.id in @@ -225,4 +237,9 @@ + + diff --git a/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml b/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml index 7cc272d1b..ba173e849 100644 --- a/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml @@ -346,6 +346,14 @@ #{sItem} + + + and cs.`card_id` in + + #{cardIdItem} + + + and cs.id in diff --git a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml index 1a23663f0..facecb9c1 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml @@ -145,6 +145,33 @@ group by xTime order by xTime + +