Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
peizhen-java
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PeiZhen-Java
peizhen-java
Commits
cbdb14f3
Commit
cbdb14f3
authored
Sep 12, 2023
by
sdif
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户端代码提交
parent
20fab6ea
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
332 additions
and
15 deletions
+332
-15
pz-applet/src/main/java/com/pz/applet/AppletDepartmentController.java
+8
-2
pz-applet/src/main/java/com/pz/applet/AppletEmployeesController.java
+11
-4
pz-applet/src/main/java/com/pz/applet/AppletSysUserController.java
+114
-0
pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java
+2
-1
pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java
+36
-8
pz-system/src/main/java/com/pz/system/domain/bo/EmployeesCompanyBo.java
+74
-0
pz-system/src/main/java/com/pz/system/domain/vo/UserIdentityVo.java
+26
-0
pz-system/src/main/java/com/pz/system/service/IDepartmentService.java
+7
-0
pz-system/src/main/java/com/pz/system/service/ISysUserService.java
+3
-0
pz-system/src/main/java/com/pz/system/service/impl/DepartmentServiceImpl.java
+22
-0
pz-system/src/main/java/com/pz/system/service/impl/SysUserServiceImpl.java
+29
-0
No files found.
pz-applet/src/main/java/com/pz/applet/AppletDepartmentController.java
View file @
cbdb14f3
...
...
@@ -9,6 +9,7 @@ import com.pz.common.core.validate.AddGroup;
import
com.pz.common.core.validate.EditGroup
;
import
com.pz.common.enums.BusinessType
;
import
com.pz.common.utils.poi.ExcelUtil
;
import
com.pz.system.domain.Department
;
import
com.pz.system.domain.bo.DepartmentBo
;
import
com.pz.system.domain.vo.DepartmentVo
;
import
com.pz.system.service.IDepartmentService
;
...
...
@@ -39,11 +40,16 @@ public class AppletDepartmentController extends BaseController {
/**
* 查询科室列表
*/
@SaCheckPermission
(
"system:department:list"
)
@GetMapping
(
"/list"
)
public
R
<
List
<
DepartmentVo
>>
list
(
DepartmentBo
bo
)
{
return
R
.
ok
(
iDepartmentService
.
queryPageList
(
bo
));
}
/**
* 根据医院查询科室列表
*/
@GetMapping
(
"/DepartmentByHospitalId"
)
public
R
<
List
<
Department
>>
departmentByHospitalId
(
Integer
hospitalId
)
{
return
R
.
ok
(
iDepartmentService
.
departmentByHospitalId
(
hospitalId
));
}
}
pz-applet/src/main/java/com/pz/applet/AppletEmployeesController.java
View file @
cbdb14f3
...
...
@@ -14,6 +14,8 @@ import com.pz.common.utils.poi.ExcelUtil;
import
com.pz.merchant.domain.bo.EmployeesBo
;
import
com.pz.merchant.domain.vo.EmployeesVo
;
import
com.pz.merchant.service.IEmployeesService
;
import
com.pz.system.domain.bo.DoctorBo
;
import
com.pz.system.domain.bo.EmployeesCompanyBo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -41,7 +43,6 @@ public class AppletEmployeesController extends BaseController {
/**
* 需求广场
*/
@SaCheckPermission
(
"merchant:employees:list"
)
@GetMapping
(
"/needList"
)
public
TableDataInfo
<
EmployeesVo
>
needList
(
EmployeesBo
bo
,
PageQuery
pageQuery
)
{
return
iEmployeesService
.
queryPageAppNeed
(
bo
,
pageQuery
);
...
...
@@ -50,7 +51,6 @@ public class AppletEmployeesController extends BaseController {
/**
* 排行榜
*/
@SaCheckPermission
(
"merchant:employees:list"
)
@GetMapping
(
"/rankingList"
)
public
TableDataInfo
<
EmployeesVo
>
rankingList
(
EmployeesBo
bo
,
PageQuery
pageQuery
)
{
return
iEmployeesService
.
queryPageAppRanking
(
bo
,
pageQuery
);
...
...
@@ -62,13 +62,20 @@ public class AppletEmployeesController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission
(
"merchant:employees:query"
)
@GetMapping
(
"/{id}"
)
public
R
<
EmployeesVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Integer
id
)
{
return
R
.
ok
(
iEmployeesService
.
queryByApp
(
id
));
}
/**
* 新增陪诊员或者商家
*/
@RepeatSubmit
()
@PostMapping
(
"/add"
)
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
EmployeesCompanyBo
bo
)
{
bo
.
setUid
(
1
);
return
toAjax
(
iEmployeesService
.
insertByBo
(
bo
));
}
}
pz-applet/src/main/java/com/pz/applet/AppletSysUserController.java
0 → 100644
View file @
cbdb14f3
package
com
.
pz
.
applet
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.dev33.satoken.secure.BCrypt
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.lang.tree.Tree
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.pz.common.annotation.Log
;
import
com.pz.common.core.controller.BaseController
;
import
com.pz.common.core.domain.PageQuery
;
import
com.pz.common.core.domain.R
;
import
com.pz.common.core.domain.entity.SysDept
;
import
com.pz.common.core.domain.entity.SysRole
;
import
com.pz.common.core.domain.entity.SysUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.common.enums.BusinessType
;
import
com.pz.common.excel.ExcelResult
;
import
com.pz.common.helper.LoginHelper
;
import
com.pz.common.utils.StreamUtils
;
import
com.pz.common.utils.StringUtils
;
import
com.pz.common.utils.poi.ExcelUtil
;
import
com.pz.system.domain.vo.SysUserExportVo
;
import
com.pz.system.domain.vo.SysUserImportVo
;
import
com.pz.system.domain.vo.UserIdentityVo
;
import
com.pz.system.listener.SysUserImportListener
;
import
com.pz.system.service.ISysDeptService
;
import
com.pz.system.service.ISysPostService
;
import
com.pz.system.service.ISysRoleService
;
import
com.pz.system.service.ISysUserService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 用户信息
*
* @author Lion Li
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/applet/user"
)
public
class
AppletSysUserController
extends
BaseController
{
private
final
ISysUserService
userService
;
private
final
ISysRoleService
roleService
;
private
final
ISysPostService
postService
;
private
final
ISysDeptService
deptService
;
/**
* 获取用户列表
*/
@GetMapping
(
"/list"
)
public
TableDataInfo
<
SysUser
>
list
(
SysUser
user
,
PageQuery
pageQuery
)
{
return
userService
.
selectPageUserList
(
user
,
pageQuery
);
}
/**
* 获取用户角色
*/
@GetMapping
(
"/getIdentity"
)
public
R
<
UserIdentityVo
>
getIdentity
()
{
return
R
.
ok
(
userService
.
checkUserIdentity
(
1
));
}
/**
* 根据用户编号获取详细信息
*
* @param userId 用户ID
*/
@GetMapping
(
value
=
{
"/"
,
"/{userId}"
})
public
R
<
Map
<
String
,
Object
>>
getInfo
(
@PathVariable
(
value
=
"userId"
,
required
=
false
)
Long
userId
)
{
userService
.
checkUserDataScope
(
userId
);
Map
<
String
,
Object
>
ajax
=
new
HashMap
<>();
List
<
SysRole
>
roles
=
roleService
.
selectRoleAll
();
ajax
.
put
(
"roles"
,
LoginHelper
.
isAdmin
(
userId
)
?
roles
:
StreamUtils
.
filter
(
roles
,
r
->
!
r
.
isAdmin
()));
ajax
.
put
(
"posts"
,
postService
.
selectPostAll
());
if
(
ObjectUtil
.
isNotNull
(
userId
))
{
SysUser
sysUser
=
userService
.
selectUserById
(
userId
);
ajax
.
put
(
"user"
,
sysUser
);
ajax
.
put
(
"postIds"
,
postService
.
selectPostListByUserId
(
userId
));
ajax
.
put
(
"roleIds"
,
StreamUtils
.
toList
(
sysUser
.
getRoles
(),
SysRole:
:
getRoleId
));
}
return
R
.
ok
(
ajax
);
}
/**
* 修改用户
*/
@PutMapping
public
R
<
Void
>
edit
(
@Validated
@RequestBody
SysUser
user
)
{
userService
.
checkUserAllowed
(
user
);
userService
.
checkUserDataScope
(
user
.
getUserId
());
if
(!
userService
.
checkUserNameUnique
(
user
))
{
return
R
.
fail
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,登录账号已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getPhonenumber
())
&&
!
userService
.
checkPhoneUnique
(
user
))
{
return
R
.
fail
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,手机号码已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
user
))
{
return
R
.
fail
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
}
return
toAjax
(
userService
.
updateUser
(
user
));
}
}
pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java
View file @
cbdb14f3
...
...
@@ -10,6 +10,7 @@ import com.pz.common.core.page.TableDataInfo;
import
com.pz.common.core.domain.PageQuery
;
import
com.pz.merchant.domain.vo.OrderInfoVO
;
import
com.pz.merchant.domain.vo.TodayOrderListVo
;
import
com.pz.system.domain.bo.EmployeesCompanyBo
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -45,7 +46,7 @@ public interface IEmployeesService {
/**
* 新增陪诊员
*/
Boolean
insertByBo
(
EmployeesBo
bo
);
Boolean
insertByBo
(
Employees
Company
Bo
bo
);
/**
* 修改陪诊员
...
...
pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java
View file @
cbdb14f3
...
...
@@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.pz.common.core.domain.entity.SysUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.common.core.domain.PageQuery
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.pz.common.enums.UserType
;
import
com.pz.common.utils.StringUtils
;
import
com.pz.merchant.domain.Company
;
import
com.pz.merchant.domain.bo.EmployeesListBo
;
import
com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo
;
import
com.pz.merchant.domain.vo.EmployeesListVo
;
...
...
@@ -18,6 +21,7 @@ import com.pz.merchant.domain.vo.OrderInfoVO;
import
com.pz.merchant.domain.vo.TodayOrderListVo
;
import
com.pz.merchant.mapper.CompanyMapper
;
import
com.pz.system.domain.TotalOrder
;
import
com.pz.system.domain.bo.EmployeesCompanyBo
;
import
com.pz.system.mapper.CityMapper
;
import
com.pz.system.mapper.SysUserMapper
;
import
com.pz.system.mapper.TotalOrderMapper
;
...
...
@@ -116,17 +120,41 @@ public class EmployeesServiceImpl implements IEmployeesService {
}
/**
* 新增陪诊员
* 新增陪诊员
/商户
*/
@Override
public
Boolean
insertByBo
(
EmployeesBo
bo
)
{
Employees
add
=
BeanUtil
.
toBean
(
bo
,
Employees
.
class
);
validEntityBeforeSave
(
add
);
boolean
flag
=
baseMapper
.
insert
(
add
)
>
0
;
if
(
flag
)
{
bo
.
setId
(
add
.
getId
());
public
Boolean
insertByBo
(
EmployeesCompanyBo
bo
)
{
/**
* 陪诊员新增
*/
SysUser
sysUser
=
new
SysUser
();
sysUser
.
setUserId
(
bo
.
getUid
().
longValue
());
sysUser
.
setPhonenumber
(
bo
.
getPhone
());
if
(
bo
.
getIdentity
()
==
2
){
Employees
add
=
BeanUtil
.
toBean
(
bo
,
Employees
.
class
);
add
.
setNowType
(
1
);
boolean
flag
=
baseMapper
.
insert
(
add
)
>
0
;
if
(
flag
)
{
bo
.
setId
(
add
.
getId
());
//修改系统表角色
sysUser
.
setUserType
(
UserType
.
APP_USER
.
getUserType
());
sysUserMapper
.
updateById
(
sysUser
);
}
return
flag
;
}
else
if
(
bo
.
getIdentity
()
==
3
){
//商户新增
Company
add
=
BeanUtil
.
toBean
(
bo
,
Company
.
class
);
boolean
flag
=
companyMapper
.
insert
(
add
)
>
0
;
if
(
flag
)
{
bo
.
setId
(
add
.
getId
());
//修改系统表角色
sysUser
.
setUserType
(
UserType
.
AMERCHANT_USER
.
getUserType
());
sysUserMapper
.
updateById
(
sysUser
);
}
return
flag
;
}
return
f
lag
;
return
f
alse
;
}
/**
...
...
pz-system/src/main/java/com/pz/system/domain/bo/EmployeesCompanyBo.java
0 → 100644
View file @
cbdb14f3
package
com
.
pz
.
system
.
domain
.
bo
;
import
com.pz.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 新增陪诊员或者商户
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
EmployeesCompanyBo
extends
BaseEntity
{
private
Integer
id
;
/**
* 系统用户id
*/
private
Integer
uid
;
/**
* 身份 2-陪诊员。3-商户
*/
private
Integer
identity
;
/**
* 陪诊员/商户 名称
*/
private
String
name
;
/**
* 身份证正面
*/
private
String
cardFront
;
/**
* 身份证反面
*/
private
String
cardReverse
;
/**
* 健康证
*/
private
String
healthCertificate
;
/**
* 职业开始年份 .demo: 2023-01-23
*/
private
String
startYear
;
/**
* 经度
*/
private
String
lng
;
/**
* 纬度
*/
private
String
lat
;
/**
* 所属商户id
*/
private
Integer
companyId
;
/**
* 商户或者陪诊员手机
*/
private
String
phone
;
/**
* 商户地址
*/
private
String
address
;
/**
* 营业执照
*/
private
String
businessLicense
;
/**
* 是否缴纳保证金
*/
private
Integer
isCashDeposit
;
/**
* 保证金金额
*/
private
Double
cashDeposit
;
}
pz-system/src/main/java/com/pz/system/domain/vo/UserIdentityVo.java
0 → 100644
View file @
cbdb14f3
package
com
.
pz
.
system
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
lombok.Data
;
/**
* 用户身份
*/
@Data
@ExcelIgnoreUnannotated
public
class
UserIdentityVo
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户身份,1-普通用户,2-陪诊员,3-商户
*/
private
Integer
userType
;
/**
* 陪诊员/商户 id
*/
private
Integer
emCmId
;
/**
* 陪诊员/商户 状态:0-待审核,1-正常,2-禁用
*/
private
Integer
emCmStatus
;
}
pz-system/src/main/java/com/pz/system/service/IDepartmentService.java
View file @
cbdb14f3
...
...
@@ -28,6 +28,13 @@ public interface IDepartmentService {
List
<
DepartmentVo
>
queryPageList
(
DepartmentBo
bo
);
/**
* 根据医院查询科室列表
* @param
* @return
*/
List
<
Department
>
departmentByHospitalId
(
Integer
hospitalId
);
/**
* 查询科室列表
*/
List
<
DepartmentVo
>
queryList
(
DepartmentBo
bo
);
...
...
pz-system/src/main/java/com/pz/system/service/ISysUserService.java
View file @
cbdb14f3
...
...
@@ -3,6 +3,7 @@ package com.pz.system.service;
import
com.pz.common.core.domain.PageQuery
;
import
com.pz.common.core.domain.entity.SysUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.system.domain.vo.UserIdentityVo
;
import
java.util.List
;
...
...
@@ -208,4 +209,6 @@ public interface ISysUserService {
*/
int
deleteUserByIds
(
Long
[]
userIds
);
UserIdentityVo
checkUserIdentity
(
Integer
userId
);
}
pz-system/src/main/java/com/pz/system/service/impl/DepartmentServiceImpl.java
View file @
cbdb14f3
...
...
@@ -8,6 +8,8 @@ import com.pz.common.core.domain.PageQuery;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.pz.system.domain.Hospital
;
import
com.pz.system.mapper.HospitalMapper
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.pz.system.domain.bo.DepartmentBo
;
...
...
@@ -30,6 +32,8 @@ public class DepartmentServiceImpl implements IDepartmentService {
private
final
DepartmentMapper
baseMapper
;
private
final
HospitalMapper
hospitalMapper
;
/**
* 查询科室
*/
...
...
@@ -79,6 +83,24 @@ public class DepartmentServiceImpl implements IDepartmentService {
return
result
;
}
@Override
public
List
<
Department
>
departmentByHospitalId
(
Integer
hospitalId
)
{
Hospital
hospital
=
hospitalMapper
.
selectById
(
hospitalId
);
// 去除方括号
String
numbers
=
hospital
.
getDepartments
().
substring
(
1
,
hospital
.
getDepartments
().
length
()
-
1
);
// 使用逗号分割字符串
String
[]
numberArray
=
numbers
.
split
(
", "
);
// 创建 List<Integer> 并将转换后的整数加入列表中
List
<
Integer
>
integerList
=
new
ArrayList
<>();
for
(
String
num
:
numberArray
)
{
integerList
.
add
(
Integer
.
parseInt
(
num
.
trim
()));
}
return
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
Department
>().
in
(
Department:
:
getId
,
integerList
));
}
/**
* 获取子节点
*
...
...
pz-system/src/main/java/com/pz/system/service/impl/SysUserServiceImpl.java
View file @
cbdb14f3
...
...
@@ -17,14 +17,20 @@ import com.pz.common.core.domain.entity.SysRole;
import
com.pz.common.core.domain.entity.SysUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.common.core.service.UserService
;
import
com.pz.common.enums.UserType
;
import
com.pz.common.exception.ServiceException
;
import
com.pz.common.helper.DataBaseHelper
;
import
com.pz.common.helper.LoginHelper
;
import
com.pz.common.utils.StreamUtils
;
import
com.pz.common.utils.StringUtils
;
import
com.pz.merchant.domain.Company
;
import
com.pz.merchant.domain.Employees
;
import
com.pz.merchant.mapper.CompanyMapper
;
import
com.pz.merchant.mapper.EmployeesMapper
;
import
com.pz.system.domain.SysPost
;
import
com.pz.system.domain.SysUserPost
;
import
com.pz.system.domain.SysUserRole
;
import
com.pz.system.domain.vo.UserIdentityVo
;
import
com.pz.system.mapper.*
;
import
com.pz.system.service.ISysUserService
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -53,6 +59,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
private
final
SysPostMapper
postMapper
;
private
final
SysUserRoleMapper
userRoleMapper
;
private
final
SysUserPostMapper
userPostMapper
;
private
final
CompanyMapper
companyMapper
;
private
final
EmployeesMapper
employeesMapper
;
@Override
public
TableDataInfo
<
SysUser
>
selectPageUserList
(
SysUser
user
,
PageQuery
pageQuery
)
{
...
...
@@ -475,6 +483,27 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return
baseMapper
.
deleteBatchIds
(
ids
);
}
@Override
public
UserIdentityVo
checkUserIdentity
(
Integer
userId
)
{
UserIdentityVo
userIdentityVo
=
new
UserIdentityVo
();
SysUser
sysUser
=
baseMapper
.
selectById
(
userId
);
if
(
null
==
sysUser
){
return
userIdentityVo
;
}
if
(
sysUser
.
getUserType
().
equals
(
UserType
.
SYS_USER
.
getUserType
())){
userIdentityVo
.
setUserType
(
1
);
}
else
if
(
sysUser
.
getUserType
().
equals
(
UserType
.
APP_USER
.
getUserType
())){
Employees
employees
=
employeesMapper
.
selectOne
(
new
LambdaQueryWrapper
<
Employees
>().
eq
(
Employees:
:
getUid
,
sysUser
.
getUserId
()));
userIdentityVo
.
setUserType
(
employees
.
getStatus
());
userIdentityVo
.
setEmCmId
(
employees
.
getId
());
}
else
if
(
sysUser
.
getUserType
().
equals
(
UserType
.
AMERCHANT_USER
.
getUserType
())){
Company
company
=
companyMapper
.
selectOne
(
new
LambdaQueryWrapper
<
Company
>().
eq
(
Company:
:
getUid
,
sysUser
.
getUserId
()));
userIdentityVo
.
setUserType
(
company
.
getStatus
());
userIdentityVo
.
setEmCmId
(
company
.
getId
());
}
return
userIdentityVo
;
}
@Cacheable
(
cacheNames
=
CacheNames
.
SYS_USER_NAME
,
key
=
"#userId"
)
@Override
public
String
selectUserNameById
(
Long
userId
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment