Compare commits

...

5 Commits

Author SHA1 Message Date
曹鹏飞 14ba6d095e Merge branch 'feature/product' into test 2025-08-12 14:41:20 +08:00
曹鹏飞 0c7845bb62 fix: 修复产品类型文件列表错误 2025-08-12 14:38:54 +08:00
曹鹏飞 adc503652d feat: bug-562 机型资料需要支持批量发布 2025-08-12 11:40:45 +08:00
曹鹏飞 477744c5ed fix: 修复一个错误 2025-08-05 09:20:08 +08:00
曹鹏飞 238fa02f7d fix: 修复一个错误 2025-08-04 10:09:03 +08:00
6 changed files with 62 additions and 37 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.dto.ProductModelParamsExcelDTO;
import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.request.*;
import com.nflg.mobilebroken.common.pojo.vo.*; 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.entity.*;
import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.repository.service.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -931,7 +934,7 @@ public class ProductModelController extends ControllerBase{
* @param request 请求参数 * @param request 请求参数
*/ */
@PostMapping("/publishFile") @PostMapping("/publishFile")
public ApiResult<Void> publishFile(@Valid @RequestBody ProductPublishRequest request){ public ApiResult<Void> publishFile(@Valid @RequestBody ProductModelPublishRequest request) {
productModelFileService.publish(request); productModelFileService.publish(request);
return ApiResult.success(); 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 delete(@Valid BatchDeleteRequest request);
void publish(@Valid ProductPublishRequest request); void publish(@Valid ProductModelPublishRequest request);
IPage<ProductModelFile> getList(@Valid ProductModelImageSearchRequest request); IPage<ProductModelFile> getList(@Valid ProductModelImageSearchRequest request);

View File

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

View File

@ -10,7 +10,7 @@
</select> </select>
<select id="getListByDictionaryCode" resultType="com.nflg.mobilebroken.repository.entity.DictionaryItem"> <select id="getListByDictionaryCode" resultType="com.nflg.mobilebroken.repository.entity.DictionaryItem">
SELECT ifnull(dit.value,di.`name`) as 'name',di.* SELECT fun_isBlank(dit.value,di.`name`) as 'name',di.*
FROM dictionary d FROM dictionary d
INNER JOIN dictionary_item di ON d.id=di.dictionary_id INNER JOIN dictionary_item di ON d.id=di.dictionary_id
LEFT JOIN dictionary_item_translate dit ON dit.dictionary_item_id=di.id and dit.language_code=#{language} LEFT JOIN dictionary_item_translate dit ON dit.dictionary_item_id=di.id and dit.language_code=#{language}

View File

@ -69,7 +69,7 @@
<select id="getFilesByLanguage" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductFileVO"> <select id="getFilesByLanguage" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductFileVO">
SELECT ptf.* SELECT ptf.*
FROM product_type pt 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} WHERE pt.state=1 AND pt.enable=1 AND pt.module_id=#{moduleId}
<if test="seriesNumber != null and seriesNumber!=''"> <if test="seriesNumber != null and seriesNumber!=''">
AND pt.series_number=#{seriesNumber} AND pt.series_number=#{seriesNumber}