feat: 产品中心
This commit is contained in:
parent
13df05f316
commit
902a3937d6
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.admin.controller;
|
package com.nflg.mobilebroken.admin.controller;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
|
@ -21,8 +22,14 @@ 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;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.ttzero.excel.entity.TemplateSheet;
|
||||||
|
import org.ttzero.excel.entity.Workbook;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
@ -30,6 +37,7 @@ import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -251,6 +259,15 @@ public class ProductModelController extends ControllerBase{
|
||||||
return ApiResult.success(productModelParamsItemService.getList(modelParamsId));
|
return ApiResult.success(productModelParamsItemService.getList(modelParamsId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取中文设备技术参数
|
||||||
|
* @param modelId 机型id
|
||||||
|
*/
|
||||||
|
@GetMapping("/getCNParamsItems")
|
||||||
|
public ApiResult<List<ProductModelMainParamsItemChildrenVO>> getCNParamsItems(@RequestParam Integer modelId){
|
||||||
|
return ApiResult.success(productModelParamsService.getCNList(modelId));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加设备技术参数指标
|
* 添加设备技术参数指标
|
||||||
* @param request 请求参数
|
* @param request 请求参数
|
||||||
|
|
@ -398,28 +415,195 @@ public class ProductModelController extends ControllerBase{
|
||||||
return ApiResult.success(request.getModelParamsId());
|
return ApiResult.success(request.getModelParamsId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载导入设备技术参数项模板
|
||||||
|
*/
|
||||||
|
@GetMapping("/downloadParamImportTemplate")
|
||||||
|
public void downloadParamImportTemplate(HttpServletResponse response) throws IOException {
|
||||||
|
EecExcelUtil.setResponseExcelHeader(response, "机型参数导入模版");
|
||||||
|
ClassPathResource resource = new ClassPathResource("templates/ProductModelParamImport.xlsx");
|
||||||
|
new Workbook()
|
||||||
|
.addSheet(new TemplateSheet(resource.getInputStream()))
|
||||||
|
.writeTo(response.getOutputStream());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出设备技术参数项
|
* 导出设备技术参数项
|
||||||
* @param modelParamsId 设备技术参数ID
|
* @param modelParamsId 设备技术参数ID
|
||||||
*/
|
*/
|
||||||
@GetMapping("/exportModelParamsItem")
|
@GetMapping("/exportModelParamsItem")
|
||||||
public void exportModelParamsItem(HttpServletResponse response, @Valid @RequestParam @NotNull Integer modelParamsId) throws IOException {
|
public void exportModelParamsItem(HttpServletResponse response, @Valid @RequestParam @NotNull Integer modelParamsId) throws IOException {
|
||||||
List<ProductModelParamsItemVO> vos = productModelParamsItemService.getList(modelParamsId);
|
ProductModelParams params=productModelParamsService.getById(modelParamsId);
|
||||||
List<ProductModelParamsExcelDTO> datas = vos.stream().map(vo -> vo.getItems()
|
VUtils.trueThrowBusinessError(Objects.isNull(params)).throwMessage("无效的数据");
|
||||||
.stream()
|
ProductModel model = productModelService.getById(params.getModelId());
|
||||||
.map(item -> item.getItems().stream().map(t -> new ProductModelParamsExcelDTO()
|
VUtils.trueThrowBusinessError(Objects.isNull(model)).throwMessage("无效的数据");
|
||||||
.setLanguageCode(vo.getLanguageCode())
|
EecExcelUtil.setResponseExcelHeader(response, model.getNo() + "机型技术参数");
|
||||||
.setIndexName(item.getIndexName())
|
List<Language> languages = languageService.getLanguages();
|
||||||
.setName(t.getName())
|
int colCount = languages.size() * 3 + 2;
|
||||||
.setValue(t.getValue())
|
Set<CellRangeAddress> cellRangeAddresses = new HashSet<>();
|
||||||
.setMain(t.getMain())
|
try (org.apache.poi.ss.usermodel.Workbook workbook = new XSSFWorkbook()) {
|
||||||
.setCompare(t.getCompare()))
|
List<ProductModelParamsItem> paramsItems = productModelParamsItemService.lambdaQuery().eq(ProductModelParamsItem::getModelParamsId, modelParamsId).list();
|
||||||
.collect(Collectors.toList()))
|
Sheet sheet = workbook.createSheet("sheet1");
|
||||||
.flatMap(Collection::stream)
|
sheet.setVerticallyCenter(true);
|
||||||
.collect(Collectors.toList()))
|
sheet.setDefaultRowHeightInPoints(20);
|
||||||
.flatMap(Collection::stream)
|
CellStyle headerStyle = workbook.createCellStyle();
|
||||||
|
headerStyle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
|
headerStyle.setBorderTop(BorderStyle.THIN);
|
||||||
|
headerStyle.setBorderBottom(BorderStyle.THIN);
|
||||||
|
headerStyle.setBorderLeft(BorderStyle.THIN);
|
||||||
|
headerStyle.setBorderRight(BorderStyle.THIN);
|
||||||
|
CellStyle dataStyle = workbook.createCellStyle();
|
||||||
|
dataStyle.setAlignment(HorizontalAlignment.LEFT);
|
||||||
|
dataStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
|
dataStyle.setBorderTop(BorderStyle.THIN);
|
||||||
|
dataStyle.setBorderBottom(BorderStyle.THIN);
|
||||||
|
dataStyle.setBorderLeft(BorderStyle.THIN);
|
||||||
|
dataStyle.setBorderRight(BorderStyle.THIN);
|
||||||
|
Font headerFont = workbook.createFont();
|
||||||
|
headerFont.setBold(true);
|
||||||
|
headerStyle.setFont(headerFont);
|
||||||
|
Row headerRow0 = sheet.createRow(0);
|
||||||
|
Cell cell0_0 = headerRow0.createCell(0);
|
||||||
|
cell0_0.setCellValue("机型技术参数");
|
||||||
|
cell0_0.setCellStyle(headerStyle);
|
||||||
|
createEmptyCell(headerRow0,headerStyle,1, colCount - 1);
|
||||||
|
cellRangeAddresses.add(new CellRangeAddress(0, 0, 0, colCount - 1));
|
||||||
|
Row headerRow1 = sheet.createRow(1);
|
||||||
|
Cell cell1_0 = headerRow1.createCell(0);
|
||||||
|
cell1_0.setCellValue(getRequiredText(workbook,"产品型号"));
|
||||||
|
cell1_0.setCellStyle(headerStyle);
|
||||||
|
Cell cell1_1 = headerRow1.createCell(1);
|
||||||
|
cell1_1.setCellValue(model.getNo());
|
||||||
|
createEmptyCell(headerRow1,headerStyle,2, colCount - 1);
|
||||||
|
cellRangeAddresses.add(new CellRangeAddress(1, 1, 1, colCount - 1));
|
||||||
|
Row headerRow2 = sheet.createRow(2);
|
||||||
|
Row headerRow3 = sheet.createRow(3);
|
||||||
|
AtomicInteger colStart = new AtomicInteger();
|
||||||
|
AtomicInteger colEnd = new AtomicInteger();
|
||||||
|
for (int i = 0; i < languages.size(); i++) {
|
||||||
|
Language language = languages.get(i);
|
||||||
|
if (i == 0) {
|
||||||
|
colEnd.set(3 + 2 - 1);
|
||||||
|
} else {
|
||||||
|
colStart.set(colEnd.get() + 1);
|
||||||
|
colEnd.addAndGet(3);
|
||||||
|
}
|
||||||
|
Cell cell_row2 = headerRow2.createCell(colStart.get());
|
||||||
|
cell_row2.setCellValue(language.getName());
|
||||||
|
cell_row2.setCellStyle(headerStyle);
|
||||||
|
createEmptyCell(headerRow2,headerStyle,colStart.get()+1, colEnd.get());
|
||||||
|
cellRangeAddresses.add(new CellRangeAddress(2, 2, colStart.get(), colEnd.get()));
|
||||||
|
if (i == 0){
|
||||||
|
Cell cell3_0 = headerRow3.createCell(0);
|
||||||
|
cell3_0.setCellStyle(headerStyle);
|
||||||
|
cell3_0.setCellValue(getRequiredText(workbook,"指标名称"));
|
||||||
|
Cell cell3_1 = headerRow3.createCell(1);
|
||||||
|
cell3_1.setCellStyle(headerStyle);
|
||||||
|
cell3_1.setCellValue(getRequiredText(workbook, "技术参数"));
|
||||||
|
Cell cell3_2 = headerRow3.createCell(2);
|
||||||
|
cell3_2.setCellStyle(headerStyle);
|
||||||
|
cell3_2.setCellValue(getRequiredText(workbook, "参数指标"));
|
||||||
|
Cell cell3_3 = headerRow3.createCell(3);
|
||||||
|
cell3_3.setCellStyle(headerStyle);
|
||||||
|
cell3_3.setCellValue(getRequiredText(workbook, "主要参数"));
|
||||||
|
Cell cell3_4 = headerRow3.createCell(4);
|
||||||
|
cell3_4.setCellStyle(headerStyle);
|
||||||
|
cell3_4.setCellValue(getRequiredText(workbook, "是否参与对比"));
|
||||||
|
} else {
|
||||||
|
Cell cell3_0 = headerRow3.createCell(colStart.get());
|
||||||
|
cell3_0.setCellStyle(headerStyle);
|
||||||
|
cell3_0.setCellValue("指标名称");
|
||||||
|
Cell cell3_1 = headerRow3.createCell(colStart.get() + 1);
|
||||||
|
cell3_1.setCellStyle(headerStyle);
|
||||||
|
cell3_1.setCellValue("技术参数");
|
||||||
|
Cell cell3_2 = headerRow3.createCell(colStart.get() + 2);
|
||||||
|
cell3_2.setCellStyle(headerStyle);
|
||||||
|
cell3_2.setCellValue("参数指标");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollectionUtil.isNotEmpty(paramsItems)){
|
||||||
|
AtomicInteger rowIndex= new AtomicInteger(4);
|
||||||
|
List<ProductModelParamsItem> cnItems=paramsItems.stream().filter(item -> StrUtil.equals(item.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE)).collect(Collectors.toList());
|
||||||
|
Map<String, List<ProductModelParamsItem>> itemMap=cnItems.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getIndexName));
|
||||||
|
AtomicInteger row= new AtomicInteger(rowIndex.get());
|
||||||
|
itemMap.forEach((indexName, itemData) -> {
|
||||||
|
itemData.forEach(mit->{
|
||||||
|
Row dataRow = sheet.createRow(rowIndex.getAndIncrement());
|
||||||
|
List<ProductModelParamsItem> rowItem = paramsItems.stream()
|
||||||
|
.filter(item -> StrUtil.equals(item.getBatchNumber(), mit.getBatchNumber()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
EecExcelUtil.export("设备技术参数", "sheet1", datas, response);
|
for (int i = 0; i < languages.size(); i++) {
|
||||||
|
Language language = languages.get(i);
|
||||||
|
ProductModelParamsItem litem=rowItem.stream().filter(item -> StrUtil.equals(item.getLanguageCode(),language.getCode())).findFirst().orElse(null);
|
||||||
|
if (Objects.nonNull(litem)) {
|
||||||
|
if (i == 0) {
|
||||||
|
cellRangeAddresses.add(new CellRangeAddress(row.get(), row.get() + itemData.size()-1, 0, 0));
|
||||||
|
colStart.set(0);
|
||||||
|
colEnd.set(3 + 2 - 1);
|
||||||
|
Cell dataCell0 = dataRow.createCell(0);
|
||||||
|
dataCell0.setCellValue(litem.getIndexName());
|
||||||
|
dataCell0.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell1 = dataRow.createCell(1);
|
||||||
|
dataCell1.setCellValue(litem.getName());
|
||||||
|
dataCell1.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell2 = dataRow.createCell(2);
|
||||||
|
dataCell2.setCellValue(litem.getValue());
|
||||||
|
dataCell2.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell3 = dataRow.createCell(3);
|
||||||
|
dataCell3.setCellValue(litem.getMain() ? "是" : "否");
|
||||||
|
dataCell3.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell4 = dataRow.createCell(4);
|
||||||
|
dataCell4.setCellValue(litem.getCompare() ? "是" : "否");
|
||||||
|
dataCell4.setCellStyle(dataStyle);
|
||||||
|
} else {
|
||||||
|
colStart.set(colEnd.get() + 1);
|
||||||
|
colEnd.addAndGet(3);
|
||||||
|
cellRangeAddresses.add(new CellRangeAddress(row.get(), row.get() +itemData.size()-1, colStart.get(),colStart.get()));
|
||||||
|
Cell dataCell0 = dataRow.createCell(colStart.get());
|
||||||
|
dataCell0.setCellValue(litem.getIndexName());
|
||||||
|
dataCell0.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell1 = dataRow.createCell(colStart.get() + 1);
|
||||||
|
dataCell1.setCellValue(litem.getName());
|
||||||
|
dataCell1.setCellStyle(dataStyle);
|
||||||
|
Cell dataCell2 = dataRow.createCell(colStart.get() + 2);
|
||||||
|
dataCell2.setCellValue(litem.getValue());
|
||||||
|
dataCell2.setCellStyle(dataStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
row.addAndGet(itemData.size());
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
for (int i = 0; i < colCount; i++) {
|
||||||
|
// sheet.autoSizeColumn(i);
|
||||||
|
sheet.setColumnWidth(i, 15 * 256);
|
||||||
|
}
|
||||||
|
cellRangeAddresses.forEach(sheet::addMergedRegion);
|
||||||
|
workbook.write(response.getOutputStream());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createEmptyCell(Row row,CellStyle style,int colStart,int colEnd){
|
||||||
|
for (int colIndex = colStart; colIndex <= colEnd; colIndex++){
|
||||||
|
Cell cell=row.createCell(colIndex);
|
||||||
|
cell.setCellStyle(style);
|
||||||
|
cell.setCellValue("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private RichTextString getRequiredText(org.apache.poi.ss.usermodel.Workbook workbook,String text){
|
||||||
|
RichTextString richString = workbook.getCreationHelper().createRichTextString("*"+text);
|
||||||
|
Font boldFont = workbook.createFont();
|
||||||
|
boldFont.setBold(true);
|
||||||
|
Font redFont = workbook.createFont();
|
||||||
|
redFont.setColor(IndexedColors.RED.getIndex());
|
||||||
|
redFont.setBold(true);
|
||||||
|
richString.applyFont(boldFont);
|
||||||
|
richString.applyFont(0, 1, redFont);
|
||||||
|
return richString;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -40,7 +40,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.ttzero</groupId>
|
<groupId>org.ttzero</groupId>
|
||||||
<artifactId>eec</artifactId>
|
<artifactId>eec</artifactId>
|
||||||
<version>0.5.21</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.baomidou</groupId>
|
<groupId>com.baomidou</groupId>
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import java.util.List;
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class ProductModelCompareInfoVO {
|
public class ProductModelCompareInfoVO {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机型型号
|
* 机型型号
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ProductPartInfoLanguageVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部件名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型,0-视频;1:图片
|
||||||
|
*/
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片地址
|
||||||
|
*/
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 视频地址
|
||||||
|
*/
|
||||||
|
private String video;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部件介绍
|
||||||
|
*/
|
||||||
|
@TableField(value = "`desc`")
|
||||||
|
private String desc;
|
||||||
|
}
|
||||||
|
|
@ -15,8 +15,8 @@ import org.ttzero.excel.reader.Sheet;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.UnsupportedEncodingException;
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -32,9 +32,9 @@ import java.util.stream.Collectors;
|
||||||
*/
|
*/
|
||||||
public class EecExcelUtil {
|
public class EecExcelUtil {
|
||||||
|
|
||||||
public static void setResponseExcelHeader(HttpServletResponse response, String fileName) throws UnsupportedEncodingException {
|
public static void setResponseExcelHeader(HttpServletResponse response, String fileName) {
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", StandardCharsets.UTF_8));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void eecExcel(String fileName, List<ListSheet> sheets, HttpServletResponse response) throws IOException {
|
public static void eecExcel(String fileName, List<ListSheet> sheets, HttpServletResponse response) throws IOException {
|
||||||
|
|
@ -69,6 +69,14 @@ public class EecExcelUtil {
|
||||||
.writeTo(response.getOutputStream());
|
.writeTo(response.getOutputStream());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> void export(String fileName, org.ttzero.excel.entity.Sheet sheet, HttpServletResponse response) throws IOException {
|
||||||
|
setResponseExcelHeader(response, fileName);
|
||||||
|
new Workbook()
|
||||||
|
.setAutoSize(true)
|
||||||
|
.addSheet(sheet)
|
||||||
|
.writeTo(response.getOutputStream());
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> List<T> readTo(InputStream stream, Class<T> clazz) {
|
public static <T> List<T> readTo(InputStream stream, Class<T> clazz) {
|
||||||
try (ExcelReader reader = ExcelReader.read(stream)) {
|
try (ExcelReader reader = ExcelReader.read(stream)) {
|
||||||
return reader.sheet(0) // 读取第1个Sheet页
|
return reader.sheet(0) // 读取第1个Sheet页
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.BatchDeleteRequest;
|
import com.nflg.mobilebroken.common.pojo.request.BatchDeleteRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.*;
|
import com.nflg.mobilebroken.common.pojo.vo.*;
|
||||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||||
import com.nflg.mobilebroken.repository.service.IProductMobilebrokenIntroService;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
import com.nflg.mobilebroken.repository.service.IProductModelService;
|
|
||||||
import com.nflg.mobilebroken.repository.service.IProductSeriesService;
|
|
||||||
import com.nflg.mobilebroken.repository.service.IProductTypeService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
@ -36,6 +33,9 @@ public class MobilebrokenController extends BaseController{
|
||||||
@Resource
|
@Resource
|
||||||
private IProductMobilebrokenIntroService productMobilebrokenIntroService;
|
private IProductMobilebrokenIntroService productMobilebrokenIntroService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IProductPartService productPartService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取移动破介绍
|
* 获取移动破介绍
|
||||||
*/
|
*/
|
||||||
|
|
@ -66,11 +66,11 @@ public class MobilebrokenController extends BaseController{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取产品类型详情
|
* 获取产品类型详情
|
||||||
* @param typeId 产品类型id
|
* @param typeNumber 产品类型批次号
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getTypeInfo")
|
@GetMapping("/getTypeInfo")
|
||||||
public ApiResult<ProductTypeLanguageInfoVO> getTypeInfo(@Valid @RequestParam @NotNull Integer typeId){
|
public ApiResult<ProductTypeLanguageInfoVO> getTypeInfo(@Valid @RequestParam @NotNull String typeNumber){
|
||||||
return ApiResult.success(productTypeService.getInfoByLanguage(typeId,MultilingualUtil.getLanguage()));
|
return ApiResult.success(productTypeService.getInfoByLanguage(typeNumber,MultilingualUtil.getLanguage()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -104,6 +104,15 @@ public class MobilebrokenController extends BaseController{
|
||||||
return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage()));
|
return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取部件详情
|
||||||
|
* @param id 产品部件id
|
||||||
|
*/
|
||||||
|
@GetMapping("/getPartInfo")
|
||||||
|
public ApiResult<ProductPartInfoLanguageVO> getPartInfo(@Valid @RequestParam @NotNull Integer id) {
|
||||||
|
return ApiResult.success(productPartService.getInfo(id,MultilingualUtil.getLanguage()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机型比较
|
* 机型比较
|
||||||
* @param request 请求参数
|
* @param request 请求参数
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.ProductPartSearchRequest;
|
import com.nflg.mobilebroken.common.pojo.request.ProductPartSearchRequest;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoLanguageVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.ProductPart;
|
import com.nflg.mobilebroken.repository.entity.ProductPart;
|
||||||
|
|
@ -20,4 +21,6 @@ public interface ProductPartMapper extends BaseMapper<ProductPart> {
|
||||||
Page<ProductPartSearchVO> getList(ProductPartSearchRequest request, Page<?> page);
|
Page<ProductPartSearchVO> getList(ProductPartSearchRequest request, Page<?> page);
|
||||||
|
|
||||||
ProductPartInfoVO getInfo(Integer partId);
|
ProductPartInfoVO getInfo(Integer partId);
|
||||||
|
|
||||||
|
ProductPartInfoLanguageVO getInfoByLanguage(Integer partId,String language);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,5 +19,5 @@ public interface ProductTypeInfoMapper extends BaseMapper<ProductTypeInfo> {
|
||||||
|
|
||||||
List<ProductTypeInfoAddRequest> getInfo(Integer typeId);
|
List<ProductTypeInfoAddRequest> getInfo(Integer typeId);
|
||||||
|
|
||||||
ProductTypeLanguageInfoVO getInfoByLanguage(Integer typeId, String language);
|
ProductTypeLanguageInfoVO getInfoByLanguage(String typeNumber, String language);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.nflg.mobilebroken.repository.service;
|
package com.nflg.mobilebroken.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
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.ProductModelMainParamsItemVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductModelMainParamsItemVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductModelParamsItemVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductModelParamsItemVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.ProductModelParamsItem;
|
import com.nflg.mobilebroken.repository.entity.ProductModelParamsItem;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
|
||||||
|
|
@ -47,4 +47,6 @@ public interface IProductModelParamsService extends IService<ProductModelParams>
|
||||||
void copyItems(Integer oldId, Integer newId);
|
void copyItems(Integer oldId, Integer newId);
|
||||||
|
|
||||||
List<ProductModelMainParamsItemChildrenVO> getAListByLanguage(Integer modelId, String language);
|
List<ProductModelMainParamsItemChildrenVO> getAListByLanguage(Integer modelId, String language);
|
||||||
|
|
||||||
|
List<ProductModelMainParamsItemChildrenVO> getCNList(Integer modelId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.service;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoLanguageVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.ProductPart;
|
import com.nflg.mobilebroken.repository.entity.ProductPart;
|
||||||
|
|
@ -28,6 +29,8 @@ public interface IProductPartService extends IService<ProductPart> {
|
||||||
|
|
||||||
ProductPartInfoVO getInfo(@Valid @NotNull Integer partId);
|
ProductPartInfoVO getInfo(@Valid @NotNull Integer partId);
|
||||||
|
|
||||||
|
ProductPartInfoLanguageVO getInfo(@Valid @NotNull Integer partId, String language);
|
||||||
|
|
||||||
void enable(@Valid EnableRequest request);
|
void enable(@Valid EnableRequest request);
|
||||||
|
|
||||||
void delete(@Valid BatchDeleteRequest request);
|
void delete(@Valid BatchDeleteRequest request);
|
||||||
|
|
|
||||||
|
|
@ -28,5 +28,5 @@ public interface IProductTypeInfoService extends IService<ProductTypeInfo> {
|
||||||
|
|
||||||
void delete(@NotEmpty List<Integer> ids);
|
void delete(@NotEmpty List<Integer> ids);
|
||||||
|
|
||||||
ProductTypeLanguageInfoVO getInfoByLanguage(Integer typeId, String language);
|
ProductTypeLanguageInfoVO getInfoByLanguage(String typeNumber, String language);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,5 +48,5 @@ public interface IProductTypeService extends IService<ProductType> {
|
||||||
|
|
||||||
List<ProductFileVO> getFilesByLanguage(@Valid @NotNull Integer moduleId, String seriesNumber, String language);
|
List<ProductFileVO> getFilesByLanguage(@Valid @NotNull Integer moduleId, String seriesNumber, String language);
|
||||||
|
|
||||||
ProductTypeLanguageInfoVO getInfoByLanguage(@Valid @NotNull Integer typeId, String language);
|
ProductTypeLanguageInfoVO getInfoByLanguage(@Valid @NotNull String typeNumber, String language);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ public class LanguageServiceImpl extends ServiceImpl<LanguageMapper, Language> i
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Language> getLanguages() {
|
public List<Language> getLanguages() {
|
||||||
return lambdaQuery().eq(Language::getEnable,true).list();
|
return lambdaQuery().eq(Language::getEnable,true).orderByDesc(Language::getSort).list();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -164,11 +164,14 @@ public class ProductCaseServiceImpl extends ServiceImpl<ProductCaseMapper, Produ
|
||||||
.orderByDesc(ProductCase::getPublishTime)
|
.orderByDesc(ProductCase::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,11 +128,14 @@ public class ProductHonorServiceImpl extends ServiceImpl<ProductHonorMapper, Pro
|
||||||
.orderByDesc(ProductHonor::getPublishTime)
|
.orderByDesc(ProductHonor::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -152,11 +152,14 @@ public class ProductModelFileServiceImpl extends ServiceImpl<ProductModelFileMap
|
||||||
.orderByDesc(ProductModelFile::getPublishTime)
|
.orderByDesc(ProductModelFile::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,11 +109,14 @@ public class ProductModelImageServiceImpl extends ServiceImpl<ProductModelImageM
|
||||||
.orderByDesc(ProductModelImage::getPublishTime)
|
.orderByDesc(ProductModelImage::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.repository.service.impl;
|
package com.nflg.mobilebroken.repository.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
@ -206,4 +207,32 @@ public class ProductModelParamsServiceImpl extends ServiceImpl<ProductModelParam
|
||||||
});
|
});
|
||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProductModelMainParamsItemChildrenVO> getCNList(Integer modelId) {
|
||||||
|
ProductModelParams modelParams=lambdaQuery().eq(ProductModelParams::getModelId, modelId)
|
||||||
|
.ne(ProductModelParams::getState, PublishState.Obsolete.getState())
|
||||||
|
.orderByDesc(ProductModelParams::getState)
|
||||||
|
.last("Limit 1")
|
||||||
|
.one();
|
||||||
|
if (Objects.isNull(modelParams)){
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
List<ProductModelParamsItem> datas = productModelParamsItemService.lambdaQuery()
|
||||||
|
.eq(ProductModelParamsItem::getModelParamsId, modelParams.getId())
|
||||||
|
.eq(ProductModelParamsItem::getLanguageCode, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
|
.list();
|
||||||
|
List<ProductModelMainParamsItemChildrenVO> vos = new ArrayList<>();
|
||||||
|
Map<String, List<ProductModelParamsItem>> itemMap = datas.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getIndexName));
|
||||||
|
itemMap.forEach((indexName, itemData) -> {
|
||||||
|
ProductModelMainParamsItemChildrenVO ivo=new ProductModelMainParamsItemChildrenVO()
|
||||||
|
.setIndexName(indexName)
|
||||||
|
.setItems(itemData.stream()
|
||||||
|
.filter(pi -> StrUtil.isNotBlank(pi.getName()))
|
||||||
|
.map(pi -> Convert.convert(ProductParamsItemVO.class, pi))
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
vos.add(ivo);
|
||||||
|
});
|
||||||
|
return vos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -250,11 +250,14 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
||||||
.orderByDesc(ProductModel::getPublishTime)
|
.orderByDesc(ProductModel::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -394,6 +397,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
||||||
ProductModel productModel = getById(modelId);
|
ProductModel productModel = getById(modelId);
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(productModel)).throwMessage("无效的数据");
|
VUtils.trueThrowBusinessError(Objects.isNull(productModel)).throwMessage("无效的数据");
|
||||||
return new ProductModelCompareInfoVO()
|
return new ProductModelCompareInfoVO()
|
||||||
|
.setId(productModel.getId())
|
||||||
.setNo(productModel.getNo())
|
.setNo(productModel.getNo())
|
||||||
.setImage(productModel.getImage())
|
.setImage(productModel.getImage())
|
||||||
.setParams(productPartParamsService.getAllListByLanguage(modelId, language));
|
.setParams(productPartParamsService.getAllListByLanguage(modelId, language));
|
||||||
|
|
|
||||||
|
|
@ -130,11 +130,14 @@ public class ProductModelVideoServiceImpl extends ServiceImpl<ProductModelVideoM
|
||||||
.orderByDesc(ProductModelVideo::getPublishTime)
|
.orderByDesc(ProductModelVideo::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.nflg.mobilebroken.common.constant.Constant;
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoLanguageVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO;
|
||||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
|
|
@ -86,6 +87,11 @@ public class ProductPartServiceImpl extends ServiceImpl<ProductPartMapper, Produ
|
||||||
return part;
|
return part;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProductPartInfoLanguageVO getInfo(Integer partId, String language) {
|
||||||
|
return baseMapper.getInfoByLanguage(partId, language);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enable(EnableRequest request) {
|
public void enable(EnableRequest request) {
|
||||||
lambdaUpdate()
|
lambdaUpdate()
|
||||||
|
|
|
||||||
|
|
@ -166,11 +166,14 @@ public class ProductSeriesServiceImpl extends ServiceImpl<ProductSeriesMapper, P
|
||||||
.orderByDesc(ProductSeries::getPublishTime)
|
.orderByDesc(ProductSeries::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ public class ProductTypeInfoServiceImpl extends ServiceImpl<ProductTypeInfoMappe
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProductTypeLanguageInfoVO getInfoByLanguage(Integer typeId, String language) {
|
public ProductTypeLanguageInfoVO getInfoByLanguage(String typeNumber, String language) {
|
||||||
return baseMapper.getInfoByLanguage(typeId, language);
|
return baseMapper.getInfoByLanguage(typeNumber, language);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -209,11 +209,14 @@ public class ProductTypeServiceImpl extends ServiceImpl<ProductTypeMapper, Produ
|
||||||
.orderByDesc(ProductType::getPublishTime)
|
.orderByDesc(ProductType::getPublishTime)
|
||||||
.last("Limit 1")
|
.last("Limit 1")
|
||||||
.one();
|
.one();
|
||||||
VUtils.trueThrowBusinessError(Objects.isNull(obsolete)).throwMessage("不能取消该发布");
|
if (Objects.nonNull(obsolete)) {
|
||||||
info.setState(PublishState.Obsolete.getState());
|
|
||||||
obsolete.setState(PublishState.Published.getState());
|
obsolete.setState(PublishState.Published.getState());
|
||||||
|
obsolete.setPublishBy(AdminUserUtil.getUserName());
|
||||||
|
obsolete.setPublishTime(LocalDateTime.now());
|
||||||
updateById(obsolete);
|
updateById(obsolete);
|
||||||
}
|
}
|
||||||
|
info.setState(PublishState.Obsolete.getState());
|
||||||
|
}
|
||||||
updateById(info);
|
updateById(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -305,8 +308,8 @@ public class ProductTypeServiceImpl extends ServiceImpl<ProductTypeMapper, Produ
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProductTypeLanguageInfoVO getInfoByLanguage(Integer typeId, String language) {
|
public ProductTypeLanguageInfoVO getInfoByLanguage(String typeNumber, String language) {
|
||||||
return productTypeInfoService.getInfoByLanguage(typeId,language);
|
return productTypeInfoService.getInfoByLanguage(typeNumber,language);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void delete(Integer typeId){
|
private void delete(Integer typeId){
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="get" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductHonorVO">
|
<select id="get" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductHonorVO">
|
||||||
SELECT YEAR(ph.obtaining_time) AS 'year',ph.title,phi.image
|
SELECT YEAR(ph.obtaining_time) AS 'year',phi.title,phi.image
|
||||||
FROM product_honor ph
|
FROM product_honor ph
|
||||||
LEFT JOIN product_honor_info phi ON phi.honor_id=ph.id AND phi.language_code=#{language}
|
LEFT JOIN product_honor_info phi ON phi.honor_id=ph.id AND phi.language_code=#{language}
|
||||||
WHERE ph.enable=1 AND ph.state=1
|
WHERE ph.enable=1 AND ph.state=1
|
||||||
|
|
|
||||||
|
|
@ -26,4 +26,11 @@
|
||||||
LEFT JOIN product_attr pa on pp.attr_id=pa.id
|
LEFT JOIN product_attr pa on pp.attr_id=pa.id
|
||||||
WHERE pp.id=#{partId}
|
WHERE pp.id=#{partId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getInfoByLanguage" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoLanguageVO">
|
||||||
|
select ppi.*
|
||||||
|
from product_part pp
|
||||||
|
inner join product_part_info ppi on pp.id=ppi.part_id
|
||||||
|
where pp.enable=1 and pp.id=#{partId} and ppi.language_code=#{language}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,6 @@
|
||||||
select pti.*
|
select pti.*
|
||||||
from product_type pt
|
from product_type pt
|
||||||
inner join product_type_info pti on pt.id=pti.type_id
|
inner join product_type_info pti on pt.id=pti.type_id
|
||||||
where pt.state=1 and pt.enable=1 and pt.id=#{typeId} and pti.language_code=#{language}
|
where pt.state=1 and pt.enable=1 and pt.batch_number=#{typeNumber} and pti.language_code=#{language}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -10,7 +10,6 @@ import com.nflg.mobilebroken.starter.handler.UTCLocalDateTimeTypeHandler;
|
||||||
import com.nflg.mobilebroken.starter.handler.UTCLocalDateTypeHandler;
|
import com.nflg.mobilebroken.starter.handler.UTCLocalDateTypeHandler;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.apache.ibatis.type.TypeHandlerRegistry;
|
import org.apache.ibatis.type.TypeHandlerRegistry;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|
@ -26,10 +25,10 @@ import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
@MapperScan(basePackages = MysqlDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
|
//@MapperScan(basePackages = MysqlDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
|
||||||
public class MysqlDataSourceConfig {
|
public class MysqlDataSourceConfig {
|
||||||
|
|
||||||
static final String PACKAGE = "com.nflg.mobilebroken.repository.mapper";
|
// static final String PACKAGE = "com.nflg.mobilebroken.repository.mapper";
|
||||||
static final String MAPPER_LOCATION = "classpath*:mapper/**/*.xml";
|
static final String MAPPER_LOCATION = "classpath*:mapper/**/*.xml";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
6
pom.xml
6
pom.xml
|
|
@ -43,6 +43,7 @@
|
||||||
<weixin.version>4.7.0</weixin.version>
|
<weixin.version>4.7.0</weixin.version>
|
||||||
<zxing.version>3.5.3</zxing.version>
|
<zxing.version>3.5.3</zxing.version>
|
||||||
<oss.version>3.17.4</oss.version>
|
<oss.version>3.17.4</oss.version>
|
||||||
|
<eec.version>0.5.24</eec.version>
|
||||||
</properties>
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -172,6 +173,11 @@
|
||||||
<artifactId>aliyun-sdk-oss</artifactId>
|
<artifactId>aliyun-sdk-oss</artifactId>
|
||||||
<version>${oss.version}</version>
|
<version>${oss.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.ttzero</groupId>
|
||||||
|
<artifactId>eec</artifactId>
|
||||||
|
<version>${eec.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue