Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
T
tcm-system
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TCM
tcm-system
Commits
abcd3ba5
Commit
abcd3ba5
authored
May 27, 2019
by
zjy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user/role/tright 5.27
银行卡表添加是否为默认卡还没改完 首页还没开发完 需要增加手机验证码
parent
2106ff32
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
435 additions
and
163 deletions
+435
-163
CompanyController.java
.../pangding/web/authority/controller/CompanyController.java
+2
-1
IndexController.java
...om/pangding/web/authority/controller/IndexController.java
+52
-0
LoginController.java
...om/pangding/web/authority/controller/LoginController.java
+32
-2
VerifyCodeController.java
...ngding/web/authority/controller/VerifyCodeController.java
+0
-49
CompanyService.java
...va/com/pangding/web/authority/service/CompanyService.java
+0
-1
IndexService.java
...java/com/pangding/web/authority/service/IndexService.java
+21
-0
RegisterService.java
...a/com/pangding/web/authority/service/RegisterService.java
+4
-0
VerifyCodeService.java
...com/pangding/web/authority/service/VerifyCodeService.java
+2
-2
CompanyServiceImpl.java
...ngding/web/authority/service/impl/CompanyServiceImpl.java
+6
-0
IndexServiceImpl.java
...pangding/web/authority/service/impl/IndexServiceImpl.java
+47
-0
RegisterServiceImpl.java
...gding/web/authority/service/impl/RegisterServiceImpl.java
+13
-2
UserServiceImpl.java
.../pangding/web/authority/service/impl/UserServiceImpl.java
+3
-16
VerifyCodeServiceImpl.java
...ing/web/authority/service/impl/VerifyCodeServiceImpl.java
+4
-7
CompanyBankCardConstant.java
.../pangding/web/authority/util/CompanyBankCardConstant.java
+19
-0
AuthorityVo.java
src/main/java/com/pangding/web/authority/vo/AuthorityVo.java
+6
-6
CompanyBankCardVo.java
...java/com/pangding/web/authority/vo/CompanyBankCardVo.java
+14
-3
CompanyExtendVo.java
...n/java/com/pangding/web/authority/vo/CompanyExtendVo.java
+114
-69
UserVo.java
src/main/java/com/pangding/web/authority/vo/UserVo.java
+17
-5
ComputerLoginReqVo.java
...m/pangding/web/authority/vo/reqvo/ComputerLoginReqVo.java
+39
-0
TotalIncomeReqVo.java
...com/pangding/web/authority/vo/reqvo/TotalIncomeReqVo.java
+20
-0
WithdrawCashReqVo.java
...om/pangding/web/authority/vo/reqvo/WithdrawCashReqVo.java
+20
-0
No files found.
src/main/java/com/pangding/web/authority/controller/CompanyController.java
View file @
abcd3ba5
...
@@ -183,7 +183,8 @@ public class CompanyController {
...
@@ -183,7 +183,8 @@ public class CompanyController {
.
notBlankCheck
(
"password"
,
reqVo
.
getPassword
())
.
notBlankCheck
(
"password"
,
reqVo
.
getPassword
())
.
notBlankCheck
(
"phone"
,
reqVo
.
getPhone
())
.
notBlankCheck
(
"phone"
,
reqVo
.
getPhone
())
.
checkPhoneNo
(
"phone"
,
reqVo
.
getPhone
())
.
checkPhoneNo
(
"phone"
,
reqVo
.
getPhone
())
.
notBlankCheck
(
"creator"
,
reqVo
.
getCreator
())
.
notBlankCheck
(
"createId"
,
reqVo
.
getCreateId
())
.
notBlankCheck
(
"createName"
,
reqVo
.
getCreateName
())
.
notBlankCheck
(
"companyId"
,
reqVo
.
getCompanyId
())
.
notBlankCheck
(
"companyId"
,
reqVo
.
getCompanyId
())
.
checkException
();
.
checkException
();
return
ResponseResult
.
result
(
companyServiceImpl
.
saveUser
(
reqVo
));
return
ResponseResult
.
result
(
companyServiceImpl
.
saveUser
(
reqVo
));
...
...
src/main/java/com/pangding/web/authority/controller/IndexController.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
controller
;
import
com.pangding.web.authority.service.IndexService
;
import
com.pangding.web.authority.vo.reqvo.TotalIncomeReqVo
;
import
com.pangding.web.authority.vo.reqvo.WithdrawCashReqVo
;
import
com.yanzuoguang.util.helper.CheckerHelper
;
import
com.yanzuoguang.util.vo.ResponseResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
/**
* @Author zhangjinyao
* @create 2019/5/27 10:47
*/
@RestController
@RequestMapping
(
value
=
"/index"
)
public
class
IndexController
{
@Autowired
IndexService
indexServiceImpl
;
/**
* 通过公司id获取该公司的可提现余额
* @param reqVo 封装了公司id的请求对象
* @return 可提现的金额
*/
@PostMapping
(
value
=
"/withdrawCash"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ResponseResult
<
BigDecimal
>
withdrawCash
(
@RequestBody
WithdrawCashReqVo
reqVo
){
CheckerHelper
.
newInstance
()
.
notBlankCheck
(
"companyId"
,
reqVo
.
getId
())
.
checkException
();
return
ResponseResult
.
result
(
indexServiceImpl
.
getWithdrawCash
(
reqVo
));
}
/**
* 通过公司id获取该公司累积总收益
* @param reqVo 封装了公司id的请求对象
* @return 累计总收益
*/
@PostMapping
(
value
=
"/totalIncome"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ResponseResult
<
BigDecimal
>
totalIncome
(
@RequestBody
TotalIncomeReqVo
reqVo
){
CheckerHelper
.
newInstance
()
.
notBlankCheck
(
"companyId"
,
reqVo
.
getId
())
.
checkException
();
return
ResponseResult
.
result
(
indexServiceImpl
.
getTotalIncome
(
reqVo
));
}
}
src/main/java/com/pangding/web/authority/controller/LoginController.java
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
controller
;
package
com
.
pangding
.
web
.
authority
.
controller
;
import
com.pangding.web.authority.service.RegisterService
;
import
com.pangding.web.authority.service.RegisterService
;
import
com.pangding.web.authority.service.VerifyCodeService
;
import
com.pangding.web.authority.vo.cloudvo.LoginResVo
;
import
com.pangding.web.authority.vo.cloudvo.LoginResVo
;
import
com.pangding.web.authority.vo.reqvo.ComputerLoginReqVo
;
import
com.pangding.web.authority.vo.reqvo.LoginReqVo
;
import
com.pangding.web.authority.vo.reqvo.LoginReqVo
;
import
com.yanzuoguang.util.helper.CheckerHelper
;
import
com.yanzuoguang.util.helper.CheckerHelper
;
import
com.yanzuoguang.util.vo.ResponseResult
;
import
com.yanzuoguang.util.vo.ResponseResult
;
...
@@ -12,7 +14,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -12,7 +14,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
import
javax.servlet.http.HttpSession
;
import
java.io.IOException
;
/**
/**
* @Author zhangjinyao
* @Author zhangjinyao
...
@@ -23,6 +28,8 @@ import javax.servlet.http.HttpSession;
...
@@ -23,6 +28,8 @@ import javax.servlet.http.HttpSession;
public
class
LoginController
{
public
class
LoginController
{
@Autowired
@Autowired
RegisterService
registerServiceImpl
;
RegisterService
registerServiceImpl
;
@Autowired
VerifyCodeService
verifyCodeServiceImpl
;
/**
/**
* 登陆,验证用户名或手机号,密码是否正确
* 登陆,验证用户名或手机号,密码是否正确
...
@@ -31,12 +38,35 @@ public class LoginController {
...
@@ -31,12 +38,35 @@ public class LoginController {
* @param reqVo
* @param reqVo
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/
login
"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
@RequestMapping
(
value
=
"/
mobile
"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ResponseResult
<
LoginResVo
>
computer
(
@RequestBody
LoginReqVo
reqVo
){
public
ResponseResult
<
LoginResVo
>
mobile
(
@RequestBody
LoginReqVo
reqVo
){
CheckerHelper
.
newInstance
()
CheckerHelper
.
newInstance
()
.
notBlankCheck
(
"account or phone"
,
reqVo
.
getAccountOrPhone
())
.
notBlankCheck
(
"account or phone"
,
reqVo
.
getAccountOrPhone
())
.
notBlankCheck
(
"password"
,
reqVo
.
getPassword
())
.
notBlankCheck
(
"password"
,
reqVo
.
getPassword
())
.
checkException
();
.
checkException
();
return
ResponseResult
.
result
(
registerServiceImpl
.
login
(
reqVo
));
return
ResponseResult
.
result
(
registerServiceImpl
.
login
(
reqVo
));
}
}
@RequestMapping
(
value
=
"/computer"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ResponseResult
<
LoginResVo
>
computer
(
@RequestBody
ComputerLoginReqVo
reqVo
,
HttpSession
session
){
CheckerHelper
.
newInstance
()
.
notBlankCheck
(
"account or phone"
,
reqVo
.
getAccountOrPhone
())
.
notBlankCheck
(
"password"
,
reqVo
.
getPassword
())
.
notBlankCheck
(
"verifyCode"
,
reqVo
.
getVerifyCode
())
.
checkException
();
return
ResponseResult
.
result
(
registerServiceImpl
.
verifyLogin
(
reqVo
,
session
));
}
/**
* 获取验证码图片
*
* @param request
* @param response
* @throws IOException
*/
@RequestMapping
(
value
=
"/getImage"
,
method
=
RequestMethod
.
GET
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ResponseResult
getImage
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
{
verifyCodeServiceImpl
.
getImage
(
request
,
response
);
return
new
ResponseResult
();
}
}
}
src/main/java/com/pangding/web/authority/controller/VerifyCodeController.java
deleted
100644 → 0
View file @
2106ff32
package
com
.
pangding
.
web
.
authority
.
controller
;
import
com.pangding.web.authority.service.VerifyCodeService
;
import
com.yanzuoguang.util.vo.ResponseResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
import
java.io.IOException
;
/**
* @Author zhangjinyao
* @create 2019/5/23 11:17
*/
@RestController
@RequestMapping
(
value
=
"verify"
)
public
class
VerifyCodeController
{
@Autowired
VerifyCodeService
verifyCodeServiceImpl
;
/**
* 获取验证码图片
*
* @param request
* @param response
* @throws IOException
*/
@RequestMapping
(
value
=
"/getImage"
,
method
=
RequestMethod
.
GET
)
public
ResponseResult
getImage
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
{
verifyCodeServiceImpl
.
getImage
(
request
,
response
);
return
new
ResponseResult
();
}
/**
* 验证验证码
*
* @param request
* @param session
* @return
*/
@RequestMapping
(
value
=
"validImage"
,
method
=
RequestMethod
.
GET
)
public
ResponseResult
<
String
>
validImage
(
HttpServletRequest
request
,
HttpSession
session
){
return
ResponseResult
.
result
(
verifyCodeServiceImpl
.
validImage
(
request
,
session
));
}
}
src/main/java/com/pangding/web/authority/service/CompanyService.java
View file @
abcd3ba5
...
@@ -3,7 +3,6 @@ package com.pangding.web.authority.service;
...
@@ -3,7 +3,6 @@ package com.pangding.web.authority.service;
import
com.pangding.web.authority.vo.CompanyBankCardVo
;
import
com.pangding.web.authority.vo.CompanyBankCardVo
;
import
com.pangding.web.authority.vo.CompanyVo
;
import
com.pangding.web.authority.vo.CompanyVo
;
import
com.pangding.web.authority.vo.UserVo
;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.yanzuoguang.util.vo.PageSizeData
;
import
com.yanzuoguang.util.vo.PageSizeData
;
...
...
src/main/java/com/pangding/web/authority/service/IndexService.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
service
;
import
com.pangding.web.authority.vo.reqvo.TotalIncomeReqVo
;
import
com.pangding.web.authority.vo.reqvo.WithdrawCashReqVo
;
import
java.math.BigDecimal
;
/**
* @Author zhangjinyao
* @create 2019/5/27 11:18
*/
public
interface
IndexService
{
/**
* 通过公司id获取该公司的可提现余额
* @param reqVo 封装了公司id的请求对象
* @return 可提现的金额
*/
BigDecimal
getWithdrawCash
(
WithdrawCashReqVo
reqVo
);
BigDecimal
getTotalIncome
(
TotalIncomeReqVo
reqVo
);
}
src/main/java/com/pangding/web/authority/service/RegisterService.java
View file @
abcd3ba5
...
@@ -6,6 +6,8 @@ import com.pangding.web.authority.vo.cloudvo.LoginResVo;
...
@@ -6,6 +6,8 @@ import com.pangding.web.authority.vo.cloudvo.LoginResVo;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.pangding.web.authority.vo.CompanyVo
;
import
com.pangding.web.authority.vo.CompanyVo
;
import
javax.servlet.http.HttpSession
;
/**
/**
* @Author zhangjinyao
* @Author zhangjinyao
* @create 2019/5/13 14:21
* @create 2019/5/13 14:21
...
@@ -60,6 +62,8 @@ public interface RegisterService {
...
@@ -60,6 +62,8 @@ public interface RegisterService {
*/
*/
LoginResVo
login
(
LoginReqVo
reqVo
);
LoginResVo
login
(
LoginReqVo
reqVo
);
LoginResVo
verifyLogin
(
ComputerLoginReqVo
reqVo
,
HttpSession
session
);
String
individualSubmit
(
IndividualSubmitReqVo
reqVo
);
String
individualSubmit
(
IndividualSubmitReqVo
reqVo
);
String
enterpriceSubmit
(
EnterpriceSubmitReqVo
reqVo
);
String
enterpriceSubmit
(
EnterpriceSubmitReqVo
reqVo
);
...
...
src/main/java/com/pangding/web/authority/service/VerifyCodeService.java
View file @
abcd3ba5
...
@@ -22,9 +22,9 @@ public interface VerifyCodeService {
...
@@ -22,9 +22,9 @@ public interface VerifyCodeService {
/**
/**
* 验证验证码
* 验证验证码
*
*
* @param
request
* @param
verifyCode
* @param session
* @param session
* @return
* @return
*/
*/
String
validImage
(
HttpServletRequest
request
,
HttpSession
session
);
void
validImage
(
String
verifyCode
,
HttpSession
session
);
}
}
src/main/java/com/pangding/web/authority/service/impl/CompanyServiceImpl.java
View file @
abcd3ba5
...
@@ -6,6 +6,7 @@ import com.pangding.web.authority.dao.CompanyExtendDao;
...
@@ -6,6 +6,7 @@ import com.pangding.web.authority.dao.CompanyExtendDao;
import
com.pangding.web.authority.dao.UserDao
;
import
com.pangding.web.authority.dao.UserDao
;
import
com.pangding.web.authority.service.CompanyService
;
import
com.pangding.web.authority.service.CompanyService
;
import
com.pangding.web.authority.service.UserService
;
import
com.pangding.web.authority.service.UserService
;
import
com.pangding.web.authority.util.CompanyBankCardConstant
;
import
com.pangding.web.authority.vo.CompanyBankCardVo
;
import
com.pangding.web.authority.vo.CompanyBankCardVo
;
import
com.pangding.web.authority.vo.CompanyExtendVo
;
import
com.pangding.web.authority.vo.CompanyExtendVo
;
import
com.pangding.web.authority.vo.CompanyVo
;
import
com.pangding.web.authority.vo.CompanyVo
;
...
@@ -175,6 +176,11 @@ public class CompanyServiceImpl implements CompanyService{
...
@@ -175,6 +176,11 @@ public class CompanyServiceImpl implements CompanyService{
public
String
saveBank
(
CompanyBankCardVo
reqVo
)
{
public
String
saveBank
(
CompanyBankCardVo
reqVo
)
{
String
id
=
StringHelper
.
getNewID
();
String
id
=
StringHelper
.
getNewID
();
reqVo
.
setId
(
id
);
reqVo
.
setId
(
id
);
BankCardListReqVo
reqVo1
=
new
BankCardListReqVo
();
PageSizeData
<
CompanyBankCardVo
>
companyBankCardDaoBankCardList
=
companyBankCardDao
.
getBankCardList
(
reqVo1
);
if
(
null
==
companyBankCardDaoBankCardList
||
companyBankCardDaoBankCardList
.
getList
().
isEmpty
()){
reqVo
.
setIsDefault
(
CompanyBankCardConstant
.
IS_DEFAULT
);
}
companyBankCardDao
.
create
(
reqVo
);
companyBankCardDao
.
create
(
reqVo
);
/*此处需要调用第三方接口发送手机验证码*/
/*此处需要调用第三方接口发送手机验证码*/
return
id
;
return
id
;
...
...
src/main/java/com/pangding/web/authority/service/impl/IndexServiceImpl.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
service
.
impl
;
import
com.pangding.web.authority.dao.CompanyExtendDao
;
import
com.pangding.web.authority.service.IndexService
;
import
com.pangding.web.authority.vo.CompanyExtendVo
;
import
com.pangding.web.authority.vo.reqvo.TotalIncomeReqVo
;
import
com.pangding.web.authority.vo.reqvo.WithdrawCashReqVo
;
import
com.yanzuoguang.util.exception.CodeException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
/**
* @Author zhangjinyao
* @create 2019/5/27 11:19
*/
@Service
public
class
IndexServiceImpl
implements
IndexService
{
@Autowired
CompanyExtendDao
companyExtendDaoImpl
;
/**
* 通过公司id获取该公司的可提现余额
* @param reqVo 封装了公司id的请求对象
* @return 可提现的金额
*/
@Override
public
BigDecimal
getWithdrawCash
(
WithdrawCashReqVo
reqVo
)
{
CompanyExtendVo
companyExtendVo
=
companyExtendDaoImpl
.
load
(
reqVo
,
CompanyExtendVo
.
class
);
if
(
null
==
companyExtendVo
){
throw
new
CodeException
(
"未查到该公司数据"
);
}
BigDecimal
cash
=
companyExtendVo
.
getWithdrawTotalCash
();
if
(
null
==
cash
){
throw
new
CodeException
(
"暂无可提现余额信息"
);
}
return
cash
;
}
@Override
public
BigDecimal
getTotalIncome
(
TotalIncomeReqVo
reqVo
)
{
/*此处需调用订单服务获取累积总收益
* 目前仅返回null*/
return
null
;
}
}
src/main/java/com/pangding/web/authority/service/impl/RegisterServiceImpl.java
View file @
abcd3ba5
...
@@ -3,6 +3,7 @@ package com.pangding.web.authority.service.impl;
...
@@ -3,6 +3,7 @@ package com.pangding.web.authority.service.impl;
import
com.pangding.web.authority.dao.*
;
import
com.pangding.web.authority.dao.*
;
import
com.pangding.web.authority.feign.StoreFeign
;
import
com.pangding.web.authority.feign.StoreFeign
;
import
com.pangding.web.authority.service.CompanyService
;
import
com.pangding.web.authority.service.CompanyService
;
import
com.pangding.web.authority.service.VerifyCodeService
;
import
com.pangding.web.authority.util.TokenUtil
;
import
com.pangding.web.authority.util.TokenUtil
;
import
com.pangding.web.authority.vo.*
;
import
com.pangding.web.authority.vo.*
;
import
com.pangding.web.authority.vo.cloudvo.LoginResVo
;
import
com.pangding.web.authority.vo.cloudvo.LoginResVo
;
...
@@ -13,11 +14,11 @@ import com.yanzuoguang.token.TokenHelper;
...
@@ -13,11 +14,11 @@ import com.yanzuoguang.token.TokenHelper;
import
com.yanzuoguang.util.base.ObjectHelper
;
import
com.yanzuoguang.util.base.ObjectHelper
;
import
com.yanzuoguang.util.exception.CodeException
;
import
com.yanzuoguang.util.exception.CodeException
;
import
com.yanzuoguang.util.helper.StringHelper
;
import
com.yanzuoguang.util.helper.StringHelper
;
import
com.yanzuoguang.util.vo.ResponseResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpSession
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -45,6 +46,8 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -45,6 +46,8 @@ public class RegisterServiceImpl implements RegisterService {
private
StoreFeign
storeFeign
;
private
StoreFeign
storeFeign
;
@Autowired
@Autowired
private
CompanyService
companyService
;
private
CompanyService
companyService
;
@Autowired
VerifyCodeService
verifyCodeServiceImpl
;
/**
/**
* 判断注册编码是否存在
* 判断注册编码是否存在
...
@@ -249,7 +252,7 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -249,7 +252,7 @@ public class RegisterServiceImpl implements RegisterService {
throw
new
CodeException
(
"没有此用户"
);
throw
new
CodeException
(
"没有此用户"
);
}
}
if
(!
StringHelper
.
md5
(
reqVo
.
getPassword
()).
equals
(
userVo
.
getPassword
(
))){
if
(!
(
StringHelper
.
md5
(
reqVo
.
getPassword
()).
equals
(
userVo
.
getPassword
()
))){
throw
new
CodeException
(
"用户名或密码错误"
);
throw
new
CodeException
(
"用户名或密码错误"
);
}
}
...
@@ -287,6 +290,14 @@ public class RegisterServiceImpl implements RegisterService {
...
@@ -287,6 +290,14 @@ public class RegisterServiceImpl implements RegisterService {
return
resVo
;
return
resVo
;
}
}
@Override
public
LoginResVo
verifyLogin
(
ComputerLoginReqVo
reqVo
,
HttpSession
session
)
{
verifyCodeServiceImpl
.
validImage
(
reqVo
.
getVerifyCode
(),
session
);
LoginReqVo
reqVo1
=
new
LoginReqVo
();
ObjectHelper
.
writeWithFrom
(
reqVo1
,
reqVo
);
return
this
.
login
(
reqVo1
);
}
@Override
@Override
public
String
individualSubmit
(
IndividualSubmitReqVo
reqVo
)
{
public
String
individualSubmit
(
IndividualSubmitReqVo
reqVo
)
{
/*此处应该将请求数据发送到第三方接口,返回的数据用于更新公司信息*/
/*此处应该将请求数据发送到第三方接口,返回的数据用于更新公司信息*/
...
...
src/main/java/com/pangding/web/authority/service/impl/UserServiceImpl.java
View file @
abcd3ba5
...
@@ -6,6 +6,7 @@ import com.pangding.web.authority.dao.UserRoleDao;
...
@@ -6,6 +6,7 @@ import com.pangding.web.authority.dao.UserRoleDao;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.pangding.web.authority.vo.reqvo.*
;
import
com.pangding.web.authority.service.UserService
;
import
com.pangding.web.authority.service.UserService
;
import
com.pangding.web.authority.vo.*
;
import
com.pangding.web.authority.vo.*
;
import
com.yanzuoguang.util.base.ObjectHelper
;
import
com.yanzuoguang.util.exception.CodeException
;
import
com.yanzuoguang.util.exception.CodeException
;
import
com.yanzuoguang.util.helper.StringHelper
;
import
com.yanzuoguang.util.helper.StringHelper
;
import
com.yanzuoguang.util.vo.PageSizeData
;
import
com.yanzuoguang.util.vo.PageSizeData
;
...
@@ -112,14 +113,7 @@ public class UserServiceImpl implements UserService {
...
@@ -112,14 +113,7 @@ public class UserServiceImpl implements UserService {
public
WebUserResVo
makeResVo
(
UserVo
userVo
)
{
public
WebUserResVo
makeResVo
(
UserVo
userVo
)
{
WebUserResVo
resVo
=
new
WebUserResVo
();
WebUserResVo
resVo
=
new
WebUserResVo
();
resVo
.
setPassword
(
userVo
.
getPassword
());
ObjectHelper
.
writeWithFrom
(
resVo
,
userVo
);
resVo
.
setAccount
(
userVo
.
getAccount
());
resVo
.
setCreateTime
(
userVo
.
getCreateTime
());
resVo
.
setCreator
(
userVo
.
getCreator
());
resVo
.
setId
(
userVo
.
getId
());
resVo
.
setPhone
(
userVo
.
getPhone
());
resVo
.
setRemark
(
userVo
.
getRemark
());
resVo
.
setStatus
(
userVo
.
getStatus
());
UserRoleGetReqVo
reqVo
=
new
UserRoleGetReqVo
();
UserRoleGetReqVo
reqVo
=
new
UserRoleGetReqVo
();
reqVo
.
setUserId
(
userVo
.
getId
());
reqVo
.
setUserId
(
userVo
.
getId
());
...
@@ -213,14 +207,7 @@ public class UserServiceImpl implements UserService {
...
@@ -213,14 +207,7 @@ public class UserServiceImpl implements UserService {
WebUserResVo
resVo
=
new
WebUserResVo
();
WebUserResVo
resVo
=
new
WebUserResVo
();
List
<
RoleVo
>
roleVoList
=
this
.
getRoleListByUserId
(
userVo
.
getId
());
List
<
RoleVo
>
roleVoList
=
this
.
getRoleListByUserId
(
userVo
.
getId
());
resVo
.
setRoleList
(
roleVoList
);
ObjectHelper
.
writeWithFrom
(
resVo
,
userVo
);
resVo
.
setAccount
(
userVo
.
getAccount
());
resVo
.
setCompanyId
(
userVo
.
getCompanyId
());
resVo
.
setCreateTime
(
userVo
.
getCreateTime
());
resVo
.
setCreator
(
userVo
.
getCreator
());
resVo
.
setId
(
userVo
.
getId
());
resVo
.
setPhone
(
userVo
.
getPhone
());
resVo
.
setStatus
(
userVo
.
getStatus
());
webUserResVoList
.
add
(
resVo
);
webUserResVoList
.
add
(
resVo
);
}
}
...
...
src/main/java/com/pangding/web/authority/service/impl/VerifyCodeServiceImpl.java
View file @
abcd3ba5
...
@@ -52,16 +52,15 @@ public class VerifyCodeServiceImpl implements VerifyCodeService {
...
@@ -52,16 +52,15 @@ public class VerifyCodeServiceImpl implements VerifyCodeService {
/**
/**
* 验证验证码
* 验证验证码
*
*
* @param
request
* @param
verifyCode
* @param session
* @param session
* @return
* @return
*/
*/
@Override
@Override
public
String
validImage
(
HttpServletRequest
request
,
HttpSession
session
)
{
public
void
validImage
(
String
verifyCode
,
HttpSession
session
)
{
String
code
=
request
.
getParameter
(
"code"
)
;
String
code
=
verifyCode
;
Object
verCode
=
session
.
getAttribute
(
"verCode"
);
Object
verCode
=
session
.
getAttribute
(
"verCode"
);
if
(
null
==
verCode
)
{
if
(
null
==
verCode
)
{
request
.
setAttribute
(
"errmsg"
,
"验证码已失效,请重新输入"
);
throw
new
CodeException
(
"验证码已失效,请重新输入"
);
throw
new
CodeException
(
"验证码已失效,请重新输入"
);
}
}
String
verCodeStr
=
verCode
.
toString
();
String
verCodeStr
=
verCode
.
toString
();
...
@@ -69,15 +68,13 @@ public class VerifyCodeServiceImpl implements VerifyCodeService {
...
@@ -69,15 +68,13 @@ public class VerifyCodeServiceImpl implements VerifyCodeService {
long
past
=
localDateTime
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
();
long
past
=
localDateTime
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
();
long
now
=
LocalDateTime
.
now
().
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
();
long
now
=
LocalDateTime
.
now
().
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
();
if
(
verCodeStr
==
null
||
code
==
null
||
code
.
isEmpty
()
||
!
verCodeStr
.
equalsIgnoreCase
(
code
)){
if
(
verCodeStr
==
null
||
code
==
null
||
code
.
isEmpty
()
||
!
verCodeStr
.
equalsIgnoreCase
(
code
)){
request
.
setAttribute
(
"errmsg"
,
"验证码错误"
);
throw
new
CodeException
(
"验证码错误"
);
throw
new
CodeException
(
"验证码错误"
);
}
else
if
((
now
-
past
)/
VerifyCodeConstant
.
MILLISECOND
/
VerifyCodeConstant
.
SECOND
>
VerifyCodeConstant
.
LIMIT_SECOND
){
}
else
if
((
now
-
past
)/
VerifyCodeConstant
.
MILLISECOND
/
VerifyCodeConstant
.
SECOND
>
VerifyCodeConstant
.
LIMIT_SECOND
){
request
.
setAttribute
(
"errmsg"
,
"验证码已过期,重新获取"
);
throw
new
CodeException
(
"验证码已过期,重新获取"
);
throw
new
CodeException
(
"验证码已过期,重新获取"
);
}
else
{
}
else
{
//验证成功,删除存储的验证码
//验证成功,删除存储的验证码
session
.
removeAttribute
(
"verCode"
);
session
.
removeAttribute
(
"verCode"
);
return
"验证成功"
;
return
;
}
}
}
}
}
}
src/main/java/com/pangding/web/authority/util/CompanyBankCardConstant.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
util
;
/**
* @Author zhangjinyao
* @create 2019/5/27 16:29
*/
public
class
CompanyBankCardConstant
{
/**
* 设置银行卡为默认卡
* 值:1
*/
public
static
final
int
IS_DEFAULT
=
1
;
/**
* 不设置为默认卡
* 值:0
*/
public
static
final
int
IS_NOT_DEFAULT
=
0
;
}
src/main/java/com/pangding/web/authority/vo/AuthorityVo.java
View file @
abcd3ba5
...
@@ -21,14 +21,14 @@ public class AuthorityVo implements Serializable, InitDao {
...
@@ -21,14 +21,14 @@ public class AuthorityVo implements Serializable, InitDao {
private
String
name
;
private
String
name
;
private
String
type
;
private
int
type
;
private
String
alias
;
private
String
alias
;
private
String
url
;
private
String
url
;
@TableAnnotation
(
"open_mode"
)
@TableAnnotation
(
"open_mode"
)
private
String
openMode
;
private
int
openMode
;
private
String
remark
;
private
String
remark
;
...
@@ -60,11 +60,11 @@ public class AuthorityVo implements Serializable, InitDao {
...
@@ -60,11 +60,11 @@ public class AuthorityVo implements Serializable, InitDao {
this
.
name
=
name
;
this
.
name
=
name
;
}
}
public
String
getType
()
{
public
int
getType
()
{
return
type
;
return
type
;
}
}
public
void
setType
(
String
type
)
{
public
void
setType
(
int
type
)
{
this
.
type
=
type
;
this
.
type
=
type
;
}
}
...
@@ -84,11 +84,11 @@ public class AuthorityVo implements Serializable, InitDao {
...
@@ -84,11 +84,11 @@ public class AuthorityVo implements Serializable, InitDao {
this
.
url
=
url
;
this
.
url
=
url
;
}
}
public
String
getOpenMode
()
{
public
int
getOpenMode
()
{
return
openMode
;
return
openMode
;
}
}
public
void
setOpenMode
(
String
openMode
)
{
public
void
setOpenMode
(
int
openMode
)
{
this
.
openMode
=
openMode
;
this
.
openMode
=
openMode
;
}
}
...
...
src/main/java/com/pangding/web/authority/vo/CompanyBankCardVo.java
View file @
abcd3ba5
...
@@ -37,7 +37,7 @@ public class CompanyBankCardVo implements Serializable {
...
@@ -37,7 +37,7 @@ public class CompanyBankCardVo implements Serializable {
@TableAnnotation
(
"reserved_phone"
)
@TableAnnotation
(
"reserved_phone"
)
private
String
reservedPhone
;
private
String
reservedPhone
;
private
String
status
;
private
int
status
;
@TableAnnotation
(
"binding_code"
)
@TableAnnotation
(
"binding_code"
)
private
String
bindingCode
;
private
String
bindingCode
;
...
@@ -45,6 +45,17 @@ public class CompanyBankCardVo implements Serializable {
...
@@ -45,6 +45,17 @@ public class CompanyBankCardVo implements Serializable {
@TableAnnotation
(
"binding_time"
)
@TableAnnotation
(
"binding_time"
)
private
String
bindingTime
;
private
String
bindingTime
;
@TableAnnotation
(
"is_default"
)
private
int
isDefault
;
public
int
getIsDefault
()
{
return
isDefault
;
}
public
void
setIsDefault
(
int
isDefault
)
{
this
.
isDefault
=
isDefault
;
}
public
String
getId
()
{
public
String
getId
()
{
return
id
;
return
id
;
}
}
...
@@ -125,11 +136,11 @@ public class CompanyBankCardVo implements Serializable {
...
@@ -125,11 +136,11 @@ public class CompanyBankCardVo implements Serializable {
this
.
reservedPhone
=
reservedPhone
;
this
.
reservedPhone
=
reservedPhone
;
}
}
public
String
getStatus
()
{
public
int
getStatus
()
{
return
status
;
return
status
;
}
}
public
void
setStatus
(
String
status
)
{
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
this
.
status
=
status
;
}
}
...
...
src/main/java/com/pangding/web/authority/vo/CompanyExtendVo.java
View file @
abcd3ba5
...
@@ -3,6 +3,7 @@ package com.pangding.web.authority.vo;
...
@@ -3,6 +3,7 @@ package com.pangding.web.authority.vo;
import
com.yanzuoguang.dao.TableAnnotation
;
import
com.yanzuoguang.dao.TableAnnotation
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
/**
* @Author zhangjinyao
* @Author zhangjinyao
...
@@ -21,39 +22,83 @@ public class CompanyExtendVo implements Serializable {
...
@@ -21,39 +22,83 @@ public class CompanyExtendVo implements Serializable {
@TableAnnotation
(
"QR_code_url"
)
@TableAnnotation
(
"QR_code_url"
)
private
String
qrCodeUrl
;
private
String
qrCodeUrl
;
@TableAnnotation
(
"is_sub_account"
)
/**
private
int
isSubAccount
;
* 是否分账
*/
@TableAnnotation
(
"subledger_status"
)
private
int
subledgerStatus
;
/**
* 分账规则
*/
@TableAnnotation
(
"subledger_rule_id"
)
private
String
subledgerRuleId
;
@TableAnnotation
(
"sub_account_rule"
)
/**
private
String
subAccountRule
;
* 是否分润
*/
@TableAnnotation
(
"divide_status"
)
private
int
divedeStatus
;
@TableAnnotation
(
"is_sub_profit"
)
/**
private
int
isSubProfit
;
* 分润规则
*/
@TableAnnotation
(
"divide_rule_id"
)
private
String
divideRuleId
;
@TableAnnotation
(
"sub_profit_rule"
)
/**
private
String
subProfitRule
;
* 是够可提现
*/
@TableAnnotation
(
"withdraw_status"
)
private
int
withdrawStatus
;
@TableAnnotation
(
"is_withdraw"
)
/**
private
int
isWithdraw
;
* 提现规则
*/
@TableAnnotation
(
"withdraw_rule_id"
)
private
String
withdrawRuleId
;
@TableAnnotation
(
"withdraw_rule"
)
/**
private
String
withdrawRule
;
* 可提现总额
*/
@TableAnnotation
(
"withdraw_total_cash"
)
private
BigDecimal
withdrawTotalCash
;
@TableAnnotation
(
"is_scan_code_pay"
)
/**
private
int
isScanCodePay
;
* 是否扫码支付
*/
@TableAnnotation
(
"scan_code_pay_status"
)
private
int
scanCodePayStatus
;
@TableAnnotation
(
"pay_rule"
)
/**
private
String
payRule
;
* 支付规则
*/
@TableAnnotation
(
"pay_rule_id"
)
private
String
payRuleId
;
@TableAnnotation
(
"is_invitate"
)
/**
private
int
isInvitate
;
* 是否邀请
*/
@TableAnnotation
(
"invitation_status"
)
private
int
invitationStatus
;
@TableAnnotation
(
"invitate_rule"
)
/**
private
String
invitateRule
;
* 邀请规则
*/
@TableAnnotation
(
"invitation_rule_id"
)
private
String
invitateRuleId
;
@TableAnnotation
(
"invitation_code"
)
@TableAnnotation
(
"invitation_code"
)
private
String
invitationCode
;
private
String
invitationCode
;
public
BigDecimal
getWithdrawTotalCash
()
{
return
withdrawTotalCash
;
}
public
void
setWithdrawTotalCash
(
BigDecimal
withdrawTotalCash
)
{
this
.
withdrawTotalCash
=
withdrawTotalCash
;
}
public
String
getId
()
{
public
String
getId
()
{
return
id
;
return
id
;
}
}
...
@@ -86,84 +131,84 @@ public class CompanyExtendVo implements Serializable {
...
@@ -86,84 +131,84 @@ public class CompanyExtendVo implements Serializable {
this
.
qrCodeUrl
=
qrCodeUrl
;
this
.
qrCodeUrl
=
qrCodeUrl
;
}
}
public
int
get
IsSubAccount
()
{
public
int
get
SubledgerStatus
()
{
return
isSubAccount
;
return
subledgerStatus
;
}
}
public
void
set
IsSubAccount
(
int
isSubAccount
)
{
public
void
set
SubledgerStatus
(
int
subledgerStatus
)
{
this
.
isSubAccount
=
isSubAccount
;
this
.
subledgerStatus
=
subledgerStatus
;
}
}
public
String
getSub
AccountRule
()
{
public
String
getSub
ledgerRuleId
()
{
return
sub
AccountRule
;
return
sub
ledgerRuleId
;
}
}
public
void
setSub
AccountRule
(
String
subAccountRule
)
{
public
void
setSub
ledgerRuleId
(
String
subledgerRuleId
)
{
this
.
sub
AccountRule
=
subAccountRule
;
this
.
sub
ledgerRuleId
=
subledgerRuleId
;
}
}
public
int
get
IsSubProfit
()
{
public
int
get
DivedeStatus
()
{
return
isSubProfit
;
return
divedeStatus
;
}
}
public
void
set
IsSubProfit
(
int
isSubProfit
)
{
public
void
set
DivedeStatus
(
int
divedeStatus
)
{
this
.
isSubProfit
=
isSubProfit
;
this
.
divedeStatus
=
divedeStatus
;
}
}
public
String
get
SubProfitRule
()
{
public
String
get
DivideRuleId
()
{
return
subProfitRule
;
return
divideRuleId
;
}
}
public
void
set
SubProfitRule
(
String
subProfitRule
)
{
public
void
set
DivideRuleId
(
String
divideRuleId
)
{
this
.
subProfitRule
=
subProfitRule
;
this
.
divideRuleId
=
divideRuleId
;
}
}
public
int
get
IsWithdraw
()
{
public
int
get
WithdrawStatus
()
{
return
isWithdraw
;
return
withdrawStatus
;
}
}
public
void
set
IsWithdraw
(
int
isWithdraw
)
{
public
void
set
WithdrawStatus
(
int
withdrawStatus
)
{
this
.
isWithdraw
=
isWithdraw
;
this
.
withdrawStatus
=
withdrawStatus
;
}
}
public
String
getWithdrawRule
()
{
public
String
getWithdrawRule
Id
()
{
return
withdrawRule
;
return
withdrawRule
Id
;
}
}
public
void
setWithdrawRule
(
String
withdrawRule
)
{
public
void
setWithdrawRule
Id
(
String
withdrawRuleId
)
{
this
.
withdrawRule
=
withdrawRule
;
this
.
withdrawRule
Id
=
withdrawRuleId
;
}
}
public
int
get
IsScanCodePay
()
{
public
int
get
ScanCodePayStatus
()
{
return
isScanCodePay
;
return
scanCodePayStatus
;
}
}
public
void
set
IsScanCodePay
(
int
isScanCodePay
)
{
public
void
set
ScanCodePayStatus
(
int
scanCodePayStatus
)
{
this
.
isScanCodePay
=
isScanCodePay
;
this
.
scanCodePayStatus
=
scanCodePayStatus
;
}
}
public
String
getPayRule
()
{
public
String
getPayRule
Id
()
{
return
payRule
;
return
payRule
Id
;
}
}
public
void
setPayRule
(
String
payRule
)
{
public
void
setPayRule
Id
(
String
payRuleId
)
{
this
.
payRule
=
payRule
;
this
.
payRule
Id
=
payRuleId
;
}
}
public
int
getI
sInvitate
()
{
public
int
getI
nvitationStatus
()
{
return
i
sInvitate
;
return
i
nvitationStatus
;
}
}
public
void
setI
sInvitate
(
int
isInvitate
)
{
public
void
setI
nvitationStatus
(
int
invitationStatus
)
{
this
.
i
sInvitate
=
isInvitate
;
this
.
i
nvitationStatus
=
invitationStatus
;
}
}
public
String
getInvitateRule
()
{
public
String
getInvitateRule
Id
()
{
return
invitateRule
;
return
invitateRule
Id
;
}
}
public
void
setInvitateRule
(
String
invitateRule
)
{
public
void
setInvitateRule
Id
(
String
invitateRuleId
)
{
this
.
invitateRule
=
invitateRule
;
this
.
invitateRule
Id
=
invitateRuleId
;
}
}
public
String
getInvitationCode
()
{
public
String
getInvitationCode
()
{
...
...
src/main/java/com/pangding/web/authority/vo/UserVo.java
View file @
abcd3ba5
...
@@ -30,7 +30,11 @@ public class UserVo implements Serializable, InitDao {
...
@@ -30,7 +30,11 @@ public class UserVo implements Serializable, InitDao {
@TableAnnotation
(
"create_time"
)
@TableAnnotation
(
"create_time"
)
private
String
createTime
;
private
String
createTime
;
private
String
creator
;
@TableAnnotation
(
"create_id"
)
private
String
createId
;
@TableAnnotation
(
"create_name"
)
private
String
createName
;
@TableAnnotation
(
"company_id"
)
@TableAnnotation
(
"company_id"
)
private
String
companyId
;
private
String
companyId
;
...
@@ -91,12 +95,20 @@ public class UserVo implements Serializable, InitDao {
...
@@ -91,12 +95,20 @@ public class UserVo implements Serializable, InitDao {
this
.
createTime
=
createTime
;
this
.
createTime
=
createTime
;
}
}
public
String
getCreator
()
{
public
String
getCreateId
()
{
return
creator
;
return
createId
;
}
public
void
setCreateId
(
String
createId
)
{
this
.
createId
=
createId
;
}
public
String
getCreateName
()
{
return
createName
;
}
}
public
void
setCreat
or
(
String
creator
)
{
public
void
setCreat
eName
(
String
createName
)
{
this
.
creat
or
=
creator
;
this
.
creat
eName
=
createName
;
}
}
public
String
getCompanyId
()
{
public
String
getCompanyId
()
{
...
...
src/main/java/com/pangding/web/authority/vo/reqvo/ComputerLoginReqVo.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
vo
.
reqvo
;
import
com.pangding.web.authority.vo.LoginVo
;
/**
* @Author zhangjinyao
* @create 2019/5/27 15:17
*/
public
class
ComputerLoginReqVo
extends
LoginVo
{
private
String
accountOrPhone
;
private
String
password
;
private
String
verifyCode
;
public
String
getAccountOrPhone
()
{
return
accountOrPhone
;
}
public
void
setAccountOrPhone
(
String
accountOrPhone
)
{
this
.
accountOrPhone
=
accountOrPhone
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getVerifyCode
()
{
return
verifyCode
;
}
public
void
setVerifyCode
(
String
verifyCode
)
{
this
.
verifyCode
=
verifyCode
;
}
}
src/main/java/com/pangding/web/authority/vo/reqvo/TotalIncomeReqVo.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
vo
.
reqvo
;
/**
* @Author zhangjinyao
* @create 2019/5/27 11:51
*/
public
class
TotalIncomeReqVo
{
/**
* 公司id
*/
private
String
id
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
}
src/main/java/com/pangding/web/authority/vo/reqvo/WithdrawCashReqVo.java
0 → 100644
View file @
abcd3ba5
package
com
.
pangding
.
web
.
authority
.
vo
.
reqvo
;
/**
* @Author zhangjinyao
* @create 2019/5/27 11:13
*/
public
class
WithdrawCashReqVo
{
/**
* 公司id
*/
private
String
id
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
}
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