Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
semi-server
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
inroi
semi-server
Commits
62fe9cb6
提交
62fe9cb6
authored
10月 17, 2022
作者:
inroi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整
上级
46c8f10c
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
611 行增加
和
77 行删除
+611
-77
DockingController.java
...rc/main/java/com/system/controller/DockingController.java
+9
-19
ThirdPartyLogMapper.java
...tem/src/main/java/com/system/dao/ThirdPartyLogMapper.java
+18
-0
ThirdPartyLogMapper.xml
...c/main/java/com/system/dao/mapper/ThirdPartyLogMapper.xml
+19
-0
SynchronizationJob.java
...c/main/java/com/system/quartz/job/SynchronizationJob.java
+8
-0
KingDeeLoginScheduler.java
...main/java/com/system/scheduler/KingDeeLoginScheduler.java
+0
-19
IDockingDistributionService.java
.../java/com/system/serivce/IDockingDistributionService.java
+13
-2
IDockingService.java
...tem/src/main/java/com/system/serivce/IDockingService.java
+20
-0
IDockingShoppingMallService.java
.../java/com/system/serivce/IDockingShoppingMallService.java
+7
-2
ISynchronizationService.java
...main/java/com/system/serivce/ISynchronizationService.java
+14
-0
DockingDistributionServiceImpl.java
...m/system/serivce/impl/DockingDistributionServiceImpl.java
+36
-20
DockingServiceImpl.java
...main/java/com/system/serivce/impl/DockingServiceImpl.java
+45
-0
DockingShoppingMallServiceImpl.java
...m/system/serivce/impl/DockingShoppingMallServiceImpl.java
+22
-15
SynchronizationServiceImpl.java
...a/com/system/serivce/impl/SynchronizationServiceImpl.java
+78
-0
DockingDistributionMemberCreateInVo.java
...transfer/docking/DockingDistributionMemberCreateInVo.java
+47
-0
ThirdPartyLogCreateInVo.java
...java/com/system/transfer/log/ThirdPartyLogCreateInVo.java
+65
-0
SnowFlakeIdUtil.java
...ystem/src/main/java/com/system/utils/SnowFlakeIdUtil.java
+177
-0
ThirdPartyLogUtil.java
...tem/src/main/java/com/system/utils/ThirdPartyLogUtil.java
+33
-0
没有找到文件。
semiconductor-system/src/main/java/com/system/controller/DockingController.java
浏览文件 @
62fe9cb6
package
com
.
system
.
controller
;
import
com.system.serivce.IDocking
Distribution
Service
;
import
com.system.
serivce.IDockingShoppingMallService
;
import
com.system.serivce.IDockingService
;
import
com.system.
transfer.docking.DockingDistributionMemberCreateInVo
;
import
com.system.transfer.response.RestResponse
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
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
;
...
...
@@ -17,24 +18,13 @@ import org.springframework.web.bind.annotation.RestController;
public
class
DockingController
{
@Autowired
private
IDocking
DistributionService
dockingDistribution
Service
;
private
IDocking
Service
docking
Service
;
@Autowired
private
IDockingShoppingMallService
dockingShoppingMallService
;
@ApiOperation
(
"对接分销会员创建"
)
@GetMapping
(
"/docking/distribution/member/create"
)
public
RestResponse
dockingDistributionMemberCreate
()
{
dockingDistributionService
.
dockingDistributionMemberCreate
();
return
RestResponse
.
success
();
}
@ApiOperation
(
"查询商城订单列表"
)
@GetMapping
(
"/shopping/mall/order/List"
)
public
RestResponse
shoppingMallOrderList
()
{
dockingShoppingMallService
.
shoppingMallOrderList
();
return
RestResponse
.
success
();
@ApiOperation
(
"分销会员创建"
)
@PostMapping
(
"/docking/distribution/member/create"
)
public
RestResponse
dockingDistributionMemberCreate
(
@RequestBody
DockingDistributionMemberCreateInVo
inVo
)
{
return
dockingService
.
dockingDistributionMemberCreate
(
inVo
);
}
...
...
semiconductor-system/src/main/java/com/system/dao/ThirdPartyLogMapper.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
dao
;
import
com.system.transfer.log.ThirdPartyLogCreateInVo
;
/**
* @author Inori
*/
public
interface
ThirdPartyLogMapper
{
/**
* 第三方日志创建
*
* @param inVo 条件
*/
void
thirdPartyLogCreate
(
ThirdPartyLogCreateInVo
inVo
);
}
semiconductor-system/src/main/java/com/system/dao/mapper/ThirdPartyLogMapper.xml
0 → 100644
浏览文件 @
62fe9cb6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.system.dao.ThirdPartyLogMapper"
>
<insert
id=
"thirdPartyLogCreate"
parameterType=
"com.system.transfer.log.ThirdPartyLogCreateInVo"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO tb_third_party_log (
`name`, code, queue_id, direction, request, flag, response, message
) VALUES (
#{name}, #{code}, #{queueId}, #{direction}, #{request}, #{flag}, #{response}, #{message}
)
</insert>
</mapper>
semiconductor-system/src/main/java/com/system/quartz/job/SynchronizationJob.java
浏览文件 @
62fe9cb6
package
com
.
system
.
quartz
.
job
;
import
com.system.serivce.ISynchronizationService
;
import
org.apache.commons.lang.time.DateFormatUtils
;
import
org.quartz.Job
;
import
org.quartz.JobExecutionContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
...
...
@@ -13,6 +15,10 @@ import java.util.Date;
@Component
public
class
SynchronizationJob
implements
Job
{
@Autowired
private
ISynchronizationService
synchronizationService
;
@Override
public
void
execute
(
JobExecutionContext
jobExecutionContext
)
{
System
.
out
.
println
(
"开启自动同步定时任务,开始时间: "
+
DateFormatUtils
.
format
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
...
...
@@ -22,6 +28,8 @@ public class SynchronizationJob implements Job {
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
synchronizationService
.
synchronization
();
}
...
...
semiconductor-system/src/main/java/com/system/scheduler/KingDeeLoginScheduler.java
deleted
100644 → 0
浏览文件 @
46c8f10c
package
com
.
system
.
scheduler
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
/**
* @author Inori
*/
@Configuration
@EnableScheduling
public
class
KingDeeLoginScheduler
{
@Scheduled
(
fixedRate
=
1000
*
60
*
10
)
public
void
configureTasks
()
{
}
}
semiconductor-system/src/main/java/com/system/serivce/IDockingDistributionService.java
浏览文件 @
62fe9cb6
...
...
@@ -2,6 +2,8 @@ package com.system.serivce;
import
com.system.transfer.response.RestResponse
;
import
java.util.Map
;
/**
* @author Inori
*/
...
...
@@ -10,18 +12,27 @@ public interface IDockingDistributionService {
/**
* 对接分销会员创建
*
* @param data 参数
* @param queueId 唯一标识
* @return 结果
*/
RestResponse
dockingDistributionMemberCreate
(
);
String
dockingDistributionMemberCreate
(
Map
<
String
,
Object
>
data
,
String
queueId
);
/**
* 对接订单交易
信息
* 对接订单交易
创建
*
* @return 结果
*/
RestResponse
dockingDistributionTransactionCreate
();
/**
* 对接订单提现创建
*
* @return 结果
*/
RestResponse
dockingDistributionWithdrawalCreate
();
/**
* 查询分销会员下级列表
*
* @return 结果
...
...
semiconductor-system/src/main/java/com/system/serivce/IDockingService.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
serivce
;
import
com.system.transfer.docking.DockingDistributionMemberCreateInVo
;
import
com.system.transfer.response.RestResponse
;
/**
* @author Inori
*/
public
interface
IDockingService
{
/**
* 对接分销会员创建
*
* @param inVo 条件
* @return 结果
*/
RestResponse
dockingDistributionMemberCreate
(
DockingDistributionMemberCreateInVo
inVo
);
}
semiconductor-system/src/main/java/com/system/serivce/IDockingShoppingMallService.java
浏览文件 @
62fe9cb6
...
...
@@ -7,8 +7,10 @@ public interface IDockingShoppingMallService {
/**
* 查询商城订单列表
*
* @return 列表
*/
void
shoppingMallOrderList
();
String
shoppingMallOrderList
();
/**
* 查询商城产品列表
...
...
@@ -17,8 +19,11 @@ public interface IDockingShoppingMallService {
/**
* 查询商城会员列表
*
* @param queueId 唯一标识
* @return 列表
*/
void
shoppingMallMemberList
(
);
String
shoppingMallMemberList
(
String
queueId
);
}
semiconductor-system/src/main/java/com/system/serivce/ISynchronizationService.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
serivce
;
/**
* @author Inori
*/
public
interface
ISynchronizationService
{
/**
* 同步对接
*/
void
synchronization
();
}
semiconductor-system/src/main/java/com/system/serivce/impl/DockingDistributionServiceImpl.java
浏览文件 @
62fe9cb6
...
...
@@ -5,6 +5,8 @@ import com.system.serivce.IDockingDistributionService;
import
com.system.transfer.response.RestResponse
;
import
com.system.utils.HttpClientUtil
;
import
com.system.utils.JsonUtil
;
import
com.system.utils.ThirdPartyLogUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -24,10 +26,13 @@ public class DockingDistributionServiceImpl implements IDockingDistributionServi
private
String
secret
;
@Autowired
private
ThirdPartyLogUtil
thirdPartyLogUtil
;
@PostConstruct
public
void
init
()
{
String
result
=
HttpClientUtil
.
sendGet
(
"http://192.168.
2.75
:8080/api/v1/getSign"
);
String
result
=
HttpClientUtil
.
sendGet
(
"http://192.168.
0.34
:8080/api/v1/getSign"
);
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
map
)
&&
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
this
.
secret
=
String
.
valueOf
(
map
.
get
(
"data"
));
...
...
@@ -35,27 +40,17 @@ public class DockingDistributionServiceImpl implements IDockingDistributionServi
}
@Override
public
RestResponse
dockingDistributionMemberCreate
(
)
{
public
String
dockingDistributionMemberCreate
(
Map
<
String
,
Object
>
data
,
String
queueId
)
{
try
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"secret"
,
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1MzExMTczMzk4MDcsInBheWxvYWQiOiJcInhpYW9qaWFuZ1wiIn0.rOY3JXrYpNMWwATmY7r3jm0Ec6SuhNPyrP2rGD43Isk"
);
data
.
put
(
"disUserId"
,
"5555"
);
data
.
put
(
"disUserName"
,
"54321"
);
data
.
put
(
"disPlatformId"
,
"dist_yiji"
);
data
.
put
(
"disParentId"
,
""
);
data
.
put
(
"disNote"
,
""
);
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.2.75:8080/api/v1/memberAdd"
,
JsonUtil
.
toString
(
data
));
data
.
put
(
"secret"
,
secret
);
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.0.34:8080/api/v1/memberAdd"
,
JsonUtil
.
toString
(
data
));
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(
CollectionUtils
.
isEmpty
(
map
)
&&
!
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
return
RestResponse
.
fail
(
"新增会员失败"
);
}
return
RestResponse
.
success
();
thirdPartyLogUtil
.
thirdPartyLogCreate
(
"分销会员创建"
,
"0001"
,
queueId
,
"平台->分销"
,
JsonUtil
.
toString
(
data
),
result
,
1
);
return
result
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
RestResponse
.
fail
(
"新增会员失败"
)
;
return
""
;
}
}
@Override
...
...
@@ -67,10 +62,10 @@ public class DockingDistributionServiceImpl implements IDockingDistributionServi
data
.
put
(
"orderId"
,
"5555"
);
data
.
put
(
"disAmount"
,
"12"
);
data
.
put
(
"disNote"
,
""
);
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.
2.75
:8080/api/v1/trade"
,
JsonUtil
.
toString
(
data
));
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.
0.34
:8080/api/v1/trade"
,
JsonUtil
.
toString
(
data
));
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(
CollectionUtils
.
isEmpty
(
map
)
&&
!
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
if
(
CollectionUtils
.
isEmpty
(
map
)
||
!
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
return
RestResponse
.
fail
(
"新增交易失败"
);
}
return
RestResponse
.
success
();
...
...
@@ -81,12 +76,33 @@ public class DockingDistributionServiceImpl implements IDockingDistributionServi
}
@Override
public
RestResponse
dockingDistributionWithdrawalCreate
()
{
try
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"secret"
,
secret
);
data
.
put
(
"userId"
,
"admin"
);
data
.
put
(
"amount"
,
"1"
);
data
.
put
(
"accountType"
,
"2"
);
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.0.34:8080/api/v1/withdraw"
,
JsonUtil
.
toString
(
data
));
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(
CollectionUtils
.
isEmpty
(
map
)
||
!
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
return
RestResponse
.
fail
(
"新增提现失败"
);
}
return
RestResponse
.
success
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
RestResponse
.
fail
(
"新增提现失败"
);
}
}
@Override
public
RestResponse
dockingDistributionMemberSubordinateList
()
{
try
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"secret"
,
secret
);
data
.
put
(
"memberId"
,
"1111"
);
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.
2.75
:8080/api/v1/subordinate"
,
JsonUtil
.
toString
(
data
));
String
result
=
HttpClientUtil
.
sendPost
(
"http://192.168.
0.34
:8080/api/v1/subordinate"
,
JsonUtil
.
toString
(
data
));
List
<
Map
<
String
,
Object
>>
recordsList
=
new
ArrayList
<>();
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
...
...
semiconductor-system/src/main/java/com/system/serivce/impl/DockingServiceImpl.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
serivce
.
impl
;
import
com.system.constants.Constants
;
import
com.system.serivce.IDockingDistributionService
;
import
com.system.serivce.IDockingService
;
import
com.system.transfer.docking.DockingDistributionMemberCreateInVo
;
import
com.system.transfer.response.RestResponse
;
import
com.system.utils.JsonUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author Inori
*/
@Service
public
class
DockingServiceImpl
implements
IDockingService
{
@Autowired
private
IDockingDistributionService
dockingDistributionService
;
@Override
public
RestResponse
dockingDistributionMemberCreate
(
DockingDistributionMemberCreateInVo
inVo
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"disUserId"
,
inVo
.
getMemberId
());
data
.
put
(
"disUserName"
,
inVo
.
getMemeberName
());
data
.
put
(
"disParentId"
,
inVo
.
getReferrerId
());
data
.
put
(
"disPlatformId"
,
inVo
.
getPlatformId
());
data
.
put
(
"disNote"
,
inVo
.
getRemark
());
String
result
=
dockingDistributionService
.
dockingDistributionMemberCreate
(
data
,
inVo
.
getQueueId
());
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(
CollectionUtils
.
isEmpty
(
map
)
||
!
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
return
RestResponse
.
fail
(
"新增会员失败"
);
}
return
RestResponse
.
success
();
}
}
semiconductor-system/src/main/java/com/system/serivce/impl/DockingShoppingMallServiceImpl.java
浏览文件 @
62fe9cb6
package
com
.
system
.
serivce
.
impl
;
import
com.system.constants.Constants
;
import
com.system.serivce.IDockingShoppingMallService
;
import
com.system.utils.HttpClientUtil
;
import
com.system.utils.JsonUtil
;
import
com.system.utils.ThirdPartyLogUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -16,8 +18,12 @@ import java.util.Map;
@Service
public
class
DockingShoppingMallServiceImpl
implements
IDockingShoppingMallService
{
@Autowired
private
ThirdPartyLogUtil
thirdPartyLogUtil
;
@Override
public
void
shoppingMallOrderList
()
{
public
String
shoppingMallOrderList
()
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
2
);
data
.
put
(
"startTime"
,
"2019-01-01+00:00:00"
);
data
.
put
(
"endTime"
,
"2022-10-12+23:59:59"
);
...
...
@@ -29,6 +35,8 @@ public class DockingShoppingMallServiceImpl implements IDockingShoppingMallServi
String
result
=
HttpClientUtil
.
sendGet
(
"http://192.168.2.212:81/apis/order/order/page?current=1&size=100"
+
param
.
toString
());
System
.
out
.
println
(
result
);
return
result
;
}
@Override
...
...
@@ -47,29 +55,28 @@ public class DockingShoppingMallServiceImpl implements IDockingShoppingMallServi
}
@Override
public
void
shoppingMallMemberList
(
)
{
public
String
shoppingMallMemberList
(
String
queueId
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
2
);
data
.
put
(
"startTime"
,
"2019-01-01+00:00:00"
);
data
.
put
(
"endTime"
,
"2022-10-12+23:59:59"
);
StringBuilder
param
=
new
StringBuilder
();
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
data
.
entrySet
())
{
param
.
append
(
"&"
).
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
entry
.
getValue
());
if
(
param
.
length
()
>
0
)
{
param
.
append
(
"&"
).
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
entry
.
getValue
());
}
else
{
param
.
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
entry
.
getValue
());
}
}
String
result
=
HttpClientUtil
.
sendGet
(
"http
://192.168.2.212:81/apis/admin/user/page?current=1&size=100
"
+
param
.
toString
());
String
result
=
HttpClientUtil
.
sendGet
(
"http
s://console-mock.apipost.cn/app/mock/project/a0605054-5c08-47a3-e61e-76782a1bc5aa/member/list?
"
+
param
.
toString
());
System
.
out
.
println
(
result
)
;
int
flag
=
0
;
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
map
)
&&
"true"
.
equals
(
String
.
valueOf
(
map
.
get
(
"success"
))))
{
List
<
Object
>
objectList
=
JsonUtil
.
toList
(
JsonUtil
.
toString
(
map
.
get
(
"records"
)),
Object
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
objectList
))
{
for
(
Object
o
:
objectList
)
{
Map
<
String
,
Object
>
temp
=
JsonUtil
.
toMap
(
JsonUtil
.
toString
(
o
),
String
.
class
,
Object
.
class
);
temp
.
get
(
"userId"
);
temp
.
get
(
"nickName"
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
map
)
&&
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
flag
=
1
;
}
thirdPartyLogUtil
.
thirdPartyLogCreate
(
"商城会员查询"
,
"0000"
,
queueId
,
"商城->平台"
,
JsonUtil
.
toString
(
data
),
result
,
flag
);
return
result
;
}
...
...
semiconductor-system/src/main/java/com/system/serivce/impl/SynchronizationServiceImpl.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
serivce
.
impl
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
com.system.constants.Constants
;
import
com.system.serivce.IDockingDistributionService
;
import
com.system.serivce.IDockingShoppingMallService
;
import
com.system.serivce.ISynchronizationService
;
import
com.system.utils.JsonUtil
;
import
com.system.utils.SnowFlakeIdUtil
;
import
com.system.utils.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
/**
* @author Inori
*/
@Service
public
class
SynchronizationServiceImpl
implements
ISynchronizationService
{
private
ExecutorService
threadPool
=
new
ThreadPoolExecutor
(
10
,
10
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<
Runnable
>(
1024
),
new
ThreadFactoryBuilder
().
setNameFormat
(
"syn-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
AbortPolicy
());
@Autowired
private
IDockingShoppingMallService
dockingShoppingMallService
;
@Autowired
private
IDockingDistributionService
dockingDistributionService
;
@Override
public
void
synchronization
()
{
threadPool
.
execute
(()
->
{
String
queueId
=
SnowFlakeIdUtil
.
generateId
().
toString
();
Map
<
String
,
Object
>
request
=
new
HashMap
<>(
3
);
String
result
=
dockingShoppingMallService
.
shoppingMallMemberList
(
queueId
);
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
result
,
String
.
class
,
Object
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
map
)
&&
Constants
.
SUCCESS_CODE
.
equals
(
String
.
valueOf
(
map
.
get
(
Constants
.
SUCCESS_NAME
))))
{
Map
<
String
,
Object
>
data
=
JsonUtil
.
toMap
(
JsonUtil
.
toString
(
map
.
get
(
"data"
)),
String
.
class
,
Object
.
class
);
List
<
Object
>
objectList
=
JsonUtil
.
toList
(
JsonUtil
.
toString
(
data
.
get
(
"records"
)),
Object
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
objectList
))
{
for
(
Object
o
:
objectList
)
{
Map
<
String
,
Object
>
temp
=
JsonUtil
.
toMap
(
JsonUtil
.
toString
(
o
),
String
.
class
,
Object
.
class
);
request
.
put
(
"disUserId"
,
temp
.
get
(
"userId"
).
toString
());
request
.
put
(
"disUserName"
,
temp
.
get
(
"nickName"
));
if
(
temp
.
containsKey
(
"referrerId"
)
&&
StringUtil
.
isNotBlank
(
String
.
valueOf
(
temp
.
get
(
"referrerId"
))))
{
request
.
put
(
"disParentId"
,
temp
.
get
(
"referrerId"
));
request
.
put
(
"disPlatformId"
,
""
);
}
else
{
request
.
put
(
"disParentId"
,
""
);
request
.
put
(
"disPlatformId"
,
"test"
);
}
request
.
put
(
"disNote"
,
""
);
}
}
}
if
(!
CollectionUtils
.
isEmpty
(
request
))
{
String
temp
=
dockingDistributionService
.
dockingDistributionMemberCreate
(
request
,
queueId
);
}
});
}
}
semiconductor-system/src/main/java/com/system/transfer/docking/DockingDistributionMemberCreateInVo.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
transfer
.
docking
;
import
lombok.Data
;
/**
* @author Inori
*/
@Data
public
class
DockingDistributionMemberCreateInVo
{
/**
* 唯一标识
*/
private
String
queueId
;
/**
* 会员标识
*/
private
String
memberId
;
/**
* 会员名称
*/
private
String
memeberName
;
/**
* 推荐人标识
*/
private
String
referrerId
;
/**
* 平台标识
*/
private
String
platformId
;
/**
* 备注
*/
private
String
remark
;
}
semiconductor-system/src/main/java/com/system/transfer/log/ThirdPartyLogCreateInVo.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
transfer
.
log
;
import
lombok.Data
;
/**
* @author Inori
*/
@Data
public
class
ThirdPartyLogCreateInVo
{
/**
* ID
*/
private
Integer
id
;
/**
* 业务名称
*/
private
String
name
;
/**
* 业务标识
*/
private
String
code
;
/**
* 唯一标识
*/
private
String
queueId
;
/**
* 请求方向
*/
private
String
direction
;
/**
* 请求参数
*/
private
String
request
;
/**
* 是否成功(0-失败,1-成功)
*/
private
Integer
flag
;
/**
* 响应信息
*/
private
String
response
;
/**
* 错误原因
*/
private
String
message
;
}
semiconductor-system/src/main/java/com/system/utils/SnowFlakeIdUtil.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
utils
;
import
org.apache.commons.lang3.RandomUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.SystemUtils
;
import
java.net.Inet4Address
;
import
java.net.UnknownHostException
;
/**
* @author Inori
*/
public
class
SnowFlakeIdUtil
{
/**
* 机器id所占的位数
*/
private
final
long
workerIdBits
=
5L
;
/**
* 数据标识id所占的位数
*/
private
final
long
dataCenterIdBits
=
5L
;
/**
* 工作机器ID(0~31)
*/
private
final
long
workerId
;
/**
* 数据中心ID(0~31)
*/
private
final
long
dataCenterId
;
/**
* 毫秒内序列(0~4095)
*/
private
long
sequence
=
0L
;
/**
* 上次生成ID的时间截
*/
private
long
lastTimestamp
=
-
1L
;
private
static
final
SnowFlakeIdUtil
ID_WORKER
;
static
{
ID_WORKER
=
new
SnowFlakeIdUtil
(
getWorkId
(),
getDataCenterId
());
}
//==============================Constructors=====================================
/**
* 构造函数
*
* @param workerId 工作ID (0~31)
* @param dataCenterId 数据中心ID (0~31)
*/
public
SnowFlakeIdUtil
(
long
workerId
,
long
dataCenterId
)
{
/* 支持的最大机器id,结果是31 (这个移位算法可以很快地计算出几位二进制数所能表示的最大十进制数) */
long
maxWorkerId
=
~(-
1L
<<
workerIdBits
);
if
(
workerId
>
maxWorkerId
||
workerId
<
0
)
{
throw
new
IllegalArgumentException
(
String
.
format
(
"workerId can''t be greater than %d or less than 0"
,
maxWorkerId
));
}
/* 支持的最大数据标识id,结果是31 */
long
maxDataCenterId
=
~(-
1L
<<
dataCenterIdBits
);
if
(
dataCenterId
>
maxDataCenterId
||
dataCenterId
<
0
)
{
throw
new
IllegalArgumentException
(
String
.
format
(
"dataCenterId can''t be greater than %d or less than 0"
,
maxDataCenterId
));
}
this
.
workerId
=
workerId
;
this
.
dataCenterId
=
dataCenterId
;
}
// ==============================Methods==========================================
/**
* 获得下一个ID (该方法是线程安全的)
*
* @return SnowflakeId
*/
public
synchronized
long
nextId
()
{
long
timestamp
=
timeGen
();
//如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
if
(
timestamp
<
lastTimestamp
)
{
throw
new
RuntimeException
(
String
.
format
(
"Clock moved backwards. Refusing to generate id for %d milliseconds"
,
lastTimestamp
-
timestamp
));
}
//如果是同一时间生成的,则进行毫秒内序列
/* 序列在id中占的位数 */
long
sequenceBits
=
12L
;
if
(
lastTimestamp
==
timestamp
)
{
/* 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */
long
sequenceMask
=
~(-
1L
<<
sequenceBits
);
sequence
=
(
sequence
+
1
)
&
sequenceMask
;
//毫秒内序列溢出
if
(
sequence
==
0
)
{
//阻塞到下一个毫秒,获得新的时间戳
timestamp
=
tilNextMillis
(
lastTimestamp
);
}
}
//时间戳改变,毫秒内序列重置
else
{
sequence
=
0L
;
}
//上次生成ID的时间截
lastTimestamp
=
timestamp
;
//移位并通过或运算拼到一起组成64位的ID
/* 开始时间截 (2015-01-01) */
long
twepoch
=
1489111610226L
;
/* 机器ID向左移12位 */
/* 数据标识id向左移17位(12+5) */
long
dataCenterIdShift
=
sequenceBits
+
workerIdBits
;
/* 时间截向左移22位(5+5+12) */
long
timestampLeftShift
=
sequenceBits
+
workerIdBits
+
dataCenterIdBits
;
return
((
timestamp
-
twepoch
)
<<
timestampLeftShift
)
|
(
dataCenterId
<<
dataCenterIdShift
)
|
(
workerId
<<
sequenceBits
)
|
sequence
;
}
/**
* 阻塞到下一个毫秒,直到获得新的时间戳
*
* @param lastTimestamp 上次生成ID的时间截
* @return 当前时间戳
*/
protected
long
tilNextMillis
(
long
lastTimestamp
)
{
long
timestamp
=
timeGen
();
while
(
timestamp
<=
lastTimestamp
)
{
timestamp
=
timeGen
();
}
return
timestamp
;
}
/**
* 返回以毫秒为单位的当前时间
*
* @return 当前时间(毫秒)
*/
protected
long
timeGen
()
{
return
System
.
currentTimeMillis
();
}
private
static
Long
getWorkId
()
{
try
{
String
hostAddress
=
Inet4Address
.
getLocalHost
().
getHostAddress
();
int
[]
ints
=
StringUtils
.
toCodePoints
(
hostAddress
);
int
sums
=
0
;
for
(
int
b
:
ints
)
{
sums
+=
b
;
}
return
(
long
)
(
sums
%
32
);
}
catch
(
UnknownHostException
e
)
{
// 如果获取失败,则使用随机数备用
return
RandomUtils
.
nextLong
(
0
,
31
);
}
}
private
static
Long
getDataCenterId
()
{
int
[]
intList
=
StringUtil
.
toCodePoints
(
SystemUtils
.
getHostName
());
int
sums
=
0
;
for
(
int
i
:
intList
)
{
sums
+=
i
;
}
return
(
long
)
(
sums
%
32
);
}
public
static
Long
generateId
()
{
return
ID_WORKER
.
nextId
();
}
}
semiconductor-system/src/main/java/com/system/utils/ThirdPartyLogUtil.java
0 → 100644
浏览文件 @
62fe9cb6
package
com
.
system
.
utils
;
import
com.system.dao.ThirdPartyLogMapper
;
import
com.system.transfer.log.ThirdPartyLogCreateInVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @author Inori
*/
@Component
public
class
ThirdPartyLogUtil
{
@Autowired
private
ThirdPartyLogMapper
thirdPartyLogMapper
;
public
Integer
thirdPartyLogCreate
(
String
name
,
String
docType
,
String
queueId
,
String
direction
,
String
request
,
String
response
,
Integer
flag
)
{
ThirdPartyLogCreateInVo
inVo
=
new
ThirdPartyLogCreateInVo
();
inVo
.
setName
(
name
);
inVo
.
setCode
(
docType
);
inVo
.
setQueueId
(
queueId
);
inVo
.
setDirection
(
direction
);
inVo
.
setRequest
(
request
);
inVo
.
setResponse
(
response
);
inVo
.
setFlag
(
flag
);
thirdPartyLogMapper
.
thirdPartyLogCreate
(
inVo
);
return
inVo
.
getId
();
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论