Просмотр исходного кода

[合同][修改][请求方法分开]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
5cbd1a250d
3 измененных файлов: 106 добавлений и 75 удалений
  1. +17
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java
  2. +5
    -1
      mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
  3. +84
    -72
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 17
- 2
mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java Просмотреть файл

@@ -44,16 +44,31 @@ public class WxRentContractController extends BaseController {
public ResultData add(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::add");
wxRentContract.setTenantId(getTenantId());
return wxRentContractService.saveOrUpdate(wxRentContract);
return wxRentContractService.save(wxRentContract);
}

@PostMapping("update")
public ResultData update(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::update");
wxRentContract.setTenantId(getTenantId());
return wxRentContractService.saveOrUpdate(wxRentContract);
return wxRentContractService.update(wxRentContract);
}

@PostMapping("updateMoney")
public ResultData updateMoney(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMoney");
wxRentContract.setTenantId(getTenantId());
return wxRentContractService.update(wxRentContract);
}

@PostMapping("updateFile")
public ResultData updateFile(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::updateFile");
wxRentContract.setTenantId(getTenantId());
return wxRentContractService.updateFile(wxRentContract);
}


@GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true)
public ResultData delete(String id) {


+ 5
- 1
mallinkService/src/main/java/com/iformall/service/WxRentContractService.java Просмотреть файл

@@ -35,7 +35,9 @@ public interface WxRentContractService {
*
* @param record
*/
ResultData saveOrUpdate(WxRentContract record);
ResultData save(WxRentContract record);

ResultData update(WxRentContract record);

/**
* 根据Id删除实体
@@ -57,4 +59,6 @@ public interface WxRentContractService {

void exportContract(HttpServletRequest request, HttpServletResponse response, String tenantId);

ResultData updateFile(WxRentContract wxRentContract);

}

+ 84
- 72
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -113,9 +113,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData saveOrUpdate(WxRentContract record) {
public ResultData save(WxRentContract record) {
//保存租赁合同信息
if (record.getId() == null) {
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
if(record.getStartDate().after(record.getRentalStartDate())){
@@ -158,87 +157,95 @@ public class WxRentContractServiceImpl implements WxRentContractService {
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
return new ResultData(Result.SUCCESS, "保存租赁合同信息成功", record);
} else {//更新租赁合同信息
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId());
if (wxRentContract == null) {
return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND);
}
Calendar instance = Calendar.getInstance();
}

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData update(WxRentContract record) {
return getResultDataForUpdate(record);
}

public ResultData getResultDataForUpdate(WxRentContract record) {
//更新租赁合同信息
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId());
if (wxRentContract == null) {
return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND);
}
Calendar instance = Calendar.getInstance();
instance.setTime(record.getRentalStartDate());
instance.add(Calendar.MONTH, record.getLease());
instance.add(Calendar.DAY_OF_MONTH, -1);
record.setRentalEndDate(instance.getTime());

//起租结束时间
if(!record.getStartDate().equals(record.getRentalStartDate())){
instance.clear();
instance.setTime(record.getRentalStartDate());
instance.add(Calendar.MONTH, record.getLease());
instance.add(Calendar.DAY_OF_MONTH, -1);
record.setRentalEndDate(instance.getTime());
record.setEndDate(instance.getTime());
}else{
record.setEndDate(record.getStartDate());
}

//起租结束时间
if(!record.getStartDate().equals(record.getRentalStartDate())){
instance.clear();
instance.setTime(record.getRentalStartDate());
instance.add(Calendar.DAY_OF_MONTH, -1);
record.setEndDate(instance.getTime());
}else{
record.setEndDate(record.getStartDate());
if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (record.getRevenue() == null || record.getRevenue().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "营业额不能为空且大于0");
}

if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (record.getRevenue() == null || record.getRevenue().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "营业额不能为空且大于0");
}
if (record.getPayRatio() == null || record.getPayRatio().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "支付比例不能为空且大于0");
}
BigDecimal hundred = new BigDecimal(100);
BigDecimal revenue = new BigDecimal(record.getRevenue()).divide(hundred);
BigDecimal payRatio = new BigDecimal(record.getPayRatio()).divide(hundred);
BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN);
record.setPrice(price.multiply(hundred).intValue());
}
if (record.getPrice() == null || record.getPrice().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "租金不能为空且大于0");
}
if (record.getDeposit() == null || record.getDeposit().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "押金不能为空且大于0");
if (record.getPayRatio() == null || record.getPayRatio().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "支付比例不能为空且大于0");
}
BigDecimal hundred = new BigDecimal(100);
BigDecimal revenue = new BigDecimal(record.getRevenue()).divide(hundred);
BigDecimal payRatio = new BigDecimal(record.getPayRatio()).divide(hundred);
BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN);
record.setPrice(price.multiply(hundred).intValue());
}
if (record.getPrice() == null || record.getPrice().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "租金不能为空且大于0");
}
if (record.getDeposit() == null || record.getDeposit().intValue() == 0) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "押金不能为空且大于0");
}

record.setUpdatetime(new Date());
try {
WxRentContract wxRentContractParams = new WxRentContract();
wxRentContractParams.setTenantId(record.getTenantId());
wxRentContractParams.setShopId(record.getShopId());
long count = wxRentContractMapper.queryRentContractData(wxRentContractParams).stream().
filter(rc -> !rc.get("status").equals(EnumRentContractStatus.CONTRACT_TERMINATE.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.WAIT_SIGN.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.CONTRACT_END.getCode())
&& !rc.get("id").equals(wxRentContract.getId())).count();
if (count > 0) {
return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND);
}
wxRentContractMapper.updateByPrimaryKeySelective(record);
//建立账单
if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode())
&& record.getReceivePeriod() != null && record.getDeposit() > 0 && record.getPrice() > 0) {
WxBillRent wxBillRent = new WxBillRent();
wxBillRent.setMerchantId(record.getMerchantId());
List<Map<String, Object>> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent);
if (billRentList.size() == 0) {
WxMerchant wxMerchant = new WxMerchant();
wxMerchant.setId(record.getMerchantId());
wxMerchant.setTenantId(record.getTenantId());
//租金
buildRent(wxMerchant);
//押金
buildDeposit(wxMerchant);
}
record.setUpdatetime(new Date());
try {
WxRentContract wxRentContractParams = new WxRentContract();
wxRentContractParams.setTenantId(record.getTenantId());
wxRentContractParams.setShopId(record.getShopId());
long count = wxRentContractMapper.queryRentContractData(wxRentContractParams).stream().
filter(rc -> !rc.get("status").equals(EnumRentContractStatus.CONTRACT_TERMINATE.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.WAIT_SIGN.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode())
&& !rc.get("status").equals(EnumRentContractStatus.CONTRACT_END.getCode())
&& !rc.get("id").equals(wxRentContract.getId())).count();
if (count > 0) {
return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND);
}
wxRentContractMapper.updateByPrimaryKeySelective(record);
//建立账单
if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode())
&& record.getReceivePeriod() != null && record.getDeposit() > 0 && record.getPrice() > 0) {
WxBillRent wxBillRent = new WxBillRent();
wxBillRent.setMerchantId(record.getMerchantId());
List<Map<String, Object>> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent);
if (billRentList.size() == 0) {
WxMerchant wxMerchant = new WxMerchant();
wxMerchant.setId(record.getMerchantId());
wxMerchant.setTenantId(record.getTenantId());
//租金
buildRent(wxMerchant);
//押金
buildDeposit(wxMerchant);
}
} catch (Exception e) {
logger.error("更新租赁合同信息失败,e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
return new ResultData(Result.SUCCESS, "更新租赁合同信息成功");
} catch (Exception e) {
logger.error("更新租赁合同信息失败,e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}

return new ResultData(Result.SUCCESS, "更新租赁合同信息成功");
}


@Transactional(rollbackFor = {Exception.class})
public void buildDeposit(WxMerchant wxMerchant) {
MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession");
@@ -682,6 +689,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
exportWord(templatePath, filepath, filename, result, request, response);
}

@Override
public ResultData updateFile(WxRentContract record) {
return getResultDataForUpdate(record);
}

public Map<String, Object> getRentAndPropertyInfo(String id) {
logger.info("获取租赁物业合同数据>>>>>>id:"+id);
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id);


Загрузка…
Отмена
Сохранить