Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
f1fa71d3
Commit
f1fa71d3
authored
May 19, 2021
by
季圣华
Browse files
增加仓库和角色类型的数据权限控制
parent
74e8614d
Changes
7
Hide whitespace changes
Inline
Side-by-side
jshERP-boot/src/main/java/com/jsh/erp/controller/DepotController.java
View file @
f1fa71d3
...
...
@@ -37,15 +37,9 @@ public class DepotController {
@Resource
private
DepotService
depotService
;
@Resource
private
UserService
userService
;
@Resource
private
UserBusinessService
userBusinessService
;
@Resource
private
SystemConfigService
systemConfigService
;
@Resource
private
MaterialService
materialService
;
...
...
@@ -126,29 +120,7 @@ public class DepotController {
public
BaseResponseInfo
findDepotByCurrentUser
(
HttpServletRequest
request
)
throws
Exception
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
try
{
JSONArray
arr
=
new
JSONArray
();
String
type
=
"UserDepot"
;
Long
userId
=
userService
.
getUserId
(
request
);
List
<
Depot
>
dataList
=
depotService
.
findUserDepot
();
//开始拼接json数据
if
(
null
!=
dataList
)
{
boolean
depotFlag
=
systemConfigService
.
getDepotFlag
();
for
(
Depot
depot
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
//勾选判断1
Boolean
flag
=
false
;
try
{
flag
=
userBusinessService
.
checkIsUserBusinessExist
(
type
,
userId
.
toString
(),
"["
+
depot
.
getId
().
toString
()
+
"]"
);
}
catch
(
DataAccessException
e
)
{
logger
.
error
(
">>>>>>>>>>>>>>>>>查询用户对应的仓库:类型"
+
type
+
" KeyId为: "
+
userId
+
" 存在异常!"
);
}
if
(!
depotFlag
||
flag
)
{
item
.
put
(
"id"
,
depot
.
getId
());
item
.
put
(
"depotName"
,
depot
.
getName
());
arr
.
add
(
item
);
}
}
}
JSONArray
arr
=
depotService
.
findDepotByCurrentUser
();
res
.
code
=
200
;
res
.
data
=
arr
;
}
catch
(
Exception
e
)
{
...
...
jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java
View file @
f1fa71d3
...
...
@@ -326,7 +326,7 @@ public class DepotHeadController {
String
rows
=
body
.
getRows
();
Long
billsNumLimit
=
Long
.
parseLong
(
redisService
.
getObjectFromSessionByKey
(
request
,
"billsNumLimit"
).
toString
());
Long
tenantId
=
Long
.
parseLong
(
redisService
.
getObjectFromSessionByKey
(
request
,
"tenantId"
).
toString
());
Long
count
=
depotHeadService
.
countDepotHead
(
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
Long
count
=
depotHeadService
.
countDepotHead
(
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
if
(
count
>=
billsNumLimit
)
{
throw
new
BusinessParamCheckingException
(
ExceptionConstants
.
DEPOT_HEAD_OVER_LIMIT_FAILED_CODE
,
ExceptionConstants
.
DEPOT_HEAD_OVER_LIMIT_FAILED_MSG
);
...
...
jshERP-boot/src/main/java/com/jsh/erp/controller/SystemConfigController.java
View file @
f1fa71d3
...
...
@@ -96,8 +96,8 @@ public class SystemConfigController {
BaseResponseInfo
res
=
new
BaseResponseInfo
();
try
{
List
<
SystemConfig
>
list
=
systemConfigService
.
getSystemConfig
();
res
.
code
=
200
;
if
(
list
.
size
()>
0
)
{
res
.
code
=
200
;
res
.
data
=
list
.
get
(
0
);
}
}
catch
(
Exception
e
){
...
...
jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java
View file @
f1fa71d3
...
...
@@ -112,8 +112,6 @@ public class UserController {
token
=
token
+
"_"
+
user
.
getTenantId
();
}
redisService
.
storageObjectBySession
(
token
,
"userId"
,
user
.
getId
());
String
roleType
=
userService
.
getRoleTypeByUserId
(
user
.
getId
());
//角色类型
redisService
.
storageObjectBySession
(
token
,
"roleType"
,
roleType
);
if
(
user
.
getTenantId
()!=
null
)
{
Tenant
tenant
=
tenantService
.
getTenantByTenantId
(
user
.
getTenantId
());
if
(
tenant
!=
null
)
{
...
...
@@ -136,6 +134,8 @@ public class UserController {
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
data
.
put
(
"msgTip"
,
msgTip
);
if
(
user
!=
null
){
String
roleType
=
userService
.
getRoleTypeByUserId
(
user
.
getId
());
//角色类型
redisService
.
storageObjectBySession
(
token
,
"roleType"
,
roleType
);
redisService
.
storageObjectBySession
(
token
,
"token"
,
token
);
logService
.
insertLogWithUserId
(
user
.
getId
(),
user
.
getTenantId
(),
"用户"
,
new
StringBuffer
(
BusinessConstants
.
LOG_OPERATION_TYPE_LOGIN
).
append
(
user
.
getLoginName
()).
toString
(),
...
...
@@ -145,6 +145,7 @@ public class UserController {
data
.
put
(
"user"
,
user
);
//用户的按钮权限
data
.
put
(
"userBtn"
,
btnStrArr
);
data
.
put
(
"roleType"
,
roleType
);
}
res
.
code
=
200
;
res
.
data
=
data
;
...
...
@@ -366,8 +367,14 @@ public class UserController {
}
return
arr
;
}
@GetMapping
(
"/getRoleTypeByUserId"
)
public
BaseResponseInfo
getRoleTypeByUserId
(
HttpServletRequest
request
)
{
/**
* 获取当前用户的角色类型
* @param request
* @return
*/
@GetMapping
(
"/getRoleTypeByCurrentUser"
)
public
BaseResponseInfo
getRoleTypeByCurrentUser
(
HttpServletRequest
request
)
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
try
{
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/depot/DepotService.java
View file @
f1fa71d3
package
com.jsh.erp.service.depot
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.jsh.erp.constants.BusinessConstants
;
import
com.jsh.erp.constants.ExceptionConstants
;
import
com.jsh.erp.datasource.entities.*
;
import
com.jsh.erp.datasource.mappers.*
;
import
com.jsh.erp.datasource.mappers.DepotHeadMapperEx
;
import
com.jsh.erp.datasource.mappers.DepotItemMapperEx
;
import
com.jsh.erp.datasource.mappers.DepotMapper
;
import
com.jsh.erp.datasource.mappers.DepotMapperEx
;
import
com.jsh.erp.exception.BusinessRunTimeException
;
import
com.jsh.erp.exception.JshException
;
import
com.jsh.erp.service.log.LogService
;
import
com.jsh.erp.service.systemConfig.SystemConfigService
;
import
com.jsh.erp.service.user.UserService
;
import
com.jsh.erp.service.userBusiness.UserBusinessService
;
import
com.jsh.erp.utils.StringUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.context.request.RequestContextHolder
;
...
...
@@ -23,7 +29,6 @@ import javax.servlet.http.HttpServletRequest;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
DepotService
{
...
...
@@ -37,6 +42,10 @@ public class DepotService {
@Resource
private
UserService
userService
;
@Resource
private
SystemConfigService
systemConfigService
;
@Resource
private
UserBusinessService
userBusinessService
;
@Resource
private
LogService
logService
;
@Resource
private
DepotHeadMapperEx
depotHeadMapperEx
;
...
...
@@ -264,4 +273,51 @@ public class DepotService {
}
return
id
;
}
public
JSONArray
findDepotByCurrentUser
()
throws
Exception
{
JSONArray
arr
=
new
JSONArray
();
String
type
=
"UserDepot"
;
Long
userId
=
userService
.
getCurrentUser
().
getId
();
List
<
Depot
>
dataList
=
findUserDepot
();
//开始拼接json数据
if
(
null
!=
dataList
)
{
boolean
depotFlag
=
systemConfigService
.
getDepotFlag
();
for
(
Depot
depot
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
//勾选判断1
Boolean
flag
=
false
;
try
{
flag
=
userBusinessService
.
checkIsUserBusinessExist
(
type
,
userId
.
toString
(),
"["
+
depot
.
getId
().
toString
()
+
"]"
);
}
catch
(
DataAccessException
e
)
{
logger
.
error
(
">>>>>>>>>>>>>>>>>查询用户对应的仓库:类型"
+
type
+
" KeyId为: "
+
userId
+
" 存在异常!"
);
}
if
(!
depotFlag
||
flag
)
{
item
.
put
(
"id"
,
depot
.
getId
());
item
.
put
(
"depotName"
,
depot
.
getName
());
item
.
put
(
"isDefault"
,
depot
.
getIsDefault
());
arr
.
add
(
item
);
}
}
}
return
arr
;
}
/**
* 当前用户有权限使用的仓库列表的id,用逗号隔开
* @return
* @throws Exception
*/
public
String
findDepotStrByCurrentUser
()
throws
Exception
{
JSONArray
arr
=
findDepotByCurrentUser
();
StringBuffer
sb
=
new
StringBuffer
();
for
(
Object
object:
arr
)
{
JSONObject
obj
=
(
JSONObject
)
object
;
sb
.
append
(
obj
.
getLong
(
"id"
)).
append
(
","
);
}
String
depotStr
=
sb
.
toString
();
if
(
StringUtil
.
isNotEmpty
(
depotStr
)){
depotStr
=
depotStr
.
substring
(
0
,
depotStr
.
length
()-
1
);
}
return
depotStr
;
}
}
jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadComponent.java
View file @
f1fa71d3
...
...
@@ -39,8 +39,7 @@ public class DepotHeadComponent implements ICommonQuery {
String
beginTime
=
StringUtil
.
getInfo
(
search
,
"beginTime"
);
String
endTime
=
StringUtil
.
getInfo
(
search
,
"endTime"
);
String
materialParam
=
StringUtil
.
getInfo
(
search
,
"materialParam"
);
String
depotIds
=
StringUtil
.
getInfo
(
search
,
"depotIds"
);
return
depotHeadService
.
select
(
type
,
subType
,
roleType
,
status
,
number
,
beginTime
,
endTime
,
materialParam
,
depotIds
,
QueryUtils
.
offset
(
map
),
QueryUtils
.
rows
(
map
));
return
depotHeadService
.
select
(
type
,
subType
,
roleType
,
status
,
number
,
beginTime
,
endTime
,
materialParam
,
QueryUtils
.
offset
(
map
),
QueryUtils
.
rows
(
map
));
}
@Override
...
...
@@ -54,8 +53,7 @@ public class DepotHeadComponent implements ICommonQuery {
String
beginTime
=
StringUtil
.
getInfo
(
search
,
"beginTime"
);
String
endTime
=
StringUtil
.
getInfo
(
search
,
"endTime"
);
String
materialParam
=
StringUtil
.
getInfo
(
search
,
"materialParam"
);
String
depotIds
=
StringUtil
.
getInfo
(
search
,
"depotIds"
);
return
depotHeadService
.
countDepotHead
(
type
,
subType
,
roleType
,
status
,
number
,
beginTime
,
endTime
,
materialParam
,
depotIds
);
return
depotHeadService
.
countDepotHead
(
type
,
subType
,
roleType
,
status
,
number
,
beginTime
,
endTime
,
materialParam
);
}
@Override
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java
View file @
f1fa71d3
...
...
@@ -14,6 +14,7 @@ import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount;
import
com.jsh.erp.exception.BusinessRunTimeException
;
import
com.jsh.erp.exception.JshException
;
import
com.jsh.erp.service.account.AccountService
;
import
com.jsh.erp.service.depot.DepotService
;
import
com.jsh.erp.service.depotItem.DepotItemService
;
import
com.jsh.erp.service.log.LogService
;
import
com.jsh.erp.service.orgaUserRel.OrgaUserRelService
;
...
...
@@ -49,6 +50,8 @@ public class DepotHeadService {
@Resource
private
UserService
userService
;
@Resource
private
DepotService
depotService
;
@Resource
DepotItemService
depotItemService
;
@Resource
private
SupplierService
supplierService
;
...
...
@@ -90,10 +93,11 @@ public class DepotHeadService {
}
public
List
<
DepotHeadVo4List
>
select
(
String
type
,
String
subType
,
String
roleType
,
String
status
,
String
number
,
String
beginTime
,
String
endTime
,
String
materialParam
,
String
depotIds
,
int
offset
,
int
rows
)
throws
Exception
{
String
materialParam
,
int
offset
,
int
rows
)
throws
Exception
{
List
<
DepotHeadVo4List
>
resList
=
new
ArrayList
<
DepotHeadVo4List
>();
List
<
DepotHeadVo4List
>
list
=
new
ArrayList
<>();
try
{
String
depotIds
=
depotService
.
findDepotStrByCurrentUser
();
String
[]
creatorArray
=
getCreatorArray
(
roleType
);
Map
<
Long
,
String
>
personMap
=
personService
.
getPersonMap
();
Map
<
Long
,
String
>
accountMap
=
accountService
.
getAccountMap
();
...
...
@@ -135,9 +139,10 @@ public class DepotHeadService {
}
public
Long
countDepotHead
(
String
type
,
String
subType
,
String
roleType
,
String
status
,
String
number
,
String
beginTime
,
String
endTime
,
String
materialParam
,
String
depotIds
)
throws
Exception
{
String
materialParam
)
throws
Exception
{
Long
result
=
null
;
try
{
String
depotIds
=
depotService
.
findDepotStrByCurrentUser
();
String
[]
creatorArray
=
getCreatorArray
(
roleType
);
result
=
depotHeadMapperEx
.
countsByDepotHead
(
type
,
subType
,
creatorArray
,
status
,
number
,
beginTime
,
endTime
,
materialParam
,
depotIds
);
}
catch
(
Exception
e
){
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment