Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
T
tcm-system
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TCM
tcm-system
Commits
2764afa5
Commit
2764afa5
authored
May 20, 2019
by
tangf
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.0.204/pd-new/pd-user
parents
38a597a5
f0c495ae
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
263 additions
and
0 deletions
+263
-0
readme.md
readme.md
+263
-0
No files found.
readme.md
View file @
2764afa5
...
@@ -182,3 +182,266 @@ ResponseResult.result()
...
@@ -182,3 +182,266 @@ ResponseResult.result()
# Controller没有参数的函数,不能存在
# Controller没有参数的函数,不能存在
companyId
companyId
#---------------2019-5-20---------------------------
# 建议将所有的`@RequestMapping(method=RequestMethod.POST)`改成`@PostMapping()`,代码会少点。
如:
```
java
@RequestMapping
(
value
=
"/role"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
```
改成:
```
java
@PostMapping
(
value
=
"/role"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
```
# 建议将 list.size() == 0 改成 list.isEmpty()
# @RequestBody的时候不需要去判断整个对象是否为空,因为不可能为空,会出现404错误
```
java
public
ResponseResult
saveIndividual
(
@RequestBody
RegisterIndividualReqVo
reqVo
){
CheckerHelper
.
newInstance
()
.
notBlankCheck
(
"reqVo"
,
reqVo
)
// 这行代码可以去掉
```
# 功能还未完成
```
java
LoginResVo
resVo
=
new
LoginResVo
();
resVo
.
setUserVo
(
userVo
);
resVo
.
setCompanyVo
(
companyVo
);
resVo
.
setCompanyBankCardVo
(
companyBankCardVo
);
resVo
.
setCompanyExtendVo
(
companyExtendVo
);
```
# 如下函数请启用事物
```
java
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
// 这里增加
public
void
delete
(
WebRoleReqVo
webRoleReqVo
)
{
RoleVo
roleVo
=
this
.
getRoleById
(
webRoleReqVo
);
this
.
deleteRole
(
roleVo
);
}
```
# 建议改成StringHelper.compare(),因为有可能某一个值为null
```
java
if
(!
registerUserReqVo
.
getPassword
().
equals
(
registerUserReqVo
.
getConfirmPassword
())){
throw
new
CodeException
(
"确认密码错误"
);
}
改成
if
(!
StringHelper
.
compare
(
registerUserReqVo
.
getPassword
(),
registerUserReqVo
.
getConfirmPassword
()){
throw
new
CodeException
(
"确认密码错误"
);
}
```
# 整体代码注释太少
请问AuthorityServiceImpl类的作用时干啥的?
各个函数是干啥的?
各个函数的各个语句时干啥的?
合适的代码,注释要占用20%以上,通常40%。
# 建议将 UserServiceImpl.saveUser 和 UserServiceImpl.updateUser改成一个函数来处处理
1.
设置主表编号,主表记录为空则创建,否则更新
2.
删除历史用户角色关联
UserRoleGetReqVo reqVo = new UserRoleGetReqVo();
reqVo.setUserId(webUserReqVo.getId());
userRoleDao.remove(reqVo);
3.
创建用户角色关联
# 建议将 saveEnterprise 和 saveIndividual 函数代码合并,因为保存的内容有部分一致
# 字段名称相同时,可以采用 ObjectHelper.writeWithFrom(companyVo,reqVo); 需要注意,别用后台生成值覆盖了前台传输值
```
java
companyVo
.
setId
(
reqVo
.
getId
());
companyVo
.
setMerchantId
(
reqVo
.
getMerchantId
());
companyVo
.
setCompanyType
(
reqVo
.
getCompanyType
());
companyVo
.
setCompanyName
(
reqVo
.
getCompanyName
());
companyVo
.
setAddress
(
reqVo
.
getCompanyAddress
());
companyVo
.
setBusinessLicenseCode
(
reqVo
.
getBusinessLicenseCode
());
companyVo
.
setCompanyAttribute
(
reqVo
.
getCompanyAttribute
());
companyVo
.
setContactName
(
reqVo
.
getContactName
());
companyVo
.
setContactCode
(
reqVo
.
getContactCode
());
companyVo
.
setContactPhone
(
reqVo
.
getContactPhone
());
```
# 有可能拥有此用户,而没有拥有公司,需要抛出异常
```
java
companyReqVo
.
setId
(
userVo
.
getCompanyId
());
CompanyVo
companyVo
=
companyDaoImpl
.
load
(
companyReqVo
,
CompanyVo
.
class
);
```
# 函数内实体尽量在引用之前创建,而不是一起创建,代码可读性更好
```
java
CompanyVo
companyReqVo
=
new
CompanyVo
();
CompanyBankCardVo
companyBankCardReqVo
=
new
CompanyBankCardVo
();
CompanyExtendVo
companyExtendReqVo
=
new
CompanyExtendVo
();
companyReqVo
.
setId
(
userVo
.
getCompanyId
());
CompanyVo
companyVo
=
companyDaoImpl
.
load
(
companyReqVo
,
CompanyVo
.
class
);
companyBankCardReqVo
.
setCompanyId
(
userVo
.
getCompanyId
());
CompanyBankCardVo
companyBankCardVo
=
companyBankCardDaoImpl
.
load
(
companyBankCardReqVo
,
CompanyBankCardVo
.
class
);
companyExtendReqVo
.
setId
(
userVo
.
getCompanyId
());
CompanyExtendVo
companyExtendVo
=
companyExtendDaoImpl
.
load
(
companyExtendReqVo
,
CompanyExtendVo
.
class
);
```
```
java
// 这里是否需要检测公司编号为空,否则有可能导致全表索引
if
(
StringHelper
.
isEmpty
(
userVo
.
getCompanyId
())){
throw
new
CodeException
(
"该员工公司编号不存在"
);
}
// 加载公司
CompanyVo
companyReqVo
=
new
CompanyVo
();
companyReqVo
.
setId
(
userVo
.
getCompanyId
());
CompanyVo
companyVo
=
companyDaoImpl
.
load
(
companyReqVo
,
CompanyVo
.
class
);
// 加载公司银行卡
CompanyBankCardVo
companyBankCardReqVo
=
new
CompanyBankCardVo
();
companyBankCardReqVo
.
setCompanyId
(
userVo
.
getCompanyId
());
CompanyBankCardVo
companyBankCardVo
=
companyBankCardDaoImpl
.
load
(
companyBankCardReqVo
,
CompanyBankCardVo
.
class
);
// 加载公司扩展信息,这里有没有可能1对多?
CompanyExtendVo
companyExtendReqVo
=
new
CompanyExtendVo
();
companyExtendReqVo
.
setId
(
userVo
.
getCompanyId
());
CompanyExtendVo
companyExtendVo
=
companyExtendDaoImpl
.
load
(
companyExtendReqVo
,
CompanyExtendVo
.
class
);
```
# 删除函数可以简化
```
java
roleDao
.
remove
(
roleVo
);
UserRoleGetReqVo
userRoleGetReqVo
=
new
UserRoleGetReqVo
();
userRoleGetReqVo
.
setRoleId
(
roleVo
.
getId
());
List
<
UserRoleVo
>
userRoleList
=
userRoleDaoImpl
.
getUserRoleList
(
userRoleGetReqVo
);
if
(
userRoleList
!=
null
&&
userRoleList
.
size
()
!=
0
){
for
(
UserRoleVo
userRoleRelation:
userRoleList
)
{
userRoleDaoImpl
.
remove
(
userRoleRelation
);
}
}
RoleAuthorityGetReqVo
reqVo
=
new
RoleAuthorityGetReqVo
();
reqVo
.
setRoleId
(
roleVo
.
getId
());
List
<
RoleAuthorityVo
>
roleAuthorityList
=
roleAuthorityDaoImpl
.
getRoleAuthorityList
(
reqVo
);
if
(
roleAuthorityList
!=
null
&&
roleAuthorityList
.
size
()
!=
0
){
for
(
RoleAuthorityVo
roleAuthority:
roleAuthorityList
)
{
roleAuthorityDaoImpl
.
remove
(
roleAuthority
);
}
}
// 这里得移动到前面,先删除子元素,在删除当前元素
RoleGetReqVo
roleGetReqVo
=
new
RoleGetReqVo
();
roleGetReqVo
.
setId
(
roleVo
.
getId
());
List
<
RoleVo
>
childList
=
roleDao
.
getChild
(
roleGetReqVo
);
for
(
RoleVo
child:
childList
)
{
this
.
deleteRole
(
child
);
}
```
改成
```
java
// 先删除子角色,并且不需要写SQL语句
RoleVo
childReq
=
new
RoleVo
();
childReq
.
setPid
(
roleVo
.
getId
());
List
<
RoleVo
>
childList
=
roleDao
.
loadList
(
childReq
,
RoleVo
.
class
);
for
(
RoleVo
child:
childList
)
{
this
.
deleteRole
(
child
);
}
// 删除当前元素
roleDao
.
remove
(
roleVo
);
// 删除用户角色关联
UserRoleGetReqVo
userRoleGetReqVo
=
new
UserRoleGetReqVo
();
userRoleGetReqVo
.
setRoleId
(
roleVo
.
getId
());
userRoleDaoImpl
.
remove
(
userRoleGetReqVo
);
// 删除角色权限
RoleAuthorityGetReqVo
reqVo
=
new
RoleAuthorityGetReqVo
();
reqVo
.
setRoleId
(
roleVo
.
getId
());
roleAuthorityDaoImpl
.
remove
(
reqVo
);
```
# 建议load函数直接调用,这些函数可以删除
```
java
@Override
public
RoleVo
getRoleById
(
RoleGetReqVo
roleGetReqVo
)
{
return
this
.
load
(
roleGetReqVo
,
RoleVo
.
class
);
}
@Override
public
RoleVo
getRoleByRoleName
(
RoleGetReqVo
getRoleByRoleNameReqVo
)
{
return
this
.
load
(
getRoleByRoleNameReqVo
,
RoleVo
.
class
);
}
```
如下代码改成:
```
java
@Override
public
WebRoleResVo
getRoleById
(
WebRoleReqVo
webRoleReqVo
)
{
RoleGetReqVo
roleGetReqVo
=
new
RoleGetReqVo
();
roleGetReqVo
.
setId
(
webRoleReqVo
.
getId
());
RoleVo
roleVo
=
roleDao
.
getRoleById
(
roleGetReqVo
);
if
(
roleVo
==
null
){
throw
new
CodeException
(
"未找到该角色"
);
}
List
<
AuthorityVo
>
authorityList
=
this
.
getAuthorityListByRoleId
(
webRoleReqVo
.
getId
());
return
this
.
makeResVo
(
roleVo
,
authorityList
);
}
@Override
public
WebRoleResVo
makeResVo
(
RoleVo
roleVo
,
List
<
AuthorityVo
>
authorityList
)
{
WebRoleResVo
resVo
=
new
WebRoleResVo
();
resVo
.
setId
(
roleVo
.
getId
());
resVo
.
setName
(
roleVo
.
getName
());
resVo
.
setPid
(
roleVo
.
getPid
());
resVo
.
setRemark
(
roleVo
.
getRemark
());
resVo
.
setAuthorityList
(
authorityList
);
return
resVo
;
}
@Override
public
List
<
AuthorityVo
>
getAuthorityListByRoleId
(
String
roleId
)
{
RoleAuthorityGetReqVo
reqVo
=
new
RoleAuthorityGetReqVo
();
reqVo
.
setRoleId
(
roleId
);
List
<
RoleAuthorityVo
>
roleAuthorityRelationList
=
roleAuthorityDaoImpl
.
getRoleAuthorityList
(
reqVo
);
if
(
roleAuthorityRelationList
!=
null
&&
roleAuthorityRelationList
.
size
()
!=
0
){
List
<
AuthorityVo
>
authorityList
=
new
ArrayList
(
roleAuthorityRelationList
.
size
());
for
(
RoleAuthorityVo
roleAuthorityRelation:
roleAuthorityRelationList
)
{
AuthorityGetReqVo
authorityGetReqVo
=
new
AuthorityGetReqVo
();
authorityGetReqVo
.
setId
(
roleAuthorityRelation
.
getAuthorityId
());
AuthorityVo
authorityVo
=
authorityDaoImpl
.
load
(
authorityGetReqVo
,
AuthorityVo
.
class
);
authorityList
.
add
(
authorityVo
);
}
return
authorityList
;
}
return
null
;
}
```
改成:
```
java
@Override
public
WebRoleResVo
getRoleById
(
WebRoleReqVo
webRoleReqVo
)
{
WebRoleResVo
roleVo
=
roleDao
.
load
(
webRoleReqVo
,
WebRoleResVo
.
class
);
if
(
roleVo
==
null
){
throw
new
CodeException
(
"未找到该角色"
);
}
RoleAuthorityGetReqVo
reqVo
=
new
RoleAuthorityGetReqVo
();
reqVo
.
setRoleId
(
roleVo
.
getId
());
List
<
AuthorityVo
>
authorityList
=
authorityDaoImpl
.
loadList
(
reqVo
,
AuthorityVo
.
class
);
roleVo
.
setAuthorityList
(
authorityList
);
return
roleVo
;
}
在
authorityDaoImpl
修改
load
语句
this
.
getSql
(
DaoConst
.
LOAD
).
add
(
"roleId"
,
"{INNER}"
,
"INNER JOIN RoleAuthorityVo as b ON a.id = b.AuthorityId AND b.roleId = ?"
);
```
\ No newline at end of file
Write
Preview
Markdown
is supported
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