Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
6a21eb32
提交
6a21eb32
authored
4月 21, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商品功能实现
上级
5741d016
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
188 行增加
和
5 行删除
+188
-5
CustomerDataPermissionHelper.java
...a/common/mybatis/helper/CustomerDataPermissionHelper.java
+103
-0
ProductBrandDO.java
.../java/org/dromara/mall/domain/product/ProductBrandDO.java
+5
-0
ProductCategoryDO.java
...va/org/dromara/mall/domain/product/ProductCategoryDO.java
+5
-0
ProductPropertyDO.java
...va/org/dromara/mall/domain/product/ProductPropertyDO.java
+5
-0
ProductPropertyValueDO.java
...g/dromara/mall/domain/product/ProductPropertyValueDO.java
+5
-0
ProductSkuDO.java
...in/java/org/dromara/mall/domain/product/ProductSkuDO.java
+5
-0
ProductSpuDO.java
...in/java/org/dromara/mall/domain/product/ProductSpuDO.java
+5
-0
ProductSpuMapper.java
...ava/org/dromara/mall/mapper/product/ProductSpuMapper.java
+22
-0
ProductBrandServiceImpl.java
...ra/mall/service/product/impl/ProductBrandServiceImpl.java
+2
-0
ProductCategoryServiceImpl.java
...mall/service/product/impl/ProductCategoryServiceImpl.java
+2
-0
ProductPropertyServiceImpl.java
...mall/service/product/impl/ProductPropertyServiceImpl.java
+2
-0
ProductPropertyValueServiceImpl.java
...service/product/impl/ProductPropertyValueServiceImpl.java
+2
-0
ProductSkuServiceImpl.java
...mara/mall/service/product/impl/ProductSkuServiceImpl.java
+5
-1
ProductSpuServiceImpl.java
...mara/mall/service/product/impl/ProductSpuServiceImpl.java
+20
-4
没有找到文件。
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/CustomerDataPermissionHelper.java
0 → 100644
浏览文件 @
6a21eb32
package
org
.
dromara
.
common
.
mybatis
.
helper
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
lombok.AccessLevel
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.dromara.common.core.exception.ServiceException
;
import
org.dromara.common.core.utils.SpringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.enums.DataScopeType
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.system.api.RemoteDataScopeService
;
import
org.dromara.system.api.model.RoleDTO
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author hzh
* @date 2025-04-21
**/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
class
CustomerDataPermissionHelper
{
/**
* 是否需要过滤数据
*
* @return 是否需要过滤数据
*/
public
static
Boolean
isNeedFilter
()
{
// 如果是超级管理员或租户管理员,则不过滤数据
if
(
LoginHelper
.
isSuperAdmin
()
||
LoginHelper
.
isTenantAdmin
())
{
return
false
;
}
List
<
RoleDTO
>
roles
=
LoginHelper
.
getLoginUser
().
getRoles
();
for
(
RoleDTO
role
:
roles
)
{
// 获取角色权限泛型
DataScopeType
type
=
DataScopeType
.
findCode
(
role
.
getDataScope
());
if
(
ObjectUtil
.
isNull
(
type
))
{
throw
new
ServiceException
(
"角色数据范围异常 => "
+
role
.
getDataScope
());
}
// 全部数据权限直接返回
if
(
type
==
DataScopeType
.
ALL
)
{
return
false
;
}
}
return
true
;
}
public
static
Boolean
isNeedFilterDeptId
()
{
List
<
RoleDTO
>
roles
=
LoginHelper
.
getLoginUser
().
getRoles
();
for
(
RoleDTO
role
:
roles
)
{
// 获取角色权限泛型
DataScopeType
type
=
DataScopeType
.
findCode
(
role
.
getDataScope
());
if
(
type
==
DataScopeType
.
CUSTOM
||
type
==
DataScopeType
.
DEPT
||
type
==
DataScopeType
.
DEPT_AND_CHILD
)
{
return
true
;
}
}
return
false
;
}
public
static
List
<
Long
>
getDeptIds
()
{
List
<
RoleDTO
>
roles
=
LoginHelper
.
getLoginUser
().
getRoles
();
Long
deptId
=
LoginHelper
.
getDeptId
();
List
<
Long
>
deptIds
=
new
ArrayList
<>();
RemoteDataScopeService
rdss
=
SpringUtils
.
getBean
(
RemoteDataScopeService
.
class
);
for
(
RoleDTO
role
:
roles
)
{
// 获取角色权限泛型
DataScopeType
type
=
DataScopeType
.
findCode
(
role
.
getDataScope
());
if
(
ObjectUtil
.
isNull
(
type
))
{
throw
new
ServiceException
(
"角色数据范围异常 => "
+
role
.
getDataScope
());
}
if
(
type
==
DataScopeType
.
CUSTOM
)
{
deptIds
.
addAll
(
stringToListLong
(
rdss
.
getRoleCustom
(
role
.
getRoleId
())));
}
else
if
(
type
==
DataScopeType
.
DEPT
)
{
deptIds
.
add
(
deptId
);
}
else
if
(
type
==
DataScopeType
.
DEPT_AND_CHILD
)
{
deptIds
.
addAll
(
stringToListLong
(
rdss
.
getDeptAndChild
(
deptId
)));
}
}
if
(
CollectionUtils
.
isEmpty
(
deptIds
))
{
return
List
.
of
(-
1L
);
}
return
deptIds
;
}
public
static
List
<
Long
>
stringToListLong
(
String
str
)
{
if
(
StringUtils
.
isBlank
(
str
))
{
return
List
.
of
();
}
// 按逗号分割字符串为数组
String
[]
arr
=
StrUtil
.
splitToArray
(
str
,
','
);
// 将数组转换为List<Long>
List
<
Long
>
longList
=
CollUtil
.
newArrayList
(
arr
).
stream
()
.
map
(
Long:
:
parseLong
)
.
collect
(
Collectors
.
toList
());
return
longList
;
}
}
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductBrandDO.java
浏览文件 @
6a21eb32
...
@@ -49,6 +49,11 @@ public class ProductBrandDO extends TenantEntity {
...
@@ -49,6 +49,11 @@ public class ProductBrandDO extends TenantEntity {
*/
*/
private
Integer
status
;
private
Integer
status
;
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductCategoryDO.java
浏览文件 @
6a21eb32
...
@@ -61,6 +61,11 @@ public class ProductCategoryDO extends TenantEntity {
...
@@ -61,6 +61,11 @@ public class ProductCategoryDO extends TenantEntity {
*/
*/
private
Integer
status
;
private
Integer
status
;
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductPropertyDO.java
浏览文件 @
6a21eb32
...
@@ -45,6 +45,11 @@ public class ProductPropertyDO extends TenantEntity {
...
@@ -45,6 +45,11 @@ public class ProductPropertyDO extends TenantEntity {
*/
*/
private
String
remark
;
private
String
remark
;
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductPropertyValueDO.java
浏览文件 @
6a21eb32
...
@@ -52,6 +52,11 @@ public class ProductPropertyValueDO extends TenantEntity {
...
@@ -52,6 +52,11 @@ public class ProductPropertyValueDO extends TenantEntity {
*/
*/
private
String
remark
;
private
String
remark
;
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductSkuDO.java
浏览文件 @
6a21eb32
...
@@ -128,6 +128,11 @@ public class ProductSkuDO extends TenantEntity {
...
@@ -128,6 +128,11 @@ public class ProductSkuDO extends TenantEntity {
}
}
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/domain/product/ProductSpuDO.java
浏览文件 @
6a21eb32
...
@@ -168,6 +168,11 @@ public class ProductSpuDO extends TenantEntity {
...
@@ -168,6 +168,11 @@ public class ProductSpuDO extends TenantEntity {
*/
*/
private
Integer
browseCount
;
private
Integer
browseCount
;
/**
* 部门id
*/
private
Long
deptId
;
/**
/**
* 删除标志(0代表存在 2代表删除)
* 删除标志(0代表存在 2代表删除)
*/
*/
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/mapper/product/ProductSpuMapper.java
浏览文件 @
6a21eb32
...
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
...
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlusPlus
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlusPlus
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.helper.CustomerDataPermissionHelper
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSpuPageReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSpuPageReqVO
;
import
org.dromara.mall.controller.product.app.spu.vo.AppProductSpuPageReqVO
;
import
org.dromara.mall.controller.product.app.spu.vo.AppProductSpuPageReqVO
;
import
org.dromara.mall.domain.product.ProductSpuDO
;
import
org.dromara.mall.domain.product.ProductSpuDO
;
...
@@ -37,6 +39,14 @@ public interface ProductSpuMapper extends BaseMapperPlusPlus<ProductSpuDO, Produ
...
@@ -37,6 +39,14 @@ public interface ProductSpuMapper extends BaseMapperPlusPlus<ProductSpuDO, Produ
.
orderByDesc
(
ProductSpuDO:
:
getSort
)
.
orderByDesc
(
ProductSpuDO:
:
getSort
)
.
orderByDesc
(
ProductSpuDO:
:
getId
);
.
orderByDesc
(
ProductSpuDO:
:
getId
);
appendTabQuery
(
tabType
,
queryWrapper
);
appendTabQuery
(
tabType
,
queryWrapper
);
// 设置权限
if
(
CustomerDataPermissionHelper
.
isNeedFilter
())
{
if
(
CustomerDataPermissionHelper
.
isNeedFilterDeptId
())
{
queryWrapper
.
in
(
ProductSpuDO:
:
getDeptId
,
CustomerDataPermissionHelper
.
getDeptIds
());
}
else
{
queryWrapper
.
eq
(
ProductSpuDO:
:
getCreateBy
,
LoginHelper
.
getUserId
());
}
}
return
selectPagePlus
(
reqVO
,
queryWrapper
);
return
selectPagePlus
(
reqVO
,
queryWrapper
);
}
}
...
@@ -52,6 +62,18 @@ public interface ProductSpuMapper extends BaseMapperPlusPlus<ProductSpuDO, Produ
...
@@ -52,6 +62,18 @@ public interface ProductSpuMapper extends BaseMapperPlusPlus<ProductSpuDO, Produ
queryWrapper
.
le
(
ProductSpuDO:
:
getStock
,
ProductConstants
.
ALERT_STOCK
)
queryWrapper
.
le
(
ProductSpuDO:
:
getStock
,
ProductConstants
.
ALERT_STOCK
)
// 如果库存触发警戒库存且状态为回收站的话则不计入触发警戒库存的个数
// 如果库存触发警戒库存且状态为回收站的话则不计入触发警戒库存的个数
.
notIn
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
RECYCLE
.
getStatus
());
.
notIn
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
RECYCLE
.
getStatus
());
return
selectCountDataPermission
(
queryWrapper
);
}
default
Long
selectCountDataPermission
(
LambdaQueryWrapperX
<
ProductSpuDO
>
queryWrapper
)
{
// 设置权限
if
(
CustomerDataPermissionHelper
.
isNeedFilter
())
{
if
(
CustomerDataPermissionHelper
.
isNeedFilterDeptId
())
{
queryWrapper
.
in
(
ProductSpuDO:
:
getDeptId
,
CustomerDataPermissionHelper
.
getDeptIds
());
}
else
{
queryWrapper
.
eq
(
ProductSpuDO:
:
getCreateBy
,
LoginHelper
.
getUserId
());
}
}
return
selectCount
(
queryWrapper
);
return
selectCount
(
queryWrapper
);
}
}
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductBrandServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -7,6 +7,7 @@ import jakarta.annotation.Resource;
...
@@ -7,6 +7,7 @@ import jakarta.annotation.Resource;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandCreateReqVO
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandCreateReqVO
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandListReqVO
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandListReqVO
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandPageReqVO
;
import
org.dromara.mall.controller.product.admin.brand.vo.ProductBrandPageReqVO
;
...
@@ -49,6 +50,7 @@ public class ProductBrandServiceImpl implements ProductBrandService {
...
@@ -49,6 +50,7 @@ public class ProductBrandServiceImpl implements ProductBrandService {
// 插入
// 插入
ProductBrandDO
brand
=
BeanUtil
.
copyProperties
(
createReqVO
,
ProductBrandDO
.
class
);
ProductBrandDO
brand
=
BeanUtil
.
copyProperties
(
createReqVO
,
ProductBrandDO
.
class
);
brand
.
setDeptId
(
LoginHelper
.
getDeptId
());
productBrandMapper
.
insert
(
brand
);
productBrandMapper
.
insert
(
brand
);
// 返回
// 返回
return
brand
.
getId
();
return
brand
.
getId
();
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductCategoryServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -6,6 +6,7 @@ import jakarta.annotation.Resource;
...
@@ -6,6 +6,7 @@ import jakarta.annotation.Resource;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mall.util.collection.CollectionUtils
;
import
org.dromara.common.mall.util.collection.CollectionUtils
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategoryListReqVO
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategoryListReqVO
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategorySaveReqVO
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategorySaveReqVO
;
import
org.dromara.mall.domain.product.ProductCategoryDO
;
import
org.dromara.mall.domain.product.ProductCategoryDO
;
...
@@ -49,6 +50,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
...
@@ -49,6 +50,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
// 插入
// 插入
ProductCategoryDO
category
=
BeanUtil
.
copyProperties
(
createReqVO
,
ProductCategoryDO
.
class
);
ProductCategoryDO
category
=
BeanUtil
.
copyProperties
(
createReqVO
,
ProductCategoryDO
.
class
);
category
.
setDeptId
(
LoginHelper
.
getDeptId
());
productCategoryMapper
.
insert
(
category
);
productCategoryMapper
.
insert
(
category
);
// 返回
// 返回
return
category
.
getId
();
return
category
.
getId
();
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductPropertyServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -5,6 +5,7 @@ import jakarta.annotation.Resource;
...
@@ -5,6 +5,7 @@ import jakarta.annotation.Resource;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.property.vo.property.ProductPropertyPageReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.property.ProductPropertyPageReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.property.ProductPropertySaveReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.property.ProductPropertySaveReqVO
;
import
org.dromara.mall.domain.product.ProductPropertyDO
;
import
org.dromara.mall.domain.product.ProductPropertyDO
;
...
@@ -54,6 +55,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
...
@@ -54,6 +55,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
// 插入
// 插入
ProductPropertyDO
property
=
BeanUtils
.
toBean
(
createReqVO
,
ProductPropertyDO
.
class
);
ProductPropertyDO
property
=
BeanUtils
.
toBean
(
createReqVO
,
ProductPropertyDO
.
class
);
property
.
setDeptId
(
LoginHelper
.
getDeptId
());
productPropertyMapper
.
insert
(
property
);
productPropertyMapper
.
insert
(
property
);
// 返回
// 返回
return
property
.
getId
();
return
property
.
getId
();
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductPropertyValueServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -5,6 +5,7 @@ import jakarta.annotation.Resource;
...
@@ -5,6 +5,7 @@ import jakarta.annotation.Resource;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.property.vo.value.ProductPropertyValuePageReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.value.ProductPropertyValuePageReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.value.ProductPropertyValueSaveReqVO
;
import
org.dromara.mall.controller.product.admin.property.vo.value.ProductPropertyValueSaveReqVO
;
import
org.dromara.mall.domain.product.ProductPropertyValueDO
;
import
org.dromara.mall.domain.product.ProductPropertyValueDO
;
...
@@ -52,6 +53,7 @@ public class ProductPropertyValueServiceImpl implements ProductPropertyValueServ
...
@@ -52,6 +53,7 @@ public class ProductPropertyValueServiceImpl implements ProductPropertyValueServ
// 新增
// 新增
ProductPropertyValueDO
value
=
BeanUtils
.
toBean
(
createReqVO
,
ProductPropertyValueDO
.
class
);
ProductPropertyValueDO
value
=
BeanUtils
.
toBean
(
createReqVO
,
ProductPropertyValueDO
.
class
);
value
.
setDeptId
(
LoginHelper
.
getDeptId
());
productPropertyValueMapper
.
insert
(
value
);
productPropertyValueMapper
.
insert
(
value
);
return
value
.
getId
();
return
value
.
getId
();
}
}
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductSkuServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
...
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
jakarta.annotation.Resource
;
import
jakarta.annotation.Resource
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.api.dto.product.ProductSkuUpdateStockReqDTO
;
import
org.dromara.mall.api.dto.product.ProductSkuUpdateStockReqDTO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSkuSaveReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSkuSaveReqVO
;
import
org.dromara.mall.convert.product.ProductSkuConvert
;
import
org.dromara.mall.convert.product.ProductSkuConvert
;
...
@@ -138,7 +139,10 @@ public class ProductSkuServiceImpl implements ProductSkuService {
...
@@ -138,7 +139,10 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
@Override
public
void
createSkuList
(
Long
spuId
,
List
<
ProductSkuSaveReqVO
>
skuCreateReqList
)
{
public
void
createSkuList
(
Long
spuId
,
List
<
ProductSkuSaveReqVO
>
skuCreateReqList
)
{
List
<
ProductSkuDO
>
skus
=
BeanUtils
.
toBean
(
skuCreateReqList
,
ProductSkuDO
.
class
,
sku
->
sku
.
setSpuId
(
spuId
));
List
<
ProductSkuDO
>
skus
=
BeanUtils
.
toBean
(
skuCreateReqList
,
ProductSkuDO
.
class
,
sku
->{
sku
.
setSpuId
(
spuId
);
sku
.
setDeptId
(
LoginHelper
.
getDeptId
());
}
);
productSkuMapper
.
insertBatch
(
skus
);
productSkuMapper
.
insertBatch
(
skus
);
}
}
...
...
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/product/impl/ProductSpuServiceImpl.java
浏览文件 @
6a21eb32
...
@@ -7,6 +7,8 @@ import jakarta.annotation.Resource;
...
@@ -7,6 +7,8 @@ import jakarta.annotation.Resource;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mall.enums.CommonStatusEnum
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mall.util.object.BeanUtils
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.page.PageResult
;
import
org.dromara.common.mybatis.core.query.LambdaQueryWrapperX
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategoryListReqVO
;
import
org.dromara.mall.controller.product.admin.category.vo.ProductCategoryListReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSkuSaveReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSkuSaveReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSpuPageReqVO
;
import
org.dromara.mall.controller.product.admin.spu.vo.ProductSpuPageReqVO
;
...
@@ -64,6 +66,8 @@ public class ProductSpuServiceImpl implements ProductSpuService {
...
@@ -64,6 +66,8 @@ public class ProductSpuServiceImpl implements ProductSpuService {
productSkuService
.
validateSkuList
(
skuSaveReqList
,
createReqVO
.
getSpecType
());
productSkuService
.
validateSkuList
(
skuSaveReqList
,
createReqVO
.
getSpecType
());
ProductSpuDO
spu
=
BeanUtils
.
toBean
(
createReqVO
,
ProductSpuDO
.
class
);
ProductSpuDO
spu
=
BeanUtils
.
toBean
(
createReqVO
,
ProductSpuDO
.
class
);
// 设置部门
spu
.
setDeptId
(
LoginHelper
.
getDeptId
());
// 初始化 SPU 中 SKU 相关属性
// 初始化 SPU 中 SKU 相关属性
initSpuFromSkus
(
spu
,
skuSaveReqList
);
initSpuFromSkus
(
spu
,
skuSaveReqList
);
// 插入 SPU
// 插入 SPU
...
@@ -252,19 +256,31 @@ public class ProductSpuServiceImpl implements ProductSpuService {
...
@@ -252,19 +256,31 @@ public class ProductSpuServiceImpl implements ProductSpuService {
Map
<
Integer
,
Long
>
counts
=
Maps
.
newLinkedHashMapWithExpectedSize
(
5
);
Map
<
Integer
,
Long
>
counts
=
Maps
.
newLinkedHashMapWithExpectedSize
(
5
);
// 查询销售中的商品数量
// 查询销售中的商品数量
counts
.
put
(
ProductSpuPageReqVO
.
FOR_SALE
,
counts
.
put
(
ProductSpuPageReqVO
.
FOR_SALE
,
productSpuMapper
.
selectCount
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
ENABLE
.
getStatus
()));
productSpuMapper
.
selectCountDataPermission
(
new
LambdaQueryWrapperX
<
ProductSpuDO
>()
.
eq
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
ENABLE
.
getStatus
())
));
// 查询仓库中的商品数量
// 查询仓库中的商品数量
counts
.
put
(
ProductSpuPageReqVO
.
IN_WAREHOUSE
,
counts
.
put
(
ProductSpuPageReqVO
.
IN_WAREHOUSE
,
productSpuMapper
.
selectCount
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
DISABLE
.
getStatus
()));
productSpuMapper
.
selectCountDataPermission
(
new
LambdaQueryWrapperX
<
ProductSpuDO
>()
.
eq
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
DISABLE
.
getStatus
())
));
// 查询售空的商品数量
// 查询售空的商品数量
counts
.
put
(
ProductSpuPageReqVO
.
SOLD_OUT
,
counts
.
put
(
ProductSpuPageReqVO
.
SOLD_OUT
,
productSpuMapper
.
selectCount
(
ProductSpuDO:
:
getStock
,
0
));
productSpuMapper
.
selectCountDataPermission
(
new
LambdaQueryWrapperX
<
ProductSpuDO
>()
.
eq
(
ProductSpuDO:
:
getStock
,
0
)
));
// 查询触发警戒库存的商品数量
// 查询触发警戒库存的商品数量
counts
.
put
(
ProductSpuPageReqVO
.
ALERT_STOCK
,
counts
.
put
(
ProductSpuPageReqVO
.
ALERT_STOCK
,
productSpuMapper
.
selectCount
());
productSpuMapper
.
selectCount
());
// 查询回收站中的商品数量
// 查询回收站中的商品数量
counts
.
put
(
ProductSpuPageReqVO
.
RECYCLE_BIN
,
counts
.
put
(
ProductSpuPageReqVO
.
RECYCLE_BIN
,
productSpuMapper
.
selectCount
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
RECYCLE
.
getStatus
()));
productSpuMapper
.
selectCountDataPermission
(
new
LambdaQueryWrapperX
<
ProductSpuDO
>()
.
eq
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
RECYCLE
.
getStatus
())
));
return
counts
;
return
counts
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论