From e7e67e1a50c455f27b796e9dd9d87dd800e872c7 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 27 Sep 2024 15:22:32 +0800 Subject: [PATCH] fix --- .../contract/WxRentContractController.java | 35 ++++++++++---- .../db/migration/V202409000000002.sql | 1 + .../java/com/iformall/domain/po/WxShop.java | 12 +++++ .../iformall/enums/EnumShopSellStatus.java | 36 ++++++++++++++ .../service/impl/WxShopServiceImpl.java | 48 +++++++------------ .../main/resources/mapper/WxShopMapper.xml | 13 ++++- 6 files changed, 105 insertions(+), 40 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumShopSellStatus.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index 9446372bb..004401631 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -270,9 +270,16 @@ public class WxRentContractController extends WxContractBaseController { @ApiImplicitParam(name = "merchantId", value = "merchantId", dataType = "Long", paramType = "query", required = true), @ApiImplicitParam(name = "contractId", value = "contractId", dataType = "Long", paramType = "query", required = true)}) public ResultData merchantShops(Long merchantId,Long contractId) { - - List shopList = wxMerchantService.getMerchantShopIds(merchantId); - if (null == shopList) { + //如果商户是虚拟商户,则直接返回绑定的铺位 + List shopList = null; + WxMerchant merchant = wxMerchantService.selectById(merchantId); + if (merchant.getIsPrivate() == EnumYesOrNo.YES.getCode()) { + shopList = new ArrayList(); + shopList.add(Long.parseLong(merchant.getCreateFromId())); + }else { + shopList = wxMerchantService.getMerchantShopIds(merchantId); + } + if (null == shopList || shopList.size() <= 0 ) { return new ResultData(Result.ERROR,"商户未绑定店铺!"); } WxRentContract rentq = new WxRentContract(); @@ -306,9 +313,15 @@ public class WxRentContractController extends WxContractBaseController { && rentContract.getStatus().intValue() != EnumRentContractStatus.OUT_DATE.getCode()) { return new ResultData(Result.ERROR,"租金合同状态为计租中或者正常到期才能续签。"); } - currentContractShopIds = rentContract.shopIdsByRentInfo(); - if (null != currentContractShopIds) { - currentContractShopIds.stream().filter(si -> shopList.contains(si)); + List _currentContractShopIds = rentContract.shopIdsByRentInfo(); + if (null != _currentContractShopIds) { + currentContractShopIds = new ArrayList(); + for (int i = 0 ; i < _currentContractShopIds.size() ; i ++) { + Long cs = _currentContractShopIds.get(i); + if (shopList.contains(cs)) { + currentContractShopIds.add(cs); + } + } } } //去掉正常状态的合同里的店铺 @@ -321,8 +334,14 @@ public class WxRentContractController extends WxContractBaseController { //再加上合同里面店铺 if(null != currentContractShopIds && currentContractShopIds.size() > 0 ) { List contractShops = wxShopService.getByIds(rentq,currentContractShopIds); - contractShops.stream().filter( cs -> !shopList.contains(cs.getId())); - shops.addAll(contractShops); + if (null != contractShops) { + for (int i = 0 ; i < contractShops.size() ; i ++) { + WxShop s = contractShops.get(i); + if (!shopList.contains(s.getId())) { + shops.add(s); + } + } + } } return new ResultData(shops); diff --git a/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql b/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql new file mode 100644 index 000000000..a6747230b --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql @@ -0,0 +1 @@ +ALTER TABLE wx_shop ADD COLUMN sell_status INT(1) NOT NULL DEFAULT 1 COMMENT '销售状态'; \ No newline at end of file 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 30cd4af84..32c4e489b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.common.SortColumn; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumRentShopType; +import com.iformall.enums.EnumShopSellStatus; import lombok.Data; import lombok.EqualsAndHashCode; @@ -118,6 +119,17 @@ public class WxShop extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="管理人电话",name="managerPhone") private String managerPhone; + @io.swagger.annotations.ApiModelProperty(value = "销售状态EnumShopSellStatus", name = "sellStatus") + private Integer sellStatus; + @TableField(exist = false) + private String sellStatusName; + public String getSellStatus() { + if (null != sellStatus) { + return EnumShopSellStatus.getEnum(sellStatus).getMessage(); + } + return null; + } + @io.swagger.annotations.ApiModelProperty(value = "类型EnumRentShopType", name = "type") private Integer type; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumShopSellStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumShopSellStatus.java new file mode 100644 index 000000000..fdb7e4063 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumShopSellStatus.java @@ -0,0 +1,36 @@ +package com.iformall.enums; + + +/** + */ + +public enum EnumShopSellStatus { + + OWNED(1, "自持"), + SELLED(2, "已售"); + + public static EnumShopSellStatus getEnum(Integer code) { + for (EnumShopSellStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumShopSellStatus(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/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index d62ab24b3..0ee939513 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -361,6 +361,7 @@ public class WxShopServiceImpl implements WxShopService { Date date = new Date(); record.setUpdateDate(date); record.setCreateDate(date); + record.setSellStatus(EnumShopSellStatus.OWNED.getCode()); //若计租面积无值 则采用建筑面积 if (StringUtils.isBlank(record.getOperationArea()) || "0".equals(record.getOperationArea())) { record.setOperationArea(record.getBuildArea()); @@ -396,16 +397,6 @@ public class WxShopServiceImpl implements WxShopService { merchant.setCreditLocked(EnumYesOrNo.NO.getCode()); wxMerchantMapper.insert(merchant); } - - WxMerchantShop ms = new WxMerchantShop(); - ms.updateTenantInfo(record); - ms.setMerchantId(merchant.getId()); - ms.setShopId(record.getId()); - ms.setIsDel(EnumYesOrNo.NO.getCode()); - ms.setCreateDate(new Date()); - ms.setUpdateDate(new Date()); - wxMerchantShopMapper.insert(ms); - record.setStatus(EnumShopStatus.RENT.getCode()); } @@ -425,15 +416,6 @@ public class WxShopServiceImpl implements WxShopService { if (wxShop == null) { return new ResultData(ErrorCode.SHOP_IS_NOT_FOUND); } - if (wxShop.getStatus().equals(EnumShopStatus.RENT.getCode())) { - return new ResultData(ErrorCode.SHOP_BAN_DELETED); - } - //2、是否关联过商户 - WxMerchantShop wxMerchantShop = new WxMerchantShop(); - wxMerchantShop.setShopId(wxShop.getId()); - wxMerchantShop.updateTenantInfo(wxShop); - List wxMerchantShops = wxMerchantShopMapper.findList(wxMerchantShop); - //如果存在有效的合同,则不允许删除 WxRentContract rcq = new WxRentContract(); rcq.updateTenantInfo(wxShop); @@ -454,15 +436,20 @@ public class WxShopServiceImpl implements WxShopService { if (null != plist && plist.size() > 0 ) { return new ResultData(Result.ERROR, "店铺存在有效或者审批中的物业合同,不能删除"); } - WxAllBill abq = new WxAllBill(); - abq.updateTenantInfo(wxShop); - abq.setQueryShopNumber(wxShop.getShopNumber()); - abq.setIsPreview(EnumYesOrNo.NO.getCode()); - List billlist = wxAllBillMapper.findList(abq); - if (null != billlist && plist.size() > 0 ) { - return new ResultData(Result.ERROR, "店铺已存在有效的账单,不能删除"); - } - //有关联过商户必须是管理员才能删除 +// WxAllBill abq = new WxAllBill(); +// abq.updateTenantInfo(wxShop); +// abq.setQueryShopNumber(wxShop.getShopNumber()); +// abq.setIsPreview(EnumYesOrNo.NO.getCode()); +// List billlist = wxAllBillMapper.findList(abq); +// if (null != billlist && plist.size() > 0 ) { +// return new ResultData(Result.ERROR, "店铺已存在有效的账单,不能删除"); +// } + + //2、是否关联过商户 + WxMerchantShop wxMerchantShop = new WxMerchantShop(); + wxMerchantShop.setShopId(wxShop.getId()); + wxMerchantShop.updateTenantInfo(wxShop); + List wxMerchantShops = wxMerchantShopMapper.findList(wxMerchantShop); int count = wxMerchantShops.size(); if (count > 0) { //更新标记 @@ -475,8 +462,9 @@ public class WxShopServiceImpl implements WxShopService { wxMerchantShopMapper.updateById(updateMerchantShop); } } else { -// 无关联商铺直接删除 - wxShopMapper.deleteById(id); + //虚拟商户是没有中间表的 + wxShop.setIsDel(EnumDelStatus.DEL.getCode()); + wxShopMapper.updateById(wxShop); } return new ResultData(Result.SUCCESS, "删除成功"); } diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index 754b57f0f..b4dea1598 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -26,6 +26,7 @@ + @@ -39,7 +40,7 @@ `id`,`tenant_id`,`parent_tenant_id`,`shop_number`,`build_area`,`operation_area`,`building`,`floor`,`status`,`x`,`y`,`sid`,`addr`, `baidu_poi`,`longitude`,`latitude`,`create_date`,`update_date`,`img_url`,`manager`,`manager_phone`, - `type`,`point_type`,`comments`,`is_del`,DATEDIFF(now(),create_date) freeDay,rent,rent_unit,business_id,pulic_rate + `type`,`sell_status`,`point_type`,`comments`,`is_del`,DATEDIFF(now(),create_date) freeDay,rent,rent_unit,business_id,pulic_rate @@ -79,6 +80,10 @@ and `status` = #{status} + + + and `sell_status` = #{sellStatus} + and `x` = #{x} @@ -190,7 +195,7 @@