diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index 6b893819c..83ab25855 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -58,6 +58,23 @@ public class WxMerchantController extends BaseController { } + @UserDataRuleAnnotation("merchant_list") + @ApiOperation("分页列表接口") + @GetMapping("listVo2") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "商户-列表") + public ResultData listVo2(@ModelAttribute WxMerchant wxMerchant, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::list"); + if (null == wxMerchant) wxMerchant = new WxMerchant(); + wxMerchant.updateTenantInfo(getTenantInfo()); + wxMerchant.setSortColumns(BaseEntity.SortField.TopTime_DESC); + final PageInfo page = wxMerchantService.listVoAsPage2(wxMerchant, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index 2c03784f4..7ae3bf899 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -9,6 +9,7 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxWeappInfo; import com.iformall.enums.EnumGroupSupport; +import com.iformall.enums.EnumInvestUserType; import com.iformall.enums.EnumUserAdmin; import com.iformall.service.*; import com.iformall.shiro.PasswordHelper; @@ -129,7 +130,7 @@ public class WxProjectConfigController extends BaseController { if(wxMall.getSaleType().equals(100)){ wxMall.setGroupSupport(EnumGroupSupport.SUPPORT.getCode()); }else{ - wxMall.setGroupSupport(EnumGroupSupport.SUPPORT.getCode()); + wxMall.setGroupSupport(EnumGroupSupport.NOT_SUPPORT.getCode()); } if(StringUtils.isBlank(wxMall.getBusinessHours())){ wxMall.setBusinessHours("[]"); @@ -270,6 +271,7 @@ public class WxProjectConfigController extends BaseController { PasswordHelper passwordHelper = new PasswordHelper(); passwordHelper.encryptPassword(userInfo); userInfo.setIsAdmin(EnumUserAdmin.ADMIN.getCode()); + userInfo.setInvestRule(EnumInvestUserType.MANAGER.getCode()); wxProjectConfigService.initUserInfo(userInfo); }else{ @@ -500,7 +502,7 @@ public class WxProjectConfigController extends BaseController { setTenantId(wxMall.getTenantId()); }}; ResultData wxMallBuildingFloorList = wxMallBuildingService.getBuildingFloorList(tenantEntity); - map.put("wxMallBuildingFloorList",wxMallBuildingFloorList); + map.put("wxMallBuildingFloorList",wxMallBuildingFloorList.data); WxPayAccount wxPayAccount = wxPayAccountService.getByTenantId(wxMall.getTenantId()); map.put("wxPayAccount",wxPayAccount); WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxMall.getTenantId()); @@ -512,6 +514,7 @@ public class WxProjectConfigController extends BaseController { map.put("wxAppinfoList",wxAppinfoList); MallUserInfo mallUserInfo = new MallUserInfo() {{ setTenantId(wxMall.getTenantId()); + setIsAdmin(1); }}; List mallUserInfoList = mallUserInfoService.findList(mallUserInfo); map.put("mallUserInfoList",mallUserInfoList); @@ -560,7 +563,7 @@ public class WxProjectConfigController extends BaseController { }}; WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); if(parentWxMall == null || parentWxMall.getSaleType() != 100 - || !parentWxMall.equals(EnumGroupSupport.SUPPORT.getCode()) + || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractExtensionController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractExtensionController.java index b256ac08d..1b397bbb4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractExtensionController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractExtensionController.java @@ -4,17 +4,19 @@ import com.iformall.annotation.SystemControllerLog; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxPropertyContract; import com.iformall.domain.po.WxRentContract; +import com.iformall.enums.EnumContractType; +import com.iformall.enums.EnumRentStartType; import com.iformall.service.WxPropertyContractService; +import com.iformall.service.WxRentPropertyContractService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @@ -34,12 +36,44 @@ public class WxPropertyContractExtensionController extends BaseController { @Autowired private WxPropertyContractService wxPropertyContractService; + @Autowired + private WxRentPropertyContractService wxRentPropertyContractService; @GetMapping("getMerchantList") @SystemControllerLog(description = "获取可续签商户列表") - public ResultData getMerchantList() throws Exception{ + @ApiImplicitParams({ + @ApiImplicitParam(name = "shopType", value = "店铺类型 1:店铺 2:多经点位", dataType = "Integer", paramType = "query", required = true)}) + public ResultData getMerchantList(Integer shopType) throws Exception{ WxPropertyContract wxPropertyContract = new WxPropertyContract(); wxPropertyContract.updateTenantInfo(getTenantInfo()); + wxPropertyContract.setRentShopType(shopType); return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getMerchantList(wxPropertyContract)); } + + @PostMapping("add") + @SystemControllerLog(description = "物业合同-新增") + public ResultData add(@RequestBody WxPropertyContract wxPropertyContract) { + log.debug("[" + getIpAddr() + "] WxPropertyContractController::add"); + MallUserInfo user = getUser(); + wxPropertyContract.updateTenantInfo(user); + wxPropertyContract.setAdjustPeriodHandle(); + Integer contractType = wxRentPropertyContractService.getContractType(wxPropertyContract.getRentShopType(), wxPropertyContract.getOperationType(), EnumContractType.PROPERTY.getCode()); + wxPropertyContract.setContractType(contractType); + if(wxPropertyContract.getRentStartType()!=null && wxPropertyContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ + wxPropertyContract.setRentalStartDate(wxPropertyContract.getStartDate()); + } + return wxPropertyContractService.saveOrUpdate2(wxPropertyContract, user.getId(), user.getName()); + } + + @PostMapping("update") + @SystemControllerLog(description = "物业合同-修改") + public ResultData update(@RequestBody WxPropertyContract wxPropertyContract) { + log.debug("[" + getIpAddr() + "] WxPropertyContractController::update"); + MallUserInfo user = getUser(); + wxPropertyContract.updateTenantInfo(user); + wxPropertyContract.setAdjustPeriodHandle(); + //第三步提交 SWITCH + return wxPropertyContractService.saveOrUpdate2(wxPropertyContract, user.getId(), user.getName()); + + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java index f14e20a26..ece13f08c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java @@ -49,12 +49,14 @@ public class WxRentContractExtensionController extends BaseController { @GetMapping("searchMerchant") @ApiImplicitParams({ - @ApiImplicitParam(name = "merchantName", value = "商户名称", dataType = "string", paramType = "query", required = true)}) + @ApiImplicitParam(name = "merchantName", value = "商户名称", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "shopType", value = "店铺类型 1:店铺 2:多经点位", dataType = "Integer", paramType = "query", required = true)}) @SystemControllerLog(description = "商户搜索") - public ResultData searchMerchant(String merchantName) throws Exception{ + public ResultData searchMerchant(String merchantName,Integer shopType) throws Exception{ WxRentContract wxRentContract = new WxRentContract(); wxRentContract.updateTenantInfo(getTenantInfo()); wxRentContract.setMerchantName(merchantName); + wxRentContract.setRentShopType(shopType); List> result = wxRentContractService.searchMerchantByname(wxRentContract); return new ResultData(result); } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index 0f71ecdbd..bcfac2fca 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -36,7 +36,7 @@ public class ContractSchedule { /** * 2小时执行一次 */ - @Scheduled(cron = "0 0 0/2 * * ?") + @Scheduled(cron = "0 */1 * * * ?") public void sendMsg() { logger.info("合同状态更新开始"); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java index 39cbc72da..1c443fb9a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMallBuildingMapper.java @@ -7,10 +7,7 @@ import com.iformall.domain.po.WxMallBuilding; public interface WxMallBuildingMapper extends CommonMapper { List findList(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 394038048..4ee4d1b02 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java @@ -9,4 +9,6 @@ public interface WxMallFloorMapper extends CommonMapper { List findList(WxMallFloor wxMallFloor); int deleteByBuildingId(Long buildingId); + + void deleteByTenantId(String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index 24f92f6f3..9abd85f68 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -34,4 +34,6 @@ public interface WxMerchantMapper extends CommonMapper { List userTradeDetailList(WxMerchant wxMerchant); WxMerchant findByTrade(HashMap params); + + List findListVo2(WxMerchant record); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java index b6594d238..8de2c765f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java @@ -68,4 +68,5 @@ public interface WxMallBuildingService { */ void saveFloorArea(WxMallFloor record); + void deleteByTenantId(String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java index 29f5ad48c..87ea918ff 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallFloorService.java @@ -43,4 +43,6 @@ public interface WxMallFloorService { ResultData getFloorList(TenantEntity tenantEntity, Long buildingId); void deleteByBuildingId(Long buildingId); + + void deleteByTenantId(String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 15baea659..c2eb0bb85 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -143,4 +143,6 @@ public interface WxMerchantService { List findMerchantVoList(Map paramMap); + PageInfo listVoAsPage2(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index ad6cf5804..f1e972e7c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -42,6 +42,8 @@ public interface WxPropertyContractService { */ ResultData saveOrUpdate(WxPropertyContract record, Long userId, String userName); + ResultData saveOrUpdate2(WxPropertyContract record, Long userId, String userName); + /** * 根据Id删除实体 * 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 ebfef73f3..d724c999d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java @@ -84,12 +84,16 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { @Override public void saveOrUpdate(WxMallBuilding record) { + Date nowDate = new Date(); if (record.getId() == null) { //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); + record.setCreateDate(nowDate); + record.setUpdateDate(nowDate); wxMallBuildingMapper.insert(record); } else { + record.setUpdateDate(nowDate); wxMallBuildingMapper.updateById(record); } } @@ -115,6 +119,8 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { List 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()); return tempb; }).collect(Collectors.toList()); @@ -125,7 +131,10 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { List wxMallFloors = wxMallFloorMapper.findList(wxMallFloor).stream().map(f -> { WxMallFloor tempf = new WxMallFloor(); tempf.setId(f.getId()); + tempf.setTenantId(f.getTenantId()); + tempf.setParentTenantId(f.getParentTenantId()); tempf.setFloorName(f.getFloorName()); + tempf.setBackgroundImg(f.getBackgroundImg()); if (f.getTotalArea() != null) { tempf.setTotalArea(f.getTotalArea()); } @@ -184,5 +193,10 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { wxMallFloorMapper.updateById(mallFloor); } + @Override + public void deleteByTenantId(String tenantId) { + wxMallBuildingMapper.deleteByTenantId(tenantId); + } + } 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 cf30da178..b3adcf43c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallFloorServiceImpl.java @@ -34,12 +34,16 @@ public class WxMallFloorServiceImpl implements WxMallFloorService { @Override public void saveOrUpdate(WxMallFloor record) { + Date nowDate = new Date(); if (record.getId() == null) { //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); + record.setCreateDate(nowDate); + record.setUpdateDate(nowDate); wxMallFloorMapper.insert(record); } else { + record.setUpdateDate(nowDate); wxMallFloorMapper.updateById(record); } } @@ -64,5 +68,10 @@ public class WxMallFloorServiceImpl implements WxMallFloorService { wxMallFloorMapper.deleteByBuildingId(buildingId); } + @Override + public void deleteByTenantId(String tenantId) { + wxMallFloorMapper.deleteByTenantId(tenantId); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 6db5a2720..2cac7183e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -795,4 +795,12 @@ public class WxMerchantServiceImpl implements WxMerchantService { public List findMerchantVoList(Map paramMap) { return wxCouponMerchantMapper.findMerchantVoList(paramMap); } + + @Override + public PageInfo listVoAsPage2(WxMerchant record, Integer pageIndex, Integer pageSize) { + PageHelper.startPage(pageIndex, pageSize); + List merchants = wxMerchantMapper.findListVo2(record); + PageInfo pageInfo = new PageInfo<>(merchants); + return pageInfo; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java index 115c0b710..c395ed8e8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java @@ -157,11 +157,15 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { @Transactional public void initBuilding(List wxMallBuildings) { for (WxMallBuilding wxMallBuilding:wxMallBuildings) { + wxMallBuildingService.deleteByTenantId(wxMallBuilding.getTenantId()); + wxMallBuilding.setId(null); wxMallBuilding.setMallId(Long.parseLong(wxMallBuilding.getTenantId())); if(wxMallBuilding.getFloors() != null && wxMallBuilding.getFloors().size() > 0){ wxMallBuilding.setFloorNumber(wxMallBuilding.getFloors().size()); wxMallBuildingService.saveOrUpdate(wxMallBuilding); for (WxMallFloor wxMallFloor:wxMallBuilding.getFloors()) { + wxMallFloorService.deleteByTenantId(wxMallBuilding.getTenantId()); + wxMallFloor.setId(null); wxMallFloor.setTenantId(wxMallBuilding.getTenantId()); wxMallFloor.setParentTenantId(wxMallBuilding.getParentTenantId()); wxMallFloor.setMallId(Long.parseLong(wxMallBuilding.getTenantId())); @@ -241,6 +245,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { /** * 初始化数据 */ + } 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 7c0adc420..88ae42ebe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -455,6 +455,200 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return new ResultData(Result.SUCCESS, message, record); } + @Override + @Transactional(rollbackFor = {Exception.class}) + public ResultData saveOrUpdate2(WxPropertyContract record, Long userId, String userName) { + // 保存调整金额(预账单调整) + boolean haspreview = false; + if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ + savePreviewBill(record); + haspreview = true; + } + + if (record.getRentShopType().equals(EnumRentShopType.POINT.getCode()) && null == record.getShopId()) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "shopId不能为空"); + } + + WxRentContract wxRentContract = wxRentContractMapper.selectById(record.getRentContractId()); + if (wxRentContract != null) { + if (wxRentContract.getStatus().equals(EnumRentContractStatus.CONTRACT_END.getCode()) || + wxRentContract.getStatus().equals(EnumRentContractStatus.CONTRACT_TERMINATE.getCode()) || + wxRentContract.getStatus().equals(EnumRentContractStatus.INVALID.getCode())) { + return new ResultData(ErrorCode.RENT_CONTRACT_IS_TERMINATED); + } + } else { + return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); + } + if (null == record.getMerchantId() && record.getOperationType().equals(EnumContractOperationType.PART.getCode())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId不能为空"); + } + if (record.getOperationType().equals(EnumContractOperationType.PART.getCode())) { + WxMerchant merchant = wxMerchantMapper.selectById(record.getMerchantId()); + if (merchant == null) { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); + } + } + if (null == record.getReceivePeriod()) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "付款周期不能为空"); + } + if (null == record.getLease()) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "租期不能为空"); + } + if (null == record.getPrice()) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "物业费不能为空"); + } + if (null == record.getDeposit()) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "押金不能为空"); + } + if (record.getPrice().longValue() <= 0) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "物业费要大于0"); + } + + WxPropertyContract propertyContract = new WxPropertyContract(); + propertyContract.updateTenantInfo(wxRentContract); + propertyContract.setRentContractId(record.getRentContractId()); + long count = wxPropertyContractMapper.findList(propertyContract) + .stream().filter(p -> p.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) || + p.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) || + p.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); + if (count > 1) { + return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); + } + //保存物业合同信息 + String message; + boolean hasFlow = true; + if (record.getId() == null) { + if (record.getOperationType().equals(EnumContractOperationType.WHOLE.getCode())) { + WxPropertyContract propertyContractQuery = new WxPropertyContract(); + propertyContractQuery.setRentContractId(record.getRentContractId()); + int propertyContractCount = wxPropertyContractMapper.selectCount(new QueryWrapper(propertyContractQuery)); + if (propertyContractCount > 0) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR); + } + } + hasFlow = false; + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setRentalStartDate(wxRentContract.getRentalStartDate()); + record.setRentalEndDate(wxRentContract.getRentalEndDate()); + record.setStartDate(wxRentContract.getStartDate()); + record.setEndDate(wxRentContract.getEndDate()); + Date date = new Date(); + record.setCreatetime(date); + record.setUpdatetime(date); + record.setStatus(EnumRentContractStatus.EXTENSION.getCode()); + record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + try { + wxPropertyContractMapper.insert(record); + } catch (Exception e) { + logger.error("保存物业合同信息失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + + //生成预览账单 + wxBillPropertyMapper.deletePreviewBill(record); + //重新生成 + List billList = buildProperty(new WxMerchant(),userId,record,EnumIsPreview.YES.getCode(),true); + record.setPreviewBillRentList(billList); + + message = "保存物业合同信息成功"; + } else {//更新物业合同信息 + //查询预账单用于展示 + WxBillProperty wxBillRent = new WxBillProperty(); + wxBillRent.setPropertyContractId(record.getId()); + wxBillRent.setSortColumns(BaseEntity.SortField.Period_ASC); + wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); + List billList = wxBillPropertyMapper.findList(wxBillRent); + record.setPreviewBillRentList(billList); + + if(!haspreview){ + if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null + && !record.getReceivePeriod().equals(0) && !record.getLease().equals(0) && !record.getPrice().equals(0l)) { + //删除预账单,重新生成 + wxBillPropertyMapper.deletePreviewBill(record); + //重新生成 + billList = buildProperty(new WxMerchant(),userId,record,EnumIsPreview.YES.getCode(),true); + record.setPreviewBillRentList(billList); + } + } + + WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectById(record.getId()); + if (wxPropertyContract == null) { + return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); + } + + record.setRentalStartDate(wxRentContract.getRentalStartDate()); + record.setRentalEndDate(wxRentContract.getRentalEndDate()); + record.setStartDate(wxRentContract.getStartDate()); + record.setEndDate(wxRentContract.getEndDate()); + record.setPrice(record.getPrice() != null ? record.getPrice() : 0); + record.setDeposit(record.getDeposit() != null ? record.getDeposit() : 0); + record.setUpdatetime(new Date()); + + //如果是合并合同 物业合同的状态为 意向 + if (record.getOperationType().equals(EnumContractOperationType.WHOLE.getCode())) { + record.setStatus(EnumRentContractStatus.EXTENSION.getCode()); + } + + if (CollectionUtils.isEmpty(record.getFlowParams())) { + hasFlow = false; + record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + } + try { + wxPropertyContractMapper.updateById(record); + } catch (Exception e) { + logger.error("更新物业合同信息失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + + message = "更新物业合同信息成功"; + } + + if (hasFlow) { + if (record.getOperationType().equals(EnumContractOperationType.PART.getCode())) { + if (wxFlowService.getModelByType((Integer) record.getFlowParams().get("businessType"), record) == null) { + updatePropertyContractStatus(record.getId()); + } else { + record.getFlowParams().put("businessId", record.getId().toString()); + wxFlowService.start(record.getFlowParams(), userId, userName, record); + + // 合同状态改成待签约 + WxPropertyContract updateRentContract = new WxPropertyContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setStatus(EnumRentContractStatus.EXTENSION.getCode()); + wxPropertyContractMapper.updateStatus(updateRentContract); + logger.info("id:{},启动审批流成功", record.getId().toString()); + } + } else { + if (wxFlowService.getModelByType((Integer) record.getFlowParams().get("businessType"), record) == null + && record.getMerchantId() != null) { + wxRentContractService.updateRentContractStatus(record.getId()); + } else { + record.getFlowParams().put("businessId", record.getRentContractId().toString()); + if (record.getMerchantId() != null) { + record.getFlowParams().put("supplement", true); //设置补录 + } + wxFlowService.start(record.getFlowParams(), userId, userName, record); + + // 合同状态改成待签约 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getRentContractId()); + updateRentContract.setStatus(EnumRentContractStatus.EXTENSION.getCode()); + wxRentContractMapper.updateStatus(updateRentContract); + logger.info("id:{},启动审批流成功,是否补录:{}", record.getRentContractId().toString(), record.getMerchantId() != null); + } + } + }else{ + //审批状态重置 + WxPropertyContract updateRentContract = new WxPropertyContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + wxPropertyContractMapper.updateById(updateRentContract); + } + + return new ResultData(Result.SUCCESS, message, record); + } + @Override public ResultData updatePropertyContractStatus(Long id) { if (id == null) { 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 848f8dad8..838f4ca85 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2630,16 +2630,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { shopList.add(shopId); } } else { - WxRentContract wxRentContract = new WxRentContract(); - wxRentContract.updateTenantInfo(record); - wxRentContract.setShopId(record.getShopId()); - long count = wxRentContractMapper.queryRentContractData(wxRentContract).stream(). - filter(rc -> rc.get("status").equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) - || rc.get("status").equals(EnumRentContractStatus.RENT_PAID.getCode()) - || rc.get("status").equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); - if (count > 0) { - return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); - } shopList.add(record.getShopId()); } diff --git a/mallinkService/src/main/java/com/iformall/utils/car/CYFUtil.java b/mallinkService/src/main/java/com/iformall/utils/car/CYFUtil.java index 0c9cc2f59..691688558 100644 --- a/mallinkService/src/main/java/com/iformall/utils/car/CYFUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/car/CYFUtil.java @@ -46,7 +46,7 @@ public class CYFUtil { //会员车辆信息注册接口地址 - public static final String REGISTER_CAR_URL = "http://oepn.cheyifu2016.com:8892/openapi/personCar"; + public static final String REGISTER_CAR_URL = "http://open.cheyifu2016.com:8892/openapi/personCar"; public static final String GET_CAR_STOPFEE = "http://open.cheyifu2016.com:8892/openapi/getFee"; @@ -100,8 +100,10 @@ public class CYFUtil { * @Date 2020/7/8 下午10:12 **/ public String registerCar(String token,int carport,int feeGroupId,String parkingId,String plates,long personId,String personName){ + String[] plate = new String[1]; + plate[0] = plates; Map paramMap = new HashMap<>(); - paramMap.put("token ",token); + paramMap.put("token",token); paramMap.put("parkingId",Integer.valueOf(parkingId)); paramMap.put("beginTime",getLocalDate()); paramMap.put("endTime",getLocalDate()); @@ -109,7 +111,7 @@ public class CYFUtil { paramMap.put("lotNumber",carport); paramMap.put("personId",personId); paramMap.put("personName",personName); - paramMap.put("plates",plates); + paramMap.put("plates",plate); String result = Proc(REGISTER_CAR_URL, paramMap); return result; } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 9e9d1a276..efcfc6a9d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -931,7 +931,7 @@ and wo.`parent_tenant_id` = #{parentTenantId} - and wop.`tenant_id` = #{tenantId} + and wop.`parent_tenant_id` = #{parentTenantId} ) * 100 diff --git a/mallinkService/src/main/resources/mapper/WxFlowConfigMapper.xml b/mallinkService/src/main/resources/mapper/WxFlowConfigMapper.xml index 1918745b8..ca9efb0e2 100644 --- a/mallinkService/src/main/resources/mapper/WxFlowConfigMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFlowConfigMapper.xml @@ -4,7 +4,7 @@ - + @@ -20,7 +20,6 @@ where 1=1 - and `parent_id` = #{parentId} and `tenant_id` = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml b/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml index f63bd3ef2..339b62fec 100644 --- a/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallBuildingMapper.xml @@ -70,8 +70,11 @@ 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 9a5022c8f..ddf4fd1d2 100644 --- a/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml @@ -74,7 +74,11 @@ - delete from wx_mall_floor where building_id=#{buildingId} + delete from wx_mall_floor where building_id = #{buildingId} + + + + delete from wx_mall_floor where `tenant_id` = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index 0ac6e6dca..ff153e1cf 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -193,6 +193,29 @@ + + diff --git a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml index 8169dd543..07949b68d 100644 --- a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml @@ -398,6 +398,6 @@ and `parent_tenant_id` = #{parentTenantId} ) pc) - and rent_shop_type = 1 + and rent_shop_type = #{rentShopType} diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index 5e77c1df8..cdcb3055e 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -652,7 +652,7 @@ - SELECT DATE_FORMAT(day_date,'%Y-%m-%d') as xTime,visit_pv as pv,visit_uv as uv + SELECT DATE_FORMAT(day_date,'%Y-%m-%d') as xTime,IFNULL(sum(visit_pv),0) as pv,IFNULL(sum(visit_uv),0) as uv from wx_user_visit where 1=1 @@ -124,12 +124,13 @@ and day_date <= #{endTime} + group by xTime order by ${sortColumns} - order by day_date desc + order by xTime desc