diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java index e9a7408e0..cea9d49a2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java @@ -60,6 +60,19 @@ public class WxShopController extends BaseController { private String fmUploadDir; + @GetMapping("sellStatus") + public ResultData sellStatus() { + List list = new ArrayList(); + for (EnumShopSellStatus t : EnumShopSellStatus.values()) { + Map m = new HashMap(); + m.put("id", t.getCode()); + m.put("name", t.getMessage()); + list.add(m); + } + return new ResultData(list); + } + + private void setDataRule(WxShop wxShop) { WxUserDataRule dataRule = this.getCurrentDataFloors(); if (null != dataRule) { @@ -115,6 +128,17 @@ public class WxShopController extends BaseController { wxShop.updateTenantInfo(getTenantInfo()); return wxShopService.saveOrUpdate(wxShop); } + + @ApiOperation("根据id更新接口") + @PostMapping("setSelled") + @SystemControllerLog(description = "店铺管理-设置为已售") + public ResultData setSelled(@RequestBody WxShop wxShop) { + if (null == wxShop){ + wxShop = new WxShop(); + } + wxShop.updateTenantInfo(getTenantInfo()); + return wxShopService.saveOrUpdate(wxShop); + } @ApiOperation("根据id删除接口") @GetMapping("/del") 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 e8ebf4d87..c809444f8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -273,7 +273,7 @@ public class WxRentContractController extends WxContractBaseController { //如果商户是虚拟商户,则直接返回绑定的铺位 List shopList = null; WxMerchant merchant = wxMerchantService.selectById(merchantId); - if (merchant.getIsPrivate() == EnumYesOrNo.YES.getCode()) { + if (merchant.getIsPrivate() == EnumYesOrNo.YES.getCode() && merchant.getCreateFrom() == EnumMerchantCreateFrom.SYS_SHOP_CREATE.getCode()) { shopList = new ArrayList(); //不从这取,因为这是存的第一次创建时店铺的编号,这个店铺有可能被删除重新创建 //shopList.add(Long.parseLong(merchant.getCreateFromId())); diff --git a/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql b/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql index 87ccf073b..8e12a24f6 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202409000000002.sql @@ -1,4 +1,4 @@ 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/service/WxShopService.java b/mallinkService/src/main/java/com/iformall/service/WxShopService.java index 1721a6627..d37cae9ce 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxShopService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxShopService.java @@ -61,6 +61,8 @@ public interface WxShopService { * @param record */ ResultData saveOrUpdate(WxShop record); + + ResultData setSelled(WxShop record); /** * 根据Id删除实体 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 1ec8bc973..443b2880a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -417,10 +417,64 @@ public class WxShopServiceImpl implements WxShopService { wxMerchantMapper.insert(merchant); } } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public ResultData setSelled(WxShop record) { + WxShop wxShop = wxShopMapper.selectById(record.getId()); + if (wxShop == null) { + return new ResultData(ErrorCode.SHOP_IS_NOT_FOUND); + } + + //如果是写字楼住宅,直接更改状态即可 + if(wxShop.getType() == EnumRentShopType.XIZILOU.getCode()) { + wxShop.setSellStatus(EnumShopSellStatus.SELLED.getCode()); + wxShop.setUpdateDate(new Date()); + wxShopMapper.updateById(wxShop); + return new ResultData(Result.SUCCESS, "更新成功"); + }else { + //2、如果该店铺还存在品牌商户,则不允许 + WxMerchantShop wxMerchantShop = new WxMerchantShop(); + wxMerchantShop.setShopId(wxShop.getId()); + wxMerchantShop.updateTenantInfo(wxShop); + wxMerchantShop.setIsDel(EnumYesOrNo.NO.getCode()); + List wxMerchantShops = wxMerchantShopMapper.findList(wxMerchantShop); + if (null != wxMerchantShops && wxMerchantShops.size() > 0 ) { + return new ResultData(Result.ERROR,"店铺还存在关联的品牌商户,请先删除店铺关联"); + } + //如果存在有效的合同,则不允许删除 + WxRentContract rcq = new WxRentContract(); + rcq.updateTenantInfo(wxShop); + rcq.setQueryShopNumber(wxShop.getShopNumber()); + List status = EnumRentContractStatus.getValidStatus(); + status.add(EnumRentContractStatus.PERFORMANCE.getCode()); + rcq.setStatuss(status); + List list = wxRentContractMapper.findList(rcq); + if (null != list && list.size() > 0 ) { + return new ResultData(Result.ERROR, "店铺存在有效或者审批中的租金合同,请先终止该合同或者审批退回作废合同"); + } + + WxPropertyContract pcq = new WxPropertyContract(); + pcq.updateTenantInfo(wxShop); + pcq.setQueryShopNumber(wxShop.getShopNumber()); + pcq.setStatuss(status); + List plist = wxPropertyContractMapper.findList(pcq); + if (null != plist && plist.size() > 0 ) { + return new ResultData(Result.ERROR, "店铺存在有效或者审批中的物业合同,请先终止该合同或者审批退回作废合同"); + } + + wxShop.setSellStatus(EnumShopSellStatus.SELLED.getCode()); + wxShop.setUpdateDate(new Date()); + wxShopMapper.updateById(wxShop); + + //创建虚拟商户 + createPrivateMerchant(wxShop); + return new ResultData(Result.SUCCESS, "更新成功"); + } + } @Override public ResultData deleteById(Long id, Integer isAdmin) { - //1、已出租不让删除 WxShop wxShop = wxShopMapper.selectById(id); if (wxShop == null) { return new ResultData(ErrorCode.SHOP_IS_NOT_FOUND); @@ -434,7 +488,7 @@ public class WxShopServiceImpl implements WxShopService { rcq.setStatuss(status); List list = wxRentContractMapper.findList(rcq); if (null != list && list.size() > 0 ) { - return new ResultData(Result.ERROR, "店铺存在有效或者审批中的租金合同,不能删除"); + return new ResultData(Result.ERROR, "店铺存在有效或者审批中的租金合同,请先终止该合同或者审批退回作废合同"); } WxPropertyContract pcq = new WxPropertyContract(); @@ -443,7 +497,7 @@ public class WxShopServiceImpl implements WxShopService { pcq.setStatuss(status); List plist = wxPropertyContractMapper.findList(pcq); if (null != plist && plist.size() > 0 ) { - return new ResultData(Result.ERROR, "店铺存在有效或者审批中的物业合同,不能删除"); + return new ResultData(Result.ERROR, "店铺存在有效或者审批中的物业合同,请先终止该合同或者审批退回作废合同"); } // WxAllBill abq = new WxAllBill(); // abq.updateTenantInfo(wxShop); @@ -463,6 +517,7 @@ public class WxShopServiceImpl implements WxShopService { if (count > 0) { //更新标记 wxShop.setIsDel(EnumDelStatus.DEL.getCode()); + wxShop.setUpdateDate(new Date()); wxShopMapper.updateById(wxShop); //关联表 for (int i = 0; i < count; i++) { @@ -473,6 +528,7 @@ public class WxShopServiceImpl implements WxShopService { } else { //虚拟商户是没有中间表的 wxShop.setIsDel(EnumDelStatus.DEL.getCode()); + wxShop.setUpdateDate(new Date()); wxShopMapper.updateById(wxShop); } return new ResultData(Result.SUCCESS, "删除成功");