Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
cms
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论