Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
head_group
xyqb-user2
Commits
54021931
Commit
54021931
authored
May 19, 2023
by
武飞达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
不同模板签署不同合同
parent
67ce7215
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
157 additions
and
0 deletions
+157
-0
AppController.java
...antgroup/xyqb/controller/internal/user/AppController.java
+2
-0
BlackHoleRegisteredEventListener.java
...antgroup/xyqb/event/BlackHoleRegisteredEventListener.java
+7
-0
ContractRecordReq.java
...main/java/cn/quantgroup/xyqb/model/ContractRecordReq.java
+17
-0
ContractsRes.java
src/main/java/cn/quantgroup/xyqb/model/ContractsRes.java
+59
-0
PdfRemoteService.java
...main/java/cn/quantgroup/xyqb/remote/PdfRemoteService.java
+16
-0
IUserService.java
...in/java/cn/quantgroup/xyqb/service/user/IUserService.java
+5
-0
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+51
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/internal/user/AppController.java
View file @
54021931
...
...
@@ -344,6 +344,8 @@ public class AppController implements IBaseController {
oauthLoginInfoService
.
addLoginInfo
(
user
,
tenantId
);
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
null
,
""
,
tenantId
);
AuthBean
bean
=
sessionService
.
createSession
(
user
,
loginProperties
,
LoginType
.
SUPERLOGINTWO
.
ordinal
());
// 不同渠道用户补签不同模板合同
userService
.
channelUserSignContract
(
user
,
true
);
log
.
info
(
"第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}"
,
registerFrom
,
phoneNo
,
appChannel
);
return
JsonResult
.
buildSuccessResult
(
"登录成功"
,
bean
);
}
...
...
src/main/java/cn/quantgroup/xyqb/event/BlackHoleRegisteredEventListener.java
View file @
54021931
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -31,6 +33,9 @@ public class BlackHoleRegisteredEventListener implements ApplicationListener<Reg
@Value
(
"#{'${register.templateids}'.split(',')}"
)
private
List
<
Long
>
templateIds
;
@Resource
private
IUserService
userService
;
@Override
public
void
onApplicationEvent
(
RegisterEvent
event
)
{
...
...
@@ -55,5 +60,7 @@ public class BlackHoleRegisteredEventListener implements ApplicationListener<Reg
registeredNotifyBlackHoleRabbitTemplate
.
convertAndSend
(
exchange
,
routingKey
,
array
.
toString
());
});
// 不同渠道签署不同的合同模板
userService
.
channelUserSignContract
(
user
,
false
);
}
}
src/main/java/cn/quantgroup/xyqb/model/ContractRecordReq.java
0 → 100644
View file @
54021931
package
cn
.
quantgroup
.
xyqb
.
model
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
ContractRecordReq
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
private
Long
templateId
;
/**
* 签约用户ID - 必传
*/
private
Long
userId
;
}
src/main/java/cn/quantgroup/xyqb/model/ContractsRes.java
0 → 100644
View file @
54021931
package
cn
.
quantgroup
.
xyqb
.
model
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ContractsRes
{
private
Long
id
;
private
Long
userId
;
private
Integer
businessType
;
/**
* 存放合同模板ID
*/
private
Long
templateId
;
/**
* 存放交易ID
*/
private
String
sourceId
;
/**
* 旧有订单ID
*/
private
Long
orderId
;
/**
* 旧有订单ID(loanId)
*/
private
Long
loanApplicationHistoryId
;
/**
* 身份证号
*/
private
String
idNo
;
/** 合同(模板)类别 */
private
Integer
contractsType
;
/** 上上签返回编号 */
private
String
ssqContractNo
;
/** 合同编号 */
private
String
contractNo
;
/** 合同存储路径(FastDFS) */
private
String
contractPdfUrl
;
/** 合同 版本 */
private
Integer
version
;
private
Date
createdAt
;
private
Date
updatedAt
;
}
src/main/java/cn/quantgroup/xyqb/remote/PdfRemoteService.java
0 → 100644
View file @
54021931
package
cn
.
quantgroup
.
xyqb
.
remote
;
import
cn.quantgroup.xyqb.model.ContractRecordReq
;
import
cn.quantgroup.xyqb.model.ContractsRes
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
@FeignClient
(
name
=
"pdfApi"
,
url
=
"${pdf.quantgroup.cn.https}"
)
public
interface
PdfRemoteService
{
@PostMapping
(
"/contract/record"
)
JsonResult
<
ContractsRes
>
getContractRecord
(
@RequestBody
ContractRecordReq
param
);
}
src/main/java/cn/quantgroup/xyqb/service/user/IUserService.java
View file @
54021931
...
...
@@ -117,4 +117,9 @@ public interface IUserService {
void
deregister
(
Long
userId
);
User
submitModifyPhone
(
String
prevPhoneNo
,
String
curPhoneNo
);
/**
* 渠道用户签署合同
*/
void
channelUserSignContract
(
User
user
,
boolean
needCheck
);
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
54021931
...
...
@@ -13,6 +13,7 @@ import cn.quantgroup.xyqb.exception.DataException;
import
cn.quantgroup.xyqb.exception.UserNotExistException
;
import
cn.quantgroup.xyqb.exception.UserRegisterLoginException
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.remote.PdfRemoteService
;
import
cn.quantgroup.xyqb.repository.*
;
import
cn.quantgroup.xyqb.service.captcha.IGeetestLogService
;
import
cn.quantgroup.xyqb.service.register.IUserDeregisterService
;
...
...
@@ -22,12 +23,16 @@ import cn.quantgroup.xyqb.service.user.*;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.util.*
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.sensorsdata.analytics.javasdk.ISensorsAnalytics
;
import
com.sensorsdata.analytics.javasdk.bean.EventRecord
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cache.annotation.CacheEvict
;
...
...
@@ -122,6 +127,20 @@ public class UserServiceImpl implements IUserService, IBaseController {
@Value
(
"${sc.is.open:false}"
)
private
Boolean
scIsOpen
;
@Value
(
"${channel.register.template:null}"
)
private
String
channelTemplate
;
@Resource
private
RabbitTemplate
registeredNotifyBlackHoleRabbitTemplate
;
@Resource
private
PdfRemoteService
pdfRemoteService
;
@Value
(
"${registered.notify.black.hole.rabbitmq.connection.exchange}"
)
private
String
exchange
;
@Value
(
"${registered.notify.black.hole.rabbitmq.connection.routingKey}"
)
private
String
routingKey
;
@Override
// @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
public
User
findByPhoneInDb
(
String
phone
)
{
...
...
@@ -654,4 +673,36 @@ public class UserServiceImpl implements IUserService, IBaseController {
applicationEventPublisher
.
publishEvent
(
phoneNoUpdateEvent
);
return
oldPhoneUser
;
}
/**
* 不同渠道用户签署不同合同模板
* @param user
* @param needCheck
*/
public
void
channelUserSignContract
(
User
user
,
boolean
needCheck
)
{
if
(
Objects
.
isNull
(
user
)
||
StringUtils
.
isBlank
(
channelTemplate
))
{
return
;
}
Map
<
String
,
Long
>
channelMap
=
JSON
.
parseObject
(
channelTemplate
,
new
TypeReference
<
HashMap
<
String
,
Long
>>()
{});
Long
templateId
=
channelMap
.
get
(
String
.
valueOf
(
user
.
getRegisteredFrom
()));
if
(
Objects
.
isNull
(
templateId
))
{
return
;
}
if
(
needCheck
)
{
ContractRecordReq
contractRecordReq
=
new
ContractRecordReq
();
contractRecordReq
.
setTemplateId
(
templateId
);
contractRecordReq
.
setUserId
(
user
.
getId
());
JsonResult
<
ContractsRes
>
result
=
pdfRemoteService
.
getContractRecord
(
contractRecordReq
);
ContractsRes
data
=
result
.
getData
();
if
(
Objects
.
nonNull
(
data
))
{
return
;
}
}
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"userId"
,
user
.
getId
());
json
.
put
(
"templateId"
,
templateId
);
JSONArray
array
=
new
JSONArray
();
array
.
add
(
json
);
registeredNotifyBlackHoleRabbitTemplate
.
convertAndSend
(
exchange
,
routingKey
,
array
.
toString
());
}
}
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