diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java index 30d94d33a..6be0a69c5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java @@ -69,7 +69,7 @@ public class NoticeController extends BaseController { } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") - @ApiOperation(value = "档口首页获取公告列表", httpMethod = "GET", response = R.class) + @ApiOperation(value = "档口首页、电商卖家首页获取公告列表", httpMethod = "GET", response = R.class) @GetMapping("/list") public R> latest10() { return R.ok(BeanUtil.copyToList(noticeService.latest10(), NoticeLatest10ResVO.class)); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/QuickFunctionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/QuickFunctionController.java index 2b53a1407..08001fb5b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/QuickFunctionController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/QuickFunctionController.java @@ -38,7 +38,7 @@ public class QuickFunctionController extends XktBaseController { private static final String MENU_TYPE_C = "C"; @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,seller,store')") - @ApiOperation(value = "档口首页 档口或电商卖家选择的快捷功能", httpMethod = "GET", response = R.class) + @ApiOperation(value = "档口或电商卖家选择的快捷功能", httpMethod = "GET", response = R.class) @GetMapping("/selected/{roleId}/{bizId}") public R> getSelectedList(@PathVariable("roleId") Long roleId, @PathVariable("bizId") Long bizId) { // 找到当前所有的快捷菜单 @@ -47,7 +47,7 @@ public class QuickFunctionController extends XktBaseController { } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,seller,store')") - @ApiOperation(value = "档口常用功能 点击 设置", httpMethod = "GET", response = R.class) + @ApiOperation(value = "常用功能 点击 设置", httpMethod = "GET", response = R.class) @GetMapping("/menus/{roleId}/{bizId}") public R getMenuList(@PathVariable("roleId") Long roleId, @PathVariable("bizId") Long bizId) { // 找到当前所有的快捷菜单 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserFavoritesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserFavoritesController.java index 6b7589bdf..158277ef8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserFavoritesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserFavoritesController.java @@ -6,10 +6,8 @@ import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.web.controller.xkt.vo.userFavorite.UserFavBatchAddToShopCartVO; -import com.ruoyi.web.controller.xkt.vo.userFavorite.UserFavBatchDeleteVO; -import com.ruoyi.web.controller.xkt.vo.userFavorite.UserFavoritePageVO; -import com.ruoyi.web.controller.xkt.vo.userFavorite.UserFavoriteVO; +import com.ruoyi.web.controller.xkt.vo.storeProd.StoreProdStatusCountResVO; +import com.ruoyi.web.controller.xkt.vo.userFavorite.*; import com.ruoyi.xkt.dto.userFavorite.*; import com.ruoyi.xkt.service.IUserFavoritesService; import io.swagger.annotations.Api; @@ -33,6 +31,12 @@ public class UserFavoritesController extends XktBaseController { final IUserFavoritesService userFavService; + @ApiOperation(value = "获取商品各个状态数量", httpMethod = "GET", response = R.class) + @GetMapping(value = "/status/num") + public R getStatusNum() { + return R.ok(BeanUtil.toBean(userFavService.getStatusNum(), UserFavStatusCountResVO.class)); + } + @PreAuthorize("@ss.hasAnyRoles('seller')") @ApiOperation(value = "用户收藏商品", httpMethod = "POST", response = R.class) @Log(title = "用户收藏商品", businessType = BusinessType.INSERT) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userFavorite/UserFavStatusCountResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userFavorite/UserFavStatusCountResVO.java new file mode 100644 index 000000000..3e77b790b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userFavorite/UserFavStatusCountResVO.java @@ -0,0 +1,22 @@ +package com.ruoyi.web.controller.xkt.vo.userFavorite; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel +public class UserFavStatusCountResVO { + + @ApiModelProperty(value = "在售数量") + private Integer onSaleNum; + @ApiModelProperty(value = "已失效数量") + private Integer expiredNum; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavStatusCountResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavStatusCountResDTO.java new file mode 100644 index 000000000..7286d005c --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavStatusCountResDTO.java @@ -0,0 +1,22 @@ +package com.ruoyi.xkt.dto.userFavorite; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel +public class UserFavStatusCountResDTO { + + @ApiModelProperty(value = "在售数量") + private Integer onSaleNum; + @ApiModelProperty(value = "已失效数量") + private Integer expiredNum; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java index e017a6cc6..1f6ac9fe4 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.UserFavorites; import com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO; +import com.ruoyi.xkt.dto.userFavorite.UserFavStatusCountResDTO; import com.ruoyi.xkt.dto.userFavorite.UserFavoritePageDTO; import com.ruoyi.xkt.dto.userFavorite.UserFavoritePageResDTO; import org.apache.ibatis.annotations.Param; @@ -35,4 +36,11 @@ public interface UserFavoritesMapper extends BaseMapper { */ List searchTop10Prod(@Param("oneMonthAgo") Date oneMonthAgo, @Param("yesterday") Date yesterday); + /** + * 获取用户收藏商品各状态数量 + * + * @param userId 用户ID + * @return + */ + UserFavStatusCountResDTO getStatusNum(@Param("userId") Long userId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IUserFavoritesService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IUserFavoritesService.java index f226dac2f..e73f80117 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IUserFavoritesService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IUserFavoritesService.java @@ -42,4 +42,10 @@ public interface IUserFavoritesService { */ Integer batchDelete(UserFavBatchDeleteDTO batchDTO); + /** + * 获取用户收藏商品各个状态数量 + * + * @return UserFavStatusCountResDTO + */ + UserFavStatusCountResDTO getStatusNum(); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/ShoppingCartServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/ShoppingCartServiceImpl.java index 956815f75..0d10451fe 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/ShoppingCartServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/ShoppingCartServiceImpl.java @@ -13,7 +13,6 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.xkt.domain.*; import com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO; import com.ruoyi.xkt.dto.userShoppingCart.*; -import com.ruoyi.xkt.enums.EProductStatus; import com.ruoyi.xkt.enums.FileType; import com.ruoyi.xkt.enums.ProductSizeStatus; import com.ruoyi.xkt.mapper.*; @@ -162,6 +161,8 @@ public class ShoppingCartServiceImpl implements IShoppingCartService { List standardSizeList = this.prodColorSizeMapper.selectList(new LambdaQueryWrapper() .eq(StoreProductColorSize::getStoreProdId, shoppingCart.getStoreProdId()).eq(StoreProductColorSize::getDelFlag, Constants.UNDELETED) .eq(StoreProductColorSize::getStandard, ProductSizeStatus.STANDARD.getValue())); + // 标准尺码 + List standardList = standardSizeList.stream().map(StoreProductColorSize::getSize).distinct().collect(Collectors.toList()); Map> colorSizeMap = standardSizeList.stream().collect(Collectors .groupingBy(x -> x.getStoreProdId().toString() + x.getStoreColorId().toString())); // 获取商品颜色列表 @@ -191,10 +192,7 @@ public class ShoppingCartServiceImpl implements IShoppingCartService { .collect(Collectors.toList()); return new ShopCartDetailResDTO() {{ setProdArtNum(shoppingCart.getProdArtNum()).setStoreProdId(shoppingCart.getStoreProdId()) - .setStandardSizeList(standardSizeList.stream().map(StoreProductColorSize::getSize) - .sorted(Comparator.comparing(Function.identity())) - .collect(Collectors.toList())) - .setColorList(colorSizeStockList) + .setStandardSizeList(standardList).setColorList(colorSizeStockList) .setDetailList(BeanUtil.copyToList(detailList, ShopCartDetailResDTO.SCDDetailDTO.class)); }}; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserFavoritesServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserFavoritesServiceImpl.java index 3175c46e0..34bcced0b 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserFavoritesServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserFavoritesServiceImpl.java @@ -219,11 +219,13 @@ public class UserFavoritesServiceImpl implements IUserFavoritesService { @Override @Transactional public Integer batchDelete(UserFavBatchDeleteDTO batchDTO) { + Long userId = SecurityUtils.getUserIdSafe(); + if (ObjectUtils.isEmpty(userId)) { + throw new ServiceException("用户未登录,请先登录!", HttpStatus.ERROR); + } // 获取当前登录用户 - LoginUser loginUser = SecurityUtils.getLoginUser(); List favoriteList = this.userFavMapper.selectList(new LambdaQueryWrapper() - .eq(UserFavorites::getUserId, loginUser.getUserId()) - .in(UserFavorites::getStoreProdId, batchDTO.getStoreProdIdList()) + .eq(UserFavorites::getUserId, userId).in(UserFavorites::getStoreProdId, batchDTO.getStoreProdIdList()) .eq(UserFavorites::getDelFlag, Constants.UNDELETED)); if (CollectionUtils.isEmpty(favoriteList)) { return 0; @@ -251,5 +253,20 @@ public class UserFavoritesServiceImpl implements IUserFavoritesService { return count; } + /** + * 获取用户收藏商品各个状态数量 + * + * @return UserFavStatusCountResDTO + */ + @Override + @Transactional(readOnly = true) + public UserFavStatusCountResDTO getStatusNum() { + Long userId = SecurityUtils.getUserIdSafe(); + if (ObjectUtils.isEmpty(userId)) { + throw new ServiceException("用户未登录,请先登录!", HttpStatus.ERROR); + } + return this.userFavMapper.getStatusNum(userId); + } + } diff --git a/xkt/src/main/resources/mapper/ShoppingCartMapper.xml b/xkt/src/main/resources/mapper/ShoppingCartMapper.xml index 874bcb4c2..b20148b91 100644 --- a/xkt/src/main/resources/mapper/ShoppingCartMapper.xml +++ b/xkt/src/main/resources/mapper/ShoppingCartMapper.xml @@ -68,18 +68,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/xkt/src/main/resources/mapper/UserFavoritesMapper.xml b/xkt/src/main/resources/mapper/UserFavoritesMapper.xml index 95179ab94..95eaafcd7 100644 --- a/xkt/src/main/resources/mapper/UserFavoritesMapper.xml +++ b/xkt/src/main/resources/mapper/UserFavoritesMapper.xml @@ -29,10 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sp.prod_status FROM user_favorites uf - LEFT JOIN store_product sp ON uf.store_prod_id = sp.id - LEFT JOIN store s ON uf.store_id = s.id + JOIN store_product sp ON uf.store_prod_id = sp.id + JOIN store s ON uf.store_id = s.id WHERE uf.del_flag = 0 AND uf.user_id = #{userId} + AND s.store_name = #{storeName} + AND sp.prod_art_num like concat('%', #{prodArtNum}, '%') - + \ No newline at end of file