Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
cms-ci-test
Commits
ace6ad4a
提交
ace6ad4a
authored
5月 26, 2023
作者:
zhenjie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后台用户相关接口
上级
dd11be86
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
40 个修改的文件
包含
1515 行增加
和
19 行删除
+1515
-19
BaseAccountDTO.java
...main/java/com/mmc/iuav/user/model/dto/BaseAccountDTO.java
+38
-0
LoginSuccessDTO.java
...ain/java/com/mmc/iuav/user/model/dto/LoginSuccessDTO.java
+25
-0
UserAccountSimpleDTO.java
...ava/com/mmc/iuav/user/model/dto/UserAccountSimpleDTO.java
+5
-0
BUserAccountQO.java
.../main/java/com/mmc/iuav/user/model/qo/BUserAccountQO.java
+69
-0
LoginUserQO.java
...src/main/java/com/mmc/iuav/user/model/qo/LoginUserQO.java
+26
-0
BUserAccountVO.java
.../main/java/com/mmc/iuav/user/model/vo/BUserAccountVO.java
+83
-0
UserAccountVO.java
...c/main/java/com/mmc/iuav/user/model/vo/UserAccountVO.java
+6
-0
UserTagVO.java
...l/src/main/java/com/mmc/iuav/user/model/vo/UserTagVO.java
+26
-0
JwtUtil.java
...-common-util/src/main/java/com/mmc/iuav/auth/JwtUtil.java
+3
-4
CodeUtil.java
...mon-util/src/main/java/com/mmc/iuav/general/CodeUtil.java
+4
-0
Create.java
...-common-util/src/main/java/com/mmc/iuav/group/Create.java
+9
-0
Freeze.java
...-common-util/src/main/java/com/mmc/iuav/group/Freeze.java
+9
-0
UpdatePassword.java
...util/src/main/java/com/mmc/iuav/group/UpdatePassword.java
+9
-0
BizException.java
...on-util/src/main/java/com/mmc/iuav/http/BizException.java
+90
-0
BaseInfoQO.java
...mmon-util/src/main/java/com/mmc/iuav/page/BaseInfoQO.java
+44
-0
PageResult.java
...mmon-util/src/main/java/com/mmc/iuav/page/PageResult.java
+49
-0
TimePage.java
...common-util/src/main/java/com/mmc/iuav/page/TimePage.java
+34
-0
ResultEnum.java
...-util/src/main/java/com/mmc/iuav/response/ResultEnum.java
+14
-1
BCrypt.java
...ice-user/src/main/java/com/mmc/iuav/user/auth/BCrypt.java
+0
-0
BCryptPasswordEncoder.java
...in/java/com/mmc/iuav/user/auth/BCryptPasswordEncoder.java
+156
-0
PasswordEncoder.java
...src/main/java/com/mmc/iuav/user/auth/PasswordEncoder.java
+40
-0
PwdUtil.java
...ce-user/src/main/java/com/mmc/iuav/user/auth/PwdUtil.java
+18
-0
AuthController.java
...ain/java/com/mmc/iuav/user/controller/AuthController.java
+16
-0
BackUserAccountController.java
...m/mmc/iuav/user/controller/BackUserAccountController.java
+93
-0
BaseController.java
...ain/java/com/mmc/iuav/user/controller/BaseController.java
+34
-0
CooperationController.java
...a/com/mmc/iuav/user/controller/CooperationController.java
+7
-0
UserAccountController.java
...a/com/mmc/iuav/user/controller/UserAccountController.java
+4
-7
CooperationDao.java
...r/src/main/java/com/mmc/iuav/user/dao/CooperationDao.java
+20
-0
UserServiceDao.java
...r/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
+59
-0
UserAccountDO.java
...src/main/java/com/mmc/iuav/user/entity/UserAccountDO.java
+22
-2
UserTagDO.java
...ser/src/main/java/com/mmc/iuav/user/entity/UserTagDO.java
+37
-0
UserAccountStatus.java
.../main/java/com/mmc/iuav/user/enums/UserAccountStatus.java
+34
-0
AuthService.java
.../src/main/java/com/mmc/iuav/user/service/AuthService.java
+15
-0
CooperationService.java
...in/java/com/mmc/iuav/user/service/CooperationService.java
+8
-0
UserAccountService.java
...in/java/com/mmc/iuav/user/service/UserAccountService.java
+61
-0
AuthServiceImpl.java
.../java/com/mmc/iuav/user/service/impl/AuthServiceImpl.java
+53
-3
CooperationServiceImpl.java
...om/mmc/iuav/user/service/impl/CooperationServiceImpl.java
+17
-0
UserAccountServiceImpl.java
...om/mmc/iuav/user/service/impl/UserAccountServiceImpl.java
+142
-0
CooperationDao.xml
...service-user/src/main/resources/mapper/CooperationDao.xml
+16
-0
UserServiceDao.xml
...service-user/src/main/resources/mapper/UserServiceDao.xml
+120
-2
没有找到文件。
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/BaseAccountDTO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年11月4日 下午2:38:36
* @explain 类说明
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BaseAccountDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2979712090903806216L
;
private
Integer
id
;
private
String
uid
;
private
String
accountPhone
;
private
String
accountNo
;
private
String
accountName
;
private
String
tokenPort
;
// @ApiModelProperty(value = "角色ID")
// private Integer roleId;
// @ApiModelProperty(value = "是否为管理角色:0否 1是")
// private Integer admin;// 是否为管理角色
// @ApiModelProperty(value = "是否为运营角色:0否 1是")
// private Integer operate;
// @ApiModelProperty(value = "是否PMC发货专员:0否 1是")
// private Integer pmc;
// @ApiModelProperty(value = "单位信息")
// private CompanyCacheDTO companyInfo;// 单位信息
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/LoginSuccessDTO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年8月31日 下午8:06:14
* @explain 类说明
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LoginSuccessDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1200834589953161925L
;
private
String
token
;
private
Integer
userAccountId
;
private
String
accountNo
;
// private RoleInfoDTO roleInfo;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/dto/UserAccountSimpleDTO.java
浏览文件 @
ace6ad4a
...
...
@@ -22,6 +22,8 @@ public class UserAccountSimpleDTO implements Serializable {
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户类型"
)
private
Integer
accountType
;
@ApiModelProperty
(
value
=
"用户账号"
)
private
String
accountNo
;
@ApiModelProperty
(
value
=
"用户uid"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"手机号"
)
...
...
@@ -44,4 +46,6 @@ public class UserAccountSimpleDTO implements Serializable {
private
Integer
portType
;
@ApiModelProperty
(
value
=
"企业认证状态, 0未通过,1通过"
)
private
Integer
companyAuthStatus
;
@ApiModelProperty
(
value
=
"合作标签id"
)
private
Integer
cooperationTagId
;
}
\ No newline at end of file
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/qo/BUserAccountQO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
qo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.domain.Page
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/5/25 13:32
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BUserAccountQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"关键字"
,
required
=
false
)
private
String
keyword
;
@ApiModelProperty
(
value
=
"地区"
,
required
=
false
)
private
String
area
;
@ApiModelProperty
(
value
=
"省份编码"
,
required
=
false
)
private
Integer
provinceCode
;
@ApiModelProperty
(
value
=
"城市编码"
,
required
=
false
)
private
Integer
cityCode
;
@ApiModelProperty
(
value
=
"县区编码"
,
required
=
false
)
private
Integer
districtCode
;
@ApiModelProperty
(
value
=
"角色id"
,
required
=
false
)
private
Integer
roleId
;
@ApiModelProperty
(
value
=
"账号状态:0禁用 1可用"
)
private
Integer
accountStatus
;
@ApiModelProperty
(
value
=
"账号状态:0合伙人 1员工"
)
private
Integer
userType
;
@ApiModelProperty
(
value
=
"用户id集合"
)
private
List
<
Integer
>
userIds
;
@ApiModelProperty
(
value
=
"推荐单位id"
)
private
Integer
rcdCompanyId
;
@ApiModelProperty
(
value
=
"单位集合"
,
hidden
=
true
)
private
List
<
Integer
>
companys
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
Page
.
class
)
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
Page
.
class
)
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/qo/LoginUserQO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
qo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author: zj
* @Date: 2023/5/25 10:39
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LoginUserQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6148830939265702460L
;
@ApiModelProperty
(
value
=
"登录账号"
)
@NotNull
(
message
=
"登录账号不能为空"
)
private
String
accountNo
;
@ApiModelProperty
(
value
=
"登录密码"
)
@NotNull
(
message
=
"登录密码不能为空"
)
private
String
passWord
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/BUserAccountVO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
vo
;
import
com.mmc.iuav.group.Create
;
import
com.mmc.iuav.group.Update
;
import
com.mmc.iuav.group.UpdatePassword
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author: zj
* @Date: 2023/5/25 11:15
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BUserAccountVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5809674104674997410L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"更新时ID不能为空"
,
groups
=
{
Update
.
class
,
UpdatePassword
.
class
})
private
Integer
id
;
@ApiModelProperty
(
value
=
"账号"
,
example
=
"developer"
)
@NotEmpty
(
message
=
"账号不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
accountNo
;
@ApiModelProperty
(
value
=
"姓名"
,
example
=
"张三丰"
)
@NotEmpty
(
message
=
"姓名不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
userName
;
@ApiModelProperty
(
value
=
"电话"
,
example
=
"13700137000"
)
@NotEmpty
(
message
=
"创建,修改时电话不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
phoneNum
;
@ApiModelProperty
(
value
=
"密码"
,
example
=
"123456"
)
@NotEmpty
(
message
=
"创建密码不能为空"
,
groups
=
{
Create
.
class
,
UpdatePassword
.
class
})
private
String
passWord
;
@ApiModelProperty
(
value
=
"确认密码"
,
example
=
"123456"
)
@NotEmpty
(
message
=
"确认密码不能为空"
,
groups
=
{
Create
.
class
,
UpdatePassword
.
class
})
private
String
alertPwd
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"一个备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
)
@NotNull
(
message
=
"状态不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
accountStatus
;
@ApiModelProperty
(
value
=
"角色"
,
example
=
"1"
,
hidden
=
true
)
//@NotNull(message = "角色不能为空", groups = {Create.class, Update.class})
private
Integer
roleId
;
@ApiModelProperty
(
value
=
"能控制的用户资源来源"
,
hidden
=
true
)
private
Integer
controlSource
;
@ApiModelProperty
(
value
=
"电子邮箱"
,
example
=
"220700100213@163.com"
)
@Email
private
String
email
;
@ApiModelProperty
(
value
=
"所属公司ID"
,
example
=
"1"
,
hidden
=
true
)
private
Integer
companyId
;
@ApiModelProperty
(
value
=
"账号类型:0合伙人 1员工"
,
example
=
"1"
,
hidden
=
true
)
private
Integer
userType
;
@ApiModelProperty
(
value
=
"省份编码"
,
required
=
false
)
private
Integer
provinceCode
;
@ApiModelProperty
(
value
=
"城市编码"
,
required
=
false
)
private
Integer
cityCode
;
@ApiModelProperty
(
value
=
"县区编码"
,
required
=
false
)
private
Integer
districtCode
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/UserAccountVO.java
浏览文件 @
ace6ad4a
...
...
@@ -30,6 +30,8 @@ public class UserAccountVO implements Serializable {
private
Integer
accountType
;
@ApiModelProperty
(
value
=
"用户uid"
)
private
String
uid
;
@ApiModelProperty
(
value
=
"用户账号"
)
private
String
accountNo
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
phoneNum
;
@ApiModelProperty
(
value
=
"用户名称"
)
...
...
@@ -53,5 +55,9 @@ public class UserAccountVO implements Serializable {
private
Integer
portType
;
@ApiModelProperty
(
value
=
"注册时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"企业认证状态, 0未通过,1通过"
)
private
Integer
companyAuthStatus
;
@ApiModelProperty
(
value
=
"合作标签id"
)
private
Integer
cooperationTagId
;
}
cms-common/cms-common-model/src/main/java/com/mmc/iuav/user/model/vo/UserTagVO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
model
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/5/26 20:58
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
UserTagVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2693784088480292773L
;
private
Integer
id
;
private
Integer
cooperationTagId
;
private
Integer
userAccountId
;
private
Date
createTime
;
private
Date
updateTime
;
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/auth/JwtUtil.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
auth
;
import
com.mmc.iuav.general.CodeUtil
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.JwtBuilder
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultEnum
;
import
io.jsonwebtoken.*
;
import
javax.crypto.spec.SecretKeySpec
;
import
javax.xml.bind.DatatypeConverter
;
...
...
cms-common/cms-common-util/src/main/java/com/mmc/iuav/general/CodeUtil.java
浏览文件 @
ace6ad4a
...
...
@@ -25,4 +25,8 @@ public class CodeUtil {
public
static
String
randomCode
(
int
i
)
{
return
CodeUtil
.
getRandomNum
(
i
);
}
public
static
String
removeUserAccount
()
{
return
"DELETE"
+
CodeUtil
.
getRandomNum
(
15
);
}
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/group/Create.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
group
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年8月28日 下午5:37:44
* @explain 类说明
*/
public
interface
Create
{
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/group/Freeze.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
group
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年9月18日 上午11:22:40
* @explain 类说明
*/
public
interface
Freeze
{
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/group/UpdatePassword.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
group
;
/**
* author:zhenjie
* Date:2021/10/8
* time:16:26
*/
public
interface
UpdatePassword
{
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/http/BizException.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
http
;
import
com.mmc.iuav.response.BaseErrorInfoInterface
;
import
com.mmc.iuav.response.ResultEnum
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年8月13日 上午9:25:43
* @explain 类说明
*/
public
class
BizException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 错误码
*/
protected
String
errorCode
;
/**
* 错误信息
*/
protected
String
errorMsg
;
public
BizException
()
{
super
();
}
public
BizException
(
BaseErrorInfoInterface
errorInfoInterface
)
{
super
(
errorInfoInterface
.
getResultCode
());
this
.
errorCode
=
errorInfoInterface
.
getResultCode
();
this
.
errorMsg
=
errorInfoInterface
.
getResultMsg
();
}
public
BizException
(
BaseErrorInfoInterface
errorInfoInterface
,
Throwable
cause
)
{
super
(
errorInfoInterface
.
getResultCode
(),
cause
);
this
.
errorCode
=
errorInfoInterface
.
getResultCode
();
this
.
errorMsg
=
errorInfoInterface
.
getResultMsg
();
}
public
BizException
(
ResultEnum
enums
)
{
super
(
enums
.
getResultCode
());
this
.
errorCode
=
enums
.
getResultCode
();
this
.
errorMsg
=
enums
.
getResultMsg
();
}
public
BizException
(
String
errorMsg
)
{
super
(
errorMsg
);
this
.
errorCode
=
"-1"
;
this
.
errorMsg
=
errorMsg
;
}
public
BizException
(
String
errorCode
,
String
errorMsg
)
{
super
(
errorCode
);
this
.
errorCode
=
errorCode
;
this
.
errorMsg
=
errorMsg
;
}
public
BizException
(
String
errorCode
,
String
errorMsg
,
Throwable
cause
)
{
super
(
errorCode
,
cause
);
this
.
errorCode
=
errorCode
;
this
.
errorMsg
=
errorMsg
;
}
public
String
getErrorCode
()
{
return
errorCode
;
}
public
void
setErrorCode
(
String
errorCode
)
{
this
.
errorCode
=
errorCode
;
}
public
String
getErrorMsg
()
{
return
errorMsg
;
}
public
void
setErrorMsg
(
String
errorMsg
)
{
this
.
errorMsg
=
errorMsg
;
}
@Override
public
String
getMessage
()
{
return
errorMsg
;
}
@Override
public
Throwable
fillInStackTrace
()
{
return
this
;
}
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/page/BaseInfoQO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
page
;
import
com.mmc.iuav.group.Freeze
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.domain.Page
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
BaseInfoQO
{
@ApiModelProperty
(
value
=
"开始时间"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
private
String
endTime
;
@ApiModelProperty
(
value
=
"页码"
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
,
message
=
"pageNo不能少于1"
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
,
message
=
"pageSize不能少于1"
)
private
Integer
pageSize
;
/**
* 初始化起始查询行并返回当前页
*/
public
Integer
buildCurrentPage
()
{
Integer
pageNo
=
this
.
pageNo
;
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
return
pageNo
;
}
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/page/PageResult.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
page
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年8月28日 下午3:18:21
* @explain 分页工具类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
PageResult
<
T
>
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2848996493573325801L
;
private
int
pageNo
;
// 分页起始页
private
int
pageSize
;
// 每页记录数
private
T
list
;
// 返回的记录集合
private
long
totalCount
;
// 总记录条数
private
long
totalPage
;
// 总页数
public
static
PageResult
buildPage
(
int
pageNo
,
int
pageSize
,
int
totalCount
)
{
PageResult
page
=
new
PageResult
();
page
.
pageNo
=
pageNo
;
page
.
pageSize
=
pageSize
;
page
.
totalCount
=
totalCount
;
page
.
totalPage
=
(
totalCount
%
pageSize
==
0
)
?
(
totalCount
/
pageSize
)
:
(
totalCount
/
pageSize
+
1
);
return
page
;
}
public
static
<
T
>
PageResult
buildPage
(
int
pageNo
,
int
pageSize
,
int
totalCount
,
T
list
)
{
PageResult
page
=
PageResult
.
buildPage
(
pageNo
,
pageSize
,
totalCount
);
page
.
setList
(
list
);
return
page
;
}
public
static
PageResult
buildPage
(
BaseInfoQO
qo
,
int
totalCount
)
{
PageResult
page
=
new
PageResult
();
page
.
pageNo
=
qo
.
getPageNo
();
Integer
pageSize
=
qo
.
getPageSize
();
page
.
pageSize
=
pageSize
;
page
.
totalCount
=
totalCount
;
page
.
totalPage
=
(
totalCount
%
pageSize
==
0
)
?
(
totalCount
/
pageSize
)
:
(
totalCount
/
pageSize
+
1
);
return
page
;
}
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/page/TimePage.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
page
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年11月10日 上午11:40:34
* @explain 类说明
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TimePage
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2530498038870578257L
;
private
int
pageNo
;
// 分页起始页
private
int
pageSize
;
// 每页记录数
private
long
totalCount
;
// 总记录条数
private
long
totalPage
;
// 总页数
private
long
ctime
;
public
static
TimePage
buildPage
(
int
pageNo
,
int
pageSize
,
int
totalCount
,
long
ctime
)
{
TimePage
page
=
new
TimePage
();
page
.
pageNo
=
pageNo
;
page
.
pageSize
=
pageSize
;
page
.
totalCount
=
totalCount
;
page
.
totalPage
=
(
totalCount
%
pageSize
==
0
)
?
(
totalCount
/
pageSize
)
:
(
totalCount
/
pageSize
+
1
);
page
.
setCtime
(
ctime
);
return
page
;
}
}
cms-common/cms-common-util/src/main/java/com/mmc/iuav/response/ResultEnum.java
浏览文件 @
ace6ad4a
...
...
@@ -14,12 +14,25 @@ public enum ResultEnum implements BaseErrorInfoInterface{
COMPANY_NOT_AUTH_ERROR
(
"1001"
,
"未进行企业认证"
),
BUSINESS_LICENSE_CHECK_PARAMETER_ERROR
(
"1002"
,
"企业信息与营业执照信息不一致,请重新上传"
),
LOGIN_ACCOUNT_NOT_EXIT_ERROR
(
"5005"
,
"账号不存在"
),
LOGIN_PASSWORD_ERROR
(
"5006"
,
"密码错误"
),
LOGIN_ACCOUNT_STATUS_ERROR
(
"5008"
,
"外部访问"
),
//微信相关
PASSWORD_INCONSISTENT
(
"5026"
,
"新密码与确认密码不一致,请确认一致"
),
WX_ACCESS_TOKEN_ERROR
(
"5027"
,
"获取微信AccessToken失败"
),
APPLET_QR_CODE_CREATE_ERROR
(
"5030"
,
"生成小程序码错误:"
),
PWD_CREATE_ERROR
(
"6001"
,
"创建密码失败"
),
PWD_CONPARED_ERROR
(
"6002"
,
"密码错误"
),
PWD_ALERT_ERROR
(
"6003"
,
"密码不一致"
),
PWD_REQUEST_AUTH_ERROR
(
"6003"
,
"密码请求验证"
),
APPLET_PORT_TYPE_ERROR
(
"7001"
,
"小程序端口类型错误"
),
APPLET_LOGIN_ERROR
(
"7002"
,
"获取小程序登录失败"
);
APPLET_LOGIN_ERROR
(
"7002"
,
"获取小程序登录失败"
),
UPDATE_USER_ACCOUNT_REPEAT
(
"7003"
,
"修改后的账户名已存在"
),
ADD_USER_ACCOUNT_NAME_EXISTS
(
"7004"
,
"新增账户名已经存在"
);
/**
* 错误码
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/auth/BCrypt.java
0 → 100644
浏览文件 @
ace6ad4a
差异被折叠。
点击展开。
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/auth/BCryptPasswordEncoder.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
auth
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
java.security.SecureRandom
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* Implementation of PasswordEncoder that uses the BCrypt strong hashing function. Clients
* can optionally supply a "version" ($2a, $2b, $2y) and a "strength" (a.k.a. log rounds in BCrypt)
* and a SecureRandom instance. The larger the strength parameter the more work will have to be done
* (exponentially) to hash the passwords. The default value is 10.
*
*/
@Component
public
class
BCryptPasswordEncoder
implements
PasswordEncoder
{
private
Pattern
BCRYPT_PATTERN
=
Pattern
.
compile
(
"\\A\\$2(a|y|b)?\\$(\\d\\d)\\$[./0-9A-Za-z]{53}"
);
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
com
.
mmc
.
iuav
.
user
.
auth
.
BCryptPasswordEncoder
.
class
);
private
final
int
strength
;
private
final
BCryptVersion
version
;
private
final
SecureRandom
random
;
public
BCryptPasswordEncoder
()
{
this
(-
1
);
}
/**
* @param strength the log rounds to use, between 4 and 31
*/
public
BCryptPasswordEncoder
(
int
strength
)
{
this
(
strength
,
null
);
}
/**
* @param version the version of bcrypt, can be 2a,2b,2y
*/
public
BCryptPasswordEncoder
(
BCryptVersion
version
)
{
this
(
version
,
null
);
}
/**
* @param version the version of bcrypt, can be 2a,2b,2y
* @param random the secure random instance to use
*/
public
BCryptPasswordEncoder
(
BCryptVersion
version
,
SecureRandom
random
)
{
this
(
version
,
-
1
,
random
);
}
/**
* @param strength the log rounds to use, between 4 and 31
* @param random the secure random instance to use
*/
public
BCryptPasswordEncoder
(
int
strength
,
SecureRandom
random
)
{
this
(
BCryptVersion
.
$
2
A
,
strength
,
random
);
}
/**
* @param version the version of bcrypt, can be 2a,2b,2y
* @param strength the log rounds to use, between 4 and 31
*/
public
BCryptPasswordEncoder
(
BCryptVersion
version
,
int
strength
)
{
this
(
version
,
strength
,
null
);
}
/**
* @param version the version of bcrypt, can be 2a,2b,2y
* @param strength the log rounds to use, between 4 and 31
* @param random the secure random instance to use
*/
public
BCryptPasswordEncoder
(
BCryptVersion
version
,
int
strength
,
SecureRandom
random
)
{
if
(
strength
!=
-
1
&&
(
strength
<
BCrypt
.
MIN_LOG_ROUNDS
||
strength
>
BCrypt
.
MAX_LOG_ROUNDS
))
{
throw
new
IllegalArgumentException
(
"Bad strength"
);
}
this
.
version
=
version
;
this
.
strength
=
strength
==
-
1
?
10
:
strength
;
this
.
random
=
random
;
}
public
String
encode
(
CharSequence
rawPassword
)
{
if
(
rawPassword
==
null
)
{
throw
new
IllegalArgumentException
(
"rawPassword cannot be null"
);
}
String
salt
;
if
(
random
!=
null
)
{
salt
=
BCrypt
.
gensalt
(
version
.
getVersion
(),
strength
,
random
);
}
else
{
salt
=
BCrypt
.
gensalt
(
version
.
getVersion
(),
strength
);
}
return
BCrypt
.
hashpw
(
rawPassword
.
toString
(),
salt
);
}
public
boolean
matches
(
CharSequence
rawPassword
,
String
encodedPassword
)
{
if
(
rawPassword
==
null
)
{
throw
new
IllegalArgumentException
(
"rawPassword cannot be null"
);
}
if
(
encodedPassword
==
null
||
encodedPassword
.
length
()
==
0
)
{
logger
.
warn
(
"Empty encoded password"
);
return
false
;
}
if
(!
BCRYPT_PATTERN
.
matcher
(
encodedPassword
).
matches
())
{
logger
.
warn
(
"Encoded password does not look like BCrypt"
);
return
false
;
}
return
BCrypt
.
checkpw
(
rawPassword
.
toString
(),
encodedPassword
);
}
@Override
public
boolean
upgradeEncoding
(
String
encodedPassword
)
{
if
(
encodedPassword
==
null
||
encodedPassword
.
length
()
==
0
)
{
logger
.
warn
(
"Empty encoded password"
);
return
false
;
}
Matcher
matcher
=
BCRYPT_PATTERN
.
matcher
(
encodedPassword
);
if
(!
matcher
.
matches
())
{
throw
new
IllegalArgumentException
(
"Encoded password does not look like BCrypt: "
+
encodedPassword
);
}
else
{
int
strength
=
Integer
.
parseInt
(
matcher
.
group
(
2
));
return
strength
<
this
.
strength
;
}
}
/**
* Stores the default bcrypt version for use in configuration.
*
* @author Lin Feng
*/
public
enum
BCryptVersion
{
$
2
A
(
"$2a"
),
$
2
Y
(
"$2y"
),
$
2
B
(
"$2b"
);
private
final
String
version
;
BCryptVersion
(
String
version
)
{
this
.
version
=
version
;
}
public
String
getVersion
()
{
return
this
.
version
;
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/auth/PasswordEncoder.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
auth
;
/**
* Service interface for encoding passwords.
*
* The preferred implementation is {@code BCryptPasswordEncoder}.
*
* @author Keith Donald
*/
public
interface
PasswordEncoder
{
/**
* Encode the raw password. Generally, a good encoding algorithm applies a SHA-1 or
* greater hash combined with an 8-byte or greater randomly generated salt.
*/
String
encode
(
CharSequence
rawPassword
);
/**
* Verify the encoded password obtained from storage matches the submitted raw
* password after it too is encoded. Returns true if the passwords match, false if
* they do not. The stored password itself is never decoded.
*
* @param rawPassword the raw password to encode and match
* @param encodedPassword the encoded password from storage to compare with
* @return true if the raw password, after encoding, matches the encoded password from
* storage
*/
boolean
matches
(
CharSequence
rawPassword
,
String
encodedPassword
);
/**
* Returns true if the encoded password should be encoded again for better security,
* else false. The default implementation always returns false.
* @param encodedPassword the encoded password to check
* @return true if the encoded password should be encoded again for better security,
* else false.
*/
default
boolean
upgradeEncoding
(
String
encodedPassword
)
{
return
false
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/auth/PwdUtil.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
auth
;
import
java.math.BigInteger
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年8月31日 下午4:39:06
* @explain 密码加密
*/
public
class
PwdUtil
{
public
static
String
securityPwd
(
String
passWord
)
throws
NoSuchAlgorithmException
{
MessageDigest
md
=
MessageDigest
.
getInstance
(
"SHA"
);
md
.
update
(
passWord
.
getBytes
());
return
new
BigInteger
(
md
.
digest
()).
toString
(
32
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/AuthController.java
浏览文件 @
ace6ad4a
...
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.controller;
import
com.mmc.iuav.group.Insert
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.LoginUserQO
;
import
com.mmc.iuav.user.model.vo.AppUserSucVO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
import
com.mmc.iuav.user.service.AuthService
;
...
...
@@ -28,4 +29,19 @@ public class AuthController {
public
ResultBody
appletLogin
(
@Validated
(
value
=
{
Insert
.
class
})
@RequestBody
WxLoginVO
wxLoginVO
){
return
authService
.
appletLogin
(
wxLoginVO
);
}
@ApiOperation
(
value
=
"平台账号密码登录"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@PostMapping
(
"backEndLogin"
)
public
ResultBody
backEndLogin
(
@ApiParam
(
value
=
"账号登录QO"
,
required
=
true
)
@Validated
@RequestBody
LoginUserQO
param
)
{
return
authService
.
backEndLogin
(
param
);
}
@ApiOperation
(
value
=
"测试-小程序unionId登录/注册"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AppUserSucVO
.
class
)
})
@PostMapping
(
"testAppletLogin"
)
public
ResultBody
testAppletLogin
(
@RequestParam
String
unionId
){
return
authService
.
testAppletLogin
(
unionId
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/BackUserAccountController.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
controller
;
import
com.mmc.iuav.group.Create
;
import
com.mmc.iuav.group.Update
;
import
com.mmc.iuav.group.UpdatePassword
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.dto.BaseAccountDTO
;
import
com.mmc.iuav.user.model.dto.UserAccountSimpleDTO
;
import
com.mmc.iuav.user.model.qo.BUserAccountQO
;
import
com.mmc.iuav.user.model.vo.BUserAccountVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
com.mmc.iuav.user.service.UserAccountService
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.servlet.http.HttpServletRequest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/5/25 11:22
*/
@Api
(
tags
=
"后台用户相关接口"
)
@RequestMapping
(
"/back-user/"
)
@RestController
public
class
BackUserAccountController
extends
BaseController
{
@Autowired
private
UserAccountService
userAccountService
;
@ApiOperation
(
value
=
"账号-新增"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"insertBAccount"
)
public
ResultBody
insertBAccount
(
@Validated
(
value
=
{
Create
.
class
})
@RequestBody
BUserAccountVO
bUserAccountVO
)
{
return
userAccountService
.
insertBAccount
(
bUserAccountVO
);
}
@ApiOperation
(
value
=
"账号-修改"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"updateBAccount"
)
public
ResultBody
updateBAccount
(
@Validated
(
value
=
{
Update
.
class
})
@RequestBody
BUserAccountVO
bUserAccountVO
)
{
return
userAccountService
.
updateBAccount
(
bUserAccountVO
);
}
@ApiOperation
(
value
=
"账号-删除"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"removeBAccount"
)
public
ResultBody
removeBAccount
(
@RequestParam
Integer
userAccountId
)
{
return
userAccountService
.
removeBAccount
(
userAccountId
);
}
@ApiOperation
(
value
=
"账号-列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"listBAccountPage"
)
public
ResultBody
<
UserAccountSimpleDTO
>
listBAccountPage
(
@ApiParam
(
value
=
"账号查询QO"
,
required
=
true
)
@RequestBody
BUserAccountQO
bUserAccountQO
)
{
return
userAccountService
.
listBAccountPage
(
bUserAccountQO
);
}
@ApiOperation
(
value
=
"账号-用户列表-内部调用"
,
hidden
=
true
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
List
.
class
)})
@PostMapping
(
"feignListBAccountPage"
)
public
List
<
UserAccountSimpleDTO
>
feignListBAccountPage
(
@ApiParam
(
value
=
"账号查询QO"
,
required
=
true
)
@RequestBody
BUserAccountQO
bUserAccountQO
)
{
return
userAccountService
.
feignListBAccountPage
(
bUserAccountQO
);
}
@ApiOperation
(
value
=
"账号管理-修改密码"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"updatePassword"
)
public
ResultBody
updatePassword
(
@Validated
(
value
=
{
UpdatePassword
.
class
})
@RequestBody
BUserAccountVO
account
)
throws
NoSuchAlgorithmException
{
return
userAccountService
.
updatePassword
(
account
);
}
@ApiOperation
(
value
=
"feign-验证用户密码"
)
@ApiIgnore
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"feignAuthUserPwd"
)
public
ResultBody
feignAuthUserPwd
(
@RequestParam
(
required
=
true
)
Integer
id
,
@RequestParam
(
required
=
true
)
String
authPwd
)
{
return
userAccountService
.
feignAuthUserPwd
(
id
,
authPwd
);
}
@ApiOperation
(
value
=
"test"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"listTest"
)
public
ResultBody
listTest
(
HttpServletRequest
request
)
{
return
ResultBody
.
success
(
this
.
getUserLoginInfo
(
request
));
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/BaseController.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
controller
;
import
com.mmc.iuav.auth.JwtConstant
;
import
com.mmc.iuav.auth.JwtUtil
;
import
com.mmc.iuav.http.BizException
;
import
com.mmc.iuav.user.model.dto.BaseAccountDTO
;
import
io.jsonwebtoken.Claims
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author: zj
* @Date: 2023/5/25 18:11
*/
public
abstract
class
BaseController
{
/**
* 解析token,获取用户信息
* @param request
* @return
*/
public
BaseAccountDTO
getUserLoginInfo
(
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
"token"
);
try
{
Claims
claims
=
JwtUtil
.
parseJwt
(
token
);
String
userId
=
claims
.
get
(
JwtConstant
.
USER_ACCOUNT_ID
).
toString
();
// String roleId = claims.get("").toString();
String
tokenType
=
claims
.
get
(
JwtConstant
.
TOKEN_TYPE
).
toString
();
return
BaseAccountDTO
.
builder
().
id
(
Integer
.
parseInt
(
userId
)).
tokenPort
(
tokenType
).
build
();
}
catch
(
Exception
e
){
throw
new
BizException
(
"Invalid token"
);
}
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/CooperationController.java
浏览文件 @
ace6ad4a
...
...
@@ -35,4 +35,11 @@ public class CooperationController {
public
ResultBody
apply
(
@Validated
(
value
=
{
Insert
.
class
})
@RequestBody
UserApplyTagVO
userApplyTagVO
){
return
cooperationService
.
apply
(
userApplyTagVO
);
}
@ApiOperation
(
value
=
"后台设置小程序用户标签"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@GetMapping
(
"changeUserTag"
)
public
ResultBody
changeUserTag
(
@RequestParam
(
"userAccountId"
)
Integer
userAccountId
,
@RequestParam
(
"cooperationTagId"
)
Integer
cooperationTagId
)
{
return
cooperationService
.
changeUserTag
(
userAccountId
,
cooperationTagId
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/controller/UserAccountController.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
controller
;
import
com.mmc.iuav.group.Insert
;
import
com.mmc.iuav.group.Update
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.dto.UserAccountSimpleDTO
;
import
com.mmc.iuav.user.model.vo.AppUserSucVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
import
com.mmc.iuav.user.service.UserAccountService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -16,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
...
...
@@ -25,7 +23,7 @@ import java.util.List;
@Api
(
tags
=
"账号相关接口"
)
@RequestMapping
(
"/user-account/"
)
@RestController
public
class
UserAccountController
{
public
class
UserAccountController
extends
BaseController
{
@Autowired
private
UserAccountService
userAccountService
;
...
...
@@ -33,8 +31,8 @@ public class UserAccountController {
@ApiOperation
(
value
=
"获取用户信息"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserAccountVO
.
class
)
})
@GetMapping
(
"info"
)
public
ResultBody
info
(
@RequestParam
Integer
userAccountId
)
{
return
ResultBody
.
success
(
userAccountService
.
getUserAccountById
(
userAccountId
));
public
ResultBody
info
(
HttpServletRequest
request
)
{
return
ResultBody
.
success
(
userAccountService
.
getUserAccountById
(
this
.
getUserLoginInfo
(
request
).
getId
()
));
}
@ApiOperation
(
value
=
"修改用户信息"
)
...
...
@@ -58,5 +56,4 @@ public class UserAccountController {
return
userAccountService
.
feignListUserAccountIds
(
provinceCode
,
cityCode
,
districtCode
);
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/CooperationDao.java
浏览文件 @
ace6ad4a
...
...
@@ -2,6 +2,7 @@ package com.mmc.iuav.user.dao;
import
com.mmc.iuav.user.entity.CooperationTagDO
;
import
com.mmc.iuav.user.entity.UserApplyTagDO
;
import
com.mmc.iuav.user.entity.UserTagDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
...
...
@@ -36,4 +37,23 @@ public interface CooperationDao {
* @param userApplyTagDO
*/
void
updateUserApplyTag
(
UserApplyTagDO
userApplyTagDO
);
/**
* 根据用户id查询渠道登记
* @param userAccountId
* @return
*/
UserTagDO
getUserTag
(
Integer
userAccountId
);
/**
* 用户设置渠道等级
* @param userTagDO
*/
void
insertUserTag
(
UserTagDO
userTagDO
);
/**
* 修改用户渠道等级
* @param userTagDO
*/
void
updateUserTag
(
UserTagDO
userTagDO
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
dao
;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.model.qo.BUserAccountQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
...
...
@@ -45,4 +46,62 @@ public interface UserServiceDao {
* @return
*/
List
<
Integer
>
listUserAccountIdsByDistrictCode
(
Integer
provinceCode
,
Integer
cityCode
,
Integer
districtCode
);
/**
* 登录账号密码查询用户信息
* @param accountNo
* @param passWord
* @return
*/
UserAccountDO
getUserLoginInfo
(
String
accountNo
,
String
passWord
);
/**
* 批量获取用户信息
* @param bUserAccountQO
* @return
*/
List
<
UserAccountDO
>
feignListBAccountPage
(
BUserAccountQO
bUserAccountQO
);
/**
* 删除用户
* @param removeNO
* @param userAccountId
*/
void
removeUserAccount
(
String
removeNO
,
Integer
userAccountId
);
/**
* 根据账号名称查询数量
* @param excludeId
* @param accountNo
* @return
*/
int
countUserAccountNo
(
Integer
excludeId
,
String
accountNo
);
/**
* 查询用户数量
* @param param
* @return
*/
int
countListBAccountPage
(
BUserAccountQO
param
);
/**
* 查询用户信息
* @param param
* @return
*/
List
<
UserAccountDO
>
listBAccountPage
(
BUserAccountQO
param
);
/**
* 修改用户密码
* @param id
* @param passWord
*/
void
updatePassword
(
Integer
id
,
String
passWord
);
/**
* 获取用户密码
* @param id
* @return
*/
UserAccountDO
getUserAuthPwdInfo
(
Integer
id
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/UserAccountDO.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
entity
;
import
com.mmc.iuav.user.model.dto.UserAccountSimpleDTO
;
import
com.mmc.iuav.user.model.vo.BUserAccountVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -19,7 +21,9 @@ import java.util.Date;
public
class
UserAccountDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5007589179946146721L
;
private
Integer
id
;
private
String
accountNo
;
private
Integer
accountType
;
private
String
password
;
private
String
uid
;
private
String
phoneNum
;
private
String
userName
;
...
...
@@ -36,6 +40,9 @@ public class UserAccountDO implements Serializable {
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
provinceCode
;
private
Integer
cityCode
;
private
Integer
districtCode
;
public
UserAccountDO
(
UserAccountVO
userAccountVO
)
{
this
.
id
=
userAccountVO
.
getId
();
...
...
@@ -50,14 +57,27 @@ public class UserAccountDO implements Serializable {
this
.
portType
=
userAccountVO
.
getPortType
();
}
public
UserAccountDO
(
BUserAccountVO
bUserAccountVO
)
{
this
.
id
=
bUserAccountVO
.
getId
();
this
.
accountNo
=
bUserAccountVO
.
getAccountNo
();
this
.
phoneNum
=
bUserAccountVO
.
getPhoneNum
();
this
.
userName
=
bUserAccountVO
.
getUserName
();
this
.
email
=
bUserAccountVO
.
getEmail
();
this
.
accountStatus
=
bUserAccountVO
.
getAccountStatus
();
this
.
remark
=
bUserAccountVO
.
getRemark
();
this
.
provinceCode
=
bUserAccountVO
.
getProvinceCode
();
this
.
cityCode
=
bUserAccountVO
.
getCityCode
();
this
.
districtCode
=
bUserAccountVO
.
getDistrictCode
();
}
public
UserAccountVO
buildUserAccountVO
()
{
return
UserAccountVO
.
builder
().
id
(
this
.
id
).
uid
(
this
.
uid
).
accountType
(
this
.
accountType
).
phoneNum
(
this
.
phoneNum
).
userName
(
this
.
userName
).
nickName
(
this
.
nickName
)
return
UserAccountVO
.
builder
().
id
(
this
.
id
).
uid
(
this
.
uid
).
account
No
(
this
.
accountNo
).
account
Type
(
this
.
accountType
).
phoneNum
(
this
.
phoneNum
).
userName
(
this
.
userName
).
nickName
(
this
.
nickName
)
.
userImg
(
this
.
userImg
).
userSex
(
this
.
userSex
).
email
(
this
.
email
).
source
(
this
.
source
).
accountStatus
(
this
.
accountStatus
).
remark
(
this
.
remark
).
portType
(
this
.
portType
)
.
createTime
(
this
.
createTime
).
build
();
}
public
UserAccountSimpleDTO
buildUserAccountSimpleDTO
()
{
return
UserAccountSimpleDTO
.
builder
().
id
(
this
.
id
).
uid
(
this
.
uid
).
accountType
(
this
.
accountType
).
phoneNum
(
this
.
phoneNum
).
userName
(
this
.
userName
).
nickName
(
this
.
nickName
)
return
UserAccountSimpleDTO
.
builder
().
id
(
this
.
id
).
uid
(
this
.
uid
).
account
No
(
this
.
accountNo
).
account
Type
(
this
.
accountType
).
phoneNum
(
this
.
phoneNum
).
userName
(
this
.
userName
).
nickName
(
this
.
nickName
)
.
userImg
(
this
.
userImg
).
userSex
(
this
.
userSex
).
email
(
this
.
email
).
source
(
this
.
source
).
accountStatus
(
this
.
accountStatus
).
portType
(
this
.
portType
)
.
build
();
}
...
...
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/entity/UserTagDO.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
entity
;
import
com.mmc.iuav.user.model.vo.UserTagVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/5/26 20:55
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
UserTagDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5355286947297870886L
;
private
Integer
id
;
private
Integer
cooperationTagId
;
private
Integer
userAccountId
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
public
UserTagDO
(
UserTagVO
userTagVO
)
{
this
.
id
=
userTagVO
.
getId
();
this
.
userAccountId
=
userTagVO
.
getUserAccountId
();
this
.
cooperationTagId
=
userTagVO
.
getCooperationTagId
();
}
public
UserTagVO
buildUserTagVO
()
{
return
UserTagVO
.
builder
().
id
(
this
.
id
).
cooperationTagId
(
this
.
cooperationTagId
).
userAccountId
(
this
.
userAccountId
).
build
();
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/enums/UserAccountStatus.java
0 → 100644
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
enums
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年9月7日 下午3:06:26
* @explain 类说明
*/
public
enum
UserAccountStatus
{
NORMAL
(
1
,
"正常可用"
),
DISABLE
(
0
,
"禁用"
);
UserAccountStatus
(
int
accountStatus
,
String
statusName
)
{
this
.
accountStatus
=
accountStatus
;
this
.
statusName
=
statusName
;
}
private
Integer
accountStatus
;
private
String
statusName
;
public
Integer
getAccountStatus
()
{
return
accountStatus
;
}
public
void
setAccountStatus
(
Integer
accountStatus
)
{
this
.
accountStatus
=
accountStatus
;
}
public
String
getStatusName
()
{
return
statusName
;
}
public
void
setStatusName
(
String
statusName
)
{
this
.
statusName
=
statusName
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/AuthService.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
service
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.model.qo.LoginUserQO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
/**
...
...
@@ -14,4 +15,18 @@ public interface AuthService {
* @return
*/
ResultBody
appletLogin
(
WxLoginVO
wxLoginVO
);
/**
* 后台用户登录
* @param param
* @return
*/
ResultBody
backEndLogin
(
LoginUserQO
param
);
/**
* 小程序用户登录
* @param unionId
* @return
*/
ResultBody
testAppletLogin
(
String
unionId
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/CooperationService.java
浏览文件 @
ace6ad4a
...
...
@@ -20,4 +20,12 @@ public interface CooperationService {
* @return
*/
ResultBody
apply
(
UserApplyTagVO
cooperationTagVO
);
/**
* 后台用户设置小程序用户等级标签
* @param userAccountId
* @param cooperationTagId
* @return
*/
ResultBody
changeUserTag
(
Integer
userAccountId
,
Integer
cooperationTagId
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/UserAccountService.java
浏览文件 @
ace6ad4a
...
...
@@ -3,6 +3,9 @@ package com.mmc.iuav.user.service;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.model.dto.UserAccountSimpleDTO
;
import
com.mmc.iuav.user.model.qo.BUserAccountQO
;
import
com.mmc.iuav.user.model.qo.LoginUserQO
;
import
com.mmc.iuav.user.model.vo.BUserAccountVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
java.util.List
;
...
...
@@ -54,4 +57,62 @@ public interface UserAccountService {
* @return
*/
List
<
Integer
>
feignListUserAccountIds
(
Integer
provinceCode
,
Integer
cityCode
,
Integer
districtCode
);
/**
* 添加后台用户
* @param bUserAccountVO
* @return
*/
ResultBody
insertBAccount
(
BUserAccountVO
bUserAccountVO
);
/**
* 删除用户信
* @param userAccountId
* @return
*/
ResultBody
removeBAccount
(
Integer
userAccountId
);
/**
* 后台用户列表
* @param bUserAccountQO
* @return
*/
ResultBody
listBAccountPage
(
BUserAccountQO
bUserAccountQO
);
/**
* 登录账号密码查询用户信息
* @param accountNo
* @param passWord
* @return
*/
UserAccountDO
getUserLoginInfo
(
String
accountNo
,
String
passWord
);
/**
* 内部获取用户列表
* @param bUserAccountQO
* @return
*/
List
<
UserAccountSimpleDTO
>
feignListBAccountPage
(
BUserAccountQO
bUserAccountQO
);
/**
* 修改用户信息
* @param bUserAccountVO
* @return
*/
ResultBody
updateBAccount
(
BUserAccountVO
bUserAccountVO
);
/**
* 修改用户密码
* @param account
* @return
*/
ResultBody
updatePassword
(
BUserAccountVO
account
);
/**
* 验证用户密码
* @param id
* @param authPwd
* @return
*/
ResultBody
feignAuthUserPwd
(
Integer
id
,
String
authPwd
);
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/impl/AuthServiceImpl.java
浏览文件 @
ace6ad4a
...
...
@@ -7,8 +7,12 @@ import com.mmc.iuav.auth.JwtUtil;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.user.auth.PwdUtil
;
import
com.mmc.iuav.user.constant.WxConstant
;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.enums.UserAccountStatus
;
import
com.mmc.iuav.user.model.dto.LoginSuccessDTO
;
import
com.mmc.iuav.user.model.qo.LoginUserQO
;
import
com.mmc.iuav.user.model.vo.AppUserSucVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
com.mmc.iuav.user.model.vo.WxLoginVO
;
...
...
@@ -16,9 +20,11 @@ import com.mmc.iuav.user.service.AuthService;
import
com.mmc.iuav.user.service.UserAccountService
;
import
com.mmc.iuav.user.service.WxService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -44,7 +50,7 @@ public class AuthServiceImpl implements AuthService {
if
(
wxLoginVO
.
getFromPort
().
toString
().
equals
(
WxConstant
.
APP
.
toString
()))
{
//调用小程序登录接口,里面包含unionId
String
appWxJson
=
wxService
.
appLogin
(
wxLoginVO
);
if
(
appWxJson
==
null
)
{
if
(
StringUtils
.
isBlank
(
appWxJson
)
)
{
return
ResultBody
.
error
(
ResultEnum
.
APPLET_PORT_TYPE_ERROR
);
}
log
.
info
(
"wx appLogin msg==>"
+
JSONObject
.
toJSONString
(
appWxJson
));
...
...
@@ -59,7 +65,7 @@ public class AuthServiceImpl implements AuthService {
}
else
if
(
wxLoginVO
.
getFromPort
().
equals
(
WxConstant
.
WEB
)){
//获取access_token接口,里面包含unionId
String
pcWxJson
=
wxService
.
pcLogin
(
wxLoginVO
);
if
(
pcWxJson
==
null
)
{
if
(
StringUtils
.
isBlank
(
pcWxJson
)
)
{
return
ResultBody
.
error
(
ResultEnum
.
APPLET_PORT_TYPE_ERROR
);
}
log
.
info
(
"wx pcLogin msg==>"
+
JSONObject
.
toJSONString
(
pcWxJson
));
...
...
@@ -89,11 +95,55 @@ public class AuthServiceImpl implements AuthService {
}
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
JwtConstant
.
USER_ACCOUNT_ID
,
userAccountVO
.
getId
());
map
.
put
(
JwtConstant
.
ROLE_ID
,
0
);
//
map.put(JwtConstant.ROLE_ID, 0);
map
.
put
(
JwtConstant
.
TOKEN_TYPE
,
JwtConstant
.
IUAV_TOKEN
);
String
token
=
JwtUtil
.
createJwt
(
map
);
return
ResultBody
.
success
(
AppUserSucVO
.
builder
().
token
(
token
).
uid
(
userAccountVO
.
getUid
()).
phoneNum
(
userAccountVO
.
getPhoneNum
())
.
nickName
(
userAccountVO
.
getNickName
()).
userAccountId
(
userAccountVO
.
getId
()).
sessionKey
(
sessionKey
).
build
());
}
@Override
public
ResultBody
backEndLogin
(
LoginUserQO
param
)
{
//查询用户信息
UserAccountDO
user
=
userAccountService
.
getUserLoginInfo
(
param
.
getAccountNo
(),
param
.
getPassWord
());
if
(
user
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
LOGIN_ACCOUNT_NOT_EXIT_ERROR
);
}
if
(
user
.
getAccountStatus
()
.
equals
(
UserAccountStatus
.
DISABLE
.
getAccountStatus
())
)
{
return
ResultBody
.
error
(
ResultEnum
.
LOGIN_ACCOUNT_STATUS_ERROR
);
}
String
loginPwd
=
""
;
try
{
loginPwd
=
PwdUtil
.
securityPwd
(
param
.
getPassWord
());
}
catch
(
NoSuchAlgorithmException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
PWD_CONPARED_ERROR
);
}
if
(!
loginPwd
.
equals
(
user
.
getPassword
()))
{
return
ResultBody
.
error
(
ResultEnum
.
LOGIN_PASSWORD_ERROR
);
}
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
JwtConstant
.
USER_ACCOUNT_ID
,
user
.
getId
());
//map.put(JwtConstant.ROLE_ID, 0);
map
.
put
(
JwtConstant
.
TOKEN_TYPE
,
JwtConstant
.
M_TOKEN
);
String
token
=
JwtUtil
.
createJwt
(
map
);
return
ResultBody
.
success
(
LoginSuccessDTO
.
builder
().
token
(
token
).
userAccountId
(
user
.
getId
()).
accountNo
(
user
.
getAccountNo
()).
build
());
}
@Override
public
ResultBody
testAppletLogin
(
String
unionId
)
{
UserAccountVO
userAccountVO
=
userAccountService
.
getUserAccountInfoByUnionId
(
unionId
);
if
(
userAccountVO
!=
null
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
JwtConstant
.
USER_ACCOUNT_ID
,
userAccountVO
.
getId
());
map
.
put
(
JwtConstant
.
TOKEN_TYPE
,
JwtConstant
.
IUAV_TOKEN
);
String
token
=
JwtUtil
.
createJwt
(
map
);
return
ResultBody
.
success
(
AppUserSucVO
.
builder
().
token
(
token
).
uid
(
userAccountVO
.
getUid
()).
phoneNum
(
userAccountVO
.
getPhoneNum
())
.
nickName
(
userAccountVO
.
getNickName
()).
userAccountId
(
userAccountVO
.
getId
()).
build
());
}
return
null
;
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/impl/CooperationServiceImpl.java
浏览文件 @
ace6ad4a
...
...
@@ -7,6 +7,7 @@ import com.mmc.iuav.user.dao.CooperationDao;
import
com.mmc.iuav.user.entity.CompanyAuthDO
;
import
com.mmc.iuav.user.entity.CooperationTagDO
;
import
com.mmc.iuav.user.entity.UserApplyTagDO
;
import
com.mmc.iuav.user.entity.UserTagDO
;
import
com.mmc.iuav.user.model.vo.CooperationTagVO
;
import
com.mmc.iuav.user.model.vo.UserApplyTagVO
;
import
com.mmc.iuav.user.service.CooperationService
;
...
...
@@ -60,4 +61,20 @@ public class CooperationServiceImpl implements CooperationService {
cooperationDao
.
addApply
(
userApplyTagDO
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
changeUserTag
(
Integer
userAccountId
,
Integer
cooperationTagId
)
{
UserTagDO
userTagDO
=
cooperationDao
.
getUserTag
(
userAccountId
);
if
(
userTagDO
==
null
){
//直接插入
userTagDO
=
new
UserTagDO
();
userTagDO
.
setUserAccountId
(
userAccountId
);
userTagDO
.
setCooperationTagId
(
cooperationTagId
);
cooperationDao
.
insertUserTag
(
userTagDO
);
}
//修改渠道等级
userTagDO
.
setCooperationTagId
(
cooperationTagId
);
cooperationDao
.
updateUserTag
(
userTagDO
);
return
ResultBody
.
success
();
}
}
csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/service/impl/UserAccountServiceImpl.java
浏览文件 @
ace6ad4a
package
com
.
mmc
.
iuav
.
user
.
service
.
impl
;
import
com.mmc.iuav.auth.JwtConstant
;
import
com.mmc.iuav.general.CodeUtil
;
import
com.mmc.iuav.page.PageResult
;
import
com.mmc.iuav.response.ResultBody
;
import
com.mmc.iuav.response.ResultEnum
;
import
com.mmc.iuav.user.auth.PwdUtil
;
import
com.mmc.iuav.user.constant.UserSystemConstant
;
import
com.mmc.iuav.user.dao.CooperationDao
;
import
com.mmc.iuav.user.dao.UserServiceDao
;
import
com.mmc.iuav.user.entity.UserAccountDO
;
import
com.mmc.iuav.user.entity.UserTagDO
;
import
com.mmc.iuav.user.model.dto.UserAccountSimpleDTO
;
import
com.mmc.iuav.user.model.qo.BUserAccountQO
;
import
com.mmc.iuav.user.model.vo.BUserAccountVO
;
import
com.mmc.iuav.user.model.vo.CompanyAuthVO
;
import
com.mmc.iuav.user.model.vo.UserAccountVO
;
import
com.mmc.iuav.user.service.CompanyAuthService
;
import
com.mmc.iuav.user.service.UserAccountService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author: zj
...
...
@@ -26,6 +39,9 @@ public class UserAccountServiceImpl implements UserAccountService {
@Autowired
private
CompanyAuthService
companyAuthService
;
@Autowired
private
CooperationDao
cooperationDao
;
@Override
public
UserAccountVO
getUserAccountInfoByUnionId
(
String
unionId
)
{
UserAccountDO
userAccountDO
=
userServiceDao
.
getUserAccountInfoByUnionId
(
unionId
);
...
...
@@ -43,7 +59,20 @@ public class UserAccountServiceImpl implements UserAccountService {
@Override
public
UserAccountVO
getUserAccountById
(
Integer
userAccountId
)
{
UserAccountDO
userAccountDO
=
userServiceDao
.
getUserAccountById
(
userAccountId
);
if
(
userAccountDO
==
null
)
{
return
null
;
}
UserAccountVO
userAccountVO
=
userAccountDO
.
buildUserAccountVO
();
CompanyAuthVO
companyAuthVO
=
companyAuthService
.
getCompanyAuthByUId
(
userAccountId
);
if
(
companyAuthVO
!=
null
)
{
userAccountVO
.
setCompanyAuthStatus
(
companyAuthVO
.
getAuthStatus
());
}
else
{
userAccountVO
.
setCompanyAuthStatus
(
0
);
}
UserTagDO
userTag
=
cooperationDao
.
getUserTag
(
userAccountId
);
if
(
userTag
!=
null
){
userAccountVO
.
setCooperationTagId
(
userTag
.
getCooperationTagId
());
}
return
userAccountVO
;
}
...
...
@@ -64,6 +93,10 @@ public class UserAccountServiceImpl implements UserAccountService {
}
else
{
userAccountSimpleDTO
.
setCompanyAuthStatus
(
0
);
}
UserTagDO
userTag
=
cooperationDao
.
getUserTag
(
userAccountId
);
if
(
userTag
!=
null
){
userAccountSimpleDTO
.
setCooperationTagId
(
userTag
.
getCooperationTagId
());
}
return
userAccountSimpleDTO
;
}
...
...
@@ -72,4 +105,113 @@ public class UserAccountServiceImpl implements UserAccountService {
List
<
Integer
>
ids
=
userServiceDao
.
listUserAccountIdsByDistrictCode
(
provinceCode
,
cityCode
,
districtCode
);
return
ids
;
}
@Override
public
ResultBody
insertBAccount
(
BUserAccountVO
bUserAccountVO
)
{
if
(!
bUserAccountVO
.
getPassWord
().
equals
(
bUserAccountVO
.
getAlertPwd
()))
{
// 两次密码不一致
return
ResultBody
.
error
(
ResultEnum
.
PWD_ALERT_ERROR
);
}
// 获取新增的账户名是否已经存在
int
count
=
userServiceDao
.
countUserAccountNo
(
null
,
bUserAccountVO
.
getAccountNo
());
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
ADD_USER_ACCOUNT_NAME_EXISTS
);
}
UserAccountDO
userAccountDO
=
new
UserAccountDO
(
bUserAccountVO
);
try
{
userAccountDO
.
setPassword
(
PwdUtil
.
securityPwd
(
bUserAccountVO
.
getPassWord
()));
}
catch
(
NoSuchAlgorithmException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
PWD_CREATE_ERROR
);
}
userAccountDO
.
setUid
(
CodeUtil
.
generateUserUID
());
userAccountDO
.
setAccountType
(
0
);
userAccountDO
.
setPortType
(
0
);
userAccountDO
.
setOpenId
(
userAccountDO
.
getUid
());
userAccountDO
.
setUnionId
(
userAccountDO
.
getUid
());
userServiceDao
.
insertUserAccount
(
userAccountDO
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
removeBAccount
(
Integer
userAccountId
)
{
String
removeNO
=
CodeUtil
.
removeUserAccount
();
userServiceDao
.
removeUserAccount
(
removeNO
,
userAccountId
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
listBAccountPage
(
BUserAccountQO
param
)
{
int
count
=
userServiceDao
.
countListBAccountPage
(
param
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
param
.
getPageNo
(),
param
.
getPageSize
(),
count
));
}
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
List
<
UserAccountDO
>
users
=
userServiceDao
.
listBAccountPage
(
param
);
List
<
UserAccountVO
>
collect
=
users
.
stream
().
map
(
UserAccountDO:
:
buildUserAccountVO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
collect
));
}
@Override
public
UserAccountDO
getUserLoginInfo
(
String
accountNo
,
String
passWord
)
{
UserAccountDO
userAccountDO
=
userServiceDao
.
getUserLoginInfo
(
accountNo
,
passWord
);
return
userAccountDO
;
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListBAccountPage
(
BUserAccountQO
bUserAccountQO
)
{
List
<
UserAccountDO
>
list
=
userServiceDao
.
feignListBAccountPage
(
bUserAccountQO
);
List
<
UserAccountSimpleDTO
>
accountSimpleDTOS
=
list
.
stream
().
map
(
UserAccountDO:
:
buildUserAccountSimpleDTO
).
collect
(
Collectors
.
toList
());
return
accountSimpleDTOS
;
}
@Override
public
ResultBody
updateBAccount
(
BUserAccountVO
bUserAccountVO
)
{
// 判断账号是否重复
if
(!
StringUtils
.
isEmpty
(
bUserAccountVO
.
getAccountNo
()))
{
// 如果传入的名字不为空,就查找数据库,看名字是否重复
int
count
=
userServiceDao
.
countUserAccountNo
(
bUserAccountVO
.
getId
(),
bUserAccountVO
.
getAccountNo
());
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
UPDATE_USER_ACCOUNT_REPEAT
);
}
}
UserAccountDO
userAccountDO
=
new
UserAccountDO
(
bUserAccountVO
);
userServiceDao
.
update
(
userAccountDO
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
updatePassword
(
BUserAccountVO
account
)
{
if
(!
account
.
getPassWord
().
equals
(
account
.
getAlertPwd
()))
{
return
ResultBody
.
error
(
ResultEnum
.
PASSWORD_INCONSISTENT
);
}
try
{
account
.
setPassWord
(
PwdUtil
.
securityPwd
(
account
.
getPassWord
()));
userServiceDao
.
updatePassword
(
account
.
getId
(),
account
.
getPassWord
());
}
catch
(
NoSuchAlgorithmException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
PWD_CONPARED_ERROR
);
}
// RoleInfoDO roleInfo = roleInfoDao.getRoleInfoByUser(account.getId());// 查询账号的角色信息
// this.disableOneToken(account.getId(), roleInfo.getId(), JwtConstant.SXTB_ACCOUNT_TOKEN);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
feignAuthUserPwd
(
Integer
id
,
String
authPwd
)
{
UserAccountDO
account
=
userServiceDao
.
getUserAuthPwdInfo
(
id
);
if
(
account
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
LOGIN_ACCOUNT_NOT_EXIT_ERROR
);
}
String
pwd
=
""
;
try
{
pwd
=
PwdUtil
.
securityPwd
(
authPwd
);
}
catch
(
NoSuchAlgorithmException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
PWD_CREATE_ERROR
);
}
if
(!
pwd
.
equals
(
account
.
getPassword
()))
{
return
ResultBody
.
error
(
ResultEnum
.
PWD_CONPARED_ERROR
);
}
return
ResultBody
.
success
();
}
}
csm-service/cms-service-user/src/main/resources/mapper/CooperationDao.xml
浏览文件 @
ace6ad4a
...
...
@@ -9,6 +9,11 @@
values(#{cooperationTagId}, #{userAccountId}, #{applyName}, #{applyPhone}, #{remark}, NOW())
</insert>
<insert
id=
"insertUserTag"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.iuav.user.entity.UserTagDO"
keyProperty=
"id"
>
insert into user_tag(user_account_id, cooperation_tag_id, create_time)
values(#{userAccountId}, #{cooperationTagId}, NOW());
</insert>
<update
id=
"updateUserApplyTag"
parameterType=
"com.mmc.iuav.user.entity.UserApplyTagDO"
>
UPDATE user_apply_tag
<set>
...
...
@@ -34,6 +39,10 @@
WHERE id = #{id};
</update>
<update
id=
"updateUserTag"
>
update user_tag set cooperation_tag_id = #{cooperationTagId} where id = #{id}
</update>
<select
id=
"listTags"
resultType=
"com.mmc.iuav.user.entity.CooperationTagDO"
>
select id, tag_name, tag_img, tag_description, create_time from cooperation_tag
</select>
...
...
@@ -43,4 +52,10 @@
from user_apply_tag
where user_account_id = #{userAccountId} and is_deleted = 0
</select>
<select
id=
"getUserTag"
resultType=
"com.mmc.iuav.user.entity.UserTagDO"
>
select id, user_account_id, cooperation_tag_id,is_deleted as deleted, create_time, update_time
from user_tag
where user_account_id = #{userAccountId} and is_deleted = 0
</select>
</mapper>
\ No newline at end of file
csm-service/cms-service-user/src/main/resources/mapper/UserServiceDao.xml
浏览文件 @
ace6ad4a
...
...
@@ -27,13 +27,16 @@
<insert
id=
"insertUserAccount"
parameterType=
"com.mmc.iuav.user.entity.UserAccountDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into user_account(account_type, uid,
phone_num, user_name, nick_name, user_img, open_id, union_id, user_sex, email, sourc
e, remark, port_type, create_time)
values(#{accountType}, #{uid}, #{
phoneNum}, #{userName}, #{nickName}, #{userImg}, #{openId}, #{unionId}, #{userSex}, #{email}, #{sourc
e}, #{remark}, #{portType}, NOW())
insert into user_account(account_type, uid,
account_no, pass_word, phone_num, user_name, nick_name, user_img, open_id, union_id, user_sex, email, source,province_code, city_code, district_cod
e, remark, port_type, create_time)
values(#{accountType}, #{uid}, #{
accountNo}, #{password}, #{phoneNum}, #{userName}, #{nickName}, #{userImg}, #{openId}, #{unionId}, #{userSex}, #{email}, #{source}, #{provinceCode}, #{cityCode}, #{districtCod
e}, #{remark}, #{portType}, NOW())
</insert>
<update
id=
"update"
parameterType=
"com.mmc.iuav.user.entity.UserAccountDO"
>
update user_account
<set>
<if
test=
"accountNo != null"
>
account_no = #{accountNo},
</if>
<if
test=
"phoneNum != null"
>
phone_num = #{phoneNum},
</if>
...
...
@@ -55,6 +58,15 @@
<if
test=
"accountStatus != null"
>
account_status = #{accountStatus},
</if>
<if
test=
"provinceCode != null"
>
province_code = #{provinceCode},
</if>
<if
test=
"cityCode != null"
>
city_code = #{cityCode},
</if>
<if
test=
"districtCode != null"
>
district_code = #{districtCode},
</if>
<if
test=
"remark != null"
>
remark = #{remark},
</if>
...
...
@@ -67,6 +79,16 @@
</where>
</update>
<update
id=
"removeUserAccount"
>
update user_account set is_deleted = 1, union_id = #{removeNO} where id = #{userAccountId}
</update>
<update
id=
"updatePassword"
>
update user_account
set pass_word=#{passWord}
where id = #{id}
</update>
<select
id=
"getUserAccountInfoByUnionId"
resultType=
"com.mmc.iuav.user.entity.UserAccountDO"
>
select id, account_type, uid, phone_num, user_name, nick_name, user_img, open_id, union_id, user_sex, email, source, account_status, remark,
port_type, is_deleted, create_time, update_time
...
...
@@ -94,4 +116,99 @@
and district_code = #{districtCode}
</if>
</select>
<select
id=
"getUserLoginInfo"
resultType=
"com.mmc.iuav.user.entity.UserAccountDO"
>
select ua.id,
ua.account_no,
ua.pass_word,
ua.account_status,
ua.account_type,
ua.user_name
from user_account ua
where ua.is_deleted = 0
and BINARY ua.account_no = #{accountNo}
</select>
<select
id=
"feignListBAccountPage"
resultType=
"com.mmc.iuav.user.entity.UserAccountDO"
parameterType=
"com.mmc.iuav.user.model.qo.BUserAccountQO"
>
select id, account_type, account_no, uid, phone_num, user_name, nick_name, user_img, open_id, union_id, user_sex, email, source, account_status, remark,
port_type, is_deleted as deleted, create_time, update_time
from user_account
where is_deleted = 0 and port_type = 0
<if
test=
" userIds != null "
>
<foreach
collection=
"userIds"
item=
"id"
open=
"and id in ("
close=
")"
separator=
","
>
#{id}
</foreach>
</if>
<if
test=
"provinceCode != null"
>
and province_code = #{provinceCode}
</if>
<if
test=
"cityCode != null"
>
and city_code = #{cityCode}
</if>
<if
test=
"districtCode != null"
>
and district_code = #{districtCode}
</if>
</select>
<select
id=
"countUserAccountNo"
resultType=
"java.lang.Integer"
>
select count(*) from user_account
where account_no = #{accountNo} and is_deleted = 0 and port_type = 0
<if
test=
"excludeId != null"
>
and id != #{excludeId}
</if>
</select>
<select
id=
"countListBAccountPage"
resultType=
"java.lang.Integer"
parameterType=
"com.mmc.iuav.user.model.qo.BUserAccountQO"
>
select count(*) from user_account
where is_deleted = 0 and port_type = 0
<if
test=
" keyword != null and keyword != '' "
>
and ( account_no like CONCAT("%",#{keyword},"%") or
user_name like CONCAT("%",#{keyword},"%") )
</if>
<if
test=
"provinceCode != null"
>
and province_code = #{provinceCode}
</if>
<if
test=
"cityCode != null"
>
and city_code = #{cityCode}
</if>
<if
test=
"districtCode != null"
>
and district_code = #{districtCode}
</if>
<if
test=
"accountStatus != null"
>
and account_status = #{accountStatus}
</if>
</select>
<select
id=
"listBAccountPage"
resultType=
"com.mmc.iuav.user.entity.UserAccountDO"
parameterType=
"com.mmc.iuav.user.model.qo.BUserAccountQO"
>
select id, account_type, account_no, uid, phone_num, user_name, nick_name, user_img, open_id, union_id, user_sex, email, source, account_status, remark,
port_type, is_deleted as deleted, create_time, update_time
from user_account
where is_deleted = 0 and port_type = 0
<if
test=
" keyword != null and keyword != '' "
>
and ( account_no like CONCAT("%",#{keyword},"%") or
user_name like CONCAT("%",#{keyword},"%") )
</if>
<if
test=
"provinceCode != null"
>
and province_code = #{provinceCode}
</if>
<if
test=
"cityCode != null"
>
and city_code = #{cityCode}
</if>
<if
test=
"districtCode != null"
>
and district_code = #{districtCode}
</if>
<if
test=
"accountStatus != null"
>
and account_status = #{accountStatus}
</if>
</select>
<select
id=
"getUserAuthPwdInfo"
resultType=
"com.mmc.iuav.user.entity.UserAccountDO"
>
select id,
account_no,
pass_word
from user_account
where is_deleted = 0
and id =
#{id}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论