Commit 2764afa5 authored by tangf's avatar tangf

Merge branch 'master' of http://192.168.0.204/pd-new/pd-user

parents 38a597a5 f0c495ae
......@@ -182,3 +182,266 @@ ResponseResult.result()
# Controller没有参数的函数,不能存在
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment