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
974e16e5
Commit
974e16e5
authored
Mar 27, 2020
by
guojuxing
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/developer' into developer
parents
d6b8b717
87378aba
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
78 additions
and
19 deletions
+78
-19
AccountStandardEnum.java
...java/com/gic/enterprise/constant/AccountStandardEnum.java
+2
-1
Constants.java
.../src/main/java/com/gic/enterprise/constant/Constants.java
+2
-0
InternationalSmsRecordApiService.java
.../enterprise/service/InternationalSmsRecordApiService.java
+11
-0
BillingEnterpriseSmsPackageService.java
...nterprise/service/BillingEnterpriseSmsPackageService.java
+3
-1
BillingEnterpriseSmsPackageServiceImpl.java
.../service/impl/BillingEnterpriseSmsPackageServiceImpl.java
+20
-2
InternationalSmsRecordApiServiceImpl.java
...vice/outer/impl/InternationalSmsRecordApiServiceImpl.java
+27
-4
SmsRecordApiServiceImpl.java
...nterprise/service/outer/impl/SmsRecordApiServiceImpl.java
+2
-6
TabBillingSmsRecordMapper.xml
...e/src/main/resources/mapper/TabBillingSmsRecordMapper.xml
+3
-5
BillingRecordController.java
...ic/enterprise/web/controller/BillingRecordController.java
+8
-0
No files found.
gic-platform-enterprise-api/src/main/java/com/gic/enterprise/constant/AccountStandardEnum.java
View file @
974e16e5
...
...
@@ -9,7 +9,8 @@ package com.gic.enterprise.constant;
public
enum
AccountStandardEnum
{
SMS
(
2
,
"短信"
),
VOICE
(
3
,
"语音"
),
CALL
(
4
,
"双向呼叫"
)
CALL
(
4
,
"双向呼叫"
),
INTERNATIONAL_SMS
(
4
,
"海外短信"
)
;
private
Integer
code
;
private
String
msg
;
...
...
gic-platform-enterprise-api/src/main/java/com/gic/enterprise/constant/Constants.java
View file @
974e16e5
...
...
@@ -56,6 +56,8 @@ public interface Constants {
*/
String
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT
=
"enterprise_billing_sms_package_count"
;
String
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT_LOCK
=
"enterprise_billing_sms_package_count_lock"
;
/**
* 审批的url
*/
...
...
gic-platform-enterprise-api/src/main/java/com/gic/enterprise/service/InternationalSmsRecordApiService.java
View file @
974e16e5
...
...
@@ -12,6 +12,17 @@ import com.gic.enterprise.dto.InternationalSmsRecordDTO;
public
interface
InternationalSmsRecordApiService
{
/**
* @Title: verifySendInternationalSms
* @Description: 发送海外短信
* @author zhiwj
* @param enterpriseId
* @param sendCount
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse
<
Void
>
verifySendInternationalSms
(
Integer
enterpriseId
,
Integer
sendCount
);
/**
* 保存明细
* @Title: saveInternationalSmsRecord
* @Description:
...
...
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/BillingEnterpriseSmsPackageService.java
View file @
974e16e5
...
...
@@ -2,6 +2,7 @@ package com.gic.enterprise.service;
import
com.gic.enterprise.dto.BillingEnterpriseSmsPackageDTO
;
import
com.gic.enterprise.entity.TabBillingEnterpriseSmsPackage
;
import
org.redisson.api.RAtomicLong
;
import
java.util.List
;
/**
...
...
@@ -41,6 +42,7 @@ public interface BillingEnterpriseSmsPackageService {
/**
* 查询该商户套餐包里全部拥有的可用短信条数
* @return
*/
Integer
getTotalSmsInPackageByEnterpriseId
(
Integer
enterpriseId
);
RAtomicLong
getTotalSmsInPackageByEnterpriseId
(
Integer
enterpriseId
);
}
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/impl/BillingEnterpriseSmsPackageServiceImpl.java
View file @
974e16e5
package
com
.
gic
.
enterprise
.
service
.
impl
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.enterprise.constant.Constants
;
import
com.gic.enterprise.dao.mapper.TabBillingEnterpriseSmsPackageMapper
;
import
com.gic.enterprise.dto.BillingEnterpriseSmsPackageDTO
;
import
com.gic.enterprise.entity.TabBillingEnterpriseSmsPackage
;
import
com.gic.enterprise.service.BillingEnterpriseSmsPackageService
;
import
com.gic.redis.data.util.RedisUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.redisson.api.RAtomicLong
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -15,6 +21,8 @@ import java.util.List;
@Service
(
"billingEnterpriseSmsPackageService"
)
public
class
BillingEnterpriseSmsPackageServiceImpl
implements
BillingEnterpriseSmsPackageService
{
private
Logger
logger
=
LogManager
.
getLogger
(
BillingEnterpriseSmsPackageServiceImpl
.
class
);
@Autowired
private
TabBillingEnterpriseSmsPackageMapper
tabBillingEnterpriseSmsPackageMapper
;
...
...
@@ -61,7 +69,17 @@ public class BillingEnterpriseSmsPackageServiceImpl implements BillingEnterprise
}
@Override
public
Integer
getTotalSmsInPackageByEnterpriseId
(
Integer
enterpriseId
)
{
return
tabBillingEnterpriseSmsPackageMapper
.
getTotalSmsInPackageByEnterpriseId
(
enterpriseId
);
public
RAtomicLong
getTotalSmsInPackageByEnterpriseId
(
Integer
enterpriseId
)
{
RedissonClient
redisClient
=
RedisUtil
.
getRedisClient
();
RAtomicLong
smsCountR
=
redisClient
.
getAtomicLong
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT
+
enterpriseId
);
long
smsPackageCount
=
smsCountR
.
get
();
if
(
smsPackageCount
==
0
)
{
RedisUtil
.
lock
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT_LOCK
+
enterpriseId
,
30L
);
logger
.
info
(
"redis中没有套餐包 查询数据库:{}"
,
enterpriseId
);
Integer
totalSms
=
tabBillingEnterpriseSmsPackageMapper
.
getTotalSmsInPackageByEnterpriseId
(
enterpriseId
);
smsCountR
.
set
(
totalSms
);
RedisUtil
.
unlock
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT_LOCK
+
enterpriseId
);
}
return
smsCountR
;
}
}
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/outer/impl/InternationalSmsRecordApiServiceImpl.java
View file @
974e16e5
...
...
@@ -3,13 +3,14 @@ package com.gic.enterprise.service.outer.impl;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.enterprise.constant.AccountStandardEnum
;
import
com.gic.enterprise.constant.Constants
;
import
com.gic.enterprise.dto.DictDTO
;
import
com.gic.enterprise.dto.InternationalSmsRecordDTO
;
import
com.gic.enterprise.
service.BillingAccountService
;
import
com.gic.enterprise.
service.BillingInternationalSmsRecordServic
e
;
import
com.gic.enterprise.
service.DictApiServic
e
;
import
com.gic.enterprise.service.
InternationalSmsRecordApiService
;
import
com.gic.enterprise.
entity.TabBillingAccount
;
import
com.gic.enterprise.
error.ErrorCod
e
;
import
com.gic.enterprise.
response.EnterpriseServiceRespons
e
;
import
com.gic.enterprise.service.
*
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.store.utils.valid.ValidUtil
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -36,6 +37,28 @@ public class InternationalSmsRecordApiServiceImpl implements InternationalSmsRec
private
BillingInternationalSmsRecordService
billingInternationalSmsRecordService
;
@Autowired
private
DictApiService
dictApiService
;
@Autowired
private
AccountStandardService
accountStandardService
;
@Override
public
ServiceResponse
<
Void
>
verifySendInternationalSms
(
Integer
enterpriseId
,
Integer
sendCount
)
{
if
(
enterpriseId
==
null
||
sendCount
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
);
}
TabBillingAccount
billingAccount
=
billingAccountService
.
getByEnterpriseId
(
enterpriseId
);
Double
accountBalance
=
billingAccount
.
getAccountBalance
();
Integer
unitFee
=
accountStandardService
.
queryUnitFee
(
enterpriseId
,
AccountStandardEnum
.
SMS
.
getCode
());
double
needFee
=
(
double
)
(
sendCount
*
unitFee
)
/
1000
;
if
(
needFee
-
accountBalance
>
5000
d
)
{
logger
.
info
(
"enterpriseId:{}, 余额:{}, 发送条数:{}, 不能发送"
,
enterpriseId
,
accountBalance
,
sendCount
);
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
OPERATION_FAILED
.
getCode
(),
"余额不足, 不能发送"
);
}
else
{
logger
.
info
(
"enterpriseId:{}, 余额:{}, 发送条数:{}, 可以发送"
,
enterpriseId
,
accountBalance
,
sendCount
);
return
EnterpriseServiceResponse
.
success
();
}
}
@Override
public
ServiceResponse
<
Void
>
saveInternationalSmsRecord
(
InternationalSmsRecordDTO
internationalSmsRecordDTO
)
{
...
...
gic-platform-enterprise-service/src/main/java/com/gic/enterprise/service/outer/impl/SmsRecordApiServiceImpl.java
View file @
974e16e5
...
...
@@ -12,12 +12,10 @@ import com.gic.enterprise.error.ErrorCode;
import
com.gic.enterprise.response.EnterpriseServiceResponse
;
import
com.gic.enterprise.service.*
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.store.utils.valid.ValidUtil
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.redisson.api.RAtomicLong
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -50,8 +48,7 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
if
(
enterpriseId
==
null
||
sendCount
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
);
}
RedissonClient
redisClient
=
RedisUtil
.
getRedisClient
();
RAtomicLong
smsCountR
=
redisClient
.
getAtomicLong
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT
+
enterpriseId
);
RAtomicLong
smsCountR
=
billingEnterpriseSmsPackageService
.
getTotalSmsInPackageByEnterpriseId
(
enterpriseId
);
long
smsPackageCount
=
smsCountR
.
get
();
if
(
smsPackageCount
>
sendCount
)
{
logger
.
info
(
"enterpriseId:{}, 短信套餐包条数:{}, 发送条数:{}, 可以发送"
,
enterpriseId
,
smsPackageCount
,
sendCount
);
...
...
@@ -101,8 +98,7 @@ public class SmsRecordApiServiceImpl implements SmsRecordApiService {
SmsRecordDTO
smsRecordDTO
=
JSON
.
parseObject
(
arg
,
SmsRecordDTO
.
class
);
// 判断是扣套餐包还是扣余额
RedissonClient
redisClient
=
RedisUtil
.
getRedisClient
();
RAtomicLong
smsCount
=
redisClient
.
getAtomicLong
(
Constants
.
ENTERPRISE_BILLING_SMS_PACKAGE_COUNT
+
smsRecordDTO
.
getEnterpriseId
());
RAtomicLong
smsCount
=
billingEnterpriseSmsPackageService
.
getTotalSmsInPackageByEnterpriseId
(
smsRecordDTO
.
getEnterpriseId
());
smsRecordDTO
.
setCacheStatus
(
0
);
smsRecordDTO
.
setDatabaseStatus
(
0
);
...
...
gic-platform-enterprise-service/src/main/resources/mapper/TabBillingSmsRecordMapper.xml
View file @
974e16e5
...
...
@@ -378,16 +378,14 @@
<include
refid=
"Base_Column_List"
/>
from tab_billing_sms_record
<where>
and enterprise_id = #{enterpriseId}
and cache_status = 1
and database_status = 1
<if
test=
"enterpriseId != null "
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"startTime != null and startTime != '' "
>
and
DATE_FORMAT(deduction_time,'%Y-%m-%d')
>
= #{startTime}
and
deduction_time
>
= #{startTime}
</if>
<if
test=
"endTime != null and startTime != '' "
>
and
DATE_FORMAT(deduction_time,'%Y-%m-%d')
<
= #{endTime}
and
deduction_time
<
= #{endTime}
</if>
<if
test=
"payType != null "
>
and pay_type = #{payType}
...
...
gic-platform-enterprise-web/src/main/java/com/gic/enterprise/web/controller/BillingRecordController.java
View file @
974e16e5
...
...
@@ -11,6 +11,7 @@ import com.gic.enterprise.service.DictApiService;
import
com.gic.enterprise.utils.ResultControllerUtils
;
import
com.gic.enterprise.utils.UserDetailUtils
;
import
com.gic.enterprise.web.vo.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -91,6 +92,13 @@ public class BillingRecordController {
@RequestMapping
(
"/list-sms"
)
public
RestResponse
listSmsRecord
(
RecordQO
recordQO
)
{
recordQO
.
setEnterpriseId
(
UserDetailUtils
.
getUserDetail
().
getEnterpriseId
());
if
(
StringUtils
.
isNotBlank
(
recordQO
.
getStartTime
()))
{
recordQO
.
setStartTime
(
recordQO
.
getStartTime
()
+
" 00:00:00"
);
}
if
(
StringUtils
.
isNotBlank
(
recordQO
.
getEndTime
()))
{
recordQO
.
setEndTime
(
recordQO
.
getEndTime
()
+
" 23:59:59"
);
}
ServiceResponse
<
Page
<
SmsRecordDTO
>>
serviceResponse
=
billingRecordApiService
.
listSmsRecord
(
recordQO
);
if
(
serviceResponse
.
isSuccess
())
{
Page
page
=
new
Page
(
serviceResponse
.
getResult
().
getCurrentPage
(),
serviceResponse
.
getResult
().
getPageSize
(),
serviceResponse
.
getResult
().
getTotalPage
(),
serviceResponse
.
getResult
().
getTotalCount
());
...
...
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