diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java index e28aab0df..c9aeab64a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java @@ -45,6 +45,19 @@ public class WxMallBuildingController extends BaseController { } return wxMallBuildingService.getBuildingFloorList(wxMallBuilding,this.getUser()); } + + @ApiOperation("获取楼层楼座数据") + @GetMapping("getbuildinglist") + public ResultData getbuildinglist(WxMallBuilding wxMallBuilding) { + wxMallBuilding.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxMallBuilding.setFloorForRule(dataRule.getFloorIds()); + wxMallBuilding.setBusinessForRule(dataRule.getBussinessIds()); + wxMallBuilding.setShopTypeForRule(dataRule.getShopTypes()); + } + return wxMallBuildingService.getBuildingFloorList(wxMallBuilding,this.getUser()); + } @ApiOperation("保存楼层楼座地图") @PostMapping("saveFloorImg") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java index 49ec7506f..4a6c65de4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -232,6 +232,7 @@ public class WxCouponController extends BaseController { CouponCacheUtils.removeOnlyCouponCache(redisTemplate, wxCoupon.getId()); CouponCacheUtils.removeOldDetailCache(redisTemplate); CouponCacheUtils.removeOldDetailHtmlCache(redisTemplate); + CouponCacheUtils.removeOldCouponOrderHtmlCache(redisTemplate); return new ResultData(); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java index 49eef52c1..9afec1c00 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java @@ -6,13 +6,20 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxEnergyFeesCalcute; import com.iformall.domain.po.WxEnergyFeesTime; import com.iformall.domain.po.WxEnergyMeter; +import com.iformall.domain.po.WxEnergyMeterChild; import com.iformall.domain.po.WxEnergyMeterReading; +import com.iformall.domain.po.WxEnergyMeterShopFloor; import com.iformall.domain.po.WxEnergyReadingCalcute; +import com.iformall.domain.po.WxMallFloor; +import com.iformall.domain.po.WxShop; import com.iformall.domain.po.WxUserDataRule; import com.iformall.domain.po.base.BaseEntity; import com.iformall.enums.EnumBillAllType; +import com.iformall.enums.EnumEnergyMeterPhysicsType; +import com.iformall.enums.EnumEnergyMeterShopFloorType; import com.iformall.enums.EnumEnergyMeterType; import com.iformall.enums.EnumEnergyPublicCalcuteRule; import com.iformall.enums.EnumFeesStandardsCalcuteUnit; @@ -20,6 +27,9 @@ import com.iformall.enums.EnumFeesStandardsTimeUnit; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.service.WxEnergyService; +import com.iformall.service.WxMallFloorService; +import com.iformall.service.WxShopService; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -52,6 +62,12 @@ public class WxEnergyController extends BaseController { @Autowired private WxEnergyService wxEnergyService; + @Autowired + private WxMallFloorService wxMallFloorService; + + @Autowired + private WxShopService wxShopService; + @ApiOperation("表类型") @GetMapping("meterTypeList") public ResultData meterTypeList() { @@ -62,6 +78,30 @@ public class WxEnergyController extends BaseController { return new ResultData(retMap); } + @ApiOperation("表分组") + @GetMapping("meterPhysicsTypeTypeList") + public ResultData meterPhysicsTypeTypeList() { + Map retMap = new HashMap(); + for (EnumEnergyMeterPhysicsType mem : EnumEnergyMeterPhysicsType.values()) { + if (mem != EnumEnergyMeterPhysicsType.SUMMARY) { + retMap.put(mem.getCode(), mem.getMessage()); + } + } + return new ResultData(retMap); + } + + @ApiOperation("计算费用的表分组") + @GetMapping("meterFeesPhysicsTypeTypeList") + public ResultData meterFeesPhysicsTypeTypeList() { + Map retMap = new HashMap(); + for (EnumEnergyMeterPhysicsType mem : EnumEnergyMeterPhysicsType.values()) { + if (mem != EnumEnergyMeterPhysicsType.PUBLIC) { + retMap.put(mem.getCode(), mem.getMessage()); + } + } + return new ResultData(retMap); + } + @ApiOperation("公摊计费规则") @GetMapping("publicCalcuteRules") public ResultData publicCalcuteRules() { @@ -79,19 +119,178 @@ public class WxEnergyController extends BaseController { @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), }) public ResultData meterList(@ModelAttribute WxEnergyMeter record, Integer pageNum, Integer pageSize) { - WxUserDataRule dataRule = this.getCurrentDataFloors(); - if (null != dataRule) { - record.setFloorForRule(dataRule.getFloorIds()); - record.setBusinessForRule(dataRule.getBussinessIds()); - record.setShopTypeForRule(dataRule.getShopTypes()); - } record.updateTenantInfo(getTenantInfo()); record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); PageInfo page = wxEnergyService.meterListAsPage(record, pageNum, pageSize); return new ResultData(page); } - @ApiOperation("能源表新增修改") + @ApiOperation("根据楼座查询楼层和能源表") + @GetMapping("floorAndMeterList") + public ResultData floorAndMeterList(@ModelAttribute WxEnergyMeter record) { + record.updateTenantInfo(getTenantInfo()); + List retList = new ArrayList(); + //根据楼座查询楼层 + WxMallFloor mfq = new WxMallFloor(); + mfq.updateTenantInfo(record); + mfq.setBuildingId(record.getBuilding()); + PageInfo floorPage = wxMallFloorService.listAsPage(mfq, 1,1000); + if (null != floorPage && null != floorPage.getList() && floorPage.getList().size() > 0 ) { + retList.addAll(floorPage.getList()); + } + //根据楼错查询关联的公共表 + WxEnergyMeterShopFloor msf = new WxEnergyMeterShopFloor(); + msf.updateTenantInfo(record); + msf.setType(EnumEnergyMeterShopFloorType.BUILDING.getCode()); + msf.setAliseId(record.getBuilding()); + List meterids = wxEnergyService.getMeterIdList(msf); + if (null != meterids && meterids.size() > 0 ) { + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterids); + List ptylist = new ArrayList(); + if (null != record.getIsRealMeter() && EnumYesOrNo.YES.getCode() == record.getIsRealMeter()) { + ptylist.add(EnumEnergyMeterPhysicsType.PUBLIC.getCode()); + ptylist.add(EnumEnergyMeterPhysicsType.USER.getCode()); + }else { + ptylist.add(EnumEnergyMeterPhysicsType.SUMMARY.getCode()); + } + mq.setPhysicsTypeList(ptylist); + PageInfo page = wxEnergyService.meterListAsPage(mq,1,1000); + if (null != page && null != page.getList()) { + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxEnergyMeter m = page.getList().get(i); + WxMallFloor f = new WxMallFloor(); + f.setId(m.getId()); + f.setBuildingId(record.getBuilding()); + f.setFloorName(m.getName()); + f.setTreeType(m.getTreeType()); + retList.add(f); + } + } + } + return new ResultData(retList); + } + + @ApiOperation("根据楼层查询能源表和店铺") + @GetMapping("floorMeterList") + public ResultData shopAndMeterList(@ModelAttribute WxEnergyMeter record) { + record.updateTenantInfo(getTenantInfo()); + List retList = new ArrayList(); + if (null != record.getHasShop() && record.getHasShop() == EnumYesOrNo.YES.getCode()) { + //根据楼座查询楼层 + WxShop mfq = new WxShop(); + mfq.updateTenantInfo(record); + mfq.setFloor(record.getFloor()); + PageInfo floorPage = wxShopService.listAsPage(mfq, 1,1000); + if (null != floorPage && null != floorPage.getList() && floorPage.getList().size() > 0 ) { + retList.addAll(floorPage.getList()); + } + } + //根据楼错查询关联的公共表 + WxEnergyMeterShopFloor msf = new WxEnergyMeterShopFloor(); + msf.updateTenantInfo(record); + msf.setType(EnumEnergyMeterShopFloorType.FLOOR.getCode()); + msf.setAliseId(record.getFloor()); + List meterids = wxEnergyService.getMeterIdList(msf); + if (null != meterids && meterids.size() > 0 ) { + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterids); + List ptylist = new ArrayList(); + if (null != record.getIsRealMeter() && EnumYesOrNo.YES.getCode() == record.getIsRealMeter()) { + ptylist.add(EnumEnergyMeterPhysicsType.PUBLIC.getCode()); + ptylist.add(EnumEnergyMeterPhysicsType.USER.getCode()); + }else { + ptylist.add(EnumEnergyMeterPhysicsType.SUMMARY.getCode()); + } + mq.setPhysicsTypeList(ptylist); + PageInfo page = wxEnergyService.meterListAsPage(mq,1,1000); + if (null == page || null == page.getList() ) { + return new ResultData(); + } + List list = page.getList(); + for (int i = 0 ; i < list.size() ; i ++) { + WxEnergyMeter meter = list.get(i); + WxShop s = new WxShop(); + s.setId(meter.getId()); + s.setShopNumber(meter.getName()); + s.setTreeParentId(record.getFloor()); + s.setTreeParentType("floor"); + retList.add(s); + } + return new ResultData(retList); + } + return new ResultData(); + } + + @ApiOperation("根据店铺查询能源表") + @GetMapping("shopMeterList") + public ResultData shopMeterList(@ModelAttribute WxEnergyMeter record) { + record.updateTenantInfo(getTenantInfo()); + List retList = new ArrayList(); + //根据楼错查询关联的公共表 + WxEnergyMeterShopFloor msf = new WxEnergyMeterShopFloor(); + msf.updateTenantInfo(record); + msf.setType(EnumEnergyMeterShopFloorType.SHOP.getCode()); + msf.setAliseId(record.getShopId()); + List meterids = wxEnergyService.getMeterIdList(msf); + if (null != meterids && meterids.size() > 0 ) { + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterids); + List ptylist = new ArrayList(); + if (null != record.getIsRealMeter() && EnumYesOrNo.YES.getCode() == record.getIsRealMeter()) { + ptylist.add(EnumEnergyMeterPhysicsType.PUBLIC.getCode()); + ptylist.add(EnumEnergyMeterPhysicsType.USER.getCode()); + }else { + ptylist.add(EnumEnergyMeterPhysicsType.SUMMARY.getCode()); + } + mq.setPhysicsTypeList(ptylist); + PageInfo page = wxEnergyService.meterListAsPage(mq,1,1000); + if (null == page || null == page.getList() ) { + return new ResultData(); + } + List list = page.getList(); + for (int i = 0 ; i < list.size() ; i ++) { + WxEnergyMeter meter = list.get(i); + WxShop s = new WxShop(); + s.setId(meter.getId()); + s.setShopNumber(meter.getName()); + s.setTreeParentId(record.getShopId()); + s.setTreeParentType("shop"); + retList.add(s); + } + return new ResultData(retList); + } + return new ResultData(); + } + + @ApiOperation("根据子表") + @GetMapping("childMeterList") + public ResultData childMeterList(@ModelAttribute WxEnergyMeterChild record) { + record.updateTenantInfo(getTenantInfo()); + List meterids = wxEnergyService.getChildMeterIdList(record); + if (null != meterids && meterids.size() > 0 ) { + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterids); + PageInfo page = wxEnergyService.meterListAsPage(mq,1,1000); + if (null == page || null == page.getList() ) { + return new ResultData(); + } + List list = page.getList(); + for (int i = 0 ; i < list.size() ; i ++) { + WxEnergyMeter meter = list.get(i); + meter.setTreeParentId(record.getParentMeterId()); + meter.setTreeParentType("meter"); + } + return new ResultData(list); + } + return new ResultData(); + } + + @ApiOperation("用户能源表新增修改") @PostMapping("saveMeter") public ResultData saveMeter(@RequestBody WxEnergyMeter record) { record.updateTenantInfo(getTenantInfo()); @@ -99,49 +298,106 @@ public class WxEnergyController extends BaseController { return new ResultData(); } - @PostMapping("meterUpdateIsDel") - public ResultData meterUpdateIsDel(@RequestBody WxEnergyMeter record) { + @ApiOperation("用户能源表新增修改") + @PostMapping("aliasMeter") + public ResultData aliasMeter(@RequestBody WxEnergyMeterShopFloor record) { record.updateTenantInfo(getTenantInfo()); - wxEnergyService.updateMeterIsDel(record); + wxEnergyService.createMeterAlias(record); return new ResultData(); } - @ApiOperation("能源表关联店铺") - @PostMapping("setMeterShop") - public ResultData setMeterShop(@RequestBody WxEnergyMeter record) { + @ApiOperation("用户能源表新增修改") + @PostMapping("aliasChildMeter") + public ResultData aliasChildMeter(@RequestBody WxEnergyMeterChild record) { record.updateTenantInfo(getTenantInfo()); - if (null == record.getId() || null == record.getShopId()) { - return new ResultData(Result.ERROR,"参数错误"); - } - WxEnergyMeter meter = wxEnergyService.getMeterById(record, record.getId()); - if (null == meter) { - return new ResultData(Result.ERROR,"能源表未查询到"); + WxEnergyMeter meter = wxEnergyService.getMeterById(record, record.getParentMeterId()); + if (null == meter || meter.getPhysicsType() != EnumEnergyMeterPhysicsType.SUMMARY.getCode()) { + return new ResultData(Result.ERROR,"该节点不能绑定子表"); } - if (meter.getIsPublic().intValue() == EnumYesOrNo.YES.getCode().intValue()) { - return new ResultData(Result.ERROR,"总表不能关联店铺"); + wxEnergyService.createChildMeterAlias(record); + return new ResultData(); + } + + @ApiOperation("用户能源表新增修改") + @PostMapping("deleteAliasMeter") + public ResultData deleteAliasMeter(@RequestBody WxEnergyMeterShopFloor record) { + record.updateTenantInfo(getTenantInfo()); + if (null == record.getId()) { + return new ResultData(Result.ERROR,"请选择一个"); } - wxEnergyService.setMeterShop(record); + wxEnergyService.deleteMeterAlias(record); return new ResultData(); } - @ApiOperation("能源表关联楼层") - @PostMapping("setMeterFloor") - public ResultData setMeterFloor(@RequestBody WxEnergyMeter record) { + @ApiOperation("用户能源表新增修改") + @PostMapping("deleteChildMeter") + public ResultData deleteChildMeter(@RequestBody WxEnergyMeterChild record) { record.updateTenantInfo(getTenantInfo()); - if (null == record.getId() || null == record.getFloorId()) { - return new ResultData(Result.ERROR,"参数错误"); + if (null == record.getId()) { + return new ResultData(Result.ERROR,"请选择一个关联"); } - WxEnergyMeter meter = wxEnergyService.getMeterById(record, record.getId()); - if (null == meter) { - return new ResultData(Result.ERROR,"能源表未查询到"); + wxEnergyService.deleteChildMeterAlias(record); + return new ResultData(); + } + + @PostMapping("meterUpdateIsDel") + public ResultData meterUpdateIsDel(@RequestBody WxEnergyMeter record) { + record.updateTenantInfo(getTenantInfo()); + wxEnergyService.updateMeterIsDel(record); + return new ResultData(); + } + + @ApiOperation("店铺费用列表") + @GetMapping("feesCalcuteList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + }) + public ResultData shopFeesList(@ModelAttribute WxEnergyFeesCalcute record, Integer pageNum, Integer pageSize) { + record.updateTenantInfo(getTenantInfo()); + record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); + if (StringUtils.isNotBlank(record.getFeesIdsStr())) { + String[] fss = record.getFeesIdsStr().split(","); + if (null != fss && fss.length > 0 ) { + List feesIdList = new ArrayList(); + for (int i = 0 ; i < fss.length ; i ++) { + feesIdList.add(Long.parseLong(fss[i])); + } + record.setFeesIds(feesIdList); + } } - if (meter.getIsPublic().intValue() == EnumYesOrNo.NO.getCode().intValue()) { - return new ResultData(Result.ERROR,"用户表不能关联楼层"); + PageInfo list = wxEnergyService.shopFeesListAsPage(record,pageNum,pageSize); + return new ResultData(list); + } + + @ApiOperation("计算公式组件") + @GetMapping("feesCalcuteComponentList") + public ResultData shopFeesList(@ModelAttribute WxEnergyFeesCalcute record) { + record.updateTenantInfo(getTenantInfo()); + record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); + if (StringUtils.isNotBlank(record.getFeesIdsStr())) { + String[] fss = record.getFeesIdsStr().split(","); + if (null != fss && fss.length > 0 ) { + List feesIdList = new ArrayList(); + for (int i = 0 ; i < fss.length ; i ++) { + feesIdList.add(Long.parseLong(fss[i])); + } + record.setFeesIds(feesIdList); + } } - wxEnergyService.setMeterFloor(record); + PageInfo list = wxEnergyService.shopFeesListAsPage(record,pageNum,pageSize); + return new ResultData(list); + } + + @ApiOperation("用户能源表新增修改") + @PostMapping("saveFeesCalcute") + public ResultData saveFeesCalcute(@RequestBody WxEnergyFeesCalcute record) { + record.updateTenantInfo(getTenantInfo()); + wxEnergyService.createMeterAlias(record); return new ResultData(); } + @ApiOperation("费用区间列表") @GetMapping("timeList") @ApiImplicitParams({ diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql new file mode 100644 index 000000000..3098e93f1 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql @@ -0,0 +1,54 @@ +alter table wx_energy_meter drop COLUMN floor_id; +alter table wx_energy_meter drop COLUMN shop_id; +alter table wx_energy_meter drop COLUMN building_id; +alter table wx_energy_meter drop COLUMN is_public; +ALTER TABLE wx_energy_meter ADD COLUMN physics_type INT(1) NOT NULL COMMENT '表物理类型'; + +CREATE TABLE `wx_energy_meter_shop_floor` ( + `id` bigint(20) NOT NULL COMMENT '主键ID', + `tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID', + `parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID', + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `type` int(3) NOT NULL COMMENT '表类型', + `meter_id` bigint(20) NOT NULL COMMENT '表编号', + `alise_id` bigint(20) NOT NULL COMMENT '关联的id', + PRIMARY KEY (`id`), + UNIQUE KEY `id_UNIQUE` (`id`), + UNIQUE KEY `T_T_M_A` (`tenant_id`,`type`,`meter_id`,`alise_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='能耗表'; + +CREATE TABLE `wx_energy_meter_child` ( + `id` bigint(20) NOT NULL COMMENT '主键ID', + `tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID', + `parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID', + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `parent_meter_id` bigint(20) NOT NULL COMMENT '表编号', + `child_meter_id` bigint(20) NOT NULL COMMENT '关联的id', + PRIMARY KEY (`id`), + UNIQUE KEY `id_UNIQUE` (`id`), + UNIQUE KEY `P_C` (`parent_meter_id`,`child_meter_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='能耗表'; + +CREATE TABLE `wx_energy_fees_calcute` ( + `id` bigint(20) NOT NULL COMMENT '主键ID', + `tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID', + `parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID', + `create_time` timestamp NULL DEFAULT NULL, + `update_time` timestamp NULL DEFAULT NULL, + `fees_id` bigint(20) NOT NULL COMMENT '科目', + `price` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '价格', + `physics_type` int(1) NOT NULL COMMENT '用户表,公摊总表', + `formula` text COLLATE utf8mb4_unicode_ci COMMENT '计算公式', + PRIMARY KEY (`id`), + UNIQUE KEY `id_UNIQUE` (`id`), + UNIQUE KEY `T_F` (`tenant_id`,`fees_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='能耗表'; + + + + + + + diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/FloorBuildingIdDTO.java b/mallinkService/src/main/java/com/iformall/domain/dto/FloorBuildingIdDTO.java new file mode 100644 index 000000000..eca94e011 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/FloorBuildingIdDTO.java @@ -0,0 +1,15 @@ +package com.iformall.domain.dto; + +import java.util.List; + +import com.iformall.enums.EnumEnergyMeterShopFloorType; + +import lombok.Data; + +/** + */ +@Data +public class FloorBuildingIdDTO { + private EnumEnergyMeterShopFloorType type; + private List ids; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java index 17d0c9dc2..7f34e1a61 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumContractReceivePeriodUnit; +import com.iformall.enums.EnumEnergyMeterType; import com.iformall.enums.EnumEnergyPublicCalcuteRule; import com.iformall.enums.EnumFeesStandardsCalcuteUnit; import com.iformall.enums.EnumFeesStandardsTimeUnit; @@ -71,6 +72,14 @@ public class WxEnergyFees extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "表类型EnumEnergyMeterType", name = "type") private Integer type; + @TableField(exist = false) + private String typeName; + public String getTypeName() { + if (null != type) { + return EnumEnergyMeterType.getEnum(type).getMessage(); + } + return null; + } @io.swagger.annotations.ApiModelProperty(value = "所属账单类型EnumBillAllType", name = "billType") private Integer billType; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesCalcute.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesCalcute.java new file mode 100644 index 000000000..89b94f176 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesCalcute.java @@ -0,0 +1,77 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumEnergyMeterPhysicsType; +import com.iformall.enums.EnumEnergyMeterType; +import com.iformall.enums.EnumRentShopType; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.Date; +import java.util.List; + +/** + */ +@TableName(value = "wx_energy_fees_calcute") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxEnergyFeesCalcute extends TenantEntity { + + private static final long serialVersionUID = 7009117540201976664L; + + @io.swagger.annotations.ApiModelProperty(value="id",name="id") + private Long id; + + @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") + private Date createTime; + + @io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime") + private Date updateTime; + + @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") + private Long feesId; + + @io.swagger.annotations.ApiModelProperty(value = "表分组EnumEnergyMeterPhysicsType", name = "physicsType") + private Integer physicsType; + @TableField(exist = false) + private String physicsTypeName; + public String getPhysicsTypeName() { + if (null != physicsType) { + return EnumEnergyMeterPhysicsType.getEnum(physicsType).getMessage(); + } + return null; + } + + @io.swagger.annotations.ApiModelProperty(value = "单价", name = "price") + private String price; + + @io.swagger.annotations.ApiModelProperty(value = "店铺编号", name = "shopId") + private Long shopId; + + @io.swagger.annotations.ApiModelProperty(value = "公摊计算公司", name = "formula") + private String formula; + + @TableField(exist = false) + private List shopIds; + @TableField(exist = false) + private List feesIds; + @TableField(exist = false) + private String feesName; + @TableField(exist = false) + private Integer feesType; + @TableField(exist = false) + private String feesTypeName; + @TableField(exist = false) + private String fixedPriceName; + @TableField(exist = false) + private String calcuteUnitName; + @TableField(exist = false) + private String timeUnitName; + @TableField(exist = false) + private String feesIdsStr; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java index bbe114111..c12dce698 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java @@ -3,7 +3,9 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumEnergyMeterPhysicsType; import com.iformall.enums.EnumEnergyMeterType; +import com.iformall.enums.EnumRentShopType; import lombok.Data; import lombok.EqualsAndHashCode; @@ -47,32 +49,54 @@ public class WxEnergyMeter extends TenantEntity { return null; } - @io.swagger.annotations.ApiModelProperty(value="倍率",name="rate") private String rate; - @io.swagger.annotations.ApiModelProperty(value = "是否总表", name = "isPublic") - private Integer isPublic; + @io.swagger.annotations.ApiModelProperty(value = "表分组EnumEnergyMeterPhysicsType", name = "physicsType") + private Integer physicsType; + @TableField(exist = false) + private String physicsTypeName; + public String getPhysicsTypeName() { + if (null != physicsType) { + return EnumEnergyMeterPhysicsType.getEnum(physicsType).getMessage(); + } + return null; + } @io.swagger.annotations.ApiModelProperty(value = "店铺类型EnumRentShopType", name = "shopType") private Integer shopType; - - @io.swagger.annotations.ApiModelProperty(value = "楼栋ID", name = "buildingId") - private Long buildingId; @TableField(exist = false) - private String buildingName; + private String shopTypeName; + public String getShopTypeName() { + if (null != shopType) { + return EnumRentShopType.getEnum(shopType).getMessage(); + } + return null; + } - @io.swagger.annotations.ApiModelProperty(value = "楼层ID", name = "floorId") - private Long floorId; @TableField(exist = false) - private String floorName; + private String treeType="meter"; + @TableField(exist = false) + private Long treeParentId; + @TableField(exist = false) + private String treeParentType; - @io.swagger.annotations.ApiModelProperty(value = "店铺", name = "shopId") + @TableField(exist = false) + private Long aliasId; + @TableField(exist = false) + private Integer aliasType; + @TableField(exist = false) + private Long building; + @TableField(exist = false) + private Long floor; + @TableField(exist = false) private Long shopId; @TableField(exist = false) - private String shopNumber; - + private List physicsTypeList; @TableField(exist = false) - private List shopIds; - + private Integer isRealMeter; + @TableField(exist = false) + private Integer isValid; + @TableField(exist = false) + private Integer hasShop; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterChild.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterChild.java new file mode 100644 index 000000000..e94b6cff7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterChild.java @@ -0,0 +1,47 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumEnergyMeterShopFloorType; +import com.iformall.enums.EnumEnergyMeterType; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + */ +@TableName(value = "wx_energy_meter_child") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxEnergyMeterChild extends TenantEntity { + + private static final long serialVersionUID = 7009117540201976664L; + + @io.swagger.annotations.ApiModelProperty(value="id",name="id") + private Long id; + + @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") + private Date createTime; + + @io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime") + private Date updateTime; + + + @io.swagger.annotations.ApiModelProperty(value="表编号",name="parentMeterId") + private Long parentMeterId; + + @io.swagger.annotations.ApiModelProperty(value = "关联的编号", name = "childMeterId") + private Long childMeterId; + + @TableField(exist = false) + private List childMeterIdList; + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java new file mode 100644 index 000000000..88e44a8e7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java @@ -0,0 +1,68 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumEnergyMeterShopFloorType; +import com.iformall.enums.EnumEnergyMeterType; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + */ +@TableName(value = "wx_energy_meter_shop_floor") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxEnergyMeterShopFloor extends TenantEntity { + + private static final long serialVersionUID = 7009117540201976664L; + + @io.swagger.annotations.ApiModelProperty(value="id",name="id") + private Long id; + + @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") + private Date createTime; + + @io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime") + private Date updateTime; + + @io.swagger.annotations.ApiModelProperty(value = "表类型EnumEnergyMeterShopFloorType", name = "type") + private Integer type; + @TableField(exist = false) + private String typeName; + public String getTypeName() { + if (null != type) { + return EnumEnergyMeterShopFloorType.getEnum(type).getMessage(); + } + return null; + } + + @io.swagger.annotations.ApiModelProperty(value="表编号",name="meterId") + private Long meterId; + + @io.swagger.annotations.ApiModelProperty(value = "关联的编号", name = "aliseId") + private Long aliseId; + + @TableField(exist = false) + private List shopIds; + @TableField(exist = false) + private List floorIds; + @TableField(exist = false) + private List buildingIds; + @TableField(exist = false) + private Integer physicsType; + @TableField(exist = false) + private List typeList; + @TableField(exist = false) + private Long parentId; + @TableField(exist = false) + private String parentType; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMallBuilding.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMallBuilding.java index 65f9f4572..eec2b8d55 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMallBuilding.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMallBuilding.java @@ -33,6 +33,12 @@ public class WxMallBuilding extends TenantEntity { private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") private Date updateDate; + @TableField(exist = false) + private String treeType="building"; + @TableField(exist = false) + private Long treeParentId = 0L; + @TableField(exist = false) + private String treeParentType=""; public void setBuildingName(String buildingName){ this.buildingName = buildingName; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMallFloor.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMallFloor.java index 9298a2b1f..332aaa36f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMallFloor.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMallFloor.java @@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -39,6 +40,17 @@ public class WxMallFloor extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="地图",name="floorMap") private String floorMap; + + @TableField(exist = false) + private String treeType="floor"; + @TableField(exist = false) + private Long treeParentId; + public Long getTreeParentId() { + treeParentId = this.getBuildingId(); + return treeParentId; + } + @TableField(exist = false) + private String treeParentType="building"; @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="",name="") @@ -53,4 +65,6 @@ public class WxMallFloor extends TenantEntity { return floorMaps; } + @TableField(exist = false) + private List buildingIdList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java index 6745e754c..f7e5d2832 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java @@ -149,6 +149,14 @@ public class WxShop extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "rentUnit") private Integer rentUnit; + @io.swagger.annotations.ApiModelProperty(value = "树里面的类型", name = "treeType") + @TableField(exist = false) + private String treeType = "shop"; + @TableField(exist = false) + private Long treeParentId; + @TableField(exist = false) + private String treeParentType="floor"; + @TableField(exist = false) private Integer rent_unit; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java b/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java index cdf3332dd..40424fd1d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java @@ -18,7 +18,8 @@ public enum EnumCacheKey { COUPON_CHANNEL_STOCK(7, "couponChannelStock:couponChannelStock_"), DOUYIN_LIVE_PAGE_LIST(8,"douyinLiveList"), OLD_DETAIL(9,"cc:"), - OLD_DETAIL_HTML(10,"ch:") + OLD_DETAIL_HTML(10,"ch:"), + OLD_COUPORDER_HTML(11,"cd:") ; private static Map map = new HashMap(); static { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterPhysicsType.java b/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterPhysicsType.java new file mode 100644 index 000000000..a30de1ec5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterPhysicsType.java @@ -0,0 +1,39 @@ +package com.iformall.enums; + + +/** + */ + +public enum EnumEnergyMeterPhysicsType { + + USER(1,"用户表"), + PUBLIC(2,"公共表"), + SUMMARY(3, "分摊总表"), + ; + + public static EnumEnergyMeterPhysicsType getEnum(Integer code) { + for (EnumEnergyMeterPhysicsType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumEnergyMeterPhysicsType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterShopFloorType.java b/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterShopFloorType.java new file mode 100644 index 000000000..ef5918ad8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumEnergyMeterShopFloorType.java @@ -0,0 +1,39 @@ +package com.iformall.enums; + + +/** + */ + +public enum EnumEnergyMeterShopFloorType { + + SHOP(1,"店铺"), + FLOOR(2,"楼层"), + BUILDING(3, "楼座"), + ; + + public static EnumEnergyMeterShopFloorType getEnum(Integer code) { + for (EnumEnergyMeterShopFloorType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumEnergyMeterShopFloorType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesCalcuteMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesCalcuteMapper.java new file mode 100644 index 000000000..74274edf7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesCalcuteMapper.java @@ -0,0 +1,19 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxEnergyFeesCalcute; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + */ +public interface WxEnergyFeesCalcuteMapper extends CommonMapper { + + List findList(WxEnergyFeesCalcute wxBillRent); + + List findFeesIdList(WxEnergyFeesCalcute wxBillRent); + + WxEnergyFeesCalcute selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java new file mode 100644 index 000000000..3dbef7855 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java @@ -0,0 +1,21 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxEnergyMeterChild; + +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + */ +public interface WxEnergyMeterChildMapper extends CommonMapper { + + List findList(WxEnergyMeterChild wxBillRent); + + WxEnergyMeterChild selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findChildMeterIdList(WxEnergyMeterChild wxBillRent); + + void deleteByCondition(WxEnergyMeterChild wxBillRent); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterShopFloorMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterShopFloorMapper.java new file mode 100644 index 000000000..7693ac20f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterShopFloorMapper.java @@ -0,0 +1,23 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxEnergyMeterShopFloor; + +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + */ +public interface WxEnergyMeterShopFloorMapper extends CommonMapper { + + List findList(WxEnergyMeterShopFloor wxBillRent); + + WxEnergyMeterShopFloor selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findAliasIdList(WxEnergyMeterShopFloor wxBillRent); + + List findMeterIdList(WxEnergyMeterShopFloor wxBillRent); + + void deleteByConditon(WxEnergyMeterShopFloor wxBillRent); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java index 765b0f767..278be2f5e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java @@ -9,6 +9,7 @@ public interface WxMallBuildingMapper extends CommonMapper findList(WxMallBuilding wxMallBuilding); + List findIdList(WxMallBuilding wxMallBuilding); void deleteByTenantId(String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java index 8d5ed2060..3619402b6 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java @@ -9,6 +9,8 @@ import java.util.Map; public interface WxMallFloorMapper extends CommonMapper { List findList(WxMallFloor wxMallFloor); + + List getFloorIds(WxMallFloor wxMallFloor); int deleteByBuildingId(Long buildingId); diff --git a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java index 5328522aa..77c008330 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java @@ -13,9 +13,12 @@ import com.github.pagehelper.PageInfo; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxEnergyFeesSetoff; +import com.iformall.domain.po.WxEnergyFeesCalcute; import com.iformall.domain.po.WxEnergyFeesTime; import com.iformall.domain.po.WxEnergyMeter; +import com.iformall.domain.po.WxEnergyMeterChild; import com.iformall.domain.po.WxEnergyMeterReading; +import com.iformall.domain.po.WxEnergyMeterShopFloor; import com.iformall.domain.po.WxEnergyReadingCalcute; import com.iformall.domain.po.base.TenantEntity; /** @@ -26,10 +29,15 @@ public interface WxEnergyService { PageInfo meterListAsPage(WxEnergyMeter record, Integer pageIndex, Integer pageSize); WxEnergyMeter getMeterById(TenantEntity tenantEntity,Long id); void saveOrUpdateMeter(WxEnergyMeter record); + void createMeterAlias(WxEnergyMeterShopFloor record); + void createChildMeterAlias(WxEnergyMeterChild record); + void deleteMeterAlias(WxEnergyMeterShopFloor record); + void deleteChildMeterAlias(WxEnergyMeterChild record); void updateMeterIsDel(WxEnergyMeter record); Map getMeterMap(WxEnergyMeter record); - void setMeterShop(WxEnergyMeter record); - void setMeterFloor(WxEnergyMeter record); + List getMeterIdList(WxEnergyMeterShopFloor record); + List getChildMeterIdList(WxEnergyMeterChild record); + //费用区间 PageInfo timeListAsPage(WxEnergyFeesTime record, Integer pageIndex, Integer pageSize); @@ -40,6 +48,9 @@ public interface WxEnergyService { //费用科目 PageInfo feesListAsPage(WxEnergyFees record, Integer pageIndex, Integer pageSize,boolean isSetOff); + PageInfo feesCalcuteListAsPage(WxEnergyFeesCalcute record, Integer pageIndex, Integer pageSize); + List getFeesCalcuteComponentList(WxEnergyFeesCalcute record); + void createShopFees(WxEnergyFeesCalcute record); void saveOrUpdateFees(WxEnergyFees record); WxEnergyFees getFeesById(WxEnergyFees record); void setFeesIsDel(WxEnergyFees record); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java index 6af7fddf8..8fd35d877 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.WxMallBuilding; import com.iformall.domain.po.WxMallFloor; import com.iformall.domain.po.base.TenantEntity; +import java.util.List; import java.util.Map; public interface WxMallBuildingService { @@ -56,6 +57,8 @@ public interface WxMallBuildingService { ResultData getBuildingList(TenantEntity tenantEntity); ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser); + + ResultData getBuildingList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser); /** * 新增楼层楼座 @@ -76,4 +79,6 @@ public interface WxMallBuildingService { void saveFloorImg(WxMallFloor floor); Map getBuildingMap(TenantEntity tenantInfo); + + List getBuildingIdList(WxMallBuilding wxMallBuilding); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java index ab9e8502b..7bb163f6d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java @@ -5,6 +5,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxMallFloor; import com.iformall.domain.po.base.TenantEntity; +import java.util.List; import java.util.Map; public interface WxMallFloorService { @@ -43,6 +44,8 @@ public interface WxMallFloorService { ResultData getFloorList(TenantEntity tenantEntity, Long buildingId); + + List getFloorIdList(WxMallFloor record); void deleteByBuildingId(Long buildingId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java index cdaca915b..23745b248 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -7,9 +7,12 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; +import com.iformall.domain.dto.FloorBuildingIdDTO; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumBillAllType; +import com.iformall.enums.EnumEnergyMeterPhysicsType; +import com.iformall.enums.EnumEnergyMeterShopFloorType; import com.iformall.enums.EnumEnergyPublicCalcuteRule; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; @@ -45,6 +48,12 @@ public class WxEnergyServiceImpl implements WxEnergyService { @Autowired WxEnergyMeterMapper wxEnergyMeterMapper; @Autowired + WxEnergyMeterShopFloorMapper wxEnergyMeterShopFloorMapper; + @Autowired + WxEnergyMeterChildMapper wxEnergyMeterChildMapper; + @Autowired + WxEnergyFeesCalcuteMapper wxEnergyFeesCalcuteMapper; + @Autowired WxEnergyMeterReadingMapper wxEnergyMeterReadingMapper; @Autowired WxEnergyFeesTimeMapper wxEnergyFeesTimeMapper; @@ -81,43 +90,19 @@ public class WxEnergyServiceImpl implements WxEnergyService { @Override public PageInfo meterListAsPage(WxEnergyMeter record, Integer pageIndex, Integer pageSize) { - String shopNumber = StringUtils.trimToNull(record.getShopNumber()); - if (StringUtils.isNotBlank(shopNumber)) { - WxShop sq = new WxShop(); - sq.updateTenantInfo(record); - sq.setShopNumber(shopNumber); - List shopIds = wxShopService.getShopIds(sq); - if (null == shopIds || shopIds.size() <= 0) { + if (null != record.getAliasId()) { + WxEnergyMeterShopFloor msf = new WxEnergyMeterShopFloor(); + msf.updateTenantInfo(record); + msf.setType(record.getAliasType()); + msf.setAliseId(record.getAliasId()); + List aliseIdList = wxEnergyMeterShopFloorMapper.findAliasIdList(msf); + if (null == aliseIdList || aliseIdList.size() <= 0 ) { record.setId(-1L); }else { - record.setShopIds(shopIds); + record.setIds(aliseIdList); } } PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyMeterMapper.findList(record)); - if (null != page && null != page.getList()) { - WxShop sq = new WxShop(); - sq.updateTenantInfo(record); - Map shopMap = wxShopService.findShopMap(sq); - Map buildingMap = wxMallBuildingService.getBuildingMap(record); - Map floorMap = wxMallFloorService.getFloorMap(record); - for (int i = 0 ; i < page.getList().size(); i++) { - WxEnergyMeter m = page.getList().get(i); - if (null != shopMap && null != m.getShopId()) { - WxShop shop = shopMap.get(m.getShopId()); - if (null != shop) { - m.setShopNumber(shop.getShopNumber()); - } - } - if (null != buildingMap && null != m.getBuildingId()) { - String buildingName = buildingMap.get(m.getBuildingId()); - m.setBuildingName(buildingName); - } - if (null != floorMap && null != m.getFloorId()) { - String floorName = floorMap.get(m.getFloorId()); - m.setFloorName(floorName); - } - } - } return page; } @@ -145,6 +130,99 @@ public class WxEnergyServiceImpl implements WxEnergyService { wxEnergyMeterMapper.updateById(record); } } + + private FloorBuildingIdDTO getFloorBuildingIds(TenantEntity tenantEntity,List floorIds,List buildingIds) { + //如果楼层是全选了的,则代表的是楼座。 + //根据楼座id查询楼层 + WxMallFloor fq = new WxMallFloor(); + fq.updateTenantInfo(tenantEntity); + fq.setBuildingIdList(buildingIds); + List bfloorIds = wxMallFloorService.getFloorIdList(fq); + if (null == bfloorIds || bfloorIds.size() != floorIds.size() || (!floorIds.containsAll(bfloorIds))) { + FloorBuildingIdDTO dto = new FloorBuildingIdDTO(); + dto.setType(EnumEnergyMeterShopFloorType.FLOOR); + dto.setIds(floorIds); + return dto; + }else { + FloorBuildingIdDTO dto = new FloorBuildingIdDTO(); + dto.setType(EnumEnergyMeterShopFloorType.BUILDING); + dto.setIds(buildingIds); + return dto; + } + } + + @Override + public void createMeterAlias(WxEnergyMeterShopFloor record) { + //新增关联 + final IdWorker idWorker = IdWorker.get(); + Date date = new Date(); + List aliasIds = null; + if (record.getPhysicsType() == EnumEnergyMeterPhysicsType.USER.getCode()) { + record.setType(EnumEnergyMeterShopFloorType.SHOP.getCode()); + aliasIds = record.getShopIds(); + if (null == aliasIds || aliasIds.size() <= 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择有效的店铺"); + } + }else if (record.getPhysicsType() == EnumEnergyMeterPhysicsType.PUBLIC.getCode() || record.getPhysicsType() == EnumEnergyMeterPhysicsType.SUMMARY.getCode()) { + List floorIds = record.getFloorIds(); + List buildindIds = record.getBuildingIds(); + FloorBuildingIdDTO dto = getFloorBuildingIds(record, floorIds, buildindIds); + record.setType(dto.getType().getCode()); + aliasIds = record.getIds(); + if (null == aliasIds || aliasIds.size() <= 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择有效的楼层楼座"); + } + } + for (int i = 0 ; i < aliasIds.size(); i ++) { + Long shopId = aliasIds.get(i); + WxEnergyMeterShopFloor msf = new WxEnergyMeterShopFloor(); + msf.updateTenantInfo(record); + msf.setId(idWorker.nextId()); + msf.setCreateTime(date); + msf.setUpdateTime(date); + msf.setMeterId(record.getMeterId()); + msf.setType(record.getType()); + msf.setAliseId(shopId); + wxEnergyMeterShopFloorMapper.insert(msf); + } + } + + @Override + public void createChildMeterAlias(WxEnergyMeterChild record) { + //新增关联 + final IdWorker idWorker = IdWorker.get(); + Date date = new Date(); + for (int i = 0 ; i < record.getChildMeterIdList().size(); i ++) { + Long childMeterId = record.getChildMeterIdList().get(i); + WxEnergyMeterChild msf = new WxEnergyMeterChild(); + msf.updateTenantInfo(record); + msf.setId(idWorker.nextId()); + msf.setCreateTime(date); + msf.setUpdateTime(date); + msf.setParentMeterId(record.getParentMeterId()); + msf.setChildMeterId(childMeterId); + wxEnergyMeterChildMapper.insert(msf); + } + } + + @Override + public void deleteMeterAlias(WxEnergyMeterShopFloor record) { + if ("floor".equals(record.getParentType())) { + record.setType(EnumEnergyMeterShopFloorType.FLOOR.getCode()); + }else if ("building".equals(record.getParentType())) { + record.setType(EnumEnergyMeterShopFloorType.BUILDING.getCode()); + }else if ("shop".equals(record.getParentType())) { + record.setType(EnumEnergyMeterShopFloorType.SHOP.getCode()); + } + record.setMeterId(record.getId()); + record.setAliseId(record.getParentId()); + wxEnergyMeterShopFloorMapper.deleteByConditon(record); + } + + @Override + public void deleteChildMeterAlias(WxEnergyMeterChild record) { + wxEnergyMeterChildMapper.deleteByCondition(record); + } @Override public void updateMeterIsDel(WxEnergyMeter record) { @@ -165,34 +243,16 @@ public class WxEnergyServiceImpl implements WxEnergyService { return null; } - @Override - public void setMeterShop(WxEnergyMeter record) { - WxShop shop = wxShopService.getById(record.getShopId()); - record.setShopId(shop.getId()); - record.setBuildingId(shop.getBuilding()); - record.setFloorId(shop.getFloor()); - record.setUpdateTime(new Date()); - wxEnergyMeterMapper.updateById(record); + public List getMeterIdList(WxEnergyMeterShopFloor record) { + return wxEnergyMeterShopFloorMapper.findMeterIdList(record); } @Override - public void setMeterFloor(WxEnergyMeter record) { - WxMallFloor floor = wxMallFloorService.getById(record.getFloorId()); -// record.setBuildingId(floor.getBuildingId()); -// record.setFloorId(floor.getId()); -// record.setUpdateTime(new Date()); -// record.setShopId(null); -// wxEnergyMeterMapper.updateById(record); - //属性为空如何处理 - wxEnergyMeterMapper.update(record, new UpdateWrapper().lambda().eq(WxEnergyMeter::getId, record.getId()) - .set(WxEnergyMeter::getShopId, null) - .set(WxEnergyMeter::getBuildingId, floor.getBuildingId()) - .set(WxEnergyMeter::getFloorId, floor.getId()) - .set(WxEnergyMeter::getUpdateTime, new Date())); + public List getChildMeterIdList(WxEnergyMeterChild record) { + return wxEnergyMeterChildMapper.findChildMeterIdList(record); } - - + @Override public PageInfo timeListAsPage(WxEnergyFeesTime record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyFeesTimeMapper.findList(record)); @@ -267,6 +327,93 @@ public class WxEnergyServiceImpl implements WxEnergyService { } return page; } + + @Override + public PageInfo feesCalcuteListAsPage(WxEnergyFeesCalcute record, Integer pageIndex, Integer pageSize) { + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyFeesCalcuteMapper.findList(record)); + if (null != page && null != page.getList() && page.getList().size() > 0 ) { + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(record); + fq.setIsDel(EnumYesOrNo.NO.getCode()); + Map feesMap = this.getFeesMap(fq); + for (int i = 0 ; i < page.getList().size() ; i++) { + WxEnergyFeesCalcute fs = page.getList().get(i); + if (null != feesMap && null != fs.getFeesId()) { + WxEnergyFees fee = feesMap.get(fs.getFeesId()); + if (null != fee) { + fs.setFeesName(fee.getName()); + fs.setFeesType(fee.getType()); + fs.setFeesTypeName(fee.getTypeName()); + fs.setFixedPriceName(fee.getFixedPriceName()); + fs.setCalcuteUnitName(fee.getCalcuteUnitName()); + fs.setTimeUnitName(fee.getTimeUnitName()); + } + } + } + } + return page; + } + + @Override + public List getFeesCalcuteComponentList(WxEnergyFeesCalcute record) { + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyFeesCalcuteMapper.findList(record)); + if (null != page && null != page.getList() && page.getList().size() > 0 ) { + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(record); + fq.setIsDel(EnumYesOrNo.NO.getCode()); + Map feesMap = this.getFeesMap(fq); + for (int i = 0 ; i < page.getList().size() ; i++) { + WxEnergyFeesCalcute fs = page.getList().get(i); + if (null != feesMap && null != fs.getFeesId()) { + WxEnergyFees fee = feesMap.get(fs.getFeesId()); + if (null != fee) { + fs.setFeesName(fee.getName()); + fs.setFeesType(fee.getType()); + fs.setFeesTypeName(fee.getTypeName()); + fs.setFixedPriceName(fee.getFixedPriceName()); + fs.setCalcuteUnitName(fee.getCalcuteUnitName()); + fs.setTimeUnitName(fee.getTimeUnitName()); + } + } + } + } + return page; + } + + @Override + public void createShopFees(WxEnergyFeesCalcute record) { + for (int i = 0 ; i < record.getShopIds().size(); i++) { + Long shopId = record.getShopIds().get(i); + for (int j = 0 ; j < record.getFeesIds().size() ; j++) { + Long feesId = record.getFeesIds().get(j); + WxEnergyFeesCalcute fs = new WxEnergyFeesCalcute(); + fs.updateTenantInfo(record); + fs.setFeesId(feesId); + fs.setShopId(shopId); + } + } + List shopFeesList = wxEnergyFeesCalcuteMapper.findList(record); + if (null != shopFeesList && shopFeesList.size() > 0 ) { + List retList = new ArrayList(); + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(record); + fq.setIsDel(EnumYesOrNo.NO.getCode()); + Map feesMap = this.getFeesMap(fq); + for (int i = 0 ; i < shopFeesList.size() ; i++) { + WxEnergyFeesCalcute fs = shopFeesList.get(i); + WxEnergyFees fe = new WxEnergyFees(); + fe.setId(fs.getFeesId()); + if (null != feesMap && null != fs.getFeesId()) { + WxEnergyFees fee = feesMap.get(fs.getFeesId()); + if (null != fee) { + fe.setName(fee.getName()); + fe.setType(fee.getType()); + retList.add(fe); + } + } + } + } + } @Override public void saveOrUpdateFees(WxEnergyFees record) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java index f14959eb8..cadfe0239 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java @@ -183,6 +183,33 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { return new ResultData(wxMallBuildings); } + + @Override + public ResultData getBuildingList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser) { + List wxMallBuildings = new ArrayList(); + if (null != mallUser && null != wxMallBuilding.getFloorForRule()) { + WxMallFloor wf = new WxMallFloor(); + wf.updateTenantInfo(mallUser); + wf.setFloorForRule(wxMallBuilding.getFloorForRule()); + List bids = wxMallFloorMapper.getBuildindIds(wf); + if (null == bids || bids.size() <= 0 ) { + wxMallBuilding.setId(-1L); + }else { + wxMallBuilding.setIds(bids); + } + } + List buildings = wxMallBuildingMapper.findList(wxMallBuilding); + wxMallBuildings = buildings.stream().map(b -> { + WxMallBuilding tempb = new WxMallBuilding(); + tempb.setId(b.getId()); + tempb.setTenantId(b.getTenantId()); + tempb.setParentTenantId(b.getParentTenantId()); + tempb.setName(b.getName()); + tempb.setBuildingName(b.getBuildingName()); + return tempb; + }).collect(Collectors.toList()); + return new ResultData(wxMallBuildings); + } @Override public void addBuildingAndFloors(WxMallBuildingFloorDto record) { @@ -257,5 +284,9 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { return maps; } + @Override + public List getBuildingIdList(WxMallBuilding wxMallBuilding) { + return wxMallBuildingMapper.findIdList(wxMallBuilding); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java index b1ff649fb..ea351486c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java @@ -69,6 +69,11 @@ public class WxMallFloorServiceImpl implements WxMallFloorService { List list = wxMallFloorMapper.findList(wxMallFloor); return new ResultData(list); } + + @Override + public List getFloorIdList(WxMallFloor record) { + return wxMallFloorMapper.getFloorIds(record); + } @Override public void deleteByBuildingId(Long buildingId) { diff --git a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java index bca0e6cc3..51e22e3f8 100644 --- a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java +++ b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java @@ -182,4 +182,9 @@ public class CouponCacheUtils { return RedisCacheUtils.getCacheObject(template, key,WxCouponCVo.class); } + public static void removeOldCouponOrderHtmlCache(RedisTemplate template) { + String key = EnumCacheKey.OLD_COUPORDER_HTML.getMessage(); + RedisCacheUtils.removeCachePrefix(template, key); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxEnergyFeesShopMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyFeesShopMapper.xml new file mode 100644 index 000000000..8c191b2fb --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxEnergyFeesShopMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`fees_id`,`price`,`physics_type`,`shop_id`,`formula` + + + + where 1=1 + and `id` = #{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + and `fees_id` = #{feesId} + and `shop_id` = #{shopId} + and `physics_type` = #{physicsType} + + and fees_id in + + #{fidItem} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml new file mode 100644 index 000000000..2ed1c631d --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`parent_meter_id`,`child_meter_id` + + + + where 1=1 + and `id` = #{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + and `parent_meter_id` = #{parentMeterId} + and `child_meter_id` = #{childMeterId} + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + delete from wx_energy_meter_child where `tenant_id` = #{tenantId} and `parent_meter_id` = #{parentMeterId} and `child_meter_id` = #{childMeterId} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml index 9d1d55ddf..525f1ef8a 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml @@ -11,15 +11,12 @@ - - - - + - `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`is_del`,`name`,`type`,`rate`,`is_public`,`building_id`,`floor_id`,`shop_id`,`shop_type` + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`is_del`,`name`,`type`,`rate`,`physics_type`,`shop_type` @@ -33,24 +30,15 @@ and `is_del` = #{isDel} and `type` = #{type} - and `is_public` = #{isPublic} - and `building_id` = #{buildingId} - and `floor_id` = #{floorId} - and `shop_id` = #{shopId} + and `physics_type` = #{physicsType} and `shop_type` = #{shopType} and name like concat('%', #{name},'%') - - and `floor_id` in (${floorForRule}) - - - and `shop_type` in (${shopTypeForRule}) - - - and shop_id in - - #{sidItem} + + and physics_type in + + #{ptidItem} - + and id in diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterShopFloorMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterShopFloorMapper.xml new file mode 100644 index 000000000..00852a409 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterShopFloorMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`type`,`meter_id`,`alise_id` + + + + where 1=1 + and `id` = #{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + and `type` = #{type} + and `meter_id` = #{meterId} + and `alise_id` = #{aliseId} + + and type in + + #{tidItem} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + + + delete from wx_energy_meter_shop_floor where `tenant_id` = #{tenantId} and type = #{type} and alise_id = #{aliseId} and meter_id = #{meterId} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml b/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml index abaf69301..e55ea5e46 100644 --- a/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml @@ -73,7 +73,12 @@ from wx_mall_building - + + delete from wx_mall_building where `tenant_id` = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml b/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml index d1f26d4d5..e9c4d0c0c 100644 --- a/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml @@ -63,7 +63,12 @@ and `id` in (${floorForRule}) - + + and building_id in + + #{bidItem} + + and id in @@ -79,6 +84,12 @@ from wx_mall_floor + +