1、会员入驻列表刷不出来,需要排查错误。

2、会员入驻完成已审阶段的新入驻,下一步需要更改菜地。
This commit is contained in:
jlt
2022-04-06 23:56:06 +08:00
parent 898fdfe48b
commit e84fdf8e5a
23 changed files with 944 additions and 752 deletions

View File

@ -3,6 +3,7 @@ package com.jlt.csa.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jlt.csa.domain.dto.ContractClaimDto;
import com.ruoyi.common.utils.DictUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
@ -130,4 +131,16 @@ public class FarmerContractController extends BaseController
{
return toAjax(farmerContractService.auditContract(contractId));
}
/**
* 会员合约确认认领菜地
*/
@PreAuthorize("@ss.hasPermi('csa:contract:edit')")
@Log(title = "会员签约", businessType = BusinessType.UPDATE)
@PutMapping("/claim")
public AjaxResult claim(@RequestBody ContractClaimDto claim)
{
return toAjax(farmerContractService.claimGarden(claim));
}
}

View File

@ -49,7 +49,6 @@ public class GardenController extends BaseController
@GetMapping({"/cansell/{code}", "/cansell/"})
public TableDataInfo listCanSell(@PathVariable(value = "code", required = false) String code)
{
logger.error("--==>" + code);
Garden garden = new Garden();
garden.setCode(code);
garden.setIsCompleted("Y");

View File

@ -36,7 +36,7 @@ public class Garden extends BaseEntity
/** 平方米 */
@Excel(name = "平方米")
private Integer m2;
private Long m2;
/** 会员 */
@Excel(name = "会员id")
@ -117,12 +117,12 @@ public class Garden extends BaseEntity
{
return name;
}
public void setM2(Integer m2)
public void setM2(Long m2)
{
this.m2 = m2;
}
public Integer getM2()
public Long getM2()
{
return m2;
}

View File

@ -0,0 +1,75 @@
package com.jlt.csa.domain.dto;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 合约认领菜地的信息的DTO
*/
public class ContractClaimDto {
// 合约Id
private Long contractId;
// 会员姓名
private String farmerName;
// 会员电话
private String mobileNumber;
// 菜地Id
private Long gardenId;
// 菜地名称
private String gardenName;
public Long getContractId() {
return contractId;
}
public void setContractId(Long contractId) {
this.contractId = contractId;
}
public String getFarmerName() {
return farmerName;
}
public void setFarmerName(String farmerName) {
this.farmerName = farmerName;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public Long getGardenId() {
return gardenId;
}
public void setGardenId(Long gardenId) {
this.gardenId = gardenId;
}
public String getGardenName() {
return gardenName;
}
public void setGardenName(String gardenName) {
this.gardenName = gardenName;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("contractId", getContractId())
.append("farmerName", getFarmerName())
.append("mobileNumber", getMobileNumber())
.append("gardenId", getGardenId())
.append("gardenName", getGardenName())
.toString();
}
}

View File

@ -2,6 +2,7 @@ package com.jlt.csa.service;
import java.util.List;
import com.jlt.csa.domain.FarmerContract;
import com.jlt.csa.domain.dto.ContractClaimDto;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
@ -74,5 +75,12 @@ public interface IFarmerContractService
* @param contractId 合约id
* @return 受影响的记录数
*/
public int auditContract(@PathVariable Long contractId);
public int auditContract(Long contractId);
/**
* 会员认领菜地
* @param claim 认领菜地的信息
* @return 受影响的记录数
*/
public int claimGarden(ContractClaimDto claim);
}

View File

@ -1,10 +1,14 @@
package com.jlt.csa.service.impl;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import com.jlt.csa.domain.Farmer;
import com.jlt.csa.domain.Garden;
import com.jlt.csa.domain.dto.ContractClaimDto;
import com.jlt.csa.service.IFarmerService;
import com.jlt.csa.service.IGardenService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;
@ -29,6 +33,7 @@ public class FarmerContractServiceImpl implements IFarmerContractService
{
private FarmerContractMapper farmerContractMapper;
private IFarmerService farmerService;
private IGardenService gardenService;
@Autowired
public void setFarmerContractMapper(FarmerContractMapper farmerContractMapper) {
@ -40,6 +45,83 @@ public class FarmerContractServiceImpl implements IFarmerContractService
this.farmerService = farmerService;
}
@Autowired
public void setGardenService(IGardenService gardenService) {
this.gardenService = gardenService;
}
/**
* 会员认领菜地,更新会员姓名和电话,关联地块(不设置地块日期)
* @param claim 认领菜地的信息
* @return 受影响的记录数
*/
@Override
@Transactional
public int claimGarden(ContractClaimDto claim) {
// 载入合约
FarmerContract contract = selectFarmerContractByContractId(claim.getContractId());
// 检查合约是否存在
if (contract == null) {
throw new RuntimeException("该合约不存在!");
}
// 获取允许认地的2种状态字典值
String valAudited = DictUtils.getDictValue("csa_contract_status", "已审");
String valClaimed = DictUtils.getDictValue("csa_contract_status", "认领");
// 判断当前合约状态是否允许认地
if (!Arrays.asList(valAudited, valClaimed).contains(contract.getStatus())) {
throw new RuntimeException("该合约的状态不允许认领菜地!");
}
// 载入地主信息
Farmer farmer = farmerService.selectFarmerWithGardenById(contract.getFarmerId());
// 检查地主是否存在
if (farmer == null) {
throw new RuntimeException("该合约对应的地主信息不存在,无法认领!");
}
// 已审状态的合约
if (contract.getStatus().equals(valAudited)) {
Garden garden = gardenService.selectGardenById(claim.getGardenId());
if (!garden.getIsSelled().equals("N")) {
// 菜地为售出状态
throw new RuntimeException("该菜地已被认领,无法再次认领!");
} else {
if (garden.getFarmerId() != null) {
// 菜地已经有地主信息
throw new RuntimeException("该菜地已被他人选定,无法认领!");
}
}
// 准备更新的字段
contract = new FarmerContract();
contract.setContractId(claim.getContractId());
contract.setGardenId(claim.getGardenId());
contract.setStatus(valClaimed);
garden = new Garden();
garden.setGardenId(claim.getGardenId());
garden.setFarmerId(farmer.getFarmerId());
farmer = new Farmer();
farmer.setFarmerId(garden.getFarmerId());
farmer.setName(claim.getFarmerName());
farmer.setMobileNumber(claim.getMobileNumber());
this.updateFarmerContract(contract);
gardenService.updateGarden(garden);
farmerService.updateFarmer(farmer);
}
// 更改已认领但未生效的合约
return 1;
}
/**
* 审核会员签约信息
* @param contractId 合约id
@ -51,7 +133,7 @@ public class FarmerContractServiceImpl implements IFarmerContractService
// 载入合约
FarmerContract contract = selectFarmerContractByContractId(contractId);
// 检查合约是否存在
// 检查合约是否存在
if (contract == null) {
throw new RuntimeException("合约不存在,无法审核!");
}