Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-platform-enterprise
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
base_platform_enterprise
gic-platform-enterprise
Commits
64879c5b
Commit
64879c5b
authored
Mar 26, 2020
by
zhiwj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug
parent
7ce60eed
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
19 deletions
+25
-19
BillingSmsRecordService.java
...a/com/gic/enterprise/service/BillingSmsRecordService.java
+1
-1
BillingSmsRecordServiceImpl.java
.../enterprise/service/impl/BillingSmsRecordServiceImpl.java
+4
-2
SmsRecordApiServiceImpl.java
...nterprise/service/outer/impl/SmsRecordApiServiceImpl.java
+20
-16
No files found.
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/BillingSmsRecordService.java
View file @
64879c5b
...
...
@@ -50,5 +50,5 @@ public interface BillingSmsRecordService {
void
updateCacheStatus
(
Integer
smsRecordId
);
void
updateDatabaseStatus
(
Integer
smsRecordId
);
void
updateDatabaseStatus
(
SmsRecordDTO
smsRecordDTO
);
}
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/impl/BillingSmsRecordServiceImpl.java
View file @
64879c5b
...
...
@@ -76,10 +76,12 @@ public class BillingSmsRecordServiceImpl implements BillingSmsRecordService{
}
@Override
public
void
updateDatabaseStatus
(
Integer
smsRecordId
)
{
public
void
updateDatabaseStatus
(
SmsRecordDTO
smsRecordDTO
)
{
TabBillingSmsRecord
smsRecord
=
new
TabBillingSmsRecord
();
smsRecord
.
setSmsRecordId
(
smsRecord
Id
);
smsRecord
.
setSmsRecordId
(
smsRecord
DTO
.
getSmsRecordId
()
);
smsRecord
.
setDatabaseStatus
(
1
);
smsRecord
.
setDeductionTime
(
new
Date
());
smsRecord
.
setAppName
(
smsRecordDTO
.
getAppName
());
tabBillingSmsRecordMapper
.
updateByPrimaryKeySelective
(
smsRecord
);
}
}
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/outer/impl/SmsRecordApiServiceImpl.java
View file @
64879c5b
...
...
@@ -98,18 +98,23 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
GicMQClient
client
=
GICMQClientUtil
.
getClientInstance
();
try
{
logger
.
info
(
"国内短信缓存扣费:{}"
,
arg
);
SmsRecordDTO
smsRecordDTO
=
JSON
.
parseObject
(
arg
,
SmsRecordDTO
.
class
);
smsRecordDTO
.
setCacheStatus
(
0
);
smsRecordDTO
.
setDatabaseStatus
(
0
);
Integer
smsRecordId
=
billingSmsRecordService
.
saveSmsRecord
(
smsRecordDTO
);
smsRecordDTO
.
setSmsRecordId
(
smsRecordId
);
// 判断是扣套餐包还是扣余额
RedissonClient
redisClient
=
RedisUtil
.
getRedisClient
();
RAtomicLong
smsCount
=
redisClient
.
getAtomicLong
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT
+
smsRecordDTO
.
getEnterpriseId
());
// 缓存扣费
int
deductType
=
deduct
(
smsCount
,
smsRecordDTO
.
getEnterpriseId
());
smsRecordDTO
.
setDeductType
(
deductType
);
smsRecordDTO
.
setCacheStatus
(
0
);
smsRecordDTO
.
setDatabaseStatus
(
0
);
// 缓存扣费 0套餐包 4余额
Integer
fee
=
accountStandardService
.
queryUnitFee
(
smsRecordDTO
.
getEnterpriseId
(),
AccountStandardEnum
.
SMS
.
getCode
());
int
deductType
=
deduct
(
smsCount
,
smsRecordDTO
.
getEnterpriseId
(),
fee
);
smsRecordDTO
.
setPayType
(
deductType
);
smsRecordDTO
.
setFee
((
double
)
fee
/
1000
);
Integer
smsRecordId
=
billingSmsRecordService
.
saveSmsRecord
(
smsRecordDTO
);
smsRecordDTO
.
setSmsRecordId
(
smsRecordId
);
// 队列
client
.
sendMessage
(
"smsDbMq"
,
JSON
.
toJSONString
(
smsRecordDTO
));
...
...
@@ -121,7 +126,7 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
return
ServiceResponse
.
success
();
}
private
int
deduct
(
RAtomicLong
rSmsCount
,
Integer
enterpriseId
)
{
private
int
deduct
(
RAtomicLong
rSmsCount
,
Integer
enterpriseId
,
Integer
fee
)
{
long
smsCount
=
rSmsCount
.
get
();
if
(
smsCount
>
0
)
{
// 套餐包计费
...
...
@@ -129,15 +134,14 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
if
(!
smsCountDeduct
)
{
// 设置失败 重新计算
// todo 这里不知道要不要加个延时之类的
return
deduct
(
rSmsCount
,
enterpriseId
);
return
deduct
(
rSmsCount
,
enterpriseId
,
fee
);
}
else
{
return
1
;
return
0
;
}
}
else
{
// 账户计费
Integer
fee
=
accountStandardService
.
queryUnitFee
(
enterpriseId
,
AccountStandardEnum
.
SMS
.
getCode
());
billingAccountService
.
deductAccountByCache
(
fee
.
doubleValue
()
/
1000
,
enterpriseId
);
return
2
;
return
4
;
}
}
...
...
@@ -155,17 +159,17 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
}
}
Integer
deductType
=
smsRecordDTO
.
get
Deduct
Type
();
if
(
deductType
==
1
)
{
Integer
deductType
=
smsRecordDTO
.
get
Pay
Type
();
if
(
deductType
==
0
)
{
// 短信套餐包扣费
Integer
enterpriseSmsPackageId
=
billingEnterpriseSmsPackageService
.
deduct
(
smsRecordDTO
.
getEnterpriseId
());
smsRecordDTO
.
setEnterpriseSmsPackageId
(
enterpriseSmsPackageId
);
}
else
if
(
deductType
==
2
)
{
}
else
if
(
deductType
==
4
)
{
// 余额扣费
Integer
unitFee
=
accountStandardService
.
queryUnitFee
(
smsRecordDTO
.
getEnterpriseId
(),
AccountStandardEnum
.
SMS
.
getCode
());
billingAccountService
.
deductAccountByDatabase
(
unitFee
.
doubleValue
()
/
1000
,
smsRecordDTO
.
getEnterpriseId
());
}
billingSmsRecordService
.
updateDatabaseStatus
(
smsRecordDTO
.
getSmsRecordId
()
);
billingSmsRecordService
.
updateDatabaseStatus
(
smsRecordDTO
);
return
ServiceResponse
.
success
();
}
}
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