fix(产品):添加用户需求公开接口

This commit is contained in:
wanjia 2025-03-26 10:14:25 +08:00
parent ceca31cb5c
commit 759922b3db
7 changed files with 66 additions and 6 deletions

View File

@ -5,8 +5,7 @@ import com.microservices.common.core.web.controller.BaseController;
import com.microservices.common.core.web.domain.AjaxResult;
import com.microservices.common.log.annotation.Log;
import com.microservices.common.log.enums.BusinessType;
import com.microservices.common.security.annotation.RequiresPermissions;
import com.microservices.pms.product.domain.vo.ProductReqSpecsInputVo;
import com.microservices.pms.product.domain.vo.ProductUserReqInputVo;
import com.microservices.pms.product.service.IPmsProductRequirementService;
import com.microservices.pms.specialArea.service.SoftwareFactStatisticsServiceImpl;
import io.swagger.annotations.Api;
@ -61,11 +60,11 @@ public class OpenController extends BaseController {
* 新增需求
*/
@Log(title = "需求", businessType = BusinessType.INSERT)
@PostMapping("/{enterpriseIdentifier}/productRequirementSpecs")
@PostMapping("/{enterpriseIdentifier}/productUserRequirement")
@ApiOperation(value = "新增需求")
public AjaxResult add(@PathVariable String enterpriseIdentifier,
@RequestBody @Validated ProductReqSpecsInputVo productReqSpecsInputVo) {
productReqSpecsInputVo.setEnterpriseIdentifier(enterpriseIdentifier);
return AjaxResult.success(pmsProductRequirementService.insertReqSpecs(productReqSpecsInputVo));
@RequestBody @Validated ProductUserReqInputVo productUserReqInputVo) {
productUserReqInputVo.setEnterpriseIdentifier(enterpriseIdentifier);
return success(pmsProductRequirementService.insertUserReqWithoutAuth(productUserReqInputVo));
}
}

View File

@ -60,6 +60,8 @@ public interface IPmsEnterpriseService {
PmsEnterprise selectPmsEnterpriseByIdentifier(String identifier);
PmsEnterprise selectPmsEnterpriseByIdentifierWithoutAuth(String identifier);
/**
* 获取企业下用户列表
*

View File

@ -136,6 +136,27 @@ public class PmsEnterpriseServiceImpl implements IPmsEnterpriseService {
return pmsEnterprise;
}
@Override
public PmsEnterprise selectPmsEnterpriseByIdentifierWithoutAuth(String identifier) {
// 企业信息在项目管理的每次接口请求中都会执行查询加入到Redis缓存减少数据库查询次数
String enterpriseRedisKey = CacheConstants.getEnterpriseIdentifierKey(identifier);
PmsEnterprise pmsEnterprise;
if (redisService.hasKey(enterpriseRedisKey)) {
pmsEnterprise = redisService.getCacheObject(enterpriseRedisKey);
} else {
pmsEnterprise = pmsEnterpriseMapper.selectPmsEnterpriseByIdentifier(identifier);
if (pmsEnterprise == null) {
throw new ServiceException("该企业不存在(企业标识[%s])", identifier);
}
redisService.setCacheObject(enterpriseRedisKey, pmsEnterprise);
}
if (!checkEnterpriseInitComplete(pmsEnterprise.getGitlinkOrgId())) {
throw new ServiceException("当前组织初始化未完成,不允许进行操作!");
}
pmsEnterprise.setGitlinkUrl(gitLinkRequestHelper.gitLinkUrl);
return pmsEnterprise;
}
private void clearPmsEnterpriseForRedis(PmsEnterprise pmsEnterprise) {
redisService.deleteObject(CacheConstants.getEnterpriseIdentifierKey(pmsEnterprise.getEnterpriseIdentifier()));
redisService.deleteObject(CacheConstants.getEnterpriseIdKey(pmsEnterprise.getId()));

View File

@ -90,6 +90,8 @@ public interface IPmsProductRequirementService
Long insertUserReq(ProductUserReqInputVo productUserReqInputVo);
Long insertUserReqWithoutAuth(ProductUserReqInputVo productUserReqInputVo);
int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo);
int deleteUserReqByIds(Long[] ids);

View File

@ -79,6 +79,8 @@ public interface IPmsProductService
*/
PmsProduct selectPmsProductByIdentifier(String identifier);
PmsProduct selectPmsProductByIdentifierWithoutAuth(String identifier);
/**
* 置顶/取消置顶产品
* @param identifier

View File

@ -149,6 +149,31 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
return pmsProductRequirement.getId();
}
@Override
@Transactional(rollbackFor = ServiceException.class)
public Long insertUserReqWithoutAuth(ProductUserReqInputVo productUserReqInputVo) {
// 校验产品是否存在
PmsProduct pmsProduct = pmsProductService.selectPmsProductByIdentifierWithoutAuth(productUserReqInputVo.getPmsProductIdentifier());
PmsProductRequirement pmsProductRequirement = productUserReqInputVo.toPmsProductRequirement();
// 校验参数
checkUserReqParameter(pmsProductRequirement, pmsProduct);
if (StringUtils.isEmpty(productUserReqInputVo.getSourceCompany())) {
PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifierWithoutAuth(productUserReqInputVo.getEnterpriseIdentifier());
pmsProductRequirement.setSourceCompany(pmsEnterprise.getEnterpriseName());
}
// 设置默认需求状态
pmsProductRequirement.setStatus(ProductReqStatus.PENDING_REVIEW_USER_REQ.getKey());
pmsProductRequirement.setCreateAndUpdate(SecurityUtils.getUsername());
pmsProductService.updatePmsProductChange(pmsProductRequirement.getPmsProductIdentifier());
pmsProductRequirementMapper.insertPmsProductRequirement(pmsProductRequirement);
pmsProductReqOperationRecordService.insertPmsProductReqOperationRecord(
productUserReqInputVo.toPmsProductReqOperationRecord(pmsProductRequirement));
return pmsProductRequirement.getId();
}
@Override
public int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo) {
// 通过id检查需修改的产品需求是否存在

View File

@ -272,6 +272,15 @@ public class PmsProductServiceImpl implements IPmsProductService
return pmsProduct;
}
@Override
public PmsProduct selectPmsProductByIdentifierWithoutAuth(String identifier) {
PmsProduct pmsProduct= pmsProductMapper.selectPmsProductByIdentifier(identifier);
if(pmsProduct==null){
throw new ServiceException("该产品不存在(产品标识[%s])",identifier);
}
return pmsProduct;
}
@Override
public int updatePmsProductTop(String identifier) {
PmsProduct pmsProduct=selectPmsProductByIdentifier(identifier);