Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
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
8timerv2
8timerapiv200
Commits
95200e04
Commit
95200e04
authored
Apr 26, 2020
by
邓实川
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
短信、电子合同使用约束
parent
c58fc8bb
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
272 additions
and
80 deletions
+272
-80
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxRemainingQuantity.java
+2
-2
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxScene.java
+6
-5
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxUseRecord.java
+5
-2
src/main/java/cn/timer/api/callback/wx/WxCallBackController.java
+6
-1
src/main/java/cn/timer/api/controller/LoginController.java
+16
-7
src/main/java/cn/timer/api/controller/dzht/DzhtController2.java
+51
-11
src/main/java/cn/timer/api/controller/htzz/HtzzController.java
+20
-9
src/main/java/cn/timer/api/controller/qyzx/QyzxBusinessController.java
+74
-32
src/main/java/cn/timer/api/utils/aliyun/AliyunSMS.java
+92
-7
src/main/java/cn/timer/api/utils/schedule/RemindUtil.java
+0
-4
No files found.
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxRemainingQuantity.java
View file @
95200e04
...
@@ -55,8 +55,8 @@ public class QyzxRemainingQuantity extends Model<QyzxRemainingQuantity>{
...
@@ -55,8 +55,8 @@ public class QyzxRemainingQuantity extends Model<QyzxRemainingQuantity>{
@ApiModelProperty
(
value
=
"付费模块id"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"付费模块id"
,
example
=
"1"
)
private
Integer
pmid
;
private
Integer
pmid
;
//
@ApiModelProperty(value="付费内容id",example="1")
@ApiModelProperty
(
value
=
"付费内容id"
,
example
=
"1"
)
//
private Integer pcid;
private
Integer
pcid
;
@ApiModelProperty
(
value
=
"订单号"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"订单号"
,
example
=
"1"
)
private
String
orderNo
;
private
String
orderNo
;
...
...
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxScene.java
View file @
95200e04
...
@@ -20,13 +20,14 @@ import lombok.Getter;
...
@@ -20,13 +20,14 @@ import lombok.Getter;
@Getter
@Getter
@AllArgsConstructor
@AllArgsConstructor
public
enum
QyzxScene
{
public
enum
QyzxScene
{
MSG_LOGIN
(
1
,
"短信登录"
),
MSG_AUTHENTICATION
(
1
,
"短信身份验证"
),
MSG_LOGIN_CONFIRM
(
1
,
"短信登录确认"
),
MSG_REGISTER
(
1
,
"短信用户注册"
),
MSG_CHANGE_PWD
(
1
,
"修改密码"
),
MSG_CHANGE_PWD
(
1
,
"修改密码"
),
MSG_CHANGE_UNAME
(
1
,
"修改用户名"
),
MSG_CHANGE_IMP
(
1
,
"修改重要信息"
),
MSG_CHANGE_PHONE
(
1
,
"修改手机号"
),
MSG_REMIND
(
1
,
"证照提醒"
),
MSG_REMIND
(
1
,
"证照提醒"
),
CONTRACT_SINGLE
(
2
,
"
修改密码
"
),
CONTRACT_SINGLE
(
2
,
"
单签
"
),
CONTRACT_BOTH
(
2
,
"
用户注册
"
);
CONTRACT_BOTH
(
2
,
"
双方签
"
);
private
final
Integer
code
;
private
final
Integer
code
;
private
final
String
message
;
private
final
String
message
;
...
...
src/main/java/cn/timer/api/bean/qyzx/businessService/QyzxUseRecord.java
View file @
95200e04
...
@@ -59,7 +59,7 @@ public class QyzxUseRecord extends Model<QyzxUseRecord>{
...
@@ -59,7 +59,7 @@ public class QyzxUseRecord extends Model<QyzxUseRecord>{
private
String
orderNo
;
private
String
orderNo
;
@ApiModelProperty
(
value
=
"使用场景"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"使用场景"
,
example
=
"1"
)
private
Integer
scene
;
private
String
scene
;
@ApiModelProperty
(
value
=
"使用数量"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"使用数量"
,
example
=
"1"
)
private
Integer
useNum
;
private
Integer
useNum
;
...
@@ -78,5 +78,8 @@ public class QyzxUseRecord extends Model<QyzxUseRecord>{
...
@@ -78,5 +78,8 @@ public class QyzxUseRecord extends Model<QyzxUseRecord>{
private
Date
createTime
;
private
Date
createTime
;
@ApiModelProperty
(
value
=
"创建人 "
,
example
=
""
)
@ApiModelProperty
(
value
=
"创建人 "
,
example
=
""
)
private
Integer
createUser
;
private
String
createUser
;
@ApiModelProperty
(
value
=
"使用人手机号 "
,
example
=
""
)
private
String
userPhone
;
}
}
src/main/java/cn/timer/api/callback/wx/WxCallBackController.java
View file @
95200e04
...
@@ -81,6 +81,10 @@ public class WxCallBackController {
...
@@ -81,6 +81,10 @@ public class WxCallBackController {
if
(!
env
.
equals
(
"dev"
)
&&
!
env
.
equals
(
"test"
))
{
if
(!
env
.
equals
(
"dev"
)
&&
!
env
.
equals
(
"test"
))
{
return
ResultUtil
.
error
(
"请切换到开发/测试环境"
);
return
ResultUtil
.
error
(
"请切换到开发/测试环境"
);
}
}
// TODO 加套餐 如果已经存在可用的套餐 ,怎么搞
updateAndInsert
(
orderNo
);
updateAndInsert
(
orderNo
);
return
ResultUtil
.
data
(
orderNo
,
"购买成功"
);
return
ResultUtil
.
data
(
orderNo
,
"购买成功"
);
}
}
...
@@ -118,7 +122,8 @@ public class WxCallBackController {
...
@@ -118,7 +122,8 @@ public class WxCallBackController {
quantity
.
setRemainder
(
totalNum
);
// 套餐剩余数(同上)
quantity
.
setRemainder
(
totalNum
);
// 套餐剩余数(同上)
quantity
.
setCount
(
count
);
// 购买数量
quantity
.
setCount
(
count
);
// 购买数量
quantity
.
setPmid
(
pmid
);
// 付费模块id
quantity
.
setPmid
(
pmid
);
// 付费模块id
// quantity.setPcid(pcid); // 付费内容id
quantity
.
setPcid
(
pcid
);
// 付费内容id
quantity
.
setUnit
(
unit
);
quantity
.
setCreateUser
(
createdUser
);
quantity
.
setCreateUser
(
createdUser
);
quantity
.
setOrgCode
(
orgCode
);
quantity
.
setOrgCode
(
orgCode
);
quantity
.
insert
();
quantity
.
insert
();
...
...
src/main/java/cn/timer/api/controller/LoginController.java
View file @
95200e04
...
@@ -92,12 +92,21 @@ public class LoginController {
...
@@ -92,12 +92,21 @@ public class LoginController {
Integer
orgCode
=
QyzxEmpLogin
.
builder
().
build
()
Integer
orgCode
=
QyzxEmpLogin
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxEmpLogin
>().
eq
(
QyzxEmpLogin:
:
getPhone
,
phone
)).
getOrgId
();
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxEmpLogin
>().
eq
(
QyzxEmpLogin:
:
getPhone
,
phone
)).
getOrgId
();
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
()
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
().
selectOne
(
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>()
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>().
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
1
).
gt
(
QyzxRemainingQuantity:
:
getRemainder
,
0
));
.
orderByAsc
(
QyzxRemainingQuantity:
:
getExpireDate
));
Date
date
=
null
;
if
(
quantity
==
null
||
quantity
.
getRemainder
()
==
null
||
quantity
.
getRemainder
()
<=
0
)
{
//判断充了钱没
Integer
remainder
=
null
;
return
ResultUtil
.
error
(
"请充值后使用短信功能"
);
if
(
quantity
!=
null
)
{
remainder
=
quantity
.
getRemainder
();
date
=
quantity
.
getExpireDate
();
}
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
// 判断充了钱没
return
ResultUtil
.
error
(
"请充值后使用短信功能!"
);
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :短信套餐已过期"
);
return
ResultUtil
.
error
(
"短信套餐已到期!"
);
}
}
// 6位随机数验证码
// 6位随机数验证码
...
@@ -117,7 +126,7 @@ public class LoginController {
...
@@ -117,7 +126,7 @@ public class LoginController {
// yyyy-MM-dd
// yyyy-MM-dd
today
=
today
.
replace
(
"-"
,
""
);
today
=
today
.
replace
(
"-"
,
""
);
Thread
.
sleep
(
5
00
);
Thread
.
sleep
(
10
00
);
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
parseObject
(
new
AliyunSMS
().
QuerySendDetails
(
phone
,
today
,
j
.
getString
(
"BizId"
)))
.
parseObject
(
new
AliyunSMS
().
QuerySendDetails
(
phone
,
today
,
j
.
getString
(
"BizId"
)))
.
getJSONObject
(
"SmsSendDetailDTOs"
).
getJSONArray
(
"SmsSendDetailDTO"
).
get
(
0
);
.
getJSONObject
(
"SmsSendDetailDTOs"
).
getJSONArray
(
"SmsSendDetailDTO"
).
get
(
0
);
...
...
src/main/java/cn/timer/api/controller/dzht/DzhtController2.java
View file @
95200e04
...
@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
@@ -40,6 +41,7 @@ import cn.timer.api.bean.dzht.DzhtAssoQyyz;
...
@@ -40,6 +41,7 @@ import cn.timer.api.bean.dzht.DzhtAssoQyyz;
import
cn.timer.api.bean.dzht.DzhtAssoQyzc
;
import
cn.timer.api.bean.dzht.DzhtAssoQyzc
;
import
cn.timer.api.bean.dzht.DzhtAssoSdgzq
;
import
cn.timer.api.bean.dzht.DzhtAssoSdgzq
;
import
cn.timer.api.bean.dzht.DzhtAssoTpyz
;
import
cn.timer.api.bean.dzht.DzhtAssoTpyz
;
import
cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.UserBean
;
import
cn.timer.api.config.annotation.UserBean
;
...
@@ -193,8 +195,7 @@ public class DzhtController2 {
...
@@ -193,8 +195,7 @@ public class DzhtController2 {
public
Result
<
Object
>
orgTemplate
(
@CurrentUser
UserBean
userBean
,
@RequestBody
DzhtAssoQyyz
qyyz
)
{
public
Result
<
Object
>
orgTemplate
(
@CurrentUser
UserBean
userBean
,
@RequestBody
DzhtAssoQyyz
qyyz
)
{
String
orgId
=
DzhtAssoQyzc
.
builder
().
build
().
selectOne
(
String
orgId
=
DzhtAssoQyzc
.
builder
().
build
().
selectOne
(
// new QueryWrapper<DzhtAssoQyzc>().eq("third_party_user_id", qyyz.getThirdPartyUserId()).select("org_id"))
// new QueryWrapper<DzhtAssoQyzc>().eq("third_party_user_id", qyyz.getThirdPartyUserId()).select("org_id"))
new
QueryWrapper
<
DzhtAssoQyzc
>().
eq
(
"org_code"
,
userBean
.
getOrgCode
()).
select
(
"org_id"
))
new
QueryWrapper
<
DzhtAssoQyzc
>().
eq
(
"org_code"
,
userBean
.
getOrgCode
()).
select
(
"org_id"
)).
getOrgId
();
// 查询orgId
.
getOrgId
();
// 查询orgId
// String orgId = "dfd84b9a58d345ea90f6711bad853435";// 测试公司账户
// String orgId = "dfd84b9a58d345ea90f6711bad853435";// 测试公司账户
// 印章参数
// 印章参数
String
alias
=
qyyz
.
getAlias
();
String
alias
=
qyyz
.
getAlias
();
...
@@ -409,6 +410,25 @@ public class DzhtController2 {
...
@@ -409,6 +410,25 @@ public class DzhtController2 {
@ApiOperation
(
value
=
"创建签署流程"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"创建签署流程"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
signflows
(
@CurrentUser
UserBean
userBean
,
@RequestBody
DzhtAssoCjlc
lc
)
{
public
Result
<
Object
>
signflows
(
@CurrentUser
UserBean
userBean
,
@RequestBody
DzhtAssoCjlc
lc
)
{
Integer
orgCode
=
userBean
.
getOrgCode
();
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
().
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>().
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
2
).
gt
(
QyzxRemainingQuantity:
:
getRemainder
,
0
));
Integer
remainder
=
null
;
Date
date
=
null
;
if
(
quantity
!=
null
)
{
remainder
=
quantity
.
getRemainder
();
date
=
quantity
.
getExpireDate
();
}
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
return
ResultUtil
.
error
(
"企业 "
+
orgCode
+
" :套餐余额不足,请充值购买后使用"
);
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
return
ResultUtil
.
error
(
"企业 "
+
orgCode
+
" :电子合同套餐已过期"
);
}
// ConfigInfo cfgInfo = new ConfigInfo(null, "1,2", null, null);
// ConfigInfo cfgInfo = new ConfigInfo(null, "1,2", null, null);
// SignFlowStart sfs = new SignFlowStart(null, "测试签署流程开启", null, null, null,
// SignFlowStart sfs = new SignFlowStart(null, "测试签署流程开启", null, null, null,
// null, null, cfgInfo);
// null, null, cfgInfo);
...
@@ -442,7 +462,7 @@ public class DzhtController2 {
...
@@ -442,7 +462,7 @@ public class DzhtController2 {
lc
.
setFlowId
(
jsonObject
.
getString
(
"flowId"
));
lc
.
setFlowId
(
jsonObject
.
getString
(
"flowId"
));
lc
.
setCreater
(
userBean
.
getEmpNum
());
lc
.
setCreater
(
userBean
.
getEmpNum
());
lc
.
setCreatedTime
(
new
Date
());
lc
.
setCreatedTime
(
new
Date
());
lc
.
setOrgCode
(
userBean
.
getOrgCode
()
);
lc
.
setOrgCode
(
orgCode
);
lc
.
insert
();
lc
.
insert
();
}
catch
(
DefineException
e1
)
{
}
catch
(
DefineException
e1
)
{
e1
.
printStackTrace
();
e1
.
printStackTrace
();
...
@@ -647,9 +667,9 @@ public class DzhtController2 {
...
@@ -647,9 +667,9 @@ public class DzhtController2 {
for
(
DzhtAssoSdgzq
sdgzq
:
sdgzqs
)
{
for
(
DzhtAssoSdgzq
sdgzq
:
sdgzqs
)
{
String
flowId
=
sdgzq
.
getFlowId
();
String
flowId
=
sdgzq
.
getFlowId
();
DzhtAssoCjlc
lc
=
DzhtAssoCjlc
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
DzhtAssoCjlc
>().
eq
(
"flow_id"
,
flowId
).
select
(
"business_scene"
));
DzhtAssoCjlc
lc
=
DzhtAssoCjlc
.
builder
().
build
()
sdgzq
.
setBusinessScene
(
lc
.
getBusinessScene
());
//文件主题
.
selectOne
(
new
QueryWrapper
<
DzhtAssoCjlc
>().
eq
(
"flow_id"
,
flowId
).
select
(
"business_scene"
));
sdgzq
.
setBusinessScene
(
lc
.
getBusinessScene
());
// 文件主题
String
fileId
=
sdgzq
.
getFileId
();
String
fileId
=
sdgzq
.
getFileId
();
String
signerAccountId
=
sdgzq
.
getSignerAccountId
();
String
signerAccountId
=
sdgzq
.
getSignerAccountId
();
...
@@ -680,7 +700,7 @@ public class DzhtController2 {
...
@@ -680,7 +700,7 @@ public class DzhtController2 {
.
selectOne
(
new
QueryWrapper
<
DzhtAssoGrzc
>().
eq
(
"account_id"
,
signerAccountId
));
.
selectOne
(
new
QueryWrapper
<
DzhtAssoGrzc
>().
eq
(
"account_id"
,
signerAccountId
));
if
(
grzc
!=
null
)
{
if
(
grzc
!=
null
)
{
Integer
signerEmpNum
=
grzc
.
getEmpNum
();
Integer
signerEmpNum
=
grzc
.
getEmpNum
();
sdgzq
.
setSignerEmpNum
(
signerEmpNum
);
//签署人员工号
sdgzq
.
setSignerEmpNum
(
signerEmpNum
);
//
签署人员工号
}
}
sdgzq
.
setCreater
(
userBean
.
getEmpNum
());
sdgzq
.
setCreater
(
userBean
.
getEmpNum
());
sdgzq
.
setCreatedTime
(
new
Date
());
sdgzq
.
setCreatedTime
(
new
Date
());
...
@@ -797,6 +817,26 @@ public class DzhtController2 {
...
@@ -797,6 +817,26 @@ public class DzhtController2 {
@PutMapping
(
"/startSignFlow"
)
@PutMapping
(
"/startSignFlow"
)
@ApiOperation
(
value
=
"开启签署流程"
,
httpMethod
=
"PUT"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"开启签署流程"
,
httpMethod
=
"PUT"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
startSignFlow
(
@CurrentUser
UserBean
userBean
,
@RequestParam
String
flowId
)
{
public
Result
<
Object
>
startSignFlow
(
@CurrentUser
UserBean
userBean
,
@RequestParam
String
flowId
)
{
Integer
orgCode
=
userBean
.
getOrgCode
();
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
().
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>().
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
2
).
gt
(
QyzxRemainingQuantity:
:
getRemainder
,
0
));
Integer
remainder
=
null
;
Date
date
=
null
;
if
(
quantity
!=
null
)
{
remainder
=
quantity
.
getRemainder
();
date
=
quantity
.
getExpireDate
();
}
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
return
ResultUtil
.
error
(
"企业 "
+
orgCode
+
" :套餐余额不足,请充值购买后使用"
);
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
return
ResultUtil
.
error
(
"企业 "
+
orgCode
+
" :电子合同套餐已过期"
);
}
try
{
try
{
TokenHelper
.
getTokenData
();
// 获取鉴权
TokenHelper
.
getTokenData
();
// 获取鉴权
SignHelper
.
startSignFlow
(
flowId
);
SignHelper
.
startSignFlow
(
flowId
);
...
@@ -907,7 +947,8 @@ public class DzhtController2 {
...
@@ -907,7 +947,8 @@ public class DzhtController2 {
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
required
=
false
)
String
query
)
{
@RequestParam
(
required
=
false
)
String
query
)
{
com
.
github
.
pagehelper
.
Page
<
Object
>
page
=
PageHelper
.
startPage
(
currPage
,
pageSize
);
com
.
github
.
pagehelper
.
Page
<
Object
>
page
=
PageHelper
.
startPage
(
currPage
,
pageSize
);
List
<
DzhtAssoCjlc
>
cjlcs
=
DzhtAssoCjlc
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
DzhtAssoCjlc
>().
like
(
query
!=
null
,
"business_scene"
,
query
)
List
<
DzhtAssoCjlc
>
cjlcs
=
DzhtAssoCjlc
.
builder
().
build
()
.
selectList
(
new
QueryWrapper
<
DzhtAssoCjlc
>().
like
(
query
!=
null
,
"business_scene"
,
query
)
.
eq
(
"org_code"
,
userBean
.
getOrgCode
()).
eq
(
"creater"
,
userBean
.
getEmpNum
()).
select
(
"flow_id"
));
.
eq
(
"org_code"
,
userBean
.
getOrgCode
()).
eq
(
"creater"
,
userBean
.
getEmpNum
()).
select
(
"flow_id"
));
List
<
Object
>
l
=
new
ArrayList
<
Object
>();
List
<
Object
>
l
=
new
ArrayList
<
Object
>();
for
(
DzhtAssoCjlc
lc
:
cjlcs
)
{
for
(
DzhtAssoCjlc
lc
:
cjlcs
)
{
...
@@ -968,13 +1009,12 @@ public class DzhtController2 {
...
@@ -968,13 +1009,12 @@ public class DzhtController2 {
public
Result
<
Object
>
getSdlc
(
@CurrentUser
UserBean
userBean
,
public
Result
<
Object
>
getSdlc
(
@CurrentUser
UserBean
userBean
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Integer
currPage
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Integer
currPage
,
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
required
=
false
)
String
query
)
{
@RequestParam
(
required
=
false
)
String
query
)
{
List
<
JSONObject
>
json
=
new
ArrayList
<
JSONObject
>();
List
<
JSONObject
>
json
=
new
ArrayList
<
JSONObject
>();
com
.
github
.
pagehelper
.
Page
<
Object
>
page
=
PageHelper
.
startPage
(
currPage
,
pageSize
);
com
.
github
.
pagehelper
.
Page
<
Object
>
page
=
PageHelper
.
startPage
(
currPage
,
pageSize
);
List
<
DzhtAssoSdgzq
>
list
=
DzhtAssoSdgzq
.
builder
().
build
()
List
<
DzhtAssoSdgzq
>
list
=
DzhtAssoSdgzq
.
builder
().
build
()
.
selectList
(
new
QueryWrapper
<
DzhtAssoSdgzq
>()
.
selectList
(
new
QueryWrapper
<
DzhtAssoSdgzq
>().
select
(
"distinct flow_id"
)
.
select
(
"distinct flow_id"
)
.
eq
(
"signer_emp_num"
,
userBean
.
getEmpNum
()).
like
(
query
!=
null
,
"business_scene"
,
query
));
.
eq
(
"signer_emp_num"
,
userBean
.
getEmpNum
()).
like
(
query
!=
null
,
"business_scene"
,
query
));
List
<
String
>
flowIdList
=
Lists
.
transform
(
list
,
newList
->
newList
.
getFlowId
());
List
<
String
>
flowIdList
=
Lists
.
transform
(
list
,
newList
->
newList
.
getFlowId
());
for
(
String
flowId
:
flowIdList
)
{
for
(
String
flowId
:
flowIdList
)
{
...
...
src/main/java/cn/timer/api/controller/htzz/HtzzController.java
View file @
95200e04
...
@@ -70,18 +70,29 @@ public class HtzzController {
...
@@ -70,18 +70,29 @@ public class HtzzController {
@PostMapping
(
"/addzj"
)
@PostMapping
(
"/addzj"
)
@ApiOperation
(
value
=
"新增合同证件"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"新增合同证件"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
addzj
(
@CurrentUser
UserBean
userBean
,
@RequestBody
HtzzAdminZzda
zzda
)
{
public
Result
<
Object
>
addzj
(
@CurrentUser
UserBean
userBean
,
@RequestBody
HtzzAdminZzda
zzda
)
{
Integer
orgCode
=
userBean
.
getOrgCode
();
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
()
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
().
selectOne
(
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>()
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>().
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
userBean
.
getOrgCode
())
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
1
).
gt
(
QyzxRemainingQuantity:
:
getRemainder
,
0
));
.
orderByAsc
(
QyzxRemainingQuantity:
:
getExpireDate
));
Date
date
=
null
;
if
(
quantity
==
null
||
quantity
.
getRemainder
()
==
null
||
quantity
.
getRemainder
()
<=
0
)
{
Integer
remainder
=
null
;
return
ResultUtil
.
data
(
"请先充值购买短信套餐!"
);
if
(
quantity
!=
null
)
{
remainder
=
quantity
.
getRemainder
();
date
=
quantity
.
getExpireDate
();
}
}
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
// 判断充了钱没
return
ResultUtil
.
error
(
"请充值后使用短信功能!"
);
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :短信套餐已过期"
);
return
ResultUtil
.
error
(
"短信套餐已到期!"
);
}
zzda
.
setTxkgType
(
1
);
zzda
.
setTxkgType
(
1
);
zzda
.
setLrrid
(
userBean
.
getEmpNum
());
zzda
.
setLrrid
(
userBean
.
getEmpNum
());
zzda
.
setLrsjTime
(
new
Date
());
zzda
.
setLrsjTime
(
new
Date
());
zzda
.
setOrgCode
(
userBean
.
getOrgCode
()
);
zzda
.
setOrgCode
(
orgCode
);
zzda
.
insert
();
zzda
.
insert
();
/**
/**
...
@@ -92,7 +103,7 @@ public class HtzzController {
...
@@ -92,7 +103,7 @@ public class HtzzController {
List
<
HtzzAssoHtgx
>
htgxs
=
new
ArrayList
<
HtzzAssoHtgx
>(
ids
.
length
);
List
<
HtzzAssoHtgx
>
htgxs
=
new
ArrayList
<
HtzzAssoHtgx
>(
ids
.
length
);
for
(
Integer
id
:
ids
)
{
for
(
Integer
id
:
ids
)
{
QueryWrapper
<
YgglMainEmp
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
YgglMainEmp
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
select
(
"name"
,
"phone"
,
"emp_num"
).
eq
(
"emp_num"
,
id
).
eq
(
"org_code"
,
userBean
.
getOrgCode
()
);
queryWrapper
.
select
(
"name"
,
"phone"
,
"emp_num"
).
eq
(
"emp_num"
,
id
).
eq
(
"org_code"
,
orgCode
);
emp
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
queryWrapper
);
emp
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
queryWrapper
);
HtzzAssoHtgx
htgx
=
HtzzAssoHtgx
.
builder
().
build
();
HtzzAssoHtgx
htgx
=
HtzzAssoHtgx
.
builder
().
build
();
...
@@ -100,7 +111,7 @@ public class HtzzController {
...
@@ -100,7 +111,7 @@ public class HtzzController {
htgx
.
setTzrid
(
emp
.
getEmpNum
());
htgx
.
setTzrid
(
emp
.
getEmpNum
());
htgx
.
setName
(
emp
.
getName
());
htgx
.
setName
(
emp
.
getName
());
htgx
.
setPhone
(
emp
.
getPhone
());
htgx
.
setPhone
(
emp
.
getPhone
());
htgx
.
setOrgCode
(
userBean
.
getOrgCode
()
);
htgx
.
setOrgCode
(
orgCode
);
htgx
.
insert
();
htgx
.
insert
();
htgxs
.
add
(
htgx
);
htgxs
.
add
(
htgx
);
}
}
...
...
src/main/java/cn/timer/api/controller/qyzx/QyzxBusinessController.java
View file @
95200e04
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/utils/aliyun/AliyunSMS.java
View file @
95200e04
package
cn
.
timer
.
api
.
utils
.
aliyun
;
package
cn
.
timer
.
api
.
utils
.
aliyun
;
import
java.util.Date
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -12,9 +15,12 @@ import com.aliyuncs.exceptions.ServerException;
...
@@ -12,9 +15,12 @@ import com.aliyuncs.exceptions.ServerException;
import
com.aliyuncs.http.MethodType
;
import
com.aliyuncs.http.MethodType
;
import
com.aliyuncs.profile.DefaultProfile
;
import
com.aliyuncs.profile.DefaultProfile
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
cn.timer.api.bean.qyzx.QyzxEmpLogin
;
import
cn.timer.api.bean.qyzx.QyzxEmpLogin
;
import
cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity
;
import
cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity
;
import
cn.timer.api.bean.qyzx.businessService.QyzxScene
;
import
cn.timer.api.bean.qyzx.businessService.QyzxUseRecord
;
import
cn.timer.api.config.enums.PinType
;
import
cn.timer.api.config.enums.PinType
;
import
cn.timer.api.dto.qyzx.EntRegisterDto
;
import
cn.timer.api.dto.qyzx.EntRegisterDto
;
...
@@ -24,6 +30,7 @@ import cn.timer.api.dto.qyzx.EntRegisterDto;
...
@@ -24,6 +30,7 @@ import cn.timer.api.dto.qyzx.EntRegisterDto;
* @author dsc
* @author dsc
*
*
*/
*/
@Transactional
public
class
AliyunSMS
{
public
class
AliyunSMS
{
final
static
String
CODE_NAME
=
"TemplateCode"
;
// 短信模板代码参数名
final
static
String
CODE_NAME
=
"TemplateCode"
;
// 短信模板代码参数名
...
@@ -51,6 +58,26 @@ public class AliyunSMS {
...
@@ -51,6 +58,26 @@ public class AliyunSMS {
String
phone
=
entRegisterDto
.
getPhone
();
String
phone
=
entRegisterDto
.
getPhone
();
Integer
orgCode
=
QyzxEmpLogin
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxEmpLogin
>().
eq
(
QyzxEmpLogin:
:
getPhone
,
phone
)).
getOrgId
();
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
().
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>().
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
1
).
gt
(
QyzxRemainingQuantity:
:
getRemainder
,
0
));
Integer
remainder
=
quantity
.
getRemainder
();
Date
date
=
quantity
.
getExpireDate
();
String
orderNo
=
quantity
.
getOrderNo
();
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :套餐余额不足,请充钱"
);
return
null
;
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :短信套餐已过期"
);
return
null
;
}
QyzxUseRecord
qyzxUseRecord
=
new
QyzxUseRecord
();
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
REGION_ID
,
ACCESSKEY_ID
,
SECRET
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
REGION_ID
,
ACCESSKEY_ID
,
SECRET
);
IAcsClient
client
=
new
DefaultAcsClient
(
profile
);
IAcsClient
client
=
new
DefaultAcsClient
(
profile
);
...
@@ -66,37 +93,65 @@ public class AliyunSMS {
...
@@ -66,37 +93,65 @@ public class AliyunSMS {
switch
(
templateCode
)
{
switch
(
templateCode
)
{
case
1
:
case
1
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
AUTHENTICATION
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
AUTHENTICATION
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_AUTHENTICATION
.
getMessage
());
break
;
break
;
case
2
:
case
2
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
LOGIN_CONFIRMATION
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
LOGIN_CONFIRMATION
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_LOGIN_CONFIRM
.
getMessage
());
break
;
break
;
case
3
:
case
3
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
LOGIN_ABNORMAL
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
LOGIN_ABNORMAL
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_LOGIN_CONFIRM
.
getMessage
());
break
;
break
;
case
4
:
case
4
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
REGISTER
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
REGISTER
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_REGISTER
.
getMessage
());
break
;
break
;
case
5
:
case
5
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
CHANGE_PASSWORD
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
CHANGE_PASSWORD
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_CHANGE_PWD
.
getMessage
());
break
;
break
;
case
6
:
case
6
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
CHANGE_INFORMATION
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
CHANGE_INFORMATION
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_CHANGE_IMP
.
getMessage
());
break
;
break
;
default
:
default
:
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
AUTHENTICATION
.
getCode
());
request
.
putQueryParameter
(
CODE_NAME
,
PinType
.
AUTHENTICATION
.
getCode
());
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_AUTHENTICATION
.
getMessage
());
}
}
// 【8小时人事管家】验证码934169,您正在尝试修改登录密码,请妥善保管账户信息。
// 【8小时人事管家】验证码934169,您正在尝试修改登录密码,请妥善保管账户信息。
request
.
putQueryParameter
(
TEMPLATE_PARAM
,
"{\"code\":\""
+
code
+
"\"}"
);
request
.
putQueryParameter
(
TEMPLATE_PARAM
,
"{\"code\":\""
+
code
+
"\"}"
);
CommonResponse
response
=
null
;
CommonResponse
response
=
null
;
String
a
=
null
;
try
{
try
{
response
=
client
.
getCommonResponse
(
request
);
response
=
client
.
getCommonResponse
(
request
);
a
=
response
.
getData
();
}
catch
(
ServerException
e
)
{
}
catch
(
ServerException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
catch
(
ClientException
e
)
{
}
catch
(
ClientException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
JSONObject
.
parseObject
(
response
.
getData
());
if
(
a
!=
null
&&
a
.
contains
(
"OK"
))
{
qyzxUseRecord
.
setOriginalTotalNum
(
remainder
);
// 原数量
qyzxUseRecord
.
setNowTotalNum
(--
remainder
);
qyzxUseRecord
.
setUserPhone
(
phone
);
qyzxUseRecord
.
setOrderNo
(
orderNo
);
qyzxUseRecord
.
setUseNum
(
1
);
qyzxUseRecord
.
setPmid
(
quantity
.
getPmid
());
qyzxUseRecord
.
setCreateUser
(
"System"
);
qyzxUseRecord
.
insert
();
quantity
.
setRemainder
(
remainder
);
quantity
.
update
(
new
LambdaUpdateWrapper
<
QyzxRemainingQuantity
>()
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
).
eq
(
QyzxRemainingQuantity:
:
getOrderNo
,
orderNo
));
return
JSONObject
.
parseObject
(
response
.
getData
());
// 代表请求成功
}
return
null
;
}
}
/**
/**
...
@@ -148,14 +203,22 @@ public class AliyunSMS {
...
@@ -148,14 +203,22 @@ public class AliyunSMS {
Integer
orgCode
=
QyzxEmpLogin
.
builder
().
build
()
Integer
orgCode
=
QyzxEmpLogin
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxEmpLogin
>().
eq
(
QyzxEmpLogin:
:
getPhone
,
phone
)).
getOrgId
();
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxEmpLogin
>().
eq
(
QyzxEmpLogin:
:
getPhone
,
phone
)).
getOrgId
();
System
.
err
.
println
(
"orgCode"
+
orgCode
);
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
()
QyzxRemainingQuantity
quantity
=
QyzxRemainingQuantity
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>()
.
selectOne
(
new
LambdaQueryWrapper
<
QyzxRemainingQuantity
>()
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
)
.
eq
(
QyzxRemainingQuantity:
:
getPmid
,
1
)
.
orderByAsc
(
QyzxRemainingQuantity:
:
getExpireDate
));
.
orderByAsc
(
QyzxRemainingQuantity:
:
getExpireDate
));
if
(
quantity
==
null
||
quantity
.
getRemainder
()
==
null
||
quantity
.
getRemainder
()
<=
0
)
{
System
.
err
.
println
(
"请充钱"
);
Integer
remainder
=
quantity
.
getRemainder
();
return
"请先充值购买短信套餐!"
;
Date
date
=
quantity
.
getExpireDate
();
String
orderNo
=
quantity
.
getOrderNo
();
if
(
quantity
==
null
||
remainder
==
null
||
remainder
<=
0
)
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :套餐余额不足,请充钱"
);
return
"请先充值购买短信套餐!"
;
}
if
(
date
!=
null
&&
date
.
getTime
()
<=
new
Date
().
getTime
())
{
System
.
err
.
println
(
"企业 "
+
orgCode
+
" :短信套餐已过期"
);
return
"套餐已过期"
;
}
}
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
REGION_ID
,
ACCESSKEY_ID
,
SECRET
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
REGION_ID
,
ACCESSKEY_ID
,
SECRET
);
...
@@ -173,15 +236,37 @@ public class AliyunSMS {
...
@@ -173,15 +236,37 @@ public class AliyunSMS {
request
.
putQueryParameter
(
TEMPLATE_PARAM
,
request
.
putQueryParameter
(
TEMPLATE_PARAM
,
"{\"name\":\""
+
name
+
"\", \"htname\":\""
+
htname
+
"\",\"time\":\""
+
time
+
"\"}"
);
"{\"name\":\""
+
name
+
"\", \"htname\":\""
+
htname
+
"\",\"time\":\""
+
time
+
"\"}"
);
String
a
=
null
;
try
{
try
{
CommonResponse
response
=
client
.
getCommonResponse
(
request
);
CommonResponse
response
=
client
.
getCommonResponse
(
request
);
System
.
out
.
println
(
response
.
getData
());
System
.
out
.
println
(
response
.
getData
());
a
=
response
.
getData
();
}
catch
(
ServerException
e
)
{
}
catch
(
ServerException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
catch
(
ClientException
e
)
{
}
catch
(
ClientException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
"发送成功"
;
if
(
a
!=
null
&&
a
.
contains
(
"OK"
))
{
QyzxUseRecord
qyzxUseRecord
=
new
QyzxUseRecord
();
qyzxUseRecord
.
setOriginalTotalNum
(
remainder
);
// 原数量
qyzxUseRecord
.
setNowTotalNum
(--
remainder
);
qyzxUseRecord
.
setUserPhone
(
phone
);
qyzxUseRecord
.
setOrderNo
(
orderNo
);
qyzxUseRecord
.
setScene
(
QyzxScene
.
MSG_REMIND
.
getMessage
());
qyzxUseRecord
.
setUseNum
(
1
);
qyzxUseRecord
.
setPmid
(
quantity
.
getPmid
());
qyzxUseRecord
.
insert
();
quantity
.
setRemainder
(
remainder
);
quantity
.
update
(
new
LambdaUpdateWrapper
<
QyzxRemainingQuantity
>()
.
eq
(
QyzxRemainingQuantity:
:
getOrgCode
,
orgCode
).
eq
(
QyzxRemainingQuantity:
:
getOrderNo
,
orderNo
));
return
a
;
// 代表请求成功
}
return
"发送失败"
;
}
}
}
}
src/main/java/cn/timer/api/utils/schedule/RemindUtil.java
View file @
95200e04
...
@@ -11,16 +11,12 @@ import org.springframework.scheduling.config.ScheduledTaskRegistrar;
...
@@ -11,16 +11,12 @@ import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import
org.springframework.scheduling.support.CronTrigger
;
import
org.springframework.scheduling.support.CronTrigger
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.timer.api.bean.htzz.HtzzAdminZzda
;
import
cn.timer.api.bean.htzz.HtzzAdminZzda
;
import
cn.timer.api.bean.htzz.HtzzAssoHtgx
;
import
cn.timer.api.bean.htzz.HtzzAssoHtgx
;
import
cn.timer.api.bean.qyzx.QyzxEmpLogin
;
import
cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity
;
import
cn.timer.api.utils.ResultUtil
;
import
cn.timer.api.utils.aliyun.AliyunSMS
;
import
cn.timer.api.utils.aliyun.AliyunSMS
;
/**
/**
...
...
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