From b81f80971ff4889f47d5ebfa1c2ffbb8d0ecfa6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 25 Jul 2024 19:21:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=95=86=E5=93=81=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/WebsiteController.java | 1 - .../com/gxwebsoft/cms/entity/Website.java | 11 +- .../common/core/config/MybatisPlusConfig.java | 10 +- .../shop/controller/GoodsController.java | 28 +++ .../shop/controller/SpecController.java | 52 +++-- .../java/com/gxwebsoft/shop/entity/Goods.java | 5 +- .../java/com/gxwebsoft/shop/entity/Spec.java | 32 +-- .../com/gxwebsoft/shop/mapper/SpecMapper.java | 4 +- .../gxwebsoft/shop/mapper/xml/GoodsMapper.xml | 184 +++++++++--------- .../shop/mapper/xml/MerchantAccountMapper.xml | 2 + .../gxwebsoft/shop/mapper/xml/SpecMapper.xml | 26 ++- .../com/gxwebsoft/shop/param/GoodsParam.java | 10 +- .../com/gxwebsoft/shop/param/SpecParam.java | 34 +++- .../gxwebsoft/shop/service/SpecService.java | 6 +- .../shop/service/impl/GoodsServiceImpl.java | 25 ++- .../shop/service/impl/SpecServiceImpl.java | 21 +- .../gxwebsoft/shop/task/OrderInfoTask.java | 4 +- .../com/gxwebsoft/generator/CmsGenerator.java | 2 +- .../gxwebsoft/generator/ShopGenerator.java | 24 ++- 19 files changed, 305 insertions(+), 176 deletions(-) diff --git a/src/main/java/com/gxwebsoft/cms/controller/WebsiteController.java b/src/main/java/com/gxwebsoft/cms/controller/WebsiteController.java index 19e70fc..544f3db 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/WebsiteController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/WebsiteController.java @@ -438,7 +438,6 @@ public class WebsiteController extends BaseController { return success("清除失败"); } - @PreAuthorize("hasAuthority('cms:website:list')") @ApiOperation("分页查询网站信息记录表") @GetMapping("/page") public ApiResult> page(WebsiteParam param) { diff --git a/src/main/java/com/gxwebsoft/cms/entity/Website.java b/src/main/java/com/gxwebsoft/cms/entity/Website.java index 6244622..e5b0989 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/Website.java +++ b/src/main/java/com/gxwebsoft/cms/entity/Website.java @@ -48,12 +48,21 @@ public class Website implements Serializable { @ApiModelProperty(value = "网站类型") private String websiteType; + @ApiModelProperty(value = "域名前缀") + private String prefix; + @ApiModelProperty(value = "绑定域名") private String domain; + @ApiModelProperty(value = "后台管理地址") + private String adminUrl; + @ApiModelProperty(value = "网站关键词") private String keywords; + @ApiModelProperty(value = "当前版本") + private Integer version; + @ApiModelProperty(value = "服务到期时间") private Date expirationTime; @@ -109,7 +118,7 @@ public class Website implements Serializable { private Integer recommend; @ApiModelProperty(value = "状态") - private Boolean status; + private Integer status; @ApiModelProperty(value = "排序号") private Integer sortNumber; diff --git a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java index ab8e1cf..8073135 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java @@ -63,11 +63,11 @@ public class MybatisPlusConfig { "sys_tenant", "sys_dictionary", "sys_dictionary_data", - "apps_test_data", - "shop_users", - "shop_order", - "shop_order_info", - "booking_user_invoice" + "apps_test_data" +// "shop_users", +// "shop_order", +// "shop_order_info", +// "booking_user_invoice" ).contains(tableName); } }; diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java index 6606396..7f5d2b9 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java @@ -2,7 +2,9 @@ package com.gxwebsoft.shop.controller; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.oa.entity.App; import com.gxwebsoft.shop.entity.GoodsSku; import com.gxwebsoft.shop.entity.GoodsSpec; import com.gxwebsoft.shop.entity.SpecValue; @@ -25,7 +27,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -45,6 +49,30 @@ public class GoodsController extends BaseController { @Resource private GoodsSkuService goodsSkuService; + @ApiOperation("统计信息") + @GetMapping("/data") + public ApiResult> data() { + Map data = new HashMap<>(); + Integer totalNum = goodsService.count( + new LambdaQueryWrapper().eq(Goods::getIsShow,1).gt(Goods::getStock,0) + ); + Integer totalNum2 = goodsService.count( + new LambdaQueryWrapper().eq(Goods::getIsShow,0) + ); + Integer totalNum3 = goodsService.count( + new LambdaQueryWrapper().eq(Goods::getStock,0) + ); + + data.put("totalNum", totalNum); + data.put("totalNum2", totalNum2); + data.put("totalNum3", totalNum3); + + // 下架已售罄的商品 + goodsService.update(new LambdaUpdateWrapper().eq(Goods::getStock,0).eq(Goods::getIsShow,1).set(Goods::getIsShow,0)); + + return success(data); + } + @ApiOperation("分页查询商品记录表") @GetMapping("/page") public ApiResult> page(GoodsParam param) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/SpecController.java b/src/main/java/com/gxwebsoft/shop/controller/SpecController.java index 79fd0e7..16c408d 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/SpecController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/SpecController.java @@ -1,59 +1,66 @@ package com.gxwebsoft.shop.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.service.SpecService; import com.gxwebsoft.shop.entity.Spec; import com.gxwebsoft.shop.param.SpecParam; -import com.gxwebsoft.shop.service.SpecService; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** - * 商品规格控制器 + * 规格控制器 * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ -@Api(tags = "商品规格管理") +@Api(tags = "规格管理") @RestController @RequestMapping("/api/shop/spec") public class SpecController extends BaseController { @Resource private SpecService specService; - @ApiOperation("分页查询商品规格") + @ApiOperation("分页查询规格") @GetMapping("/page") public ApiResult> page(SpecParam param) { // 使用关联查询 return success(specService.pageRel(param)); } - @ApiOperation("查询全部商品规格") + @ApiOperation("查询全部规格") @GetMapping() public ApiResult> list(SpecParam param) { // 使用关联查询 return success(specService.listRel(param)); } - @ApiOperation("根据id查询商品规格") + @PreAuthorize("hasAuthority('shop:spec:list')") + @ApiOperation("根据id查询规格") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { // 使用关联查询 return success(specService.getByIdRel(id)); } - @ApiOperation("添加商品规格") + @PreAuthorize("hasAuthority('shop:spec:save')") + @ApiOperation("添加规格") @PostMapping() public ApiResult save(@RequestBody Spec spec) { - if (specService.count(new LambdaQueryWrapper().eq(Spec::getSpecName,spec.getSpecName())) > 0) { - return fail("规格名称已存在"); + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + spec.setUserId(loginUser.getUserId()); } if (specService.save(spec)) { return success("添加成功"); @@ -61,7 +68,8 @@ public class SpecController extends BaseController { return fail("添加失败"); } - @ApiOperation("修改商品规格") + @PreAuthorize("hasAuthority('shop:spec:update')") + @ApiOperation("修改规格") @PutMapping() public ApiResult update(@RequestBody Spec spec) { if (specService.updateById(spec)) { @@ -70,7 +78,8 @@ public class SpecController extends BaseController { return fail("修改失败"); } - @ApiOperation("删除商品规格") + @PreAuthorize("hasAuthority('shop:spec:remove')") + @ApiOperation("删除规格") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (specService.removeById(id)) { @@ -79,7 +88,8 @@ public class SpecController extends BaseController { return fail("删除失败"); } - @ApiOperation("批量添加商品规格") + @PreAuthorize("hasAuthority('shop:spec:save')") + @ApiOperation("批量添加规格") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (specService.saveBatch(list)) { @@ -88,7 +98,9 @@ public class SpecController extends BaseController { return fail("添加失败"); } - @ApiOperation("批量修改商品规格") + + @PreAuthorize("hasAuthority('shop:spec:update')") + @ApiOperation("批量修改规格") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { if (batchParam.update(specService, "spec_id")) { @@ -96,8 +108,8 @@ public class SpecController extends BaseController { } return fail("修改失败"); } - - @ApiOperation("批量删除商品规格") + @PreAuthorize("hasAuthority('shop:spec:remove')") + @ApiOperation("批量删除规格") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (specService.removeByIds(ids)) { diff --git a/src/main/java/com/gxwebsoft/shop/entity/Goods.java b/src/main/java/com/gxwebsoft/shop/entity/Goods.java index 13c99b0..1a9fbaa 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Goods.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Goods.java @@ -85,7 +85,10 @@ public class Goods implements Serializable { @ApiModelProperty(value = "推荐") private Integer recommend; - @ApiModelProperty(value = "状态, 0正常, 1待修,2异常已修,3异常未修") + @ApiModelProperty(value = "1上架 0下架") + private Integer isShow; + + @ApiModelProperty(value = "状态, 0上架 1下架 2待审核 3审核不通过") private Integer status; @ApiModelProperty(value = "备注") diff --git a/src/main/java/com/gxwebsoft/shop/entity/Spec.java b/src/main/java/com/gxwebsoft/shop/entity/Spec.java index 87e2c0c..c8b9779 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Spec.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Spec.java @@ -1,13 +1,11 @@ package com.gxwebsoft.shop.entity; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; -import java.util.List; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -15,39 +13,47 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 商品规格组记录表 + * 规格 * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "Spec对象", description = "商品规格组记录表") +@ApiModel(value = "Spec对象", description = "规格") @TableName("shop_spec") public class Spec implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "规格组ID") + @ApiModelProperty(value = "规格ID") @TableId(value = "spec_id", type = IdType.AUTO) private Integer specId; - @ApiModelProperty(value = "规格组名称") + @ApiModelProperty(value = "规格名称") private String specName; + @ApiModelProperty(value = "规格值") + private String specValue; + + @ApiModelProperty(value = "创建用户") + private Integer userId; + + @ApiModelProperty(value = "更新者") + private Integer updater; + @ApiModelProperty(value = "备注") private String comments; + @ApiModelProperty(value = "状态, 0正常, 1待修,2异常已修,3异常未修") + private Integer status; + @ApiModelProperty(value = "排序号") private Integer sortNumber; - @ApiModelProperty(value = "状态, 0正常, 1禁用") - private Integer status; - @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "规则值列表") - @TableField(exist = false) - private List specValues; + @ApiModelProperty(value = "创建时间") + private Date createTime; } diff --git a/src/main/java/com/gxwebsoft/shop/mapper/SpecMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/SpecMapper.java index 0a405a1..32e3f14 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/SpecMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/SpecMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 商品规格组记录表Mapper + * 规格Mapper * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ public interface SpecMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml index 7698bc6..421c5b8 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml @@ -2,95 +2,103 @@ - - - SELECT a.* - FROM shop_goods a - - - AND a.goods_id = #{param.goodsId} - - - AND a.type = #{param.type} - - - AND a.code LIKE CONCAT('%', #{param.code}, '%') - - - AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.category_id = #{param.categoryId} - - - AND a.category_id IN (SELECT category_id FROM shop_goods_category WHERE parent_id=#{param.parentId}) - - - AND a.category_parent LIKE CONCAT('%', #{param.categoryParent}, '%') - - - AND a.category_children LIKE CONCAT('%', #{param.categoryChildren}, '%') - - - AND a.specs LIKE CONCAT('%', #{param.specs}, '%') - - - AND a.position LIKE CONCAT('%', #{param.position}, '%') - - - AND a.price = #{param.price} - - - AND a.sale_price = #{param.salePrice} - - - AND a.recommend = #{param.recommend} - - - AND a.status = #{param.status} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - - AND a.sort_number = #{param.sortNumber} - - - AND a.user_id = #{param.userId} - - - AND a.merchant_id = #{param.merchantId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - + + + SELECT a.* + FROM shop_goods a + + + AND a.goods_id = #{param.goodsId} + + + AND a.type = #{param.type} + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.category_id = #{param.categoryId} + + + AND a.category_id IN (SELECT category_id FROM shop_goods_category WHERE parent_id=#{param.parentId}) + + + AND a.category_parent LIKE CONCAT('%', #{param.categoryParent}, '%') + + + AND a.category_children LIKE CONCAT('%', #{param.categoryChildren}, '%') + + + AND a.specs LIKE CONCAT('%', #{param.specs}, '%') + + + AND a.position LIKE CONCAT('%', #{param.position}, '%') + + + AND a.price = #{param.price} + + + AND a.sale_price = #{param.salePrice} + + + AND a.recommend = #{param.recommend} + + + AND a.is_show = #{param.isShow} + + + AND a.status = #{param.status} + + + AND a.stock = #{param.stock} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.user_id = #{param.userId} + + + AND a.merchant_id = #{param.merchantId} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + OR a.goods_name = #{param.keywords} + OR a.code = #{param.keywords} + ) + + + - - + + - - + + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantAccountMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantAccountMapper.xml index 59bbb2b..07eadf1 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantAccountMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantAccountMapper.xml @@ -40,6 +40,8 @@ AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + OR a.phone = #{param.keywords} + OR a.real_name = #{param.keywords} ) diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/SpecMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/SpecMapper.xml index f318a72..a6b9614 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/SpecMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/SpecMapper.xml @@ -10,8 +10,26 @@ AND a.spec_id = #{param.specId} - - AND a.name LIKE CONCAT('%', #{param.name}, '%') + + AND a.spec_name LIKE CONCAT('%', #{param.specName}, '%') + + + AND a.spec_value LIKE CONCAT('%', #{param.specValue}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.updater = #{param.updater} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.sort_number = #{param.sortNumber} AND a.create_time >= #{param.createTimeStart} @@ -19,6 +37,10 @@ AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java index 6abb1ec..ee089ce 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java @@ -70,10 +70,18 @@ public class GoodsParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer recommend; - @ApiModelProperty(value = "状态, 0正常, 1待修,2异常已修,3异常未修") + @ApiModelProperty(value = "1上架 0下架") + @QueryField(type = QueryType.EQ) + private Integer isShow; + + @ApiModelProperty(value = "状态, 0上架 1下架 2待审核 3审核不通过") @QueryField(type = QueryType.EQ) private Integer status; + @ApiModelProperty(value = "库存") + @QueryField(type = QueryType.EQ) + private Integer stock; + @ApiModelProperty(value = "备注") private String comments; diff --git a/src/main/java/com/gxwebsoft/shop/param/SpecParam.java b/src/main/java/com/gxwebsoft/shop/param/SpecParam.java index 53b17b8..460606d 100644 --- a/src/main/java/com/gxwebsoft/shop/param/SpecParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/SpecParam.java @@ -11,23 +11,45 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 商品规格组记录表查询参数 + * 规格查询参数 * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "SpecParam对象", description = "商品规格组记录表查询参数") +@ApiModel(value = "SpecParam对象", description = "规格查询参数") public class SpecParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "规格组ID") + @ApiModelProperty(value = "规格ID") @QueryField(type = QueryType.EQ) private Integer specId; - @ApiModelProperty(value = "规格组名称") - private String name; + @ApiModelProperty(value = "规格名称") + private String specName; + + @ApiModelProperty(value = "规格值") + private String specValue; + + @ApiModelProperty(value = "创建用户") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "更新者") + @QueryField(type = QueryType.EQ) + private Integer updater; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1待修,2异常已修,3异常未修") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; } diff --git a/src/main/java/com/gxwebsoft/shop/service/SpecService.java b/src/main/java/com/gxwebsoft/shop/service/SpecService.java index c547bd6..b9a6f7c 100644 --- a/src/main/java/com/gxwebsoft/shop/service/SpecService.java +++ b/src/main/java/com/gxwebsoft/shop/service/SpecService.java @@ -8,10 +8,10 @@ import com.gxwebsoft.shop.param.SpecParam; import java.util.List; /** - * 商品规格组记录表Service + * 规格Service * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ public interface SpecService extends IService { @@ -34,7 +34,7 @@ public interface SpecService extends IService { /** * 根据id查询 * - * @param specId 规格组ID + * @param specId 规格ID * @return Spec */ Spec getByIdRel(Integer specId); diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java index 11aa4f7..55bd2ed 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java @@ -16,6 +16,7 @@ import com.gxwebsoft.shop.service.GoodsSpecService; import org.apache.tomcat.util.buf.StringUtils; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.List; @@ -62,18 +63,22 @@ public class GoodsServiceImpl extends ServiceImpl implements public void saveBatchByAsync(Goods goods) { // 保存商品规格 final List goodsSpecs = goods.getGoodsSpecs(); - goodsSpecs.forEach(d -> { - d.setGoodsId(goods.getGoodsId()); - final List collect = d.getValueList().stream().map(SpecValue::getSpecValue).collect(Collectors.toList()); - d.setSpecValues(StringUtils.join(collect, ',')); - }); - goodsSpecService.saveBatch(goodsSpecs); + if (!CollectionUtils.isEmpty(goodsSpecs)) { + goodsSpecs.forEach(d -> { + d.setGoodsId(goods.getGoodsId()); + final List collect = d.getValueList().stream().map(SpecValue::getSpecValue).collect(Collectors.toList()); + d.setSpecValues(StringUtils.join(collect, ',')); + }); + goodsSpecService.saveBatch(goodsSpecs); + } // 保存商品sku表 final List goodsSkus = goods.getGoodsSkus(); - goodsSkus.forEach(d -> { - d.setGoodsId(goods.getGoodsId()); - }); - goodsSkuService.saveBatch(goodsSkus); + if (!CollectionUtils.isEmpty(goodsSkus)) { + goodsSkus.forEach(d -> { + d.setGoodsId(goods.getGoodsId()); + }); + goodsSkuService.saveBatch(goodsSkus); + } } } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/SpecServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/SpecServiceImpl.java index 4277bc9..79f8fd1 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/SpecServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/SpecServiceImpl.java @@ -1,40 +1,30 @@ package com.gxwebsoft.shop.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.entity.SpecValue; import com.gxwebsoft.shop.mapper.SpecMapper; -import com.gxwebsoft.shop.param.SpecValueParam; import com.gxwebsoft.shop.service.SpecService; import com.gxwebsoft.shop.entity.Spec; import com.gxwebsoft.shop.param.SpecParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.service.SpecValueService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.util.List; /** - * 商品规格组记录表Service实现 + * 规格Service实现 * * @author 科技小王子 - * @since 2024-04-01 09:29:43 + * @since 2024-07-25 03:00:41 */ @Service public class SpecServiceImpl extends ServiceImpl implements SpecService { - @Resource - private SpecValueService specValueService; @Override public PageResult pageRel(SpecParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc"); + page.setDefaultOrder("sort_number asc, create_time desc"); List list = baseMapper.selectPageRel(page, param); - list.forEach(item -> { - item.setSpecValues(specValueService.list(new LambdaQueryWrapper().eq(SpecValue::getSpecId,item.getSpecId()))); - }); return new PageResult<>(list, page.getTotal()); } @@ -43,10 +33,7 @@ public class SpecServiceImpl extends ServiceImpl implements Sp List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc"); - list.forEach(item -> { - item.setSpecValues(specValueService.list(new LambdaQueryWrapper().eq(SpecValue::getSpecId,item.getSpecId()))); - }); + page.setDefaultOrder("sort_number asc, create_time desc"); return page.sortRecords(list); } diff --git a/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java b/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java index d42c12e..d48042c 100644 --- a/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java +++ b/src/main/java/com/gxwebsoft/shop/task/OrderInfoTask.java @@ -42,7 +42,7 @@ public class OrderInfoTask extends BaseController { final int minute = DateUtil.minute(DateUtil.date()); final int second = DateUtil.second(DateUtil.date()); final String startTime = String.format("%02d", hour).concat(":").concat(String.format("%02d", minute)).concat(":").concat(String.format("%02d", second)); - final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getOrderStatus, 0).ne(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,startTime)); + final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getTenantId,10150).eq(OrderInfo::getOrderStatus, 0).ne(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,startTime)); list.forEach(d -> { d.setOrderStatus(1); order.setOrderId(d.getOrderId()); @@ -61,7 +61,7 @@ public class OrderInfoTask extends BaseController { @Transactional(rollbackFor = {Exception.class}) public void settledExpirationOrderBy3028() { final Order order = new Order(); - final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getOrderStatus, 0).eq(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,"21:30:00")); + final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getTenantId,10150).eq(OrderInfo::getOrderStatus, 0).eq(OrderInfo::getMerchantId,3028).eq(OrderInfo::getDateTime,DateUtil.today()).lt(OrderInfo::getStartTime,"21:30:00")); list.forEach(d -> { d.setOrderStatus(1); order.setOrderId(d.getOrderId()); diff --git a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java index 5cec845..13a1b31 100644 --- a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java @@ -70,7 +70,7 @@ public class CmsGenerator { // "cms_mp_pages", // "cms_mp" // "cms_mp_field" - "cms_mp_ad" +// "cms_mp_ad" }; // 需要去除的表前缀 diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index a4df325..7d88ff2 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -28,7 +28,9 @@ public class ShopGenerator { // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/com.gxwebsoft.core-web"; + private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/gxtyzx-admin-vue"; + // Vue文件输出目录 + private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/VUE/nbg"; // Vue文件输出目录 private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 @@ -46,7 +48,7 @@ public class ShopGenerator { private static final String MODULE_NAME = "shop"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ -// "shop_spec", + "shop_spec", // "shop_spec_value", // "shop_goods", // "shop_goods_spec", @@ -72,7 +74,7 @@ public class ShopGenerator { // "shop_order_info_log", // "shop_order_goods", // "shop_wechat_deposit", - "shop_users", +// "shop_users", // "shop_user_address", // "shop_user_balance_log" }; @@ -204,6 +206,14 @@ public class ShopGenerator { + tableInfo.getEntityPath() + "/" + "index.ts"; } }); + focList.add(new FileOutConfig() { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/" + "index.ts"; + } + }); // 生成TS文件 (/api/shop/goods/model/index.ts) templatePath = TEMPLATES_DIR + "/model.ts.btl"; focList.add(new FileOutConfig(templatePath) { @@ -214,6 +224,14 @@ public class ShopGenerator { + tableInfo.getEntityPath() + "/model/" + "index.ts"; } }); + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/model/" + "index.ts"; + } + }); // 生成Vue文件(/views/shop/goods/index.vue) templatePath = TEMPLATES_DIR + "/index.vue.btl"; focList.add(new FileOutConfig(templatePath) {