Compare commits

..

2 Commits

Author SHA1 Message Date
曹鹏飞 0c7845bb62 fix: 修复产品类型文件列表错误 2025-08-12 14:38:54 +08:00
曹鹏飞 adc503652d feat: bug-562 机型资料需要支持批量发布 2025-08-12 11:40:45 +08:00
5 changed files with 61 additions and 36 deletions

View File

@ -15,7 +15,10 @@ import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.dto.ProductModelParamsExcelDTO;
import com.nflg.mobilebroken.common.pojo.request.*;
import com.nflg.mobilebroken.common.pojo.vo.*;
import com.nflg.mobilebroken.common.util.*;
import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.EecExcelUtil;
import com.nflg.mobilebroken.common.util.PageUtil;
import com.nflg.mobilebroken.common.util.VUtils;
import com.nflg.mobilebroken.repository.entity.*;
import com.nflg.mobilebroken.repository.service.*;
import lombok.extern.slf4j.Slf4j;
@ -931,7 +934,7 @@ public class ProductModelController extends ControllerBase{
* @param request 请求参数
*/
@PostMapping("/publishFile")
public ApiResult<Void> publishFile(@Valid @RequestBody ProductPublishRequest request){
public ApiResult<Void> publishFile(@Valid @RequestBody ProductModelPublishRequest request) {
productModelFileService.publish(request);
return ApiResult.success();
}

View File

@ -0,0 +1,20 @@
package com.nflg.mobilebroken.common.pojo.request;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ProductModelPublishRequest {
@NotEmpty
private List<Integer> ids;
/**
* 发布状态1发布2取消发布
*/
@NotNull
private Integer state;
}

View File

@ -31,7 +31,7 @@ public interface IProductModelFileService extends IService<ProductModelFile> {
void delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductPublishRequest request);
void publish(@Valid ProductModelPublishRequest request);
IPage<ProductModelFile> getList(@Valid ProductModelImageSearchRequest request);

View File

@ -131,40 +131,42 @@ public class ProductModelFileServiceImpl extends ServiceImpl<ProductModelFileMap
removeByIds(request.getIds());
}
@Transactional
@Override
public void publish(ProductPublishRequest request) {
ProductModelFile info = getById(request.getId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
VUtils.trueThrowBusinessError(Objects.equals(info.getState(), request.getState()))
.throwMessage("请勿重复操作");
if (Objects.equals(request.getState(), PublishState.Published.getState())) {
VUtils.trueThrowBusinessError(!info.getEnable()).throwMessage("不能发布已禁用的数据");
info.setState(PublishState.Published.getState());
info.setPublishBy(AdminUserUtil.getUserName());
info.setPublishTime(LocalDateTime.now());
lambdaUpdate()
.set(ProductModelFile::getState, PublishState.Obsolete.getState())
.eq(ProductModelFile::getModelId, info.getModelId())
.eq(ProductModelFile::getBatchNumber,info.getBatchNumber())
.eq(ProductModelFile::getState, PublishState.Published.getState())
.update();
} else {
ProductModelFile obsolete = lambdaQuery()
.eq(ProductModelFile::getModelId, info.getModelId())
.eq(ProductModelFile::getBatchNumber,info.getBatchNumber())
.eq(ProductModelFile::getState, PublishState.Obsolete.getState())
.orderByDesc(ProductModelFile::getPublishTime)
.last("Limit 1")
.one();
if (Objects.nonNull(obsolete)) {
obsolete.setState(PublishState.Published.getState());
obsolete.setPublishBy(AdminUserUtil.getUserName());
obsolete.setPublishTime(LocalDateTime.now());
updateById(obsolete);
public void publish(ProductModelPublishRequest request) {
List<ProductModelFile> datas = listByIds(request.getIds());
datas.removeIf(item -> !item.getEnable());
datas.forEach(info -> {
if (!Objects.equals(info.getState(), request.getState())) {
if (Objects.equals(request.getState(), PublishState.Published.getState())) {
info.setState(PublishState.Published.getState());
info.setPublishBy(AdminUserUtil.getUserName());
info.setPublishTime(LocalDateTime.now());
lambdaUpdate()
.set(ProductModelFile::getState, PublishState.Obsolete.getState())
.eq(ProductModelFile::getModelId, info.getModelId())
.eq(ProductModelFile::getBatchNumber, info.getBatchNumber())
.eq(ProductModelFile::getState, PublishState.Published.getState())
.update();
} else {
ProductModelFile obsolete = lambdaQuery()
.eq(ProductModelFile::getModelId, info.getModelId())
.eq(ProductModelFile::getBatchNumber, info.getBatchNumber())
.eq(ProductModelFile::getState, PublishState.Obsolete.getState())
.orderByDesc(ProductModelFile::getPublishTime)
.last("Limit 1")
.one();
if (Objects.nonNull(obsolete)) {
obsolete.setState(PublishState.Published.getState());
obsolete.setPublishBy(AdminUserUtil.getUserName());
obsolete.setPublishTime(LocalDateTime.now());
updateById(obsolete);
}
info.setState(PublishState.Obsolete.getState());
}
updateById(info);
}
info.setState(PublishState.Obsolete.getState());
}
updateById(info);
});
}
@Override

View File

@ -69,7 +69,7 @@
<select id="getFilesByLanguage" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductFileVO">
SELECT ptf.*
FROM product_type pt
LEFT JOIN product_type_file ptf ON ptf.type_id=pt.id AND ptf.language_code=#{language}
INNER JOIN product_type_file ptf ON ptf.type_id=pt.id AND ptf.language_code=#{language}
WHERE pt.state=1 AND pt.enable=1 AND pt.module_id=#{moduleId}
<if test="seriesNumber != null and seriesNumber!=''">
AND pt.series_number=#{seriesNumber}