diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index eaadb1510..83d21c743 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -154,7 +154,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/logout", "authc"); // filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); - filterChainDefinitionMap.put("/**", "anon"); +// filterChainDefinitionMap.put("/**", "anon"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); 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 acaf27d5a..06a58cf78 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -407,7 +407,10 @@ public class WxRentContractController extends WxContractBaseController { public ResultData getRentContractList(@ModelAttribute WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); wxRentContract.updateTenantInfo(getTenantInfo()); - wxRentContract.setStatuss(EnumRentContractStatus.getValidStatus()); + List statss = new ArrayList(); + statss.add(EnumRentContractStatus.PAING.getCode()); + statss.add(EnumRentContractStatus.OUT_DATE.getCode()); + wxRentContract.setStatuss(statss); wxRentContract.setSortColumn(BaseEntity.SortField.Createtime_DESC.getValue()); PageInfo page = wxRentContractService.getRentContractList(wxRentContract, 1, 100000); if (null != page && null != page.getList()) { @@ -618,6 +621,28 @@ public class WxRentContractController extends WxContractBaseController { } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } + //如果是租金+物业合同,如果没有物业合同或者物业合同不是草稿状态,不能提交审核 + if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { + if (null == wxRentContract.getPropertyId()) { + return new ResultData(Result.ERROR,"未创建物业合同,请先完善。"); + } + WxPropertyContract property = wxPropertyContractService.getSimpleDetail(wxRentContract.getPropertyId()); + if (null == property) { + return new ResultData(Result.ERROR,"未创建物业合同,请先完善。"); + } + if (property.getStatus().intValue() == EnumRentContractStatus.UNWRITE.getCode().intValue()) { + return new ResultData(Result.ERROR,"物业合同未完善,请先完善。"); + } + if (property.getStatus().intValue() != EnumRentContractStatus.DRAFT.getCode().intValue()) { + return new ResultData(Result.ERROR,"物业合同当前状态不能提交审批。"); + } + + WxPropertyContract wpc = new WxPropertyContract(); + wpc.setStatus(EnumRentContractStatus.DRAFT.getCode()); + wpc.setRentContractId(rentContract.getId()); + wpc.setOperationType(EnumRentShopType.SHOP.getCode()); + List list = wxPropertyContractService.findList(wpc); + } if(rentContract.getOperationType().intValue() == EnumContractOperationType.PART.getCode().intValue()) { if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { @@ -805,12 +830,12 @@ public class WxRentContractController extends WxContractBaseController { // } - @PostMapping("updateRentContractStatus") - @SystemControllerLog(description = "租赁合同-更新合同状态") - public ResultData updateRentContractStatus(@RequestBody WxRentContract wxRentContract) { - logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); - return wxRentContractService.updateRentContractStatus(wxRentContract.getId()); - } +// @PostMapping("updateRentContractStatus") +// @SystemControllerLog(description = "租赁合同-更新合同状态") +// public ResultData updateRentContractStatus(@RequestBody WxRentContract wxRentContract) { +// logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); +// return wxRentContractService.updateRentContractStatus(wxRentContract.getId()); +// } @PostMapping("savePayAccountInfo") @SystemControllerLog(description = "租赁合同-保存甲方账户") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java index 4b533c395..24761609e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java @@ -147,7 +147,7 @@ public class WxRentPropertyContractController extends WxContractBaseController { @ApiImplicitParam(name = "id", value = "租金合同编号(工作流用)", dataType = "String", paramType = "query", required = false)}) public ResultData findById(Long rentId,Long propertyId,String id) { logger.debug("[" + getIpAddr() + "] wxRentPropertyContract::findById"); - if (null != rentId && null != propertyId) { + if (null != rentId || null != propertyId) { return wxRentPropertyContractService.getContractInfo(rentId,propertyId); }else if (!StringUtils.isBlank(id)) { //租金+物业工作流查询会传此id diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index 23632e652..f1283707f 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -48,6 +48,7 @@ public class ContractSchedule { try { //租金合同 wxRentContractService.outDateContract(wxMall); + wxRentContractService.readyToNomal(wxMall); }catch(Exception e) { log.error("rentcontract outDate error.",e); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMall.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMall.java index 739a126a5..5487fb3ec 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMall.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMall.java @@ -21,15 +21,11 @@ import java.util.List; @TableName(value = "wx_mall") @Data @EqualsAndHashCode(callSuper = true) -public class WxMall extends BaseEntity { +public class WxMall extends TenantEntity { @TableId(type= IdType.AUTO) protected Long id; - @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") - private String tenantId; - @io.swagger.annotations.ApiModelProperty(value="父租户ID",name="parentTenantId") - private String parentTenantId; @io.swagger.annotations.ApiModelProperty(value="商场名",name="name") private String name; @TableField(value = "`group`") diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 38dad083c..26f074b9f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -88,6 +88,8 @@ public interface WxPropertyContractService { void outDateContract(WxMall wxMall); + void readyToNomal(WxMall wxMall); + WxPropertyContract getSimpleDetail(@Param("id") Long id); void updatePropertyContract(WxPropertyContract record); diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index 714d38c06..7acaf5001 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -110,6 +110,12 @@ public interface WxRentContractService { */ void outDateContract(WxMall wxMall); + /** + * 已签约未计租 变为计租中 + * @param wxMall + */ + void readyToNomal(WxMall wxMall); + WxRentContract getSimpleDeatil(Long id); /** diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java index a7e29ad36..ee6794b58 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java @@ -22,6 +22,7 @@ public class WxCUserServiceAdapter implements CUserServiceApapter{ entity.setExpireTime(wxCUser.getExpireTime()); entity.setUserId(wxCUser.getUserId()); entity.setToken(wxCUser.getToken()); + entity.updateTenantInfo(wxCUser); entity.setRealUser(wxCUser); return entity; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/CUserTokenServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/CUserTokenServiceImpl.java index 17e8a36dd..344f46423 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/CUserTokenServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/CUserTokenServiceImpl.java @@ -9,6 +9,8 @@ import com.iformall.service.CUserTokenService; import com.iformall.service.cuser.CUserServiceFactory; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; + +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -54,6 +56,9 @@ public class CUserTokenServiceImpl implements CUserTokenService { if(null == baseUser) { baseUser = cuserFactory.getCUserService(getPlat(token)).getByToken(token); + if (StringUtils.isBlank(baseUser.getTenantId())) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"baseUser has no tenantinfo."); + } setCache(token,baseUser); } return baseUser; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 0cb1959fd..a3665f58e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -1135,6 +1135,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //查询有计租合同的商户 WxPropertyContract wr = new WxPropertyContract(); wr.setStatuss(EnumRentContractStatus.getValidStatus()); + wr.updateTenantInfo(wxMall); List contractList = wxPropertyContractMapper.findList(wr); for (WxPropertyContract contract: contractList) { try { @@ -1159,6 +1160,26 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService public void updatePropertyContract(WxPropertyContract record) { wxPropertyContractMapper.updateById(record); } + + @Override + public void readyToNomal(WxMall wxMall) { + WxPropertyContract wr = new WxPropertyContract(); + wr.setStatus(EnumRentContractStatus.READY_FOR_PAING.getCode()); + wr.updateTenantInfo(wxMall); + List contractList = wxPropertyContractMapper.findList(wr); + for (WxPropertyContract contract: contractList) { + try { + + if (contract.getRentalStartDate().before(new Date())) { + contract.setStatus(EnumRentContractStatus.PAING.getCode()); + wxPropertyContractMapper.updateById(contract); + } + }catch(Exception e) { + logger.error("WxPropertyContract["+contract.getId()+"] outDateContract error.",e); + } + + } + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 420a140c9..5f8c07a39 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2517,6 +2517,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //查询有计租合同的商户 WxRentContract wr = new WxRentContract(); wr.setStatuss(EnumRentContractStatus.getValidStatus()); + wr.updateTenantInfo(wxMall); List merchantIds = wxRentContractMapper.getMerchantIdsByStatuss(wr); for (Long mid: merchantIds) { if (null == mid) { @@ -2569,6 +2570,22 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } + @Override + public void readyToNomal(WxMall wxMall) { + WxRentContract wr = new WxRentContract(); + wr.setStatus(EnumRentContractStatus.READY_FOR_PAING.getCode()); + wr.updateTenantInfo(wxMall); + List rentList = wxRentContractMapper.findList(wr); + if (null != rentList && rentList.size() > 0 ) { + for (WxRentContract wrc : rentList) { + if (wrc.getRentalStartDate().before(new Date())) { + wrc.setStatus(EnumRentContractStatus.PAING.getCode()); + wxRentContractMapper.updateStatus(wrc); + } + } + } + } + @Override public WxRentContract getSimpleDeatil(Long id) { return wxRentContractMapper.selectById(id); @@ -2593,4 +2610,5 @@ public class WxRentContractServiceImpl implements WxRentContractService { } return exists; } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java index 9621191d7..8d1b87f63 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java @@ -54,16 +54,20 @@ public class WxRentPropertyContractServiceImpl implements WxRentPropertyContract @Override public ResultData getContractInfo(Long rentId,Long propertyId) { Map data = new HashMap<>(2); - Map rent = wxRentContractService.getById(rentId); - data.put("rent", rent); + if (null != rentId) { + Map rent = wxRentContractService.getById(rentId); + data.put("rent", rent); + } //WxPropertyContract wxPropertyContractQuery = new WxPropertyContract(); //wxPropertyContractQuery.setRentContractId(rentId); //WxPropertyContract propertyContract = wxPropertyContractMapper.selectOne(new QueryWrapper(wxPropertyContractQuery)); - WxPropertyContract propertyContract = wxPropertyContractMapper.selectById(propertyId); - if (propertyContract != null) { - List wxBillPropertyPreview = wxPropertyContractService.getWxBillPropertyPreview(propertyContract.getId()); - propertyContract.setPreviewBillRentList(wxBillPropertyPreview); - data.put("property", propertyContract); + if (null != propertyId) { + WxPropertyContract propertyContract = wxPropertyContractMapper.selectById(propertyId); + if (propertyContract != null) { + List wxBillPropertyPreview = wxPropertyContractService.getWxBillPropertyPreview(propertyContract.getId()); + propertyContract.setPreviewBillRentList(wxBillPropertyPreview); + data.put("property", propertyContract); + } } return new ResultData(data); }