Merge branch 'feature/product' into develop

This commit is contained in:
曹鹏飞 2025-06-26 15:57:06 +08:00
commit 225bd41f37
23 changed files with 211 additions and 83 deletions

View File

@ -148,19 +148,61 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeGroupIds>${project.groupId}</excludeGroupIds>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.nflg.mobilebroken.admin.AdminApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>${project.groupId}:*</include>
</includes>
</artifactSet>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -84,10 +84,60 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeGroupIds>${project.groupId}</excludeGroupIds>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.nflg.mobilebroken.cfs.CfsApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>${project.groupId}:*</include>
</includes>
</artifactSet>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -6,6 +6,7 @@ import lombok.Data;
import java.time.LocalDate;
import java.util.List;
import java.util.Objects;
@Data
public class ProductHonorAddRequest {
@ -15,6 +16,13 @@ public class ProductHonorAddRequest {
*/
private LocalDate obtainingTime;
public LocalDate getObtainingTime() {
if(Objects.isNull(obtainingTime)){
return null;
}
return obtainingTime.plusDays(1);
}
/**
* 批次号
*/

View File

@ -1,13 +1,12 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
@ -40,5 +39,6 @@ public class ProductAttrInfo implements Serializable {
/**
* 部件名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
}

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -43,17 +40,19 @@ public class ProductCaseInfo implements Serializable {
/**
* 描述
*/
@TableField(value = "`desc`")
@TableField(value = "`desc`",updateStrategy = FieldStrategy.ALWAYS)
private String desc;
/**
* 视频封面图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**
* 视频地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String video;
/**

View File

@ -1,14 +1,13 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 产品中心-荣誉详情
@ -41,11 +40,13 @@ public class ProductHonorInfo implements Serializable {
/**
* 标题
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String title;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -43,17 +40,19 @@ public class ProductIntroInfo implements Serializable {
/**
* 标题
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 内容
*/
@TableField(value = "`desc`")
@TableField(value = "`desc`",updateStrategy = FieldStrategy.ALWAYS)
private String desc;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -43,7 +40,7 @@ public class ProductMobilebrokenIntroInfo implements Serializable {
/**
* 内容
*/
@TableField(value = "`desc`")
@TableField(value = "`desc`",updateStrategy = FieldStrategy.ALWAYS)
private String desc;
/**

View File

@ -1,8 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -46,10 +44,12 @@ public class ProductModelFileItem implements Serializable {
/**
* 文件名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 是否显示在列表
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Boolean showInList;
}

View File

@ -1,13 +1,12 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 产品中心-产品机型-图片
@ -40,10 +39,12 @@ public class ProductModelImageItem implements Serializable {
/**
* 图片描述
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String content;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
}

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -42,16 +39,18 @@ public class ProductModelIntroItem implements Serializable {
/**
* 机型介绍
*/
@TableField("`desc`")
@TableField(value = "`desc`",updateStrategy = FieldStrategy.ALWAYS)
private String desc;
/**
* 机型特点
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String feature;
/**
* 机型亮点
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String merits;
}

View File

@ -1,8 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -42,31 +40,37 @@ public class ProductModelParamsItem implements Serializable {
/**
* 指标名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String indexName;
/**
* 批次号
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String batchNumber;
/**
* 参数名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 参数值
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String value;
/**
* 是否主要参数
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Boolean main;
/**
* 是否参与比较
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Boolean compare;
/**

View File

@ -1,13 +1,12 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 产品中心-产品机型-视频
@ -40,15 +39,18 @@ public class ProductModelVideoItem implements Serializable {
/**
* 视频地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String video;
/**
* 视频描述
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String content;
/**
* 视频封面地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
}

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -42,26 +39,30 @@ public class ProductPartInfo implements Serializable {
/**
* 部件名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 类型0-视频1图片
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Integer type;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**
* 视频地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String video;
/**
* 部件介绍
*/
@TableField(value = "`desc`")
@TableField(value = "`desc`",updateStrategy = FieldStrategy.ALWAYS)
private String desc;
}

View File

@ -1,9 +1,6 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -43,12 +40,13 @@ public class ProductPartParams implements Serializable {
/**
* 字典值id
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Integer dictionaryItemId;
/**
* 参数值
*/
@TableField(value = "`value`")
@TableField(value = "`value`",updateStrategy = FieldStrategy.ALWAYS)
private String value;
/**

View File

@ -1,14 +1,13 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 产品中心-产品系列详情
@ -41,16 +40,19 @@ public class ProductSeriesInfo implements Serializable {
/**
* 名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**
* 内容
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String content;
/**

View File

@ -1,14 +1,13 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 产品中心-产品机型-文件
@ -41,21 +40,25 @@ public class ProductTypeFile implements Serializable {
/**
* 文件名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 文件后缀
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String type;
/**
* 下载地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String url;
/**
* 文件大小单位KB
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Integer size;
/**

View File

@ -1,14 +1,13 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 产品中心-产品类型详情
@ -41,21 +40,25 @@ public class ProductTypeInfo implements Serializable {
/**
* 名称
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String name;
/**
* 类型介绍
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String content;
/**
* 机型说明
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String modelDesc;
/**
* 图片地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String image;
/**

View File

@ -48,9 +48,10 @@ public class ProductPartInfoServiceImpl extends ServiceImpl<ProductPartInfoMappe
@Override
public void update(List<ProductPartInfoAddRequest> items) {
if (CollectionUtil.isNotEmpty(items)) {
saveBatch(
updateBatchById(
items.stream()
.map(it -> new ProductPartInfo()
.setId(it.getId())
.setName(it.getName())
.setDesc(it.getDesc())
.setImage(it.getImage())

View File

@ -19,7 +19,7 @@
AND pi.publish_time&lt;=#{request.endTime}
</if>
</where>
ORDER BY pi.state,pi.sort,pi.dictionary_item_id DESC,pi.publish_time DESC,pi.id DESC
ORDER BY pi.state,pi.publish_time DESC,pi.dictionary_item_id DESC,pi.id DESC
</select>
<select id="get" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductIntroVO">

View File

@ -40,7 +40,7 @@
AND pm.no LIKE CONCAT('%', #{request.no}, '%')
</if>
</where>
ORDER BY pm.state,pm.sort,pm.publish_time DESC
ORDER BY pm.state,pm.publish_time DESC,pm.series_number,pm.type_number,pm.id DESC
</select>
<select id="get" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductModelVO">

View File

@ -30,7 +30,7 @@
AND pt.name LIKE CONCAT('%', #{request.name}, '%')
</if>
</where>
ORDER BY pt.state,pt.sort,pt.series_number,pt.name,pt.publish_time DESC
ORDER BY pt.state,pt.publish_time DESC,pt.series_number,pt.id DESC
</select>
<select id="get" resultType="com.nflg.mobilebroken.common.pojo.vo.ProductTypeVO">

18
pom.xml
View File

@ -204,6 +204,24 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.4</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>