ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheConstants.java
@@ -61,4 +61,13 @@ * 修改密码验证码 redis key */ public static final String CHANGE_PASSWORD_CAPTCHA_CODE_KEY = "change_password_captcha_codes:"; /** * 省市区列表key */ public static final String REGION_LIST = "region_list"; /** * 省市区列表key */ public static final String CITY_LIST = "city_list"; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsBrandDTO.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.goods.controller.mamagement.DTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import javax.validation.constraints.NotBlank; import lombok.Data; /** * @author mitao * @date 2024/5/20 */ @Data @ApiModel(value = "商品品牌数据传输对象", description = "商品品牌数据传输对象") public class GoodsBrandDTO implements Serializable { private static final long serialVersionUID = -286811516688205647L; @ApiModelProperty(value = "商品品牌标题id", notes = "更新必传,新增不传") private Long id; @ApiModelProperty(value = "品牌名称") @NotBlank(message = "品牌名称不能为空") private String brandName; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsBrandQuery.java
New file @@ -0,0 +1,23 @@ package com.ruoyi.goods.controller.mamagement.DTO; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author mitao * @date 2024/5/20 */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "商品品牌查询对象", description = "商品品牌查询对象") public class GoodsBrandQuery extends BasePage { private static final long serialVersionUID = -9081467149921424812L; @ApiModelProperty(value = "品牌名称") private String brandName; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/GoodsInfoTitleDTO.java @@ -1,9 +1,9 @@ package com.ruoyi.goods.domain.dto; package com.ruoyi.goods.controller.mamagement.DTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import lombok.Data; /** @@ -12,10 +12,11 @@ */ @Data @ApiModel(value = "商品信息标题数据传输对象", description = "商品信息标题数据传输对象") public class GoodsInfoTitleDTO { public class GoodsInfoTitleDTO implements Serializable { @ApiModelProperty(value = "商品信息标题id") @NotNull(message = "商品信息标题id不能为空") private static final long serialVersionUID = 6084831651904070948L; @ApiModelProperty(value = "商品信息标题id", notes = "更新必传,新增不传") private Long id; @ApiModelProperty(value = "标题名称") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/query/GoodsInfoTitleQuery.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.query; package com.ruoyi.goods.controller.mamagement.DTO; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleValueDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/GoodsInfoTitleValueDTO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.dto; package com.ruoyi.goods.controller.mamagement.DTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSkuDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/GoodsSkuDTO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.dto; package com.ruoyi.goods.controller.mamagement.DTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSkuQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/query/GoodsSkuQuery.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.query; package com.ruoyi.goods.controller.mamagement.DTO; import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.common.core.web.page.BasePage; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsBrandController.java
@@ -1,7 +1,21 @@ package com.ruoyi.goods.controller.mamagement; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO; import com.ruoyi.goods.service.IGoodsBrandService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; 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; @@ -13,9 +27,54 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RestController @RequestMapping("/mgt/goods-brand") @RequiredArgsConstructor @Api(value = "管理后台商品品牌相关接口", tags = {"管理后台接口"}) public class MgtGoodsBrandController { private final IGoodsBrandService goodsBrandService; /** * 获取商品品牌列表的分页数据 * * @param query 商品信息查询对象,用于指定分页查询的条件 * @return 返回一个包含商品品牌分页数据的结果对象,其中包含了分页信息和商品品牌列表 */ @ApiOperation(value = "获取商品品牌列表的分页数据", notes = "获取商品品牌列表的分页数据") @PostMapping("/page") public R<PageDTO<GoodsBrandVO>> getGoodsBrandPage( @Validated @RequestBody GoodsBrandQuery query) { return R.ok(goodsBrandService.getGoodsBrandPage(query)); } /** * 添加/编辑商品品牌 * * @param dto 商品品牌数据传输对象,包含商品品牌的详细信息,通过验证后将数据持久化。 * @return 返回操作结果,如果操作成功,返回一个成功的标识。 */ @ApiOperation(value = "添加/编辑 商品品牌", notes = "添加/编辑 商品品牌") @PostMapping("/save") public R<Void> saveGoodsBrand(@Validated @RequestBody GoodsBrandDTO dto) { // 调用服务层方法,保存商品品牌信息 goodsBrandService.saveGoodsBrand(dto); return R.ok(); } /** * 删除商品品牌 * * @param id 商品品牌的ID,用于指定要删除的品牌 * @return 返回操作结果,如果删除成功,则返回成功状态 */ @ApiOperation(value = "删除商品品牌", notes = "删除商品品牌") @DeleteMapping("/{id}") public R<Void> deleteGoodsBrand(@PathVariable("id") Long id) { // 通过ID删除商品品牌 goodsBrandService.removeById(id); return R.ok(); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsCategoryController.java
@@ -1,6 +1,9 @@ package com.ruoyi.goods.controller.mamagement; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,6 +15,9 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RequiredArgsConstructor @Api(value = "管理后台商品分类相关接口", tags = {"管理后台接口"}) @RestController @RequestMapping("/mgt/goods-category") public class MgtGoodsCategoryController { ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsFlavorTypeController.java
@@ -1,6 +1,9 @@ package com.ruoyi.goods.controller.mamagement; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,8 +15,11 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/mgt/goods-flavor-type") @Api(value = "管理后台商品香型相关接口", tags = {"管理后台接口"}) public class MgtGoodsFlavorTypeController { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsGroupPurchaseController.java
@@ -1,6 +1,9 @@ package com.ruoyi.goods.controller.mamagement; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,8 +15,11 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/mgt/goods-group-purchase") @Api(value = "管理后台商品团购相关接口", tags = {"管理后台接口"}) public class MgtGoodsGroupPurchaseController { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsInfoTitleController.java
@@ -3,9 +3,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsInfoTitleDTO; import com.ruoyi.goods.domain.query.GoodsInfoTitleQuery; import com.ruoyi.goods.domain.vo.GoodsInfoTitleVO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO; import com.ruoyi.goods.service.IGoodsInfoTitleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -71,7 +71,7 @@ @ApiOperation("删除商品信息标题") @DeleteMapping("/{id}") public R<Void> deleteGoodsInfoTitle(@PathVariable("id") Long id) { goodsInfoTitleService.deleteGoodsInfoTitle(id); goodsInfoTitleService.removeById(id); return R.ok(); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSeckillController.java
@@ -1,6 +1,9 @@ package com.ruoyi.goods.controller.mamagement; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,8 +15,11 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/mgt/goods-seckill") @Api(value = "管理后台商品秒杀相关接口", tags = {"管理后台接口"}) public class MgtGoodsSeckillController { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSeriesController.java
@@ -1,6 +1,9 @@ package com.ruoyi.goods.controller.mamagement; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,8 +15,11 @@ * @author mitao * @since 2024-05-16 */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/mgt/goods-series") @Api(value = "管理后台商品秒杀相关接口", tags = {"管理后台接口"}) public class MgtGoodsSeriesController { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSkuController.java
@@ -4,20 +4,19 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsSkuDTO; import com.ruoyi.goods.domain.query.GoodsInfoTitleQuery; import com.ruoyi.goods.domain.query.GoodsSkuQuery; import com.ruoyi.goods.domain.vo.GoodsBrandVO; import com.ruoyi.goods.domain.vo.GoodsCategoryVO; import com.ruoyi.goods.domain.vo.GoodsFlavorTypeVO; import com.ruoyi.goods.domain.vo.GoodsInfoTitleVO; import com.ruoyi.goods.domain.vo.GoodsSeriesVO; import com.ruoyi.goods.domain.vo.GoodsSkuVO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO; import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO; import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO; import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO; import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO; import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO; import com.ruoyi.goods.service.IGoodsBrandService; import com.ruoyi.goods.service.IGoodsCategoryService; import com.ruoyi.goods.service.IGoodsFlavorTypeService; import com.ruoyi.goods.service.IGoodsInfoTitleService; import com.ruoyi.goods.service.IGoodsInfoTitleValueService; import com.ruoyi.goods.service.IGoodsSeriesService; import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.system.api.domain.dto.ListStatusDTO; @@ -55,7 +54,6 @@ private final IGoodsCategoryService goodsCategoryService; private final IGoodsInfoTitleService goodsInfoTitleService; private final IGoodsFlavorTypeService goodsFlavorTypeService; private final IGoodsInfoTitleValueService goodsInfoTitleValueService; /** * 获取商品分类列表的接口 该接口不需要接收任何参数,调用后返回商品分类的列表信息。 @@ -152,7 +150,7 @@ } /** * 更新商品状态,实现商品的下架或上架。 * 更新商品状态,实现商品下架或上架。 * * @param dto 包含需要更新状态的商品信息的数据传输对象,类型为 ListStatusDTO。 * @return 返回一个表示操作结果的 R<Void> 对象,如果操作成功,则 R<Void>.ok() 方法返回一个成功标记。 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsBrandVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsBrandVO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsCategoryVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsCategoryVO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsFlavorTypeVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsFlavorTypeVO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsInfoTitleVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsInfoTitleVO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsSeriesVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsSeriesVO.java @@ -1,4 +1,4 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsSkuVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/GoodsSkuVO.java @@ -1,7 +1,7 @@ package com.ruoyi.goods.domain.vo; package com.ruoyi.goods.controller.mamagement.VO; import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.goods.domain.dto.GoodsInfoTitleValueDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleValueDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java
@@ -1,8 +1,11 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO; import com.ruoyi.goods.domain.pojo.GoodsBrand; import com.ruoyi.goods.domain.vo.GoodsBrandVO; import java.util.List; /** @@ -15,5 +18,28 @@ */ public interface IGoodsBrandService extends IService<GoodsBrand> { /** * 获取商品品牌列表。 * <p>此方法通过调用{@code list()}方法获取原始列表,并使用BeanUtils的{@code copyList}方法将其复制为{@code * GoodsBrandVO}类型的列表后返回。</p> * * @return 返回一个{@code GoodsBrandVO}类型的列表,包含商品品牌信息。 */ List<GoodsBrandVO> getGoodsBrandList(); /** * 获取商品品牌的分页信息 * * @param query 包含查询条件和分页信息的查询对象 * @return 返回商品品牌分页DTO,包含分页信息和品牌列表 */ PageDTO<GoodsBrandVO> getGoodsBrandPage(GoodsBrandQuery query); /** * 保存或更新商品品牌信息。 * * @param dto 商品品牌数据传输对象,包含商品品牌的信息。 如果dto中的id为空,则认为是新品牌,调用save方法保存; * 如果id不为空,则认为是更新已有品牌,调用updateById方法更新。 */ void saveGoodsBrand(GoodsBrandDTO dto); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java
@@ -1,8 +1,8 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO; import com.ruoyi.goods.domain.pojo.GoodsCategory; import com.ruoyi.goods.domain.vo.GoodsCategoryVO; import java.util.List; /** ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java
@@ -1,8 +1,8 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO; import com.ruoyi.goods.domain.pojo.GoodsFlavorType; import com.ruoyi.goods.domain.vo.GoodsFlavorTypeVO; import java.util.List; /** ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java
@@ -2,10 +2,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsInfoTitleDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO; import com.ruoyi.goods.domain.pojo.GoodsInfoTitle; import com.ruoyi.goods.domain.query.GoodsInfoTitleQuery; import com.ruoyi.goods.domain.vo.GoodsInfoTitleVO; /** * <p> @@ -29,15 +29,7 @@ * 保存或更新商品信息标题。 * * @param dto 商品信息标题数据传输对象,包含商品标题的信息。 如果dto中的id为空,则认为是新纪录,执行保存操作; 如果id不为空,则认为是更新现有纪录。 * @return 无返回值。 */ void saveGoodsInfoTitle(GoodsInfoTitleDTO dto); /** * 删除商品信息标题 * * @param id 商品信息的唯一标识符 * @return 无返回值 */ void deleteGoodsInfoTitle(Long id); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java
@@ -1,8 +1,8 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO; import com.ruoyi.goods.domain.pojo.GoodsSeries; import com.ruoyi.goods.domain.vo.GoodsSeriesVO; import java.util.List; /** ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
@@ -3,10 +3,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsSkuDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO; import com.ruoyi.goods.domain.pojo.GoodsSku; import com.ruoyi.goods.domain.query.GoodsSkuQuery; import com.ruoyi.goods.domain.vo.GoodsSkuVO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; /** ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java
@@ -1,9 +1,14 @@ package com.ruoyi.goods.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO; import com.ruoyi.goods.domain.pojo.GoodsBrand; import com.ruoyi.goods.domain.vo.GoodsBrandVO; import com.ruoyi.goods.mapper.GoodsBrandMapper; import com.ruoyi.goods.service.IGoodsBrandService; import java.util.List; @@ -33,4 +38,41 @@ return BeanUtils.copyList(this.list(), GoodsBrandVO.class); } /** * 获取商品品牌的分页信息 * * @param query 包含查询条件和分页信息的查询对象 * @return 返回商品品牌分页DTO,包含分页信息和品牌列表 */ @Override public PageDTO<GoodsBrandVO> getGoodsBrandPage(GoodsBrandQuery query) { // 根据查询条件进行品牌查询,并分页 Page<GoodsBrand> page = this.lambdaQuery() .like(StringUtils.isNotEmpty(query.getBrandName()), GoodsBrand::getBrandName, query.getBrandName()) .page(new Page<GoodsBrand>(query.getPageCurr(), query.getPageSize())); // 将查询结果转换为VO类的分页DTO return PageDTO.of(page, GoodsBrandVO.class); } /** * 保存或更新商品品牌信息。 * * @param dto 商品品牌数据传输对象,包含商品品牌的信息。 如果dto中的id为空,则认为是新品牌,调用save方法保存; * 如果id不为空,则认为是更新已有品牌,调用updateById方法更新。 * @return 无返回值 */ @Override public void saveGoodsBrand(GoodsBrandDTO dto) { // 将DTO对象复制到实体对象中 GoodsBrand goodsBrand = BeanUtils.copyBean(dto, GoodsBrand.class); // 判断DTO中的ID是否为空,决定是保存还是更新操作 if (StringUtils.isNull(dto.getId())) { this.save(goodsBrand); // 保存新品牌 } else { this.updateById(goodsBrand); // 更新已有品牌 } } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java
@@ -2,8 +2,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO; import com.ruoyi.goods.domain.pojo.GoodsCategory; import com.ruoyi.goods.domain.vo.GoodsCategoryVO; import com.ruoyi.goods.mapper.GoodsCategoryMapper; import com.ruoyi.goods.service.IGoodsCategoryService; import java.util.List; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java
@@ -2,8 +2,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO; import com.ruoyi.goods.domain.pojo.GoodsFlavorType; import com.ruoyi.goods.domain.vo.GoodsFlavorTypeVO; import com.ruoyi.goods.mapper.GoodsFlavorTypeMapper; import com.ruoyi.goods.service.IGoodsFlavorTypeService; import java.util.List; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java
@@ -5,10 +5,10 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsInfoTitleDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO; import com.ruoyi.goods.domain.pojo.GoodsInfoTitle; import com.ruoyi.goods.domain.query.GoodsInfoTitleQuery; import com.ruoyi.goods.domain.vo.GoodsInfoTitleVO; import com.ruoyi.goods.mapper.GoodsInfoTitleMapper; import com.ruoyi.goods.service.IGoodsInfoTitleService; import org.springframework.stereotype.Service; @@ -36,7 +36,7 @@ Page<GoodsInfoTitle> page = this.lambdaQuery() .like(StringUtils.isNotEmpty(query.getTitleName()), GoodsInfoTitle::getTitleName, query.getTitleName()) .page(new Page<GoodsInfoTitle>(query.getPageCurr(), query.getPageSize())); .page(new Page<>(query.getPageCurr(), query.getPageSize())); // 将查询结果转换为VO对象的分页DTO返回 return PageDTO.of(page, GoodsInfoTitleVO.class); } @@ -45,7 +45,6 @@ * 保存或更新商品信息标题。 * * @param dto 商品信息标题数据传输对象,包含商品标题的信息。 如果dto中的id为空,则认为是新纪录,执行保存操作; 如果id不为空,则认为是更新现有纪录。 * @return 无返回值。 */ @Override public void saveGoodsInfoTitle(GoodsInfoTitleDTO dto) { @@ -57,16 +56,5 @@ } else { this.updateById(goodsInfoTitle); // 更新现有纪录 } } /** * 删除商品信息标题 * * @param id 商品信息的唯一标识符 * @return 无返回值 */ @Override public void deleteGoodsInfoTitle(Long id) { this.removeById(id); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java
@@ -2,8 +2,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO; import com.ruoyi.goods.domain.pojo.GoodsSeries; import com.ruoyi.goods.domain.vo.GoodsSeriesVO; import com.ruoyi.goods.mapper.GoodsSeriesMapper; import com.ruoyi.goods.service.IGoodsSeriesService; import java.util.List; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -10,12 +10,12 @@ import com.ruoyi.common.core.utils.page.Checker; import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.dto.GoodsInfoTitleValueDTO; import com.ruoyi.goods.domain.dto.GoodsSkuDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleValueDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO; import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery; import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO; import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue; import com.ruoyi.goods.domain.pojo.GoodsSku; import com.ruoyi.goods.domain.query.GoodsSkuQuery; import com.ruoyi.goods.domain.vo.GoodsSkuVO; import com.ruoyi.goods.mapper.GoodsSkuMapper; import com.ruoyi.goods.service.IGoodsInfoTitleValueService; import com.ruoyi.goods.service.IGoodsSkuService; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/Region.java
New file @@ -0,0 +1,54 @@ package com.ruoyi.member.domain.pojo; 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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 省市区三级联动 * </p> * * @author mitao * @since 2024-05-21 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_region") @ApiModel(value = "Region对象", description = "省市区三级联动") public class Region implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键ID") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "城市名称") @TableField("name") private String name; @TableField("code") private String code; @TableField("citycode") private String citycode; @ApiModelProperty(value = "父级ID") @TableField("parent_id") private Integer parentId; @ApiModelProperty(value = "英文名称") @TableField("english") private String english; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/RegionVo.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.member.domain.vo; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.Data; @Data public class RegionVo { @ApiModelProperty(value = "区域代码") private String value; @ApiModelProperty(value = "区域名称") private String label; @ApiModelProperty(value = "子级列表") private List<RegionVo> children; @ApiModelProperty(value = "id") private Long id; @ApiModelProperty(value = "父级id") private Long parentId; @ApiModelProperty(value = "层级") private Integer level; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/RegionMapper.java
New file @@ -0,0 +1,19 @@ package com.ruoyi.member.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.member.domain.pojo.Region; import com.ruoyi.member.domain.vo.RegionVo; import java.util.List; /** * <p> * 省市区三级联动 Mapper 接口 * </p> * * @author mitao * @since 2024-05-21 */ public interface RegionMapper extends BaseMapper<Region> { List<RegionVo> listRegionVo(); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IRegionService.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.member.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.pojo.Region; import com.ruoyi.member.domain.vo.RegionVo; import java.util.List; /** * <p> * 省市区三级联动 服务类 * </p> * * @author mitao * @since 2024-05-21 */ public interface IRegionService extends IService<Region> { List<RegionVo> listRegionVo(); List<RegionVo> listCityVo(); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/RegionServiceImpl.java
New file @@ -0,0 +1,171 @@ package com.ruoyi.member.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.member.domain.pojo.Region; import com.ruoyi.member.domain.vo.RegionVo; import com.ruoyi.member.mapper.RegionMapper; import com.ruoyi.member.service.IRegionService; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; /** * <p> * 省市区三级联动 服务实现类 * </p> * * @author mitao * @since 2024-05-21 */ @Service public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService { @Resource private RegionMapper regionMapper; @Resource private RedisService redisService; /** * 列出所有城市信息的视图对象。 * <p> * 该方法首先尝试从Redis缓存中获取城市列表,如果缓存存在则直接返回缓存数据。 如果缓存不存在,则从数据库中查询城市信息,进行处理并构建地区层级关系后, * 将结果存储到Redis缓存中,并返回处理后的数据。 * * @return 返回包含城市信息的视图对象列表,这些视图对象已经按照地区级别组织好。 */ @Override public List<RegionVo> listCityVo() { if (redisService.hasKey(CacheConstants.CITY_LIST)) { // 如果存在,则直接从缓存中获取并返回 List<RegionVo> result = redisService.getCacheList(CacheConstants.CITY_LIST); return result; } else { // 如果不存在,则从数据库中查询并进行处理 List<RegionVo> regionVoList = regionMapper.listRegionVo(); List<RegionVo> regionVoList1 = new ArrayList<>(); List<RegionVo> regionVoList2 = new ArrayList<>(); List<RegionVo> regionVoList3 = new ArrayList<>(); // 将地区按照级别分别存放到不同的列表中 for (RegionVo regionVo : regionVoList) { if (regionVo.getLevel() == 1) { regionVoList1.add(regionVo); } if (regionVo.getLevel() == 2) { regionVoList2.add(regionVo); } if (regionVo.getLevel() == 3) { regionVoList3.add(regionVo); } } RegionVo children; Iterator<RegionVo> regionVoIterator2; for (RegionVo regionVo : regionVoList2) { if (null == regionVo.getChildren()) { regionVo.setChildren(new ArrayList<>()); } regionVoIterator2 = regionVoList3.iterator(); while (regionVoIterator2.hasNext()) { children = regionVoIterator2.next(); if (regionVo.getId().equals(children.getParentId())) { regionVo.getChildren().add(children); regionVoIterator2.remove(); } } } // 将第二级地区挂到第一级地区下面 for (RegionVo regionVo : regionVoList1) { if (null == regionVo.getChildren()) { regionVo.setChildren(new ArrayList<>()); } regionVoIterator2 = regionVoList2.iterator(); while (regionVoIterator2.hasNext()) { children = regionVoIterator2.next(); if (regionVo.getId().equals(children.getParentId())) { regionVo.getChildren().add(children); regionVoIterator2.remove(); } } } // 将处理后的地区列表存入缓存中 redisService.setCacheList(CacheConstants.CITY_LIST, regionVoList1); // 返回处理后的地区列表 return regionVoList1; } } /** * 列出所有地区信息的视图对象。 * <p> * 该方法首先尝试从缓存中获取地区信息列表。如果缓存中不存在,则从数据库中查询地区信息, 并按照级别将地区分类,构建地区层级关系,并将处理后的地区列表存入缓存。 * * @return 返回包含所有地区信息的视图对象列表,列表中的地区已按照级别分类并建立父子关系。 */ @Override public List<RegionVo> listRegionVo() { if (redisService.hasKey(CacheConstants.REGION_LIST)) { // 如果存在,则直接从缓存中获取并返回 List<RegionVo> result = redisService.getCacheList(CacheConstants.REGION_LIST); return result; } else { // 如果不存在,则从数据库中查询并进行处理 List<RegionVo> regionVoList = regionMapper.listRegionVo(); List<RegionVo> regionVoList1 = new ArrayList<>(); List<RegionVo> regionVoList2 = new ArrayList<>(); List<RegionVo> regionVoList3 = new ArrayList<>(); // 将地区按照级别分别存放到不同的列表中 for (RegionVo regionVo : regionVoList) { if (regionVo.getLevel() == 1) { regionVoList1.add(regionVo); } if (regionVo.getLevel() == 2) { regionVoList2.add(regionVo); } if (regionVo.getLevel() == 3) { regionVoList3.add(regionVo); } } Iterator<RegionVo> regionVoIterator3; RegionVo children; // 将第三级地区挂到第二级地区下面 for (RegionVo regionVo : regionVoList2) { if (null == regionVo.getChildren()) { regionVo.setChildren(new ArrayList<>()); } regionVoIterator3 = regionVoList3.iterator(); while (regionVoIterator3.hasNext()) { children = regionVoIterator3.next(); if (regionVo.getId().equals(children.getParentId())) { regionVo.getChildren().add(children); regionVoIterator3.remove(); } } } Iterator<RegionVo> regionVoIterator2; // 将第二级地区挂到第一级地区下面 for (RegionVo regionVo : regionVoList1) { if (null == regionVo.getChildren()) { regionVo.setChildren(new ArrayList<>()); } regionVoIterator2 = regionVoList2.iterator(); while (regionVoIterator2.hasNext()) { children = regionVoIterator2.next(); if (regionVo.getId().equals(children.getParentId())) { regionVo.getChildren().add(children); regionVoIterator2.remove(); } } } // 将处理后的地区列表存入缓存中 redisService.setCacheList(CacheConstants.REGION_LIST, regionVoList1); // 返回处理后的地区列表 return regionVoList1; } } } ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.member.mapper.MemberMapper"> </mapper> ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/RegionMapper.xml
New file @@ -0,0 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.member.mapper.RegionMapper"> <select id="listRegionVo" resultType="com.ruoyi.member.domain.vo.RegionVo"> SELECT tr.id id, tr.parent_id parentId, tr.level level, tr.code value, tr.name label FROM t_region tr </select> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/OrderAuction.java
@@ -41,17 +41,11 @@ @ApiModelProperty(value = "拍卖场id") private Long auctionSalesroomId; @ApiModelProperty(value = "商品id") private Long goodsSkuId; @ApiModelProperty(value = "拍卖商品id") private Long salesroomGoodsId; @ApiModelProperty(value = "所属拍卖场") private String auctionSaleroomName; @ApiModelProperty(value = "商品名称") private String goodsSkuName; @ApiModelProperty(value = "商品封面图") private String goodsCoverPic; @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/OrderMall.java
@@ -41,14 +41,8 @@ @ApiModelProperty(value = "订单id") private Long orderId; @ApiModelProperty(value = "商品id") @ApiModelProperty(value = "商品id/秒杀商品id/团购商品id") private Long goodsSkuId; @ApiModelProperty(value = "商品名称") private String goodsSkuName; @ApiModelProperty(value = "商品封面图") private String goodsCoverPic; @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/AddCompanyUserDto.java
File was deleted