diff --git a/ruoyi-modules/ruoyi-product/.gitignore b/ruoyi-modules/ruoyi-product/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/ruoyi-modules/ruoyi-product/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/ruoyi-modules/ruoyi-product/pom.xml b/ruoyi-modules/ruoyi-product/pom.xml new file mode 100644 index 0000000..44651f5 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/pom.xml @@ -0,0 +1,123 @@ + + + 4.0.0 + com.ruoyi + ruoyi-product + 0.0.1-SNAPSHOT + ruoyi-product + ruoyi-product商品管理模块 + + com.ruoyi + ruoyi-modules + 3.6.3 + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.ruoyi + ruoyi-common-datasource + + + + + com.ruoyi + ruoyi-common-datascope + + + + + + + + com.ruoyi + ruoyi-common-swagger + + + org.projectlombok + lombok + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + com.ruoyi.product.RuoyiProductApplication + true + + + + repackage + + repackage + + + + + + + + diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/GlobalExceptionHandler.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/GlobalExceptionHandler.java new file mode 100644 index 0000000..83e32e2 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/GlobalExceptionHandler.java @@ -0,0 +1,160 @@ +package com.ruoyi.product; + +import com.ruoyi.common.core.constant.HttpStatus; +import com.ruoyi.common.core.exception.DemoModeException; +import com.ruoyi.common.core.exception.InnerAuthException; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.exception.auth.NotPermissionException; +import com.ruoyi.common.core.exception.auth.NotRoleException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.validation.BindException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingPathVariableException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; + +import javax.servlet.http.HttpServletRequest; + +/** + * 全局异常处理器 + * + * @author ruoyi + */ +@RestControllerAdvice +public class GlobalExceptionHandler +{ + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + /** + * 权限码异常 + */ + @ExceptionHandler(NotPermissionException.class) + public AjaxResult handleNotPermissionException(NotPermissionException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权"); + } + + /** + * 角色权限异常 + */ + @ExceptionHandler(NotRoleException.class) + public AjaxResult handleNotRoleException(NotRoleException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权"); + } + + /** + * 请求方式不支持 + */ + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public AjaxResult handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod()); + return AjaxResult.error(e.getMessage()); + } + + /** + * 业务异常 + */ + @ExceptionHandler(ServiceException.class) + public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request) + { + log.error(e.getMessage(), e); + Integer code = e.getCode(); + return StringUtils.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage()); + } + + /** + * 请求路径中缺少必需的路径变量 + */ + @ExceptionHandler(MissingPathVariableException.class) + public AjaxResult handleMissingPathVariableException(MissingPathVariableException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求路径中缺少必需的路径变量'{}',发生系统异常.", requestURI, e); + return AjaxResult.error(String.format("请求路径中缺少必需的路径变量[%s]", e.getVariableName())); + } + + /** + * 请求参数类型不匹配 + */ + @ExceptionHandler(MethodArgumentTypeMismatchException.class) + public AjaxResult handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求参数类型不匹配'{}',发生系统异常.", requestURI, e); + return AjaxResult.error(String.format("请求参数类型不匹配,参数[%s]要求类型为:'%s',但输入值为:'%s'", e.getName(), e.getRequiredType().getName(), e.getValue())); + } + + /** + * 拦截未知的运行时异常 + */ + @ExceptionHandler(RuntimeException.class) + public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',发生未知异常.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } + + /** + * 系统异常 + */ + @ExceptionHandler(Exception.class) + public AjaxResult handleException(Exception e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',发生系统异常.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } + + /** + * 自定义验证异常 + */ + @ExceptionHandler(BindException.class) + public AjaxResult handleBindException(BindException e) + { + log.error(e.getMessage(), e); + String message = e.getAllErrors().get(0).getDefaultMessage(); + return AjaxResult.error(message); + } + + /** + * 自定义验证异常 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) + { + log.error(e.getMessage(), e); + String message = e.getBindingResult().getFieldError().getDefaultMessage(); + return AjaxResult.error(message); + } + + /** + * 内部认证异常 + */ + @ExceptionHandler(InnerAuthException.class) + public AjaxResult handleInnerAuthException(InnerAuthException e) + { + return AjaxResult.error(e.getMessage()); + } + + /** + * 演示模式异常 + */ + @ExceptionHandler(DemoModeException.class) + public AjaxResult handleDemoModeException(DemoModeException e) + { + return AjaxResult.error("演示模式,不允许操作"); + } +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/RuoyiProductApplication.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/RuoyiProductApplication.java new file mode 100644 index 0000000..94091c5 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/RuoyiProductApplication.java @@ -0,0 +1,19 @@ +package com.ruoyi.product; + +import com.ruoyi.common.security.annotation.EnableCustomConfig; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableRyFeignClients +@SpringBootApplication +public class RuoyiProductApplication { + + public static void main(String[] args) { + SpringApplication.run(RuoyiProductApplication.class, args); + } + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/BrandController.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/BrandController.java new file mode 100644 index 0000000..8280954 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/BrandController.java @@ -0,0 +1,35 @@ +package com.ruoyi.product.controller; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.product.domain.req.BrandReq; +import com.ruoyi.product.service.BrandService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName BrandController + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 20:55 + */ +@RestController +@RequestMapping("/brand") +@Api(tags = "品牌信息") +public class BrandController { + + @Autowired + private BrandService brandService; + + + @PostMapping("/brandInsert") + public RbrandInsert(@RequestBody BrandReq brandReq){ + brandService.brandInsert(brandReq); + + return R.ok(); + } + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductClassFyController.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductClassFyController.java new file mode 100644 index 0000000..395bc09 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductClassFyController.java @@ -0,0 +1,37 @@ +package com.ruoyi.product.controller; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.product.domain.req.ProductClassifyReq; +import com.ruoyi.product.service.ProductClassFyService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName ProductClassiFy + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/27 20:37 + */ + +@RestController +@RequestMapping("/productClassFy") +@Api(tags = "商品分类") +public class ProductClassFyController { + + @Autowired + private ProductClassFyService productClassFyService; + + + @PostMapping("/productClassFyInsert") + @ApiOperation("添加商品分类") + public R productClassFyInsert(@RequestBody ProductClassifyReq productClassifyReq){ + productClassFyService.productClassFyInsert(productClassifyReq); + return R.ok(); + } + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductController.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductController.java new file mode 100644 index 0000000..d7c7f2b --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/controller/ProductController.java @@ -0,0 +1,44 @@ +package com.ruoyi.product.controller; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.product.domain.req.ProductReq; +import com.ruoyi.product.service.ProductService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.math3.stat.descriptive.summary.Product; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName ProductController + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 19:07 + */ +@RestController +@RequestMapping("/product") +@Api(tags = "商品管理") +public class ProductController { + + + @Autowired + private ProductService productService; + + + @PostMapping("/save") + @ApiOperation("商品信息添加") + public R save(@RequestBody ProductReq productReq){ + productService.save(productReq); + + return R.ok(); + } + + + + + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/favorable/PreferentialType.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/favorable/PreferentialType.java new file mode 100644 index 0000000..6bc5317 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/favorable/PreferentialType.java @@ -0,0 +1,42 @@ +package com.ruoyi.product.domain.favorable; + +public enum PreferentialType { + + NO_PROMOTION(0,"无优惠"), + + USE_PROMOTION_PRICE(1, "使用促销价"), + + USE_MEMBER_PRICE(2,"会员价"), + + USE_STEP_PRICE(3,"阶梯价格"), + + USE_DISCOUNT_PRICE(4,"满减价格"); + + + private Integer code; + + + private String description; + + + PreferentialType(Integer code, String description) { + this.code = code; + this.description = description; + } + + public Integer getCode() { + return code; + } + + public String getDescription() { + return description; + } + public static PreferentialType valueOf(Integer code){ + for (PreferentialType type : values()) { + if (type.code == code) { + return type; + } + } + throw new IllegalArgumentException("Invalid PreferentialType code: " + code); + } +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/BrandReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/BrandReq.java new file mode 100644 index 0000000..596fbec --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/BrandReq.java @@ -0,0 +1,46 @@ +package com.ruoyi.product.domain.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import lombok.Data; + +/** + * @ClassName BrandReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 21:01 + */ +@Data +@ApiModel(description = "品牌信息实体类") +public class BrandReq { + + @ApiModelProperty(value = "品牌id") + private Integer id; + + @ApiModelProperty(value = "品牌名称") + private String brandName; + + @ApiModelProperty(value = "品牌首字母") + private String brandFirstLetter; + + @ApiModelProperty(value = "排序") + private int sort; + + @ApiModelProperty(value = "品牌制造商 0-是 1-否") + private int brandManufacturer; + + @ApiModelProperty(value = "品牌故事") + private String brandStory; + + @ApiModelProperty(value = "品牌logo") + private String brandLogo; + + @ApiModelProperty(value = "品牌专区大图") + private String brandSpecialArea; + + @ApiModelProperty(value = "是否显示 0-显示 1-不显示") + private int isShow; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/FullSubtractionReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/FullSubtractionReq.java new file mode 100644 index 0000000..23787cb --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/FullSubtractionReq.java @@ -0,0 +1,32 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName FullSubtractionReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:14 + */ + + +@Data +@ApiModel(description = "满减价格实体类") +public class FullSubtractionReq { + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "满多少钱") + private double fullPrice; + + @ApiModelProperty(value = "立减多少钱") + private double subtractionPrice; + + @ApiModelProperty(value = "商品ID") + private int shopId; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/MemberReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/MemberReq.java new file mode 100644 index 0000000..e3f40cf --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/MemberReq.java @@ -0,0 +1,25 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; + +/** + * @ClassName MemberReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:23 + */ +@Data +@ApiModel(value = "会员类型实体类") +public class MemberReq{ + + @ApiModelProperty(value = "ID") + private Integer id; + + @ApiModelProperty(value = "会员类型名称") + private String memberName; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductBrandReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductBrandReq.java new file mode 100644 index 0000000..a472266 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductBrandReq.java @@ -0,0 +1,47 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ProductBrandReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:26 + */ + + +@Data +@ApiModel(description = "商品品牌实体类") +public class ProductBrandReq{ + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "品牌名称") + private String brandName; + + @ApiModelProperty(value = "品牌首字母") + private String brandFirstLetter; + + @ApiModelProperty(value = "排序") + private int sort; + + @ApiModelProperty(value = "品牌制造商 0-是 1-否") + private int brandManufacturer; + + @ApiModelProperty(value = "品牌故事") + private String brandStory; + + @ApiModelProperty(value = "品牌logo") + private String brandLogo; + + @ApiModelProperty(value = "品牌专区大图") + private String brandSpecialArea; + + @ApiModelProperty(value = "是否显示 0-显示 1-不显示") + private int isShow; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductClassifyReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductClassifyReq.java new file mode 100644 index 0000000..f8421a3 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductClassifyReq.java @@ -0,0 +1,45 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ProductClassifyReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:28 + */ +@Data +@ApiModel(value = "商品分类表") +public class ProductClassifyReq { + @ApiModelProperty(value = "ID") + private String id; + + @ApiModelProperty(value = "分类名称") + private String classifyName; + + @ApiModelProperty(value = "分类级别") + private String classifyLevel; + + @ApiModelProperty(value = "数量单位") + private String classifyUnit; + + @ApiModelProperty(value = "导航栏 0-显示 1-不显示") + private String classifyNavigation; + + @ApiModelProperty(value = "是否显示 0-显示 1-不显示") + private String isShow; + + @ApiModelProperty(value = "排序") + private String sort; + + @ApiModelProperty(value = "父级ID") + private String parentId; + + @ApiModelProperty(value = "分类图标") + private String classifyIco; + + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductGuaranteeLinkReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductGuaranteeLinkReq.java new file mode 100644 index 0000000..d4c524a --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductGuaranteeLinkReq.java @@ -0,0 +1,27 @@ +package com.ruoyi.product.domain.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ProductGuaranteeLink + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:35 + */ + +@Data +@ApiModel(description = "商品服务保证关联实体类") +public class ProductGuaranteeLinkReq { + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "商品ID") + private int productId; + + @ApiModelProperty(value = "服务保证ID") + private int serviceGuarantee; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductImg.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductImg.java new file mode 100644 index 0000000..e5081d5 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductImg.java @@ -0,0 +1,29 @@ +package com.ruoyi.product.domain.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; + +/** + * @ClassName ProductImg + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:39 + */ +@Data +@ApiModel(value = "商品图片表") +public class ProductImg { + + @ApiModelProperty(value = "ID") + private Integer id; + + @ApiModelProperty(value = "商品ID") + private Integer productId; + + @ApiModelProperty(value = "商品图片") + private String imgUrl; + + + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductReq.java new file mode 100644 index 0000000..bf3a64a --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ProductReq.java @@ -0,0 +1,124 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ApiModel(description = "商品表") +public class ProductReq{ + @ApiModelProperty(value = "商品ID") + private Long id; + + @ApiModelProperty(value = "商品类型ID") + @NotNull(message = "商品类型不能为空") + private Integer productClassifyId; + + @ApiModelProperty(value = "商品名称") + @NotBlank(message = "商品名称不能为空") + private String productName; + + @ApiModelProperty(value = "副标题") + @NotBlank(message = "商品副标题不能为空") + private String productSubhead; + + @ApiModelProperty(value = "商品品牌ID") + private Integer productBrandId; + + @ApiModelProperty(value = "商品介绍") + private String productIntroduce; + + @ApiModelProperty(value = "商品货号") + @NotNull(message = "商品货号不能为空") + private Long productNo; + + @ApiModelProperty(value = "计量单位") + private String productUnit; + + @ApiModelProperty(value = "商品重量") + private Double productWeight; + + @ApiModelProperty(value = "排序") + private Integer productSort; + + @ApiModelProperty(value = "赠送积分") + private Integer bonusPoints; + + @ApiModelProperty(value = "赠送成长值") + private Integer bonusGrowth; + + @ApiModelProperty(value = "积分购买限制") + private Integer pointsPurchase; + + @ApiModelProperty(value = "预告商品 0-是 1-否") + private Integer isAdvance; + + @ApiModelProperty(value = "是否上架 0-是 1-否") + private Integer isPutaway; + + @ApiModelProperty(value = "是否新品 0-是 1-否") + private Integer isNew; + + @ApiModelProperty(value = "是否推荐 0-是 1-否") + private Integer isRecommend; + + @ApiModelProperty(value = "详细页标题") + @NotBlank(message = "详细页标题不能为空") + private String detailTitle; + + @ApiModelProperty(value = "详细页描述") + @NotBlank(message = "描述不能为空") + private String detailDescribe; + + @ApiModelProperty(value = "商品关键字") + private String detailKey; + + @ApiModelProperty(value = "商品备注") + private String detailRemark; + + + + @ApiModelProperty(value = "优惠方式类型,0,1,2,3") + private Integer offersType; + + @ApiModelProperty(value = "会员价格,当offersType为xxx时传") + private ShopMemberReq shopMemberReq; + + @ApiModelProperty(value = "满减价格,当offersType为xxx时传") + private FullSubtractionReq fullSubtractionReq; + + @ApiModelProperty(value = "阶梯价格,当offersType为xxx时传") + private ShopLadderReq shopLadderReq; + + @ApiModelProperty(value = "特惠促销,当offersType为xxx时传") + private SpecialOffersReq specialOffersReq; + + + + @ApiModelProperty(value = "优惠ID") + private Integer offersId; + + @ApiModelProperty(value = "商品分类ID") + private Integer productTypeId; + + @ApiModelProperty(value = "商品详情PC端") + private String pcProductDetail; + + @ApiModelProperty(value = "商品详情移动端") + private String mobileProductDetail; + + @ApiModelProperty(value = "服务保证") + private ListserviceGuaranteeList; + + + @ApiModelProperty(value = "商品相册") + @NotEmpty(message = "商品相册不能为空") + private ListproductImg; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopLadderReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopLadderReq.java new file mode 100644 index 0000000..32e5f9d --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopLadderReq.java @@ -0,0 +1,32 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ShopLadderReq + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:09 + */ + + +@Data +@ApiModel(description = "阶梯价格实体类") +public class ShopLadderReq { + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "阶梯数量") + private int ladderNum; + + @ApiModelProperty(value = "阶梯折扣") + private int ladderDiscount; + + @ApiModelProperty(value = "商品ID") + private int shopId; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopMemberReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopMemberReq.java new file mode 100644 index 0000000..2185e3b --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/ShopMemberReq.java @@ -0,0 +1,34 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName ShopMember + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:12 + */ + + +@Data +@ApiModel(description = "会员价格表") +public class ShopMemberReq { + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "会员类型ID") + private Integer memberTypeId; + + @ApiModelProperty(value = "优惠价格") + private BigDecimal offersPrice; + + @ApiModelProperty(value = "商品ID") + private Integer shopId; + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/SpecialOffersReq.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/SpecialOffersReq.java new file mode 100644 index 0000000..ab3d68d --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/domain/req/SpecialOffersReq.java @@ -0,0 +1,34 @@ +package com.ruoyi.product.domain.req; + +import com.ruoyi.common.core.domain.ProductMetadata; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName SpecialOffers + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 15:07 + */ + +@Data +@ApiModel(description = "特惠促销实体类") +public class SpecialOffersReq{ + + @ApiModelProperty(value = "ID") + private int id; + + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "优惠价格") + private double offersPrice; + + +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/BrandMapper.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/BrandMapper.java new file mode 100644 index 0000000..e66d698 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/BrandMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.product.mapper; + +import com.ruoyi.product.domain.req.BrandReq; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ClassName BrandMapper + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 21:06 + */ +@Mapper +public interface BrandMapper { + void brandInsert(BrandReq brandReq); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductClassFyMapper.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductClassFyMapper.java new file mode 100644 index 0000000..aed254a --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductClassFyMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.product.mapper; + +import com.ruoyi.product.domain.req.ProductClassifyReq; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ClassName ProductClassFyMapper + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/27 20:38 + */ +@Mapper +public interface ProductClassFyMapper { + void productClassFyInsert(ProductClassifyReq productClassifyReq); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductMapper.java new file mode 100644 index 0000000..95217ef --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/ProductMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.product.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @ClassName ProductMapper + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 19:07 + */ +@Mapper +public interface ProductMapper { + + Integer selectClassById(@Param("classifyId") Integer classifyId); + + String selectByProductName(@Param("productName") String productName); + + String selectDetailDescribe(@Param("detailDescribe") String detailDescribe); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/SaveMapper.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/SaveMapper.java new file mode 100644 index 0000000..a427515 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/mapper/SaveMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.product.mapper; + +import com.ruoyi.product.domain.req.ProductReq; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ClassName SaveMapper + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 20:33 + */ +@Mapper +public interface SaveMapper { + void save(ProductReq productReq); + + void bachProduct(ProductReq productReq1); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/BrandService.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/BrandService.java new file mode 100644 index 0000000..aebe3e3 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/BrandService.java @@ -0,0 +1,13 @@ +package com.ruoyi.product.service; + +import com.ruoyi.product.domain.req.BrandReq; + +/** + * @ClassName BrandService + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 20:56 + */ +public interface BrandService { + void brandInsert(BrandReq brandReq); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductClassFyService.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductClassFyService.java new file mode 100644 index 0000000..b457ede --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductClassFyService.java @@ -0,0 +1,13 @@ +package com.ruoyi.product.service; + +import com.ruoyi.product.domain.req.ProductClassifyReq; + +/** + * @ClassName ProductClassFyService + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/27 20:38 + */ +public interface ProductClassFyService { + void productClassFyInsert(ProductClassifyReq productClassifyReq); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductService.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductService.java new file mode 100644 index 0000000..d4ac6c2 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/ProductService.java @@ -0,0 +1,13 @@ +package com.ruoyi.product.service; + +import com.ruoyi.product.domain.req.ProductReq; + +/** + * @ClassName ProductService + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 19:07 + */ +public interface ProductService { + void save(ProductReq productReq); +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/BrandServiceImpl.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/BrandServiceImpl.java new file mode 100644 index 0000000..181a120 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/BrandServiceImpl.java @@ -0,0 +1,29 @@ +package com.ruoyi.product.service.impl; + +import com.ruoyi.product.domain.req.BrandReq; +import com.ruoyi.product.mapper.BrandMapper; +import com.ruoyi.product.service.BrandService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @ClassName BrandServiceImpl + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 20:56 + */ +@Service +@Slf4j +public class BrandServiceImpl implements BrandService { + + @Autowired + private BrandMapper brandMapper; + @Override + public void brandInsert(BrandReq brandReq) { + + brandMapper.brandInsert(brandReq); + + + } +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductClassFyServiceImpl.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductClassFyServiceImpl.java new file mode 100644 index 0000000..b721ea6 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductClassFyServiceImpl.java @@ -0,0 +1,26 @@ +package com.ruoyi.product.service.impl; + +import com.ruoyi.product.domain.req.ProductClassifyReq; +import com.ruoyi.product.mapper.ProductClassFyMapper; +import com.ruoyi.product.service.ProductClassFyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @ClassName ProductClassFyServiceImpl + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/27 20:38 + */ +@Service +public class ProductClassFyServiceImpl implements ProductClassFyService { + + @Autowired + private ProductClassFyMapper productClassFyMapper; + @Override + public void productClassFyInsert(ProductClassifyReq productClassifyReq) { + + productClassFyMapper.productClassFyInsert(productClassifyReq); + + } +} diff --git a/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductServiceImpl.java b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductServiceImpl.java new file mode 100644 index 0000000..9dfdf72 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/java/com/ruoyi/product/service/impl/ProductServiceImpl.java @@ -0,0 +1,114 @@ +package com.ruoyi.product.service.impl; + +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.product.domain.favorable.PreferentialType; +import com.ruoyi.product.domain.req.ProductReq; +import com.ruoyi.product.domain.req.SpecialOffersReq; +import com.ruoyi.product.mapper.ProductMapper; +import com.ruoyi.product.mapper.SaveMapper; +import com.ruoyi.product.service.ProductService; +import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName ProductServiceImpl + * @Description 描述 + * @Author YunXiang.Li + * @Date 2024/3/26 19:08 + */ +@Service +@Slf4j +public class ProductServiceImpl implements ProductService { + @Autowired + private ProductMapper productMapper; + + @Autowired + private SaveMapper saveMapper; + + + @Override + @Transactional + public void save(ProductReq productReq) { + + //参数校验 + ParameterCheck(productReq); + + saveMapper.save(productReq); + + + ArrayList reqs = new ArrayList<>(); + + reqs.forEach(productReq1 -> { + productReq1.setProductName(productReq.getProductName()); + productReq1.setProductClassifyId(productReq.getProductClassifyId()); + productReq1.setProductSubhead(productReq.getProductSubhead()); + + saveMapper.bachProduct(productReq1); + }); + + + + + } + + private void ParameterCheck(ProductReq productReq) { + + //校验类型是否存在 + Integer classifyId = productReq.getProductClassifyId(); + //去数据库搜索商品类型id是否存在 + Integer count=productMapper.selectClassById(classifyId); + if(count==0){ + log.info("id不存在:{}",classifyId); + throw new ServiceException("商品类型id不存在"); + } + + //校验商品名称是否存在 + String productName = productReq.getProductName(); + //数据库查询商品名称 + String name=productMapper.selectByProductName(productName); + if(name==null){ + log.info("商品名称不存在:{}",productName); + } + + //校验详细页标题 + String detailDescribe = productReq.getDetailDescribe(); + //查询详细页标题是否存在 + String describe=productMapper.selectDetailDescribe(detailDescribe); + if(describe==null){ + log.info("详细页标题不存在:{}",detailDescribe); + } + + //校验商品副标题 + String productSubhead = productReq.getProductSubhead(); + if(productSubhead!=null||"".equals(productSubhead)){ + log.info("商品副标题:{}",productSubhead+"不能为空"); + } + + //校验商品货号 + Long productNo = productReq.getProductNo(); + + if(productNo==null){ + log.info("商品货号:{}",productNo+"不能为空"); + } + + //校验商品相册 + List productImg = productReq.getProductImg(); + //查询相册是否存在 + if(productImg==null){ + log.info("相册不存在:{}",productImg); + } + + if(PreferentialType.NO_PROMOTION.getCode()==productReq.getOffersType()){ + + SpecialOffersReq specialOffersReq = productReq.getSpecialOffersReq(); + + } + + } +} diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-product/src/main/resources/banner.txt new file mode 100644 index 0000000..fbd45f5 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ + (_) | | + _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ +| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ +| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | +|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| + __/ | __/ | + |___/ |___/ \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-product/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..e57cd61 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/bootstrap.yml @@ -0,0 +1,28 @@ +# Tomcat +server: + port: 9203 + +# Spring +spring: + mvc: + pathmatch: + matching-strategy: ant_path_matcher + application: + # 应用名称 + name: ruoyi-product + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 122.51.27.196:8848 + config: + # 配置中心地址 + server-addr: 122.51.27.196:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-product/src/main/resources/logback.xml new file mode 100644 index 0000000..0154e28 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/mapper/BrandMapper.xml b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/BrandMapper.xml new file mode 100644 index 0000000..6965d6d --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/BrandMapper.xml @@ -0,0 +1,17 @@ + + + + + + INSERT INTO `commodity_management`.`t_product_brand` + (`brand_name`, `brand_first_letter`, `sort`, `brand_manufacturer`, `brand_story`, + `brand_logo`, + `brand_special_area`, `is_show`) + VALUES + ( #{brandName}, #{brandFirstLetter}, 0, #{brandManufacturer}, #{brandStory}, + #{brandLogo}, #{brandSpecialArea}, 0) + + + diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductClassFyMapper.xml b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductClassFyMapper.xml new file mode 100644 index 0000000..1c8e431 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductClassFyMapper.xml @@ -0,0 +1,14 @@ + + + + + + INSERT INTO `commodity_management`.`t_product_classify` + ( `classify_name`, `classify_level`, `classify_unit`, `classify_navigation`, + `is_show`, `sort`, `parent_id`, `classify_ico`) + VALUES ( #{classifyName}, #{classifyLevel}, #{classifyUnit}, 0, #{isShow}, #{sort}, #{parentId}, #{classifyIco}) + + + diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductMapper.xml b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductMapper.xml new file mode 100644 index 0000000..af95cb9 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/ProductMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-product/src/main/resources/mapper/SaveMapper.xml b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/SaveMapper.xml new file mode 100644 index 0000000..e1f5ed6 --- /dev/null +++ b/ruoyi-modules/ruoyi-product/src/main/resources/mapper/SaveMapper.xml @@ -0,0 +1,46 @@ + + + + + INSERT INTO `commodity_management`.`t_product` + (`product_classify_id`, `product_name`, `product_subhead`, + `product_brand_id`, `product_introduce`, `product_no`, + `product_unit`, `product_weight`, `product_sort`, + `bonus_points`, `bonus_growth`, `points_purchase`, + `is_advance`, `is_putaway`, `is_new`, `is_recommend`, + `detail_title`, `detail_describe`, `detail_key`, + `detail_remark`, `offers_type`, `offers_id`, `create_time`, + `update_time`, `is_delete`, `create_by`, `product_type_id`, + `pc_product_detail`, `mobile_product_detail`, `product_img`) + VALUES + ( #{productClassifyId}, #{productName}, #{productSubhead}, + #{productBrandId}, #{productIntroduce}, #{productNo}, + #{productUnit}, #{productWeight}, 0, + 0, 0, 0, + #{isAdvance}, #{isPutaway}, #{isNew}, + #{isRecommend}, #{detailTitle}, #{detailDescribe}, + #{detailKey}, #{detailRemark}, #{offersType}, + #{offersId}, now(), now(), + 0, 1, #{productTypeId}, + #{pcProductDetail}, #{mobileProductDetail}, #{productImg}) + + + + INSERT INTO `commodity_management`.`t_product` + (`product_classify_id`, `product_name`, `product_subhead`, + `product_brand_id`, `product_introduce`, `product_no`, + `product_unit`, `product_weight`, `product_sort`, + `bonus_points`, `bonus_growth`, `points_purchase`, + `is_advance`, `is_putaway`, `is_new`, `is_recommend`, + `detail_title`, `detail_describe`, `detail_key`, + `detail_remark`, `offers_type`, `offers_id`, `create_time`, + `update_time`, `is_delete`, `create_by`, `product_type_id`, + `pc_product_detail`, `mobile_product_detail`, `product_img`) + VALUES + + + + + diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 67d7d7a..22a2ee9 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -8,76 +8,81 @@ 3.6.3 4.0.0 - + ruoyi-modules-system ruoyi-modules-system系统模块 - + - + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - + com.alibaba.cloud spring-cloud-starter-alibaba-sentinel - + org.springframework.boot spring-boot-starter-actuator - + io.springfox springfox-swagger-ui ${swagger.fox.version} - + com.mysql mysql-connector-j - + com.ruoyi ruoyi-common-datasource - + com.ruoyi ruoyi-common-datascope - + com.ruoyi ruoyi-common-log - + + + + com.ruoyi ruoyi-common-swagger + + @@ -96,5 +101,5 @@ - - \ No newline at end of file + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index 40ab781..5230638 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ server: port: 9201 # Spring -spring: +spring: application: # 应用名称 name: ruoyi-system @@ -14,10 +14,10 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 122.51.27.196:8848 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 122.51.27.196:8848 # 配置文件格式 file-extension: yml # 共享配置