Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
聂康
local-rnr-mg
Commits
b2eded42
Commit
b2eded42
authored
Jun 17, 2025
by
kang.nie@inzymeits.com
Browse files
初始化代码
parent
12156d65
Pipeline
#3109
failed with stages
in 0 seconds
Changes
439
Pipelines
1
Show whitespace changes
Inline
Side-by-side
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/MgSurplusBindServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.cache.redis.util.FastJsonUtils
;
import
com.cusc.nirvana.common.loader.CollectionUtils
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.eiam.dto.OrganizationDTO
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.constants.ResponseCode
;
import
com.cusc.nirvana.user.rnr.mg.constants.MessageCallbackStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.NoticeStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrBizzTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogBizTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogOptTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogSubTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrStatus
;
import
com.cusc.nirvana.user.rnr.mg.converter.MgRnrCardInfoConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgRnrCardInfoPO
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgRnrOperationLogPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.InfoLogCommentDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgCardNoticeDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrRelationDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SurplusConfirmDto
;
import
com.cusc.nirvana.user.rnr.mg.service.*
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.i18n.LocaleContextHolder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.UUID
;
/**
* @author yubo
* @since 2022-05-03 15:43
*/
@Service
@Slf4j
public
class
MgSurplusBindServiceImpl
implements
IMgSurplusBindService
{
@Autowired
private
IRnrOrderService
rnrOrderService
;
@Autowired
private
IMgRnrCardInfoService
rnrCardInfoService
;
@Autowired
private
IMgRnrOperationLogService
rnrOperationLogService
;
@Autowired
private
IMgRnrCardNoticeService
cardNoticeService
;
@Autowired
private
IOrganService
organService
;
@Autowired
private
IMqSendService
mqSendService
;
@Autowired
private
NotifyCloudService
notifyCloudService
;
@Override
@Transactional
(
rollbackFor
=
Throwable
.
class
)
public
String
saveRelation
(
RnrRelationDTO
relationDTO
)
{
log
.
info
(
"Mg realtionInfo:"
+
JSON
.
toJSONString
(
relationDTO
));
if
(
CollectionUtils
.
isEmpty
(
relationDTO
.
getCardList
()))
{
throw
new
CuscUserException
(
ResponseCode
.
ICCID_NOT_NULL
.
getCode
(),
ResponseCode
.
ICCID_NOT_NULL
.
getMsg
());
}
MgRnrInfoDTO
info
=
relationDTO
.
getInfo
();
RnrOrderDTO
order
=
relationDTO
.
getOrder
();
//设置订单信息
order
.
setRnrId
(
info
.
getUuid
());
//日志信息
InfoLogCommentDTO
comment
=
new
InfoLogCommentDTO
();
comment
.
setUserId
(
info
.
getUuid
());
comment
.
setLang
(
LocaleContextHolder
.
getLocale
().
toString
());
String
logComment
=
FastJsonUtils
.
convertObjectToJSON
(
comment
);
//日志信息
List
<
MgRnrOperationLogPO
>
cardLogList
=
new
ArrayList
<>();
MgRnrOperationLogPO
rnrOptLog
;
//组装卡信息
List
<
MgRnrCardInfoPO
>
cardPOList
=
new
ArrayList
<>();
MgRnrCardInfoPO
cardInfoPO
;
for
(
MgRnrCardInfoDTO
cardDTO
:
relationDTO
.
getCardList
())
{
//设置卡信息
cardDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
cardDTO
.
setRnrId
(
info
.
getUuid
());
cardDTO
.
setTenantNo
(
info
.
getTenantNo
());
cardDTO
.
setRoutingKey
(
info
.
getRoutingKey
());
cardDTO
.
setOrderId
(
order
.
getUuid
());
cardInfoPO
=
MgRnrCardInfoConverter
.
INSTANCE
.
dtoToPo
(
cardDTO
);
cardPOList
.
add
(
cardInfoPO
);
//设置日志信息
rnrOptLog
=
new
MgRnrOperationLogPO
();
rnrOptLog
.
setUuid
(
CuscStringUtils
.
generateUuid
());
rnrOptLog
.
setBizType
(
RnrOptLogBizTypeEnum
.
CARD
.
getCode
());
rnrOptLog
.
setBizUuid
(
cardDTO
.
getUuid
());
rnrOptLog
.
setOptType
(
RnrOptLogOptTypeEnum
.
OPERATE_RNR
.
getCode
());
rnrOptLog
.
setOptSubType
(
RnrOptLogSubTypeEnum
.
CREATE_OPERATE
.
getCode
());
rnrOptLog
.
setOptTime
(
new
Date
());
rnrOptLog
.
setContent
(
logComment
);
rnrOptLog
.
setIsBatchOrder
(
order
.
getIsBatchOrder
());
rnrOptLog
.
setSource
(
order
.
getOrderSource
());
rnrOptLog
.
setSerialNumber
(
order
.
getSerialNumber
());
rnrOptLog
.
setCreator
(
info
.
getCreator
());
rnrOptLog
.
setTenantNo
(
order
.
getTenantNo
());
cardLogList
.
add
(
rnrOptLog
);
}
//保存卡信息
rnrCardInfoService
.
addRnrCardBatch
(
cardPOList
);
//保存工单信息
rnrOrderService
.
insertOrder
(
order
);
//发送mq
mqSendService
.
sendBindUnbindExchangeMq
(
order
.
getUuid
());
//保存操作日志-异步
rnrOperationLogService
.
addRnrOperationLogPOBatch
(
cardLogList
);
return
order
.
getUuid
();
}
@Override
@Transactional
(
rollbackFor
=
Throwable
.
class
)
public
void
surplusConfirm
(
SurplusConfirmDto
confirmDto
)
{
RnrOrderDTO
rnrOrderDTO
=
new
RnrOrderDTO
();
rnrOrderDTO
.
setUuid
(
confirmDto
.
getOrderId
());
rnrOrderDTO
=
rnrOrderService
.
getByUuid
(
rnrOrderDTO
);
if
(
rnrOrderDTO
==
null
)
{
throw
new
CuscUserException
(
""
,
"未查询到工单信息:"
+
confirmDto
.
getOrderId
());
}
//如果工单已经完成直接返回
if
(!
RnrOrderStatusEnum
.
notFinished
(
rnrOrderDTO
.
getOrderStatus
()))
{
return
;
}
int
rnrStatus
=
RnrStatus
.
RNR_FAIL
.
getCode
();
int
orderStatus
=
RnrOrderStatusEnum
.
CANCEL
.
getCode
();
int
noticeStatus
=
NoticeStatusEnum
.
NONEED
.
getCode
();
if
(
confirmDto
.
getCallbackStatusEnum
()
==
MessageCallbackStatusEnum
.
Y
.
getCode
())
{
rnrStatus
=
RnrStatus
.
RNR
.
getCode
();
orderStatus
=
RnrOrderStatusEnum
.
PASS
.
getCode
();
noticeStatus
=
NoticeStatusEnum
.
NEED
.
getCode
();
}
else
if
(
confirmDto
.
getCallbackStatusEnum
()
==
MessageCallbackStatusEnum
.
N
.
getCode
())
{
rnrStatus
=
RnrStatus
.
RNR_FAIL
.
getCode
();
orderStatus
=
RnrOrderStatusEnum
.
NOT_PASS
.
getCode
();
noticeStatus
=
NoticeStatusEnum
.
NONEED
.
getCode
();
}
//成功,需要发送mq消息
List
<
MgCardNoticeDTO
>
mqList
=
new
ArrayList
<>();
if
(
confirmDto
.
getCallbackStatusEnum
()
==
MessageCallbackStatusEnum
.
Y
.
getCode
())
{
//查询车企信息
String
manufacturerOrgId
;
OrganizationDTO
organ
=
new
OrganizationDTO
();
organ
.
setTenantNo
(
rnrOrderDTO
.
getTenantNo
());
organ
.
setUuid
(
rnrOrderDTO
.
getOrgId
());
Response
<
OrganizationDTO
>
organResp
=
organService
.
getCarSubOrganByOrgId
(
organ
);
if
(
organResp
!=
null
&&
organResp
.
isSuccess
()
&&
organResp
.
getData
()
!=
null
)
{
manufacturerOrgId
=
organResp
.
getData
().
getUuid
();
}
else
{
log
.
warn
(
"surplusConfirm 获取车企组织失败,{}"
,
JSON
.
toJSONString
(
organResp
));
manufacturerOrgId
=
"0"
;
}
MgCardNoticeDTO
mqDTO
;
MgRnrCardInfoDTO
cardInfoDTO
=
new
MgRnrCardInfoDTO
();
cardInfoDTO
.
setOrderId
(
confirmDto
.
getOrderId
());
List
<
MgRnrCardInfoDTO
>
mgRnrCardInfoDTOS
=
rnrCardInfoService
.
queryByList
(
cardInfoDTO
);
for
(
MgRnrCardInfoDTO
cardDTO
:
mgRnrCardInfoDTOS
)
{
//设置消息信息
mqDTO
=
new
MgCardNoticeDTO
();
mqDTO
.
setVin
(
cardDTO
.
getIotId
());
mqDTO
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Bind
.
getCode
());
mqDTO
.
setOrderId
(
cardDTO
.
getOrderId
());
mqDTO
.
setIccid
(
cardDTO
.
getIccid
());
mqDTO
.
setManufacturerOrgId
(
manufacturerOrgId
);
mqDTO
.
setResultCode
(
orderStatus
);
mqDTO
.
setTenantNo
(
rnrOrderDTO
.
getTenantNo
());
mqDTO
.
setOrgId
(
rnrOrderDTO
.
getOrgId
());
mqList
.
add
(
mqDTO
);
}
//通知云平台
notifyCloudService
.
notifyResult
(
mgRnrCardInfoDTOS
,
RnrBizzTypeEnum
.
Bind
.
getCode
().
toString
(),
UUID
.
randomUUID
().
toString
()
,
null
,
RnrOrderStatusEnum
.
PASS
.
getCode
().
toString
());
}
//更新卡状态
rnrCardInfoService
.
updateCardStatusByOrderId
(
confirmDto
.
getOrderId
(),
noticeStatus
,
rnrStatus
);
//更新订单状态
rnrOrderService
.
updateOrderStatus
(
Collections
.
singletonList
(
confirmDto
.
getOrderId
()),
orderStatus
);
//异步发送消息
if
(!
CollectionUtils
.
isEmpty
(
mqList
))
{
cardNoticeService
.
sendCardNotice
(
mqList
);
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/MgTenantBizzConfigServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.MgTenantBizzConfigConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.MgTenantBizzConfigDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgTenantBizzConfigPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgTenantBizzConfigDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgTenantBizzConfigService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 租户业务配置(MgTenantBizzConfig)表服务实现类
*
* @author yuy336
* @since 2022-06-14 09:36:11
*/
@Service
public
class
MgTenantBizzConfigServiceImpl
extends
ServiceImpl
<
MgTenantBizzConfigDao
,
MgTenantBizzConfigPO
>
implements
IMgTenantBizzConfigService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
MgTenantBizzConfigDTO
getByUuid
(
MgTenantBizzConfigDTO
bean
)
{
MgTenantBizzConfigPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());;
return
MgTenantBizzConfigConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
MgTenantBizzConfigDTO
>
queryByList
(
MgTenantBizzConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
MgTenantBizzConfigPO
>
record
=
this
.
list
(
queryWrapper
);
return
MgTenantBizzConfigConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
MgTenantBizzConfigDTO
>
queryByPage
(
MgTenantBizzConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Page
<
MgTenantBizzConfigPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
MgTenantBizzConfigDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
MgTenantBizzConfigDTO
insert
(
MgTenantBizzConfigDTO
bean
)
{
MgTenantBizzConfigPO
mgTenantBizzConfigPO
=
MgTenantBizzConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
mgTenantBizzConfigPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
mgTenantBizzConfigPO
);
bean
.
setUuid
(
mgTenantBizzConfigPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
MgTenantBizzConfigDTO
update
(
MgTenantBizzConfigDTO
bean
)
{
MgTenantBizzConfigPO
mgTenantBizzConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
mgTenantBizzConfigPO
==
null
){
return
null
;
}
MgTenantBizzConfigPO
tmpBean
=
MgTenantBizzConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
mgTenantBizzConfigPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
MgTenantBizzConfigDTO
bean
)
{
MgTenantBizzConfigPO
mgTenantBizzConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
mgTenantBizzConfigPO
==
null
)
{
return
false
;
}
MgTenantBizzConfigPO
tmpBean
=
new
MgTenantBizzConfigPO
();
tmpBean
.
setId
(
mgTenantBizzConfigPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
MgTenantBizzConfigPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/MgVehicleCompanyServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.CryptKeyHelper
;
import
com.cusc.nirvana.user.rnr.mg.converter.MgVehicleCompanyConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.MgVehicleCompanyDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgVehicleCompanyPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCompanyInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgVehicleCompanyDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrCompanyInfoService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrFileService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrInfoService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgVehicleCompanyService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 车企信息表(FpVehicleCompany)表服务实现类
*
* @author yuy336
* @since 2022-04-19 20:11:33
*/
@Service
public
class
MgVehicleCompanyServiceImpl
extends
ServiceImpl
<
MgVehicleCompanyDao
,
MgVehicleCompanyPO
>
implements
IMgVehicleCompanyService
{
@Autowired
IMgRnrCompanyInfoService
companyInfoService
;
@Autowired
IMgRnrInfoService
rnrInfoService
;
@Autowired
IMgRnrFileService
fileService
;
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
MgVehicleCompanyDTO
getByUuid
(
MgVehicleCompanyDTO
bean
)
{
MgVehicleCompanyPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());
;
return
MgVehicleCompanyConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
MgVehicleCompanyDTO
getVehicleCompany
(
MgVehicleCompanyDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"tenant_no"
,
bean
.
getTenantNo
());
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getOrgId
()),
"org_id"
,
CuscStringUtils
.
isNotEmpty
(
bean
.
getOrgId
()));
MgVehicleCompanyPO
vehicleCompany
=
this
.
getOne
(
queryWrapper
);
return
MgVehicleCompanyConverter
.
INSTANCE
.
poToDto
(
vehicleCompany
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
MgVehicleCompanyDTO
>
queryByList
(
MgVehicleCompanyDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getTenantNo
()),
"tenant_no"
,
bean
.
getTenantNo
());
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getCompanyName
()),
"company_name"
,
CryptKeyHelper
.
encrypt
(
bean
.
getCompanyName
()));
List
<
MgVehicleCompanyPO
>
record
=
this
.
list
(
queryWrapper
);
return
MgVehicleCompanyConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
MgVehicleCompanyDTO
>
queryByPage
(
MgVehicleCompanyDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Page
<
MgVehicleCompanyPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
MgVehicleCompanyDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
MgVehicleCompanyDTO
insert
(
MgVehicleCompanyDTO
bean
)
{
MgVehicleCompanyPO
vehicleCompanyPO
=
MgVehicleCompanyConverter
.
INSTANCE
.
dtoToPo
(
bean
);
vehicleCompanyPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
vehicleCompanyPO
);
bean
.
setUuid
(
vehicleCompanyPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
MgVehicleCompanyDTO
update
(
MgVehicleCompanyDTO
bean
)
{
MgVehicleCompanyPO
MgVehicleCompanyPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
MgVehicleCompanyPO
==
null
)
{
return
null
;
}
MgVehicleCompanyPO
tmpBean
=
MgVehicleCompanyConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
MgVehicleCompanyPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
*
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
MgVehicleCompanyDTO
bean
)
{
MgVehicleCompanyPO
MgVehicleCompanyPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
MgVehicleCompanyPO
==
null
)
{
return
false
;
}
MgVehicleCompanyPO
tmpBean
=
new
MgVehicleCompanyPO
();
tmpBean
.
setId
(
MgVehicleCompanyPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
@Override
@Transactional
public
MgVehicleCompanyDTO
saveByRnrId
(
MgVehicleCompanyDTO
bean
)
{
//通过rnrId查询企业信息
MgRnrCompanyInfoDTO
company
=
new
MgRnrCompanyInfoDTO
();
company
.
setRnrId
(
bean
.
getFirstRnrId
());
company
=
companyInfoService
.
getByRnrid
(
company
);
if
(
company
==
null
)
{
return
null
;
}
bean
.
setCompanyName
(
company
.
getCompanyName
());
bean
.
setCompanyCertType
(
company
.
getCompanyCertType
());
bean
.
setCompanyCertNumber
(
company
.
getCompanyCertNumber
());
this
.
insert
(
bean
);
return
bean
;
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
MgVehicleCompanyPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/MqSendServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cache.CacheFactory
;
import
com.cache.service.ISortSetService
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrMgMqConstant
;
import
com.cusc.nirvana.user.rnr.mg.service.IMqSendService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author yubo
* @since 2022-05-04 11:03
*/
@Service
@Slf4j
public
class
MqSendServiceImpl
implements
IMqSendService
{
@Value
(
"${rnr.mq.bind.delay:180}"
)
private
int
delayTime
;
@Resource
private
CacheFactory
cacheFactory
;
/**
* 发送一车多卡、换卡消息
*
* @param orderId
*//*
@Override
public void sendBindUnbindExchangeMq(String orderId) {
MgBizNoticeDTO mgBizNoticeDTO = new MgBizNoticeDTO(orderId);
int delayLevel = RnrMqUtil.getLevel(delayTime);
SendResult sendResult = rocketMQTemplate.syncSend(RnrMgMqConstant.RNR_CARD_OPERATION_DELAY_TOPIC
, MessageBuilder.withPayload(mgBizNoticeDTO).build(), RnrMqUtil.MQ_TIME_OUT, delayLevel);
if (sendResult.getSendStatus() != SendStatus.SEND_OK) {
throw new CuscUserException("", "发送延迟消息失败:" + orderId + ":" + sendResult.toString());
}
log.info("发送延迟消息成功:{},{},{}", JSON.toJSONString(mgBizNoticeDTO), delayLevel, sendResult.toString());
}*/
/**
* 发送一车多卡、换卡消息
*
* @param orderId
*/
@Override
public
void
sendBindUnbindExchangeMq
(
String
orderId
)
{
try
{
//将消息存入redis sortSet,时间戳+过期时间作为score值
ISortSetService
sortSetService
=
cacheFactory
.
getSortSetService
();
Map
<
String
,
Double
>
map
=
new
HashMap
<>();
map
.
put
(
orderId
,
((
double
)
(
System
.
currentTimeMillis
()
+
delayTime
*
1000
)));
sortSetService
.
addSortSet
(
"CT:USER:"
+
RnrMgMqConstant
.
RNR_CARD_OPERATION_DELAY_TOPIC
,
map
);
}
catch
(
Exception
e
)
{
throw
new
CuscUserException
(
""
,
"消息存入redis失败:"
+
orderId
);
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/NoticeConfigServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.cache.CacheFactory
;
import
com.cache.exception.CacheException
;
import
com.cusc.nirvana.user.rnr.common.constants.RedisConstant
;
import
com.cusc.nirvana.user.rnr.mg.service.NoticeConfigService
;
import
com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeConfigDTO
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeConfigService
;
import
com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* @className: NoticeConfigUtil
* @author: jk
* @date: 2022/7/29 19:11
* @version: 1.0
**/
@Service
@Slf4j
public
class
NoticeConfigServiceImpl
implements
NoticeConfigService
{
@Resource
private
CacheFactory
cacheFactory
;
@Autowired
private
IRnrNoticeConfigService
rnrNoticeConfigService
;
@Override
public
RnrNoticeConfigDTO
queryNoticeConfig
(
String
noticeConfigId
)
{
RnrNoticeConfigDTO
rnrNoticeConfigDTO
=
new
RnrNoticeConfigDTO
();
String
key
=
RedisConstant
.
RNR_CARD_STATISTICS_KEY
+
noticeConfigId
;
try
{
String
str
=
cacheFactory
.
getStringService
().
getValue
(
key
,
String
.
class
);
if
(
StringUtils
.
isEmpty
(
str
))
{
rnrNoticeConfigDTO
.
setUuid
(
noticeConfigId
);
RnrNoticeConfigDTO
rnrNoticeConfig
=
rnrNoticeConfigService
.
getByUuid
(
rnrNoticeConfigDTO
);
if
(
null
!=
rnrNoticeConfig
)
{
cacheFactory
.
getExpireStringService
().
setExpireValue
(
key
,
JSON
.
toJSONString
(
rnrNoticeConfig
),
60
*
50
);
return
rnrNoticeConfig
;
}
}
RnrNoticeConfigDTO
rnrNotice
=
JSON
.
parseObject
(
str
,
RnrNoticeConfigDTO
.
class
);
return
rnrNotice
;
}
catch
(
CacheException
e
)
{
return
rnrNoticeConfigDTO
;
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/NotifyCloudService.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.common.cloud.CloudMethod
;
import
com.cusc.nirvana.user.rnr.common.cloud.CloudService
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.UploadResultDto
;
import
com.cusc.nirvana.user.rnr.mg.dto.VinCardDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
@Slf4j
public
class
NotifyCloudService
{
@Autowired
private
CloudService
cloudService
;
@Async
public
Response
notifyResult
(
List
<
MgRnrCardInfoDTO
>
dtoList
,
String
rnrBizzType
,
String
serialNumber
,
String
orgId
,
String
resultCode
)
{
Response
response
=
null
;
try
{
//将实名结果回传给智网(新增)
List
<
VinCardDTO
>
vinCardList
=
new
ArrayList
<>();
dtoList
.
forEach
(
mgRnrCardInfoDTO
->{
VinCardDTO
cardDto
=
new
VinCardDTO
();
cardDto
.
setIccid
(
mgRnrCardInfoDTO
.
getIccid
());
cardDto
.
setVin
(
mgRnrCardInfoDTO
.
getIotId
());
cardDto
.
setOldIccid
(
mgRnrCardInfoDTO
.
getOldCardId
());
cardDto
.
setResultCode
(
resultCode
);
vinCardList
.
add
(
cardDto
);
});
UploadResultDto
resultDto
=
new
UploadResultDto
();
resultDto
.
setSerialNumber
(
serialNumber
);
resultDto
.
setRnrBizzType
(
rnrBizzType
);
resultDto
.
setVinCardList
(
vinCardList
);
resultDto
.
setOrgId
(
orgId
);
log
.
info
(
"通知云端,实名请求是 = {}"
,
resultDto
);
response
=
cloudService
.
postForResponse
(
CloudMethod
.
NOTIFY_RESULT
,
resultDto
,
String
.
class
);
log
.
info
(
"通知云端,返回结果是 = {}"
,
response
);
if
(!
response
.
isSuccess
()){
log
.
error
(
"通知云端失败,serialNumber = {}"
,
serialNumber
);
}
else
{
// todo 保存记录,可以添加重试机制
}
}
catch
(
Exception
e
){
log
.
error
(
"实名结果通知云端出现异常 = {}"
,
e
.
getMessage
());
}
return
response
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OpenTenantRelationServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.OpenTenantRelationConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.OpenTenantRelationDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.OpenTenantRelationPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OpenTenantRelationDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IOpenTenantRelationService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 开放平台租户和实名制租户映射关系表(OpenTenantRelation)表服务实现类
*
* @author yuy336
* @since 2022-06-15 20:03:28
*/
@Service
public
class
OpenTenantRelationServiceImpl
extends
ServiceImpl
<
OpenTenantRelationDao
,
OpenTenantRelationPO
>
implements
IOpenTenantRelationService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
OpenTenantRelationDTO
getByUuid
(
OpenTenantRelationDTO
bean
)
{
OpenTenantRelationPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());;
return
OpenTenantRelationConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
OpenTenantRelationDTO
>
queryByList
(
OpenTenantRelationDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getOpenTenantId
()),
"open_tenant_id"
,
bean
.
getOpenTenantId
());
queryWrapper
.
eq
(
"tenant_no"
,
bean
.
getTenantNo
());
List
<
OpenTenantRelationPO
>
record
=
this
.
list
(
queryWrapper
);
return
OpenTenantRelationConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
OpenTenantRelationDTO
>
queryByPage
(
OpenTenantRelationDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getOpenTenantId
()),
"open_tenant_id"
,
bean
.
getOpenTenantId
());
queryWrapper
.
eq
(
"tenant_no"
,
bean
.
getTenantNo
());
Page
<
OpenTenantRelationPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
OpenTenantRelationDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
OpenTenantRelationDTO
insert
(
OpenTenantRelationDTO
bean
)
{
OpenTenantRelationPO
openTenantRelationPO
=
OpenTenantRelationConverter
.
INSTANCE
.
dtoToPo
(
bean
);
openTenantRelationPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
openTenantRelationPO
);
bean
.
setUuid
(
openTenantRelationPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
OpenTenantRelationDTO
update
(
OpenTenantRelationDTO
bean
)
{
OpenTenantRelationPO
openTenantRelationPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
openTenantRelationPO
==
null
){
return
null
;
}
OpenTenantRelationPO
tmpBean
=
OpenTenantRelationConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
openTenantRelationPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
OpenTenantRelationDTO
bean
)
{
OpenTenantRelationPO
openTenantRelationPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
openTenantRelationPO
==
null
)
{
return
false
;
}
OpenTenantRelationPO
tmpBean
=
new
OpenTenantRelationPO
();
tmpBean
.
setId
(
openTenantRelationPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
OpenTenantRelationPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OrderNoticeServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cache.redis.util.FastJsonUtils
;
import
com.cusc.nirvana.user.rnr.common.dto.RnrMqMessageDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IOrderNoticeService
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMqUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* Description: 实名工单通知服务实现类
* <br />
* CreateDate 2022-03-08 15:22:51
*
* @author yuyi
**/
@Service
@Slf4j
public
class
OrderNoticeServiceImpl
implements
IOrderNoticeService
{
@Override
public
void
sendOrderMsg
(
RnrMqMessageDTO
<
List
<
RnrOrderDTO
>>
bean
)
{
if
(
bean
!=
null
&&
bean
.
getDelayTime
()
>
0
)
{
log
.
debug
(
"工单通知延迟 参数: {}"
,
FastJsonUtils
.
convertObjectToJSON
(
bean
));
int
surplusTime
=
bean
.
getSurplusTime
();
int
delayLevel
=
RnrMqUtil
.
getLevel
(
surplusTime
);
bean
.
setSurplusTime
(
surplusTime
-
RnrMqUtil
.
getValue
(
delayLevel
-
1
));
//rocketMQTemplate.syncSend(RnrMgMqConstant.DEAD_LETTER_QUEUE_ORDER,
// MessageBuilder.withPayload(bean).build(), RnrMqUtil.MQ_TIME_OUT, delayLevel);
}
else
{
//rocketMQTemplate.convertAndSend(RnrMgMqConstant.QUEUE_ORDER_TOPIC, bean);
}
}
@Override
public
void
sendOrderNotice
(
List
<
RnrOrderDTO
>
orderList
)
{
//rocketMQTemplate.convertAndSend(RnrMgMqConstant.USER_RNR_MG_ORDER_NOTICE_TOPIC, orderList);
}
//------------------私有方法区-------------------
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OrgBusinessTagServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.OrgBusinessTagConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.OrgBusinessTagDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.OrgBusinessTagPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgBusinessTagDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IOrgBusinessTagService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
public
class
OrgBusinessTagServiceImpl
extends
ServiceImpl
<
OrgBusinessTagDao
,
OrgBusinessTagPO
>
implements
IOrgBusinessTagService
{
@Override
public
Response
<
OrgBusinessTagDTO
>
getByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
OrgBusinessTagPO
po
=
this
.
getOne
(
queryWrapper
);
return
Response
.
createSuccess
(
OrgBusinessTagConverter
.
INSTANCE
.
poToDto
(
po
));
}
@Override
public
Response
<
OrgBusinessTagDTO
>
getByTagCode
(
String
tenantNo
,
String
tagCode
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"tenant_no"
,
tenantNo
);
queryWrapper
.
eq
(
"tag_code"
,
tagCode
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
OrgBusinessTagPO
po
=
this
.
getOne
(
queryWrapper
);
return
Response
.
createSuccess
(
OrgBusinessTagConverter
.
INSTANCE
.
poToDto
(
po
));
}
@Override
public
Response
<
OrgBusinessTagDTO
>
insert
(
OrgBusinessTagDTO
tagDTO
)
{
if
(
getByTagCode
(
tagDTO
.
getTenantNo
(),
tagDTO
.
getTagCode
())
!=
null
)
{
return
Response
.
createSuccess
(
"标签编码已经存在,请核实!"
);
}
tagDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
if
(
this
.
save
(
OrgBusinessTagConverter
.
INSTANCE
.
dtoToPo
(
tagDTO
)))
{
return
Response
.
createSuccess
(
tagDTO
);
}
return
Response
.
createError
(
"新增标签失败!"
);
}
@Override
public
Response
<
OrgBusinessTagDTO
>
update
(
OrgBusinessTagDTO
tagDTO
)
{
OrgBusinessTagDTO
tmpDto
=
getByTagCode
(
tagDTO
.
getTenantNo
(),
tagDTO
.
getTagCode
()).
getData
();
if
(
tmpDto
!=
null
&&
!
tmpDto
.
getUuid
().
equals
(
tagDTO
.
getUuid
()))
{
return
Response
.
createSuccess
(
"标签编码已经存在,请核实!"
);
}
UpdateWrapper
wrapper
=
new
UpdateWrapper
();
wrapper
.
eq
(
"uuid"
,
tagDTO
.
getUuid
());
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
boolean
flag
=
this
.
update
(
OrgBusinessTagConverter
.
INSTANCE
.
dtoToPo
(
tagDTO
),
wrapper
);
return
Response
.
createSuccess
(
flag
);
}
@Override
public
Response
<
Integer
>
remove
(
String
uuid
)
{
OrgBusinessTagDTO
tagDTO
=
getByUuid
(
uuid
).
getData
();
if
(
tagDTO
==
null
)
{
return
Response
.
createSuccess
(
0
);
}
tagDTO
.
setIsDelete
(
1
);
tagDTO
=
update
(
tagDTO
).
getData
();
return
Response
.
createSuccess
(
tagDTO
);
}
@Override
public
Response
<
List
<
OrgBusinessTagDTO
>>
query
(
String
tenantNo
,
String
orgUuid
)
{
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(
"tenant_no"
,
tenantNo
);
if
(
CuscStringUtils
.
isNotEmpty
(
orgUuid
))
{
wrapper
.
eq
(
"org_uuid"
,
orgUuid
);
}
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
List
<
OrgBusinessTagPO
>
pos
=
this
.
list
(
wrapper
);
return
Response
.
createSuccess
(
OrgBusinessTagConverter
.
INSTANCE
.
poListToDtoList
(
pos
));
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OrgSimRelServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.BindingStatus
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.OrgSimRelConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.OrgSimRelDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.OrgSimRelPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.IccIdListRequestDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgSimRelDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgSimRelQueryDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IOrgSimRelService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
com.cusc.nirvana.user.util.DateUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.servlet.support.BindStatus
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
OrgSimRelServiceImpl
extends
ServiceImpl
<
OrgSimRelDao
,
OrgSimRelPO
>
implements
IOrgSimRelService
{
@Override
public
OrgSimRelDTO
getByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
OrgSimRelPO
simRelPO
=
this
.
getOne
(
queryWrapper
);
return
simRelPO
==
null
?
null
:
OrgSimRelConverter
.
INSTANCE
.
poToDto
(
simRelPO
);
}
@Override
public
OrgSimRelDTO
getByIccid
(
String
iccid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"iccid"
,
iccid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
OrgSimRelPO
simRelPO
=
this
.
getOne
(
queryWrapper
);
return
simRelPO
==
null
?
null
:
OrgSimRelConverter
.
INSTANCE
.
poToDto
(
simRelPO
);
}
@Override
public
PageResult
<
OrgSimRelDTO
>
queryByPage
(
OrgSimRelQueryDTO
queryDTO
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"org_uuid"
,
queryDTO
.
getOrgUuid
());
if
(
CuscStringUtils
.
isNotEmpty
(
queryDTO
.
getTagUuid
()))
{
queryWrapper
.
eq
(
"tag_code"
,
queryDTO
.
getTagUuid
());
}
if
(
CuscStringUtils
.
isNotEmpty
(
queryDTO
.
getIccid
()))
{
queryWrapper
.
eq
(
"iccid"
,
queryDTO
.
getIccid
());
}
if
(
CuscStringUtils
.
isNotEmpty
(
queryDTO
.
getVin
()))
{
queryWrapper
.
eq
(
"vin"
,
queryDTO
.
getVin
());
}
if
(
null
!=
queryDTO
.
getBindStatus
())
{
queryWrapper
.
eq
(
"bind_status"
,
queryDTO
.
getBindStatus
());
}
if
(
queryDTO
.
getStartCreateTime
()
!=
null
)
{
queryWrapper
.
ge
(
"create_time"
,
DateUtils
.
formatDate
(
DateUtils
.
convertDateToLDT
(
queryDTO
.
getStartCreateTime
()),
"yyyy-MM-dd"
));
}
if
(
queryDTO
.
getEndCreateTime
()
!=
null
)
{
queryWrapper
.
le
(
"create_time"
,
DateUtils
.
formatDate
(
DateUtils
.
convertDateToLDT
(
queryDTO
.
getEndCreateTime
()),
"yyyy-MM-dd"
)+
" "
+
"23:59:59"
);
}
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
Page
<
OrgSimRelDTO
>
poPage
=
this
.
page
(
new
Page
<>(
queryDTO
.
getCurrPage
(),
queryDTO
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
poPage
,
OrgSimRelDTO
.
class
);
}
@Override
public
List
<
OrgSimRelDTO
>
queryByList
(
List
<
String
>
iccids
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
in
(
"iccid"
,
iccids
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
list
(
queryWrapper
);
}
@Override
public
List
<
OrgSimRelDTO
>
queryByVin
(
String
vin
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"vin"
,
vin
);
queryWrapper
.
eq
(
"bind_status"
,
"0"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
list
(
queryWrapper
);
}
@Override
public
OrgSimRelDTO
insert
(
OrgSimRelDTO
simRelDTO
)
{
OrgSimRelDTO
tmpDto
=
getByIccid
(
simRelDTO
.
getIccid
());
if
(
tmpDto
!=
null
)
{
return
tmpDto
;
}
simRelDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
OrgSimRelPO
orgSimRelPO
=
OrgSimRelConverter
.
INSTANCE
.
dtoToPo
(
simRelDTO
);
this
.
save
(
orgSimRelPO
);
return
simRelDTO
;
}
@Override
public
Integer
insertBatch
(
List
<
OrgSimRelDTO
>
simRelDTOS
)
{
simRelDTOS
.
forEach
(
dto
->
{
OrgSimRelDTO
tmpDto
=
getByIccid
(
dto
.
getIccid
());
if
(
tmpDto
==
null
)
{
dto
.
setUuid
(
CuscStringUtils
.
generateUuid
());
}
else
{
dto
.
setUuid
(
tmpDto
.
getUuid
());
dto
.
setId
(
tmpDto
.
getId
());
}
});
boolean
flag
=
true
;
if
(!
CollectionUtils
.
isEmpty
(
simRelDTOS
))
{
flag
=
this
.
saveOrUpdateBatch
(
OrgSimRelConverter
.
INSTANCE
.
dtoListToPoList
(
simRelDTOS
));
}
return
flag
?
simRelDTOS
.
size
()
:
0
;
}
@Override
public
OrgSimRelDTO
update
(
OrgSimRelDTO
simRelDTO
)
{
OrgSimRelDTO
bean
=
this
.
getByUuid
(
simRelDTO
.
getUuid
());
if
(
bean
==
null
)
{
return
null
;
}
simRelDTO
.
setId
(
bean
.
getId
());
OrgSimRelPO
orgSimRelPO
=
OrgSimRelConverter
.
INSTANCE
.
dtoToPo
(
simRelDTO
);
this
.
updateById
(
orgSimRelPO
);
return
simRelDTO
;
}
@Override
public
boolean
updateBindStatus
(
String
iccid
,
String
vin
,
Integer
bindStatus
)
{
OrgSimRelPO
updatePo
=
new
OrgSimRelPO
();
updatePo
.
setBindStatus
(
bindStatus
);
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(
"iccid"
,
iccid
);
wrapper
.
eq
(
"vin"
,
vin
);
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
update
(
updatePo
,
wrapper
);
}
@Override
public
boolean
updateBindIccid
(
List
<
String
>
iccid
)
{
OrgSimRelPO
updatePo
=
new
OrgSimRelPO
();
// updatePo.setBindStatus(1);
//卡状态不改,将VIN置空
updatePo
.
setVin
(
""
);
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
in
(
"iccid"
,
iccid
);
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
update
(
updatePo
,
wrapper
);
}
@Override
public
boolean
deleteById
(
OrgSimRelDTO
simRelDTO
)
{
OrgSimRelDTO
dto
=
this
.
getByUuid
(
simRelDTO
.
getUuid
());
if
(
dto
==
null
||
!
dto
.
getOrgUuid
().
equals
(
simRelDTO
.
getOrgUuid
()))
{
return
false
;
}
simRelDTO
.
setIsDelete
(
1
);
return
this
.
updateById
(
OrgSimRelConverter
.
INSTANCE
.
dtoToPo
(
simRelDTO
));
}
@Async
(
"updateVinExecutor"
)
@Override
public
void
updateVin
(
List
<
MgRnrCardInfoDTO
>
mgRnrCardInfoDTOList
)
{
List
<
String
>
iccidList
=
mgRnrCardInfoDTOList
.
stream
().
map
(
a
->
a
.
getIccid
()).
collect
(
Collectors
.
toList
());
Map
<
String
,
MgRnrCardInfoDTO
>
map
=
mgRnrCardInfoDTOList
.
stream
().
collect
(
Collectors
.
toMap
(
MgRnrCardInfoDTO:
:
getIccid
,
Function
.
identity
(),
(
k
,
v
)
->
v
));
//根据iccid查询出卡信息
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
in
(
"iccid"
,
iccidList
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
List
<
OrgSimRelPO
>
simRelPO
=
this
.
list
(
queryWrapper
);
if
(
CollectionUtils
.
isEmpty
(
simRelPO
))
{
log
.
warn
(
"根据iccid没有查询到卡信息,iccid为{}"
,
JSON
.
toJSON
(
iccidList
));
}
simRelPO
.
stream
().
forEach
(
sim
->
{
MgRnrCardInfoDTO
mgRnrCardInfoDTO
=
map
.
get
(
sim
.
getIccid
());
if
(
null
!=
mgRnrCardInfoDTO
&&
StringUtils
.
isEmpty
(
sim
.
getVin
()))
{
OrgSimRelPO
updatePo
=
new
OrgSimRelPO
();
updatePo
.
setVin
(
mgRnrCardInfoDTO
.
getIotId
());
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(
"iccid"
,
sim
.
getIccid
());
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Boolean
updateStatus
=
this
.
update
(
updatePo
,
wrapper
);
if
(!
updateStatus
)
{
log
.
warn
(
"根据iccid更新卡信息失败,iccid为{},VIN为{}"
,
sim
.
getIccid
(),
sim
.
getVin
());
}
}
else
if
(
null
!=
mgRnrCardInfoDTO
&&
!
StringUtils
.
isEmpty
(
sim
.
getVin
())
&&
!
sim
.
getVin
().
equals
(
mgRnrCardInfoDTO
.
getIotId
()))
{
log
.
info
(
"vin存在且vin不相同,iccid为{},输入VIN为{},数据库中VIN"
,
sim
.
getIccid
(),
mgRnrCardInfoDTO
.
getIotId
(),
sim
.
getVin
());
}
});
}
@Override
public
List
<
OrgSimRelDTO
>
queryInfoByIccidAndStatus
(
IccIdListRequestDTO
requestDTO
)
{
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
select
(
"DISTINCT iccid"
);
wrapper
.
in
(
"iccid"
,
requestDTO
.
getIccids
());
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
wrapper
.
eq
(
"bind_status"
,
requestDTO
.
getRnrStatus
());
return
this
.
list
(
wrapper
);
}
@Override
public
boolean
updateStatusByIccid
(
IccIdListRequestDTO
requestDTO
)
{
OrgSimRelPO
updatePo
=
new
OrgSimRelPO
();
updatePo
.
setBindStatus
(
requestDTO
.
getRnrStatus
());
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
in
(
"iccid"
,
requestDTO
.
getIccids
());
wrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
update
(
updatePo
,
wrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OrganServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.eiam.client.OrganizationClient
;
import
com.cusc.nirvana.user.eiam.dto.OrganizationDTO
;
import
com.cusc.nirvana.user.rnr.mg.constants.OrganBizzTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.service.IOrganService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* Description:组织操作service实现类
* <br />
* CreateDate 2022-07-06 19:33:31
*
* @author yuyi
**/
@Service
@Slf4j
public
class
OrganServiceImpl
implements
IOrganService
{
@Resource
private
OrganizationClient
organizationClient
;
@Override
public
Response
<
OrganizationDTO
>
getCarSubOrganByOrgId
(
OrganizationDTO
bean
)
{
//根据组织id查询组织信息
OrganizationDTO
organ
=
new
OrganizationDTO
();
organ
.
setUuid
(
bean
.
getUuid
());
organ
.
setTenantNo
(
bean
.
getTenantNo
());
Response
<
OrganizationDTO
>
organResp
=
organizationClient
.
getByUuid
(
organ
);
if
(!
organResp
.
isSuccess
())
{
return
Response
.
createError
(
organResp
.
getMsg
(),
organResp
.
getCode
());
}
organ
=
organResp
.
getData
();
return
getCarSubOrganByQueryCodePrivate
(
organ
);
}
@Override
public
Response
<
OrganizationDTO
>
getCarSubOrganByQueryCodePrivate
(
OrganizationDTO
bean
)
{
//根据当前组织的查询编码查询组织信息
List
<
String
>
uuidList
=
Arrays
.
asList
(
bean
.
getQueryCode
().
split
(
"-"
));
OrganizationDTO
organSub
=
new
OrganizationDTO
();
organSub
.
setTenantNo
(
bean
.
getTenantNo
());
organSub
.
setUuidList
(
uuidList
);
Response
<
List
<
OrganizationDTO
>>
orgListResp
=
organizationClient
.
queryByList
(
organSub
);
if
(!
orgListResp
.
isSuccess
())
{
return
Response
.
createError
(
orgListResp
.
getMsg
(),
orgListResp
.
getCode
());
}
if
(
CollectionUtils
.
isEmpty
(
orgListResp
.
getData
()))
{
return
Response
.
createSuccess
();
}
for
(
OrganizationDTO
tmp
:
orgListResp
.
getData
())
{
if
(
OrganBizzTypeEnum
.
CAR_FACTORY
.
getCode
()
==
tmp
.
getBizType
().
intValue
()
||
OrganBizzTypeEnum
.
CAR_SUB_ORGAN
.
getCode
()
==
tmp
.
getBizType
().
intValue
())
{
return
Response
.
createSuccess
(
tmp
);
}
}
return
Response
.
createSuccess
();
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/OssFileServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
cn.hutool.core.codec.Base64Decoder
;
import
cn.hutool.core.codec.Base64Encoder
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.model.GetObjectRequest
;
import
com.aliyun.oss.model.OSSObject
;
import
com.aliyun.oss.model.ObjectMetadata
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.constants.ResponseCode
;
import
com.cusc.nirvana.user.rnr.mg.service.IFileService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.IOUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.util.Date
;
/**
* @author stayAnd
* @date 2022/6/22
*/
@Service
@Slf4j
public
class
OssFileServiceImpl
implements
IFileService
{
@Value
(
"${oss.endpoint}"
)
private
String
endpoint
;
@Value
(
"${oss.accessKeyId}"
)
private
String
accessKeyId
;
@Value
(
"${oss.accessKeySecret}"
)
private
String
accessKeySecret
;
@Value
(
"${oss.bucketName}"
)
private
String
bucketName
;
@Override
public
String
upLoadImage
(
InputStream
inputStream
,
String
suffix
)
{
return
upLoadFile
(
inputStream
,
suffix
);
}
@Override
public
String
upLoadFile
(
InputStream
inputStream
,
String
suffix
)
{
// 创建OSSClient实例。
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessKeyId
,
accessKeySecret
);
String
ossFileKey
=
CuscStringUtils
.
generateUuid
()+
"."
+
suffix
;
PutObjectRequest
request
=
new
PutObjectRequest
(
bucketName
,
ossFileKey
,
inputStream
);
ossClient
.
putObject
(
request
);
ossClient
.
shutdown
();
return
ossFileKey
;
}
@Override
public
String
upLoadFileBase64Img
(
String
base64
,
String
suffix
)
{
try
{
byte
[]
bytes
=
Base64Decoder
.
decode
(
base64
);
ByteArrayInputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
return
upLoadFile
(
inputStream
,
suffix
);
}
catch
(
Exception
e
)
{
log
.
error
(
"upLoadFileBase64Img has error"
);
}
return
""
;
}
@Override
public
String
getFileUrl
(
String
fileKey
)
{
// 创建OSSClient实例。
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessKeyId
,
accessKeySecret
);
Date
date
=
new
Date
(
System
.
currentTimeMillis
()
+(
3600L
*
1000
)
);
URL
url
=
ossClient
.
generatePresignedUrl
(
bucketName
,
fileKey
,
date
);
log
.
info
(
"OssFileServiceImpl getFileUrl fileKey = {},url = {}"
,
fileKey
,
url
.
toString
());
return
url
.
toString
();
}
@Override
public
String
downLoadBase64
(
String
fileKey
)
{
try
{
// 创建OSSClient实例。
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessKeyId
,
accessKeySecret
);
GetObjectRequest
request
=
new
GetObjectRequest
(
bucketName
,
fileKey
);
OSSObject
object
=
ossClient
.
getObject
(
request
);
InputStream
inputStream
=
object
.
getObjectContent
();
byte
[]
bytes
=
IOUtils
.
toByteArray
(
inputStream
);
return
Base64Encoder
.
encode
(
bytes
);
}
catch
(
Exception
e
)
{
throw
new
CuscUserException
(
ResponseCode
.
SYSTEM_ERROR
.
getCode
(),
"文件oss下载失败"
);
}
}
@Override
public
Double
getFileSize
(
String
fileKey
)
{
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessKeyId
,
accessKeySecret
);
boolean
existFlag
=
ossClient
.
doesObjectExist
(
bucketName
,
fileKey
);
if
(!
existFlag
){
throw
new
CuscUserException
(
"500"
,
"文件不存在"
);
}
ObjectMetadata
objectMetadata
=
ossClient
.
getObjectMetadata
(
bucketName
,
fileKey
);
Double
fileSize
=
(
double
)
objectMetadata
.
getContentLength
()/
1024
;
ossClient
.
shutdown
();
return
fileSize
;
}
@Override
public
byte
[]
downLoadBytes
(
String
fileKey
)
{
// 创建OSSClient实例。
OSS
ossClient
=
new
OSSClientBuilder
().
build
(
endpoint
,
accessKeyId
,
accessKeySecret
);
GetObjectRequest
request
=
new
GetObjectRequest
(
bucketName
,
fileKey
);
OSSObject
object
=
ossClient
.
getObject
(
request
);
InputStream
inputStream
=
object
.
getObjectContent
();
try
{
byte
[]
bytes
=
IOUtils
.
toByteArray
(
inputStream
);
return
bytes
;
}
catch
(
Exception
e
){
throw
new
CuscUserException
(
ResponseCode
.
SYSTEM_ERROR
.
getCode
(),
"文件oss bytes下载失败"
);
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrInfoChangeServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrInfoChangeDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrInfoChangeService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* Description: 通用实名更换service
* <br />
* CreateDate 2022-01-26 10:36:27
*
* @author yuyi
**/
@Service
@Slf4j
public
class
RnrInfoChangeServiceImpl
implements
IRnrInfoChangeService
{
@Override
public
Response
rnrChange
(
RnrInfoChangeDTO
bean
)
{
return
null
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrNoticeTemplateConfigServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.RnrNoticeTemplateConfigConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.RnrNoticeTemplateConfigDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.RnrNoticeTemplateConfigPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrNoticeTemplateConfigDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrNoticeTemplateConfigService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 消息模板配置(RnrNoticeTemplateConfig)表服务实现类
*
* @author yuy336
* @since 2022-06-01 11:07:09
*/
@Service
public
class
RnrNoticeTemplateConfigServiceImpl
extends
ServiceImpl
<
RnrNoticeTemplateConfigDao
,
RnrNoticeTemplateConfigPO
>
implements
IRnrNoticeTemplateConfigService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrNoticeTemplateConfigDTO
getByUuid
(
RnrNoticeTemplateConfigDTO
bean
)
{
RnrNoticeTemplateConfigPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());;
return
RnrNoticeTemplateConfigConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrNoticeTemplateConfigDTO
>
queryByList
(
RnrNoticeTemplateConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
RnrNoticeTemplateConfigPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrNoticeTemplateConfigConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
RnrNoticeTemplateConfigDTO
>
queryByPage
(
RnrNoticeTemplateConfigDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Page
<
RnrNoticeTemplateConfigPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
RnrNoticeTemplateConfigDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeTemplateConfigDTO
insert
(
RnrNoticeTemplateConfigDTO
bean
)
{
RnrNoticeTemplateConfigPO
rnrNoticeTemplateConfigPO
=
RnrNoticeTemplateConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
rnrNoticeTemplateConfigPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
rnrNoticeTemplateConfigPO
);
bean
.
setUuid
(
rnrNoticeTemplateConfigPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrNoticeTemplateConfigDTO
update
(
RnrNoticeTemplateConfigDTO
bean
)
{
RnrNoticeTemplateConfigPO
rnrNoticeTemplateConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeTemplateConfigPO
==
null
){
return
null
;
}
RnrNoticeTemplateConfigPO
tmpBean
=
RnrNoticeTemplateConfigConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
rnrNoticeTemplateConfigPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
RnrNoticeTemplateConfigDTO
bean
)
{
RnrNoticeTemplateConfigPO
rnrNoticeTemplateConfigPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
rnrNoticeTemplateConfigPO
==
null
)
{
return
false
;
}
RnrNoticeTemplateConfigPO
tmpBean
=
new
RnrNoticeTemplateConfigPO
();
tmpBean
.
setId
(
rnrNoticeTemplateConfigPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
RnrNoticeTemplateConfigPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrOrderOperationLogServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.RnrOrderOperationLogConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.RnrOrderOperationLogDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.RnrOrderOperationLogPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderOperationLogDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrOrderOperationLogService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 实名工单操作日志(MgRnrOrderOperationLog)表服务实现类
*
* @author yuy336
* @since 2022-03-04 10:07:54
*/
@Service
public
class
RnrOrderOperationLogServiceImpl
extends
ServiceImpl
<
RnrOrderOperationLogDao
,
RnrOrderOperationLogPO
>
implements
IRnrOrderOperationLogService
{
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrOrderOperationLogDTO
getByUuid
(
RnrOrderOperationLogDTO
bean
)
{
RnrOrderOperationLogPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());;
return
RnrOrderOperationLogConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrOrderOperationLogDTO
>
queryByList
(
RnrOrderOperationLogDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
List
<
RnrOrderOperationLogPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrOrderOperationLogConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
RnrOrderOperationLogDTO
>
queryByPage
(
RnrOrderOperationLogDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
Page
<
RnrOrderOperationLogPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
RnrOrderOperationLogDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrOrderOperationLogDTO
insert
(
RnrOrderOperationLogDTO
bean
)
{
RnrOrderOperationLogPO
mgRnrOrderOperationLogPO
=
RnrOrderOperationLogConverter
.
INSTANCE
.
dtoToPo
(
bean
);
mgRnrOrderOperationLogPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
this
.
save
(
mgRnrOrderOperationLogPO
);
bean
.
setUuid
(
mgRnrOrderOperationLogPO
.
getUuid
());
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrOrderOperationLogDTO
update
(
RnrOrderOperationLogDTO
bean
)
{
RnrOrderOperationLogPO
mgRnrOrderOperationLogPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
mgRnrOrderOperationLogPO
==
null
){
return
null
;
}
RnrOrderOperationLogPO
tmpBean
=
RnrOrderOperationLogConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
mgRnrOrderOperationLogPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
@Override
public
Integer
insertBatchOrderOperationLog
(
List
<
RnrOrderOperationLogPO
>
orderOptLogList
)
{
return
baseMapper
.
insertBatchOrderOperationLog
(
orderOptLogList
);
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
private
RnrOrderOperationLogPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrOrderServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.dto.RnrMqMessageDTO
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogSubTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderType
;
import
com.cusc.nirvana.user.rnr.mg.converter.RnrOrderConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.RnrOrderDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.RnrOrderOperationLogPO
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.RnrOrderPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.*
;
import
com.cusc.nirvana.user.rnr.mg.service.IOrderNoticeService
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrOrderOperationLogService
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrOrderService
;
import
com.cusc.nirvana.user.rnr.mg.util.crypt.DesensitizationUtil
;
import
com.cusc.nirvana.user.rnr.workorder.constants.WorkOrderTypeEnum
;
import
com.cusc.nirvana.user.rnr.workorder.context.WorkOrderContext
;
import
com.cusc.nirvana.user.rnr.workorder.dto.WorkOrderStarRequestDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
/**
* 实名工单信息(MgRnrOrder)表服务实现类
*
* @author yuy336
* @since 2022-01-26 13:49:52
*/
@Service
@Slf4j
public
class
RnrOrderServiceImpl
extends
ServiceImpl
<
RnrOrderDao
,
RnrOrderPO
>
implements
IRnrOrderService
{
@Autowired
private
IRnrOrderOperationLogService
rnrOrderOperationLogService
;
@Autowired
private
IOrderNoticeService
orderNoticeService
;
@Autowired
private
WorkOrderContext
workOrderContext
;
@Autowired
private
RnrOrderDao
rnrOrderDao
;
@Value
(
"${mg.workOrder.applicationId:112f1c67de134e669379e24f160fb25a}"
)
private
String
applicationId
;
@Value
(
"${mg.workOrder.sendOrderSystemFlag:0}"
)
private
String
sendOrderSystemFlag
;
/**
* 通过UUID查询单条数据
*
* @param bean
* @return 实例对象
*/
@Override
public
RnrOrderDTO
getByUuid
(
RnrOrderDTO
bean
)
{
RnrOrderPO
record
=
this
.
getPoByUuid
(
bean
.
getUuid
());
return
RnrOrderConverter
.
INSTANCE
.
poToDto
(
record
);
}
/**
* 通过查询条件查询集合数据
*
* @param bean
* @return 集合对象
*/
@Override
public
List
<
RnrOrderDTO
>
queryByList
(
RnrOrderDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getRnrId
()),
"rnr_id"
,
bean
.
getRnrId
());
queryWrapper
.
eq
(
CuscStringUtils
.
isNotEmpty
(
bean
.
getOrderSource
()),
"order_source"
,
bean
.
getOrderSource
());
queryWrapper
.
eq
(
bean
.
getRnrBizzType
()
!=
null
,
"rnr_bizz_type"
,
bean
.
getRnrBizzType
());
queryWrapper
.
eq
(
bean
.
getOrderType
()
!=
null
,
"order_type"
,
bean
.
getOrderType
());
queryWrapper
.
eq
(
bean
.
getOrderStatus
()
!=
null
,
"order_status"
,
bean
.
getOrderStatus
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getUuidList
()),
"uuid"
,
bean
.
getUuidList
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getRnrIdList
()),
"rnr_id"
,
bean
.
getRnrIdList
());
List
<
RnrOrderPO
>
record
=
this
.
list
(
queryWrapper
);
return
RnrOrderConverter
.
INSTANCE
.
poListToDtoList
(
record
);
}
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
@Override
public
PageResult
<
RnrOrderDTO
>
queryByPage
(
RnrOrderDTO
bean
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
orderByDesc
(
"create_time"
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
eq
(
bean
.
getOrderStatus
()
!=
null
,
"order_status"
,
bean
.
getOrderStatus
());
queryWrapper
.
le
(
bean
.
getCreateTime
()
!=
null
,
"create_time"
,
bean
.
getCreateTime
());
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
bean
.
getTenantNo
()),
"tenant_no"
,
bean
.
getTenantNo
());
queryWrapper
.
eq
(
null
!=
bean
.
getOrderType
(),
"order_type"
,
bean
.
getOrderType
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getUuidList
()),
"uuid"
,
bean
.
getUuidList
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getRnrIdList
()),
"rnr_id"
,
bean
.
getRnrIdList
());
queryWrapper
.
gt
(
null
!=
bean
.
getCreateTimeQueryStart
(),
"create_time"
,
bean
.
getCreateTimeQueryStart
());
queryWrapper
.
lt
(
null
!=
bean
.
getCreateTimeQueryEnd
(),
"create_time"
,
bean
.
getCreateTimeQueryEnd
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getOrgIdList
()),
"org_id"
,
bean
.
getOrgIdList
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getOrderStatusList
()),
"order_status"
,
bean
.
getOrderStatusList
());
queryWrapper
.
in
(!
CollectionUtils
.
isEmpty
(
bean
.
getOrderTypeList
()),
"order_type"
,
bean
.
getOrderTypeList
());
Page
<
RnrOrderPO
>
page
=
this
.
page
(
new
Page
<>(
bean
.
getCurrPage
(),
bean
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
page
,
RnrOrderDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrOrderDTO
insert
(
RnrOrderDTO
bean
)
{
RnrOrderPO
rnrOrderPO
=
RnrOrderConverter
.
INSTANCE
.
dtoToPo
(
bean
);
if
(
CuscStringUtils
.
isEmpty
(
bean
.
getUuid
())){
rnrOrderPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
bean
.
setUuid
(
rnrOrderPO
.
getUuid
());
}
this
.
save
(
rnrOrderPO
);
return
bean
;
}
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
@Override
@Transactional
public
RnrOrderDTO
update
(
RnrOrderDTO
bean
)
{
RnrOrderPO
MgRnrOrderPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
MgRnrOrderPO
==
null
)
{
return
null
;
}
RnrOrderPO
tmpBean
=
RnrOrderConverter
.
INSTANCE
.
dtoToPo
(
bean
);
tmpBean
.
setId
(
MgRnrOrderPO
.
getId
());
this
.
updateById
(
tmpBean
);
return
bean
;
}
/**
* 通过主键删除数据
*
* @param bean 实例对象
* @return 是否成功
*/
@Override
@Transactional
public
boolean
deleteById
(
RnrOrderDTO
bean
)
{
RnrOrderPO
MgRnrOrderPO
=
this
.
getPoByUuid
(
bean
.
getUuid
());
if
(
MgRnrOrderPO
==
null
)
{
return
false
;
}
RnrOrderPO
tmpBean
=
new
RnrOrderPO
();
tmpBean
.
setId
(
MgRnrOrderPO
.
getId
());
tmpBean
.
setIsDelete
(
CommonDeleteEnum
.
DELETED
.
getCode
());
return
this
.
updateById
(
tmpBean
);
}
@Override
public
void
sendBatchOrderMQ
(
List
<
RnrOrderDTO
>
orderList
,
Integer
orderDelay
)
{
RnrMqMessageDTO
<
List
<
RnrOrderDTO
>>
mqMsg
;
if
(
orderDelay
!=
null
&&
orderDelay
>
0
)
{
mqMsg
=
RnrMqMessageDTO
.
createDelayMsg
(
orderDelay
,
orderList
);
}
else
{
mqMsg
=
RnrMqMessageDTO
.
createMsg
(
orderList
);
}
orderNoticeService
.
sendOrderMsg
(
mqMsg
);
}
@Override
public
void
insertOrder
(
RnrOrderDTO
order
)
{
// 当前时间
Date
now
=
new
Date
();
RnrOrderPO
orderPO
=
RnrOrderConverter
.
INSTANCE
.
dtoToPo
(
order
);
if
(
Boolean
.
TRUE
.
equals
(
order
.
getSendWorkOrder
()))
{
orderPO
.
setOrderStatus
(
RnrOrderStatusEnum
.
ASSIGNMENT
.
getCode
());
}
else
{
orderPO
.
setAuditTime
(
now
);
orderPO
.
setAllocateTime
(
now
);
}
// 存操作
RnrOrderOperationLogPO
orderOperationLogPO
=
new
RnrOrderOperationLogPO
();
orderOperationLogPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
orderOperationLogPO
.
setOrderId
(
orderPO
.
getUuid
());
orderOperationLogPO
.
setCreator
(
orderPO
.
getCreator
()
==
null
?
"0"
:
orderPO
.
getCreator
());
orderOperationLogPO
.
setOptType
(
RnrOptLogSubTypeEnum
.
CREATE_OPERATE
.
getCode
());
orderOperationLogPO
.
setUpdatedCode
(
0L
);
orderOperationLogPO
.
setUpdatedContent
(
"本单由工号:"
+
orderPO
.
getCreator
()
+
"创建"
);
orderOperationLogPO
.
setOptTime
(
now
);
orderOperationLogPO
.
setTenantNo
(
orderPO
.
getTenantNo
());
orderOperationLogPO
.
setRnrId
(
orderPO
.
getRnrId
());
baseMapper
.
insert
(
orderPO
);
rnrOrderOperationLogService
.
insertBatchOrderOperationLog
(
Collections
.
singletonList
(
orderOperationLogPO
));
}
@Override
public
Integer
insertBatchOrder
(
List
<
RnrOrderDTO
>
orderList
)
{
// 当前时间
Date
now
=
new
Date
();
RnrOrderPO
orderPO
;
List
<
RnrOrderPO
>
orderSaveList
=
new
ArrayList
<>();
RnrOrderOperationLogPO
orderOperationLogPO
;
List
<
RnrOrderOperationLogPO
>
orderLogList
=
new
ArrayList
<>();
// List<RnrOrderDTO> failedOrderDTOS = new ArrayList<>();
for
(
RnrOrderDTO
order
:
orderList
)
{
// 存工单
orderPO
=
RnrOrderConverter
.
INSTANCE
.
dtoToPo
(
order
);
if
(
orderPO
.
getOrderStatus
()
==
RnrOrderStatusEnum
.
PASS
.
getCode
())
{
orderPO
.
setAuditTime
(
now
);
orderPO
.
setAllocateTime
(
now
);
}
orderSaveList
.
add
(
orderPO
);
// //没有审核通过的工单变成待审核状态,进入工单系统,手工审核
// if (Boolean.TRUE.equals(order.getSendWorkOrder())) {
// orderPO.setOrderStatus(RnrOrderStatusEnum.ASSIGNMENT.getCode());
// failedOrderDTOS.add(order);
// }
// 存操作
orderOperationLogPO
=
new
RnrOrderOperationLogPO
();
orderOperationLogPO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
orderOperationLogPO
.
setCreator
(
orderPO
.
getCreator
()
==
null
?
"0"
:
orderPO
.
getCreator
());
orderOperationLogPO
.
setOptType
(
RnrOptLogSubTypeEnum
.
CREATE_OPERATE
.
getCode
());
orderOperationLogPO
.
setUpdatedCode
(
0L
);
orderOperationLogPO
.
setUpdatedContent
(
"本单由工号:"
+
orderPO
.
getCreator
()
+
"创建"
);
orderOperationLogPO
.
setOptTime
(
now
);
orderOperationLogPO
.
setOrderId
(
orderPO
.
getUuid
());
orderOperationLogPO
.
setTenantNo
(
orderPO
.
getTenantNo
());
orderOperationLogPO
.
setRnrId
(
orderPO
.
getRnrId
());
orderLogList
.
add
(
orderOperationLogPO
);
}
baseMapper
.
insertBatchOrder
(
orderSaveList
);
rnrOrderOperationLogService
.
insertBatchOrderOperationLog
(
orderLogList
);
// sendOrderSystem(failedOrderDTOS);
return
orderSaveList
.
size
();
}
@Override
public
void
sendThirdBatchOrder
(
List
<
RnrOrderDTO
>
orderList
)
{
}
/**
* 通知工单系统
*/
@Override
public
void
sendOrderSystem
(
RnrOrderDTO
rnrOrderDTO
,
MgRnrInfoDTO
mgRnrInfoDTO
,
List
<
MgRnrCardInfoDTO
>
list
)
{
if
(
"0"
.
equals
(
sendOrderSystemFlag
)){
log
.
info
(
"work order begin local verify mode, dont send rnrOrderSystem"
);
return
;
}
String
name
=
DesensitizationUtil
.
desensitizeName
(
mgRnrInfoDTO
.
getFullName
());
String
phone
=
DesensitizationUtil
.
desensitizePhone
(
mgRnrInfoDTO
.
getPhone
());
WorkOrderStarRequestDTO
orderStarRequestDTO
;
if
(
CollectionUtils
.
isEmpty
(
list
)){
orderStarRequestDTO
=
orderDtoToWorkOrderDTO
(
rnrOrderDTO
,
name
,
phone
,
""
,
""
);
}
else
{
MgRnrCardInfoDTO
mgRnrCardInfoDTO
=
list
.
get
(
0
);
boolean
notSingle
=
list
.
size
()
>
1
;
String
vin
=
notSingle
?
mgRnrCardInfoDTO
.
getIotId
()+
",..."
:
mgRnrCardInfoDTO
.
getIotId
();
String
iccid
=
notSingle
?
mgRnrCardInfoDTO
.
getIccid
()+
",..."
:
mgRnrCardInfoDTO
.
getIccid
();
orderStarRequestDTO
=
orderDtoToWorkOrderDTO
(
rnrOrderDTO
,
name
,
phone
,
vin
,
iccid
);
}
// for (RnrOrderDTO rnrOrderDTO : orderList) {
log
.
info
(
"发送工单:{}"
,
JSON
.
toJSONString
(
orderStarRequestDTO
));
String
workOrderCode
=
workOrderContext
.
getHandler
().
startOrder
(
orderStarRequestDTO
);
if
(!
StringUtils
.
isBlank
(
workOrderCode
))
{
this
.
baseMapper
.
updateOrderApproveNo
(
rnrOrderDTO
.
getUuid
(),
workOrderCode
);
}
else
{
log
.
error
(
"发送工单系统失败,订单UUID:"
+
rnrOrderDTO
.
getUuid
());
throw
new
CuscUserException
(
""
,
"发送工单系统失败"
);
}
// }
}
/**
* 更新工单状态
*/
@Override
@Transactional
public
void
updateOrderStatus
(
List
<
String
>
orderIds
,
int
status
)
{
this
.
baseMapper
.
updateOrderStatus
(
orderIds
,
status
);
}
//转换工单
private
WorkOrderStarRequestDTO
orderDtoToWorkOrderDTO
(
RnrOrderDTO
rnrOrderDTO
,
String
...
args
)
{
WorkOrderStarRequestDTO
requestDTO
=
new
WorkOrderStarRequestDTO
();
requestDTO
.
setBusinessObjectId
(
rnrOrderDTO
.
getUuid
());
requestDTO
.
setTenantUuid
(
rnrOrderDTO
.
getTenantNo
());
RnrOrderType
typeByCode
=
RnrOrderType
.
getTypeByCode
(
rnrOrderDTO
.
getOrderType
());
if
(
typeByCode
==
null
)
{
throw
new
CuscUserException
(
""
,
"工单类型错误"
);
}
WorkOrderTypeEnum
workOrderTypeEnum
=
WorkOrderTypeEnum
.
getWorkOrderTypeEnumByRnrOrderType
(
typeByCode
);
requestDTO
.
setWorkOrderKey
(
workOrderTypeEnum
.
getKey
());
requestDTO
.
setName
(
workOrderTypeEnum
.
getWorkOrderName
(
args
));
requestDTO
.
setStartUserId
(
rnrOrderDTO
.
getCreator
());
requestDTO
.
setApplicationUuid
(
applicationId
);
return
requestDTO
;
}
/**
* 通过UUID查询单条数据
*
* @param uuid
* @return 实例对象
*/
public
RnrOrderPO
getPoByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
return
this
.
getOne
(
queryWrapper
);
}
public
Integer
orderTotal
(
LocalVerifyListRqDTO
rq
)
{
return
rnrOrderDao
.
orderTotal
(
rq
);
}
public
List
<
LocalVerifyListDTO
>
orderList
(
LocalVerifyListRqDTO
rq
)
{
return
rnrOrderDao
.
orderList
(
rq
,
(
rq
.
getCurrPage
()
-
1
)
*
rq
.
getPageSize
(),
rq
.
getPageSize
());
}
@Override
public
String
getOrganNameForOrgId
(
String
orgId
){
return
rnrOrderDao
.
getOrganNameForOrgId
(
orgId
);
}
@Override
public
String
getOrganNameForOrganCode
(
String
organCode
){
return
rnrOrderDao
.
getOrganNameForOrganCode
(
organCode
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrRelationServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.cache.CacheFactory
;
import
com.cache.exception.CacheException
;
import
com.cache.redis.util.FastJsonUtils
;
import
com.cusc.nirvana.common.loader.CollectionUtils
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.eiam.dto.OrganizationDTO
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.constants.RedisConstant
;
import
com.cusc.nirvana.user.rnr.common.constants.ResponseCode
;
import
com.cusc.nirvana.user.rnr.mg.constants.NoticeStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.PassCodeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrBizzTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogBizTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogOptTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOptLogSubTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderAuditTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderSourceEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderType
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrResponseCode
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrStatus
;
import
com.cusc.nirvana.user.rnr.mg.converter.MgRnrCardInfoConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.OrgSimRelDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgRnrCardInfoPO
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.MgRnrOperationLogPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.InfoLogCommentDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgCardNoticeDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCompanyInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrFileDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrLiaisonInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrRelationDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.*
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrOrderUtil
;
import
com.cusc.nirvana.user.rnr.mg.util.SpringValidationUtil
;
import
com.cusc.nirvana.user.rnr.mg.validation.group.SaveRelation
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.context.i18n.LocaleContextHolder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.validation.ConstraintViolation
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
/**
* Description: 实名关系service
* <br />
* CreateDate 2022-01-26 10:36:27
*
* @author yuyi
**/
@Service
@Slf4j
public
class
RnrRelationServiceImpl
implements
IRnrRelationService
{
@Autowired
private
IRnrOrderService
rnrOrderService
;
@Autowired
private
IMgRnrInfoService
rnrInfoService
;
@Autowired
private
IMgRnrCardInfoService
rnrCardInfoService
;
@Autowired
private
IMgRnrCompanyInfoService
rnrCompanyInfoService
;
@Autowired
private
IMgRnrTagService
rnrTagService
;
@Autowired
private
IMgRnrLiaisonInfoService
rnrLiaisonInfoService
;
@Autowired
private
IMgRnrFileService
rnrFileService
;
@Resource
private
CacheFactory
cacheFactory
;
@Autowired
private
IMgRnrOperationLogService
rnrOperationLogService
;
@Autowired
@Lazy
private
IMgRnrCardNoticeService
cardNoticeService
;
@Autowired
private
IProjectService
projectService
;
@Autowired
private
IMgRnrCompanyInfoService
mgRnrCompanyInfoService
;
@Autowired
private
ICiamService
ciamService
;
@Autowired
private
IOrganService
organService
;
@Resource
private
OrgSimRelDao
orgSimRelDao
;
@Resource
private
IRnrUnboundService
unboundService
;
@Resource
private
IOrgSimRelService
iOrgSimRelService
;
@Override
@Transactional
public
Response
saveRnrRelation
(
RnrRelationDTO
bean
)
{
log
.
info
(
"Mg realtionInfo:"
+
JSON
.
toJSONString
(
bean
));
if
(
CollectionUtils
.
isEmpty
(
bean
.
getCardList
()))
{
return
Response
.
createError
(
ResponseCode
.
ICCID_NOT_NULL
.
getMsg
(),
ResponseCode
.
ICCID_NOT_NULL
.
getCode
());
}
try
{
unboundService
.
checkUnBindVehicle
(
bean
);
}
catch
(
CuscUserException
e
)
{
throw
e
;
}
catch
(
Exception
e
)
{
log
.
error
(
"checkUnBindVehicle has error orderId = {}"
,
bean
.
getOrder
().
getUuid
(),
e
);
}
MgRnrInfoDTO
info
=
bean
.
getInfo
();
RnrOrderDTO
order
=
bean
.
getOrder
();
// //通过证件号查询路由键
// Response<Long> routingKeyResp = systemRoutingService.getOrCreateRoutingKey(info.getCertNumber());
// if (routingKeyResp == null || !routingKeyResp.isSuccess()) {
// return routingKeyResp;
// }
// info.setRoutingKey(routingKeyResp.getData());
//设置订单信息
order
.
setRnrId
(
info
.
getUuid
());
// order.setRoutingKey(routingKeyResp.getData());
/*order.setFinalApproveTime(new Date(System.currentTimeMillis() + DateUtils.stringHourToMills(RnrConstants.DEFAULT_AUDIT_TIME)));*/
if
(
order
.
isAutoRnr
())
{
order
.
setUpdatedCode
(
PassCodeEnum
.
AUTO_SUCC
.
getCode
());
if
(
order
.
getOrderType
().
intValue
()
==
RnrOrderType
.
REBINDING
.
getCode
())
{
order
.
setOldOrderStatus
(
RnrOrderStatusEnum
.
PASS
.
getCode
());
}
order
.
setAuditType
(
RnrOrderAuditTypeEnum
.
AUTO
.
getCode
());
}
/*else {
order.setAuditType(RnrOrderAuditTypeEnum.MANUAL.getCode());
order.setOrderStatus(RnrOrderStatusEnum.ASSIGNMENT.getCode());
info.setRnrStatus(RnrStatus.INIT.getCode());
}*/
//todo 改为项目配置
//String hour = brandRepo.findFinalApproveHourByBrandId(brandId);
//if (StringUtils.isBlank(hour)) {
// hour = CuscRnrConstants.DEFAULT_AUDIT_TIME;
//}
//查询车企信息
OrganizationDTO
organ
=
new
OrganizationDTO
();
organ
.
setTenantNo
(
info
.
getTenantNo
());
organ
.
setUuid
(
info
.
getOrgId
());
Response
<
OrganizationDTO
>
organResp
=
organService
.
getCarSubOrganByOrgId
(
organ
);
if
(
organResp
==
null
||
!
organResp
.
isSuccess
()
||
organResp
.
getData
()
==
null
){
return
Response
.
createError
(
ResponseCode
.
CAR_SUB_ORGAN_NOT_FOUND
.
getMsg
(),
ResponseCode
.
CAR_SUB_ORGAN_NOT_FOUND
.
getCode
());
}
InfoLogCommentDTO
comment
=
new
InfoLogCommentDTO
();
comment
.
setUserId
(
info
.
getUuid
());
comment
.
setLang
(
LocaleContextHolder
.
getLocale
().
toString
());
String
logComment
=
FastJsonUtils
.
convertObjectToJSON
(
comment
);
//组装卡信息
List
<
MgRnrCardInfoPO
>
cardPOList
=
new
ArrayList
<>();
MgRnrCardInfoPO
cardInfoPO
;
//日志信息
List
<
MgRnrOperationLogPO
>
cardLogList
=
new
ArrayList
<>();
MgRnrOperationLogPO
rnrOptLog
;
//mq消息
List
<
MgCardNoticeDTO
>
mqList
=
new
ArrayList
<>();
MgCardNoticeDTO
mqDTO
;
List
<
MgRnrCardInfoDTO
>
mgRnrCardInfoDTOList
=
new
ArrayList
<>();
MgRnrCardInfoDTO
mgRnrCardInfoDTO
=
new
MgRnrCardInfoDTO
();
for
(
MgRnrCardInfoDTO
cardDTO
:
bean
.
getCardList
())
{
mgRnrCardInfoDTO
.
setIccid
(
cardDTO
.
getIccid
());
mgRnrCardInfoDTO
.
setIotId
(
cardDTO
.
getIotId
());
mgRnrCardInfoDTOList
.
add
(
mgRnrCardInfoDTO
);
//设置卡信息
cardDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
cardDTO
.
setRnrId
(
info
.
getUuid
());
cardDTO
.
setTenantNo
(
info
.
getTenantNo
());
cardDTO
.
setRoutingKey
(
info
.
getRoutingKey
());
cardDTO
.
setNoticeStatus
(
NoticeStatusEnum
.
NONEED
.
getCode
());
cardDTO
.
setOrderId
(
order
.
getUuid
());
//设置日志信息
rnrOptLog
=
new
MgRnrOperationLogPO
();
rnrOptLog
.
setUuid
(
CuscStringUtils
.
generateUuid
());
rnrOptLog
.
setBizType
(
RnrOptLogBizTypeEnum
.
CARD
.
getCode
());
rnrOptLog
.
setBizUuid
(
cardDTO
.
getUuid
());
rnrOptLog
.
setOptType
(
RnrOptLogOptTypeEnum
.
OPERATE_RNR
.
getCode
());
rnrOptLog
.
setOptSubType
(
order
.
getAuditType
().
intValue
()
==
RnrOrderAuditTypeEnum
.
AUTO
.
getCode
()
?
RnrOptLogSubTypeEnum
.
AUTO_ACCESS_OPERATE
.
getCode
()
:
RnrOptLogSubTypeEnum
.
RNR_SHIFT_TO_ARTIFICIAL
.
getCode
());
rnrOptLog
.
setOptTime
(
new
Date
());
rnrOptLog
.
setContent
(
logComment
);
rnrOptLog
.
setIsBatchOrder
(
order
.
getIsBatchOrder
());
rnrOptLog
.
setSource
(
order
.
getOrderSource
());
rnrOptLog
.
setSerialNumber
(
order
.
getSerialNumber
());
rnrOptLog
.
setCreator
(
info
.
getCreator
());
rnrOptLog
.
setTenantNo
(
order
.
getTenantNo
());
cardLogList
.
add
(
rnrOptLog
);
//不发送工单系统,则表示自动审核,需要发送mq
if
(!
order
.
getSendWorkOrder
()
&&
RnrOrderStatusEnum
.
PASS
.
getCode
().
equals
(
bean
.
getOrder
().
getOrderStatus
()))
{
cardDTO
.
setNoticeStatus
(
NoticeStatusEnum
.
NEED
.
getCode
());
cardDTO
.
setRnrStatus
(
RnrOrderUtil
.
orderTypeToRnrStatus
(
order
.
getOrderType
()).
getCode
());
//设置消息信息
mqDTO
=
new
MgCardNoticeDTO
();
mqDTO
.
setVin
(
cardDTO
.
getIotId
());
mqDTO
.
setRnrBizzType
(
RnrOrderUtil
.
orderTypeToNoticeType
(
order
.
getOrderType
()).
getCode
());
mqDTO
.
setOrderId
(
cardDTO
.
getOrderId
());
mqDTO
.
setIccid
(
cardDTO
.
getIccid
());
mqDTO
.
setManufacturerOrgId
(
organResp
.
getData
().
getUuid
());
mqDTO
.
setResultCode
(
bean
.
getOrder
().
getOrderStatus
());
mqDTO
.
setTenantNo
(
info
.
getTenantNo
());
mqDTO
.
setOrgId
(
info
.
getOrgId
());
mqList
.
add
(
mqDTO
);
}
else
{
cardDTO
.
setRnrStatus
(
RnrStatus
.
INIT
.
getCode
());
}
cardDTO
.
setRnrId
(
info
.
getUuid
());
cardInfoPO
=
MgRnrCardInfoConverter
.
INSTANCE
.
dtoToPo
(
cardDTO
);
cardPOList
.
add
(
cardInfoPO
);
}
//保存实名表数据
rnrInfoService
.
insert
(
info
);
//保存卡信息
rnrCardInfoService
.
addRnrCardBatch
(
cardPOList
);
//保存tag信息
if
(
CollectionUtils
.
isNotEmpty
(
bean
.
getRnrTagList
()))
{
rnrTagService
.
addRnrTagFromRnrInfo
(
info
,
bean
.
getRnrTagList
());
}
//保存联系人信息
if
(
CollectionUtils
.
isNotEmpty
(
bean
.
getRnrLiaisonList
()))
{
rnrLiaisonInfoService
.
addRnrLiaisonFromRnrInfo
(
info
,
bean
.
getRnrLiaisonList
());
}
//保存公司信息
if
(
bean
.
getCompanyInfo
()
!=
null
)
{
mgRnrCompanyInfoService
.
insert
(
bean
.
getCompanyInfo
());
}
//保存图片信息
rnrFileService
.
addRnrFileFromInfo
(
info
,
bean
.
getRnrFileList
());
//保存工单信息
rnrOrderService
.
insertOrder
(
order
);
//发送工单系统
if
(
order
.
getSendWorkOrder
())
{
rnrOrderService
.
sendOrderSystem
(
order
,
info
,
bean
.
getCardList
());
}
// mq发送工单
// rnrOrderService.sendBatchOrderMQ(orderList, Integer.parseInt(order.getOrderDelay()));
//保存操作日志-异步
rnrOperationLogService
.
addRnrOperationLogPOBatch
(
cardLogList
);
//非委托人模式,自然人新车和二手车成功需要创建用户
if
(!
bean
.
getOrder
().
getSendWorkOrder
()
&&
RnrOrderUtil
.
needCreateUser
(
bean
.
getInfo
(),
bean
.
getOrder
())
&&
!
RnrOrderSourceEnum
.
H5_CUSTOMER
.
getCode
().
equals
(
bean
.
getOrder
().
getOrderSource
()))
{
ciamService
.
createUser
(
bean
.
getInfo
());
}
//异步发送审核成功消息
if
(
CollectionUtils
.
isNotEmpty
(
mqList
))
{
//如果是绑定或者解绑需要做一下数据更新处理
if
(
RnrBizzTypeEnum
.
Bind
.
getCode
().
equals
(
order
.
getRnrBizzType
())||
RnrBizzTypeEnum
.
ChangeBinding
.
getCode
().
equals
(
order
.
getRnrBizzType
())){
iOrgSimRelService
.
updateVin
(
mgRnrCardInfoDTOList
);
}
cardNoticeService
.
sendCardNotice
(
mqList
);
}
return
Response
.
createSuccess
();
}
@Override
public
Response
syncRnrRelation
(
RnrRelationDTO
bean
)
{
log
.
info
(
"Mg syncRnrRelation:"
+
JSON
.
toJSONString
(
bean
));
if
(
CollectionUtils
.
isEmpty
(
bean
.
getCardList
()))
{
return
Response
.
createError
(
ResponseCode
.
ICCID_NOT_NULL
.
getMsg
(),
ResponseCode
.
ICCID_NOT_NULL
.
getCode
());
}
MgRnrInfoDTO
info
=
bean
.
getInfo
();
RnrOrderDTO
order
=
bean
.
getOrder
();
//组装卡信息
List
<
MgRnrCardInfoPO
>
cardPOList
=
new
ArrayList
<>();
for
(
MgRnrCardInfoDTO
cardDTO
:
bean
.
getCardList
())
{
//设置卡信息
cardDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
cardDTO
.
setRnrId
(
info
.
getUuid
());
cardDTO
.
setTenantNo
(
info
.
getTenantNo
());
cardDTO
.
setRoutingKey
(
info
.
getRoutingKey
());
cardDTO
.
setNoticeStatus
(
NoticeStatusEnum
.
NONEED
.
getCode
());
cardDTO
.
setOrderId
(
order
.
getUuid
());
cardDTO
.
setRnrStatus
(
info
.
getRnrStatus
());
MgRnrCardInfoPO
cardInfoPO
=
MgRnrCardInfoConverter
.
INSTANCE
.
dtoToPo
(
cardDTO
);
cardPOList
.
add
(
cardInfoPO
);
}
//保存实名表数据
rnrInfoService
.
insert
(
info
);
//保存工单信息
rnrOrderService
.
insertOrder
(
order
);
//保存卡信息
rnrCardInfoService
.
addRnrCardBatch
(
cardPOList
);
//保存tag信息
if
(
CollectionUtils
.
isNotEmpty
(
bean
.
getRnrTagList
()))
{
rnrTagService
.
addRnrTagFromRnrInfo
(
info
,
bean
.
getRnrTagList
());
}
//保存联系人信息
if
(
CollectionUtils
.
isNotEmpty
(
bean
.
getRnrLiaisonList
()))
{
rnrLiaisonInfoService
.
addRnrLiaisonFromRnrInfo
(
info
,
bean
.
getRnrLiaisonList
());
}
//保存公司信息
if
(
bean
.
getCompanyInfo
()
!=
null
)
{
mgRnrCompanyInfoService
.
insert
(
bean
.
getCompanyInfo
());
}
//保存图片信息
rnrFileService
.
addRnrFileFromInfo
(
info
,
bean
.
getRnrFileList
());
//非委托人模式,自然人新车和二手车成功需要创建用户
if
(!
bean
.
getOrder
().
getSendWorkOrder
()
&&
RnrOrderUtil
.
needCreateUser
(
bean
.
getInfo
(),
bean
.
getOrder
())
&&
CuscStringUtils
.
isEmpty
(
bean
.
getInfo
().
getUserId
())
&&
!
RnrOrderSourceEnum
.
H5_CUSTOMER
.
getCode
().
equals
(
bean
.
getOrder
().
getOrderSource
()))
{
ciamService
.
createUser
(
bean
.
getInfo
());
}
return
Response
.
createSuccess
(
"同步实名信息成功"
);
}
@Override
public
void
lockRnrIccid
(
String
tenantNo
,
String
iccid
,
String
value
)
{
boolean
lockStatus
=
true
;
try
{
lockStatus
=
cacheFactory
.
getLockService
()
.
setNx
(
RedisConstant
.
RNR_LOCK
+
tenantNo
+
":"
+
iccid
,
value
,
RedisConstant
.
RNR_LOCK_TIME
);
}
catch
(
CacheException
e
)
{
log
.
error
(
"RnrRelationServiceImpl.lockRnrIccid 加锁失败,tenantNo: "
+
tenantNo
+
",iccid: "
+
iccid
+
",value: "
+
value
+
". "
,
e
);
}
//锁定失败
if
(!
lockStatus
)
{
throw
new
CuscUserException
(
RnrResponseCode
.
WAIT_CHECK
.
getCode
(),
RnrResponseCode
.
WAIT_CHECK
.
getDescription
());
}
}
@Override
public
void
lockRnrIccidList
(
String
tenantNo
,
List
<
String
>
iccidList
,
String
value
)
{
for
(
String
iccid
:
iccidList
)
{
lockRnrIccid
(
tenantNo
,
iccid
,
value
);
}
}
@Override
public
void
unLockRnrIccid
(
String
tenantNo
,
String
iccid
)
{
try
{
cacheFactory
.
getLockService
().
delete
(
RedisConstant
.
RNR_LOCK
+
tenantNo
+
":"
+
iccid
);
}
catch
(
CacheException
e
)
{
log
.
error
(
"RnrRelationServiceImpl.unLockRnrIccid 解锁失败,tenantNo: "
+
tenantNo
+
",iccid: "
+
iccid
+
". "
,
e
);
}
}
@Override
public
void
unLockRnrIccidList
(
String
tenantNo
,
List
<
String
>
iccidList
)
{
for
(
String
iccid
:
iccidList
)
{
unLockRnrIccid
(
tenantNo
,
iccid
);
}
}
@Override
public
void
checkIccidStatus
(
String
tenantNo
,
List
<
String
>
iccidList
)
{
MgRnrCardInfoDTO
checkCardDTO
=
new
MgRnrCardInfoDTO
();
checkCardDTO
.
setTenantNo
(
tenantNo
);
checkCardDTO
.
setIccidList
(
iccidList
);
boolean
ret
=
rnrCardInfoService
.
checkIccidExists
(
checkCardDTO
);
if
(
ret
)
{
// 如果是待审核或待人工审核则抛出,已提交申请异常
throw
new
CuscUserException
(
RnrResponseCode
.
WAIT_CHECK
.
getCode
(),
RnrResponseCode
.
WAIT_CHECK
.
getDescription
());
}
}
@Override
public
Response
<
RnrRelationDTO
>
getRnrRelation
(
MgRnrCardInfoDTO
bean
)
{
RnrRelationDTO
rnrRelationDTO
=
new
RnrRelationDTO
();
MgRnrCardInfoDTO
mgRnrCardInfoDTO
=
new
MgRnrCardInfoDTO
();
mgRnrCardInfoDTO
.
setIccid
(
bean
.
getIccid
());
mgRnrCardInfoDTO
.
setTenantNo
(
bean
.
getTenantNo
());
mgRnrCardInfoDTO
=
rnrCardInfoService
.
getNewRnrCardByIccid
(
mgRnrCardInfoDTO
);
if
(
mgRnrCardInfoDTO
==
null
)
{
return
Response
.
createError
(
"未查询到已实名的卡信息"
);
}
rnrRelationDTO
.
setCardList
(
Arrays
.
asList
(
mgRnrCardInfoDTO
));
//查询实名信息
MgRnrInfoDTO
mgRnrInfoDTO
=
new
MgRnrInfoDTO
();
mgRnrInfoDTO
.
setUuid
(
mgRnrCardInfoDTO
.
getRnrId
());
MgRnrInfoDTO
byUuid
=
rnrInfoService
.
getByUuid
(
mgRnrInfoDTO
);
rnrRelationDTO
.
setInfo
(
byUuid
);
if
(
byUuid
!=
null
&&
byUuid
.
getIsCompany
()
!=
0
&&
CuscStringUtils
.
isNotEmpty
(
byUuid
.
getRnrCompanyId
()))
{
MgRnrCompanyInfoDTO
rnrCompanyInfoDTO
=
new
MgRnrCompanyInfoDTO
();
rnrCompanyInfoDTO
.
setUuid
(
byUuid
.
getRnrCompanyId
());
MgRnrCompanyInfoDTO
mgRnrCompanyInfoDTO
=
rnrCompanyInfoService
.
getByUuid
(
rnrCompanyInfoDTO
);
rnrRelationDTO
.
setCompanyInfo
(
mgRnrCompanyInfoDTO
);
}
//查询联系人信息
MgRnrLiaisonInfoDTO
rnrLiaisonInfoDTO
=
new
MgRnrLiaisonInfoDTO
();
rnrLiaisonInfoDTO
.
setRnrId
(
mgRnrCardInfoDTO
.
getRnrId
());
rnrLiaisonInfoDTO
.
setTenantNo
(
mgRnrCardInfoDTO
.
getTenantNo
());
List
<
MgRnrLiaisonInfoDTO
>
liaisonInfoList
=
rnrLiaisonInfoService
.
queryByList
(
rnrLiaisonInfoDTO
);
rnrRelationDTO
.
setRnrLiaisonList
(
liaisonInfoList
);
//查询文件信息
MgRnrFileDTO
fileDTO
=
new
MgRnrFileDTO
();
fileDTO
.
setRnrId
(
mgRnrCardInfoDTO
.
getRnrId
());
fileDTO
.
setTenantNo
(
bean
.
getTenantNo
());
rnrRelationDTO
.
setRnrFileList
(
rnrFileService
.
getByRnrid
(
fileDTO
));
return
Response
.
createSuccess
(
rnrRelationDTO
);
}
//----------------私有方法区-----------------
/**
* 参数验证是否有效
* 只能使用Spring Validate做基础校验,NotNull,NotEmpty,Max,Min等
*
* @param bean
* @return
*/
private
Response
checkDTOValid
(
RnrRelationDTO
bean
)
{
Set
<
ConstraintViolation
<
RnrRelationDTO
>>
constraintViolations
=
SpringValidationUtil
.
groupVerificationParameters
(
bean
,
SaveRelation
.
class
);
if
(!
constraintViolations
.
isEmpty
())
{
String
message
=
constraintViolations
.
stream
().
findFirst
()
.
get
().
getMessage
();
return
Response
.
createError
(
message
,
ResponseCode
.
INVALID_DATA
.
getCode
());
}
return
Response
.
createSuccess
();
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrResultProcessServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.cusc.nirvana.user.rnr.mg.constants.NoticeStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderSourceEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrOrderStatusEnum
;
import
com.cusc.nirvana.user.rnr.mg.constants.RnrStatus
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.ICiamService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrCardInfoService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrCardNoticeService
;
import
com.cusc.nirvana.user.rnr.mg.service.IMgRnrInfoService
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrOrderService
;
import
com.cusc.nirvana.user.rnr.mg.service.IRnrResultProcessService
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrOrderUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Date
;
/**
* @author stayAnd
* @date 2022/5/5
*/
@Service
@Slf4j
public
class
RnrResultProcessServiceImpl
implements
IRnrResultProcessService
{
@Resource
private
IRnrOrderService
orderService
;
@Resource
@Lazy
private
IMgRnrCardNoticeService
cardNoticeService
;
@Resource
private
IMgRnrInfoService
mgRnrInfoService
;
@Resource
private
IMgRnrCardInfoService
cardInfoService
;
@Autowired
private
ICiamService
ciamService
;
@Override
public
void
processRnrResult
(
String
orderId
,
String
rnrId
,
RnrOrderStatusEnum
statusEnum
,
String
content
)
{
//更新状态
saveStatus
(
orderId
,
rnrId
,
statusEnum
,
content
);
//发送通知
if
(
statusEnum
==
RnrOrderStatusEnum
.
PASS
)
{
saveUser
(
orderId
,
rnrId
);
}
log
.
info
(
"开始发送实名成功mq,order:{}"
,
orderId
);
cardNoticeService
.
sendCardNoticeByOrderId
(
orderId
);
}
//创建用户
private
void
saveUser
(
String
orderId
,
String
rnrId
)
{
MgRnrInfoDTO
mgRnrInfoDTO
=
new
MgRnrInfoDTO
();
mgRnrInfoDTO
.
setUuid
(
rnrId
);
mgRnrInfoDTO
=
mgRnrInfoService
.
getByUuid
(
mgRnrInfoDTO
);
RnrOrderDTO
rnrOrderDTO
=
new
RnrOrderDTO
();
rnrOrderDTO
.
setUuid
(
orderId
);
rnrOrderDTO
=
orderService
.
getByUuid
(
rnrOrderDTO
);
if
(
mgRnrInfoDTO
!=
null
&&
rnrOrderDTO
!=
null
){
if
(!
RnrOrderSourceEnum
.
H5_CUSTOMER
.
equals
(
rnrOrderDTO
.
getOrderSource
())
&&
RnrOrderUtil
.
needCreateUser
(
mgRnrInfoDTO
,
rnrOrderDTO
)){
ciamService
.
createUser
(
mgRnrInfoDTO
);
}
}
}
private
void
saveStatus
(
String
orderId
,
String
rnrId
,
RnrOrderStatusEnum
statusEnum
,
String
content
)
{
//更新订单状态
//orderService.updateOrderStatus(Collections.singletonList(orderId), statusEnum.getCode());
RnrOrderDTO
updateOrder
=
new
RnrOrderDTO
();
updateOrder
.
setUuid
(
orderId
);
updateOrder
.
setOrderStatus
(
statusEnum
.
getCode
());
updateOrder
.
setComment
(
content
);
updateOrder
.
setAuditTime
(
new
Date
());
updateOrder
.
setFinalApproveTime
(
new
Date
());
orderService
.
update
(
updateOrder
);
if
(
statusEnum
==
RnrOrderStatusEnum
.
PASS
)
{
//审核通过
//更新rnr状态
mgRnrInfoService
.
updateRnrStatus
(
rnrId
,
RnrStatus
.
RNR
);
//更新订单状态
cardInfoService
.
updateCardStatusByOrderId
(
orderId
,
NoticeStatusEnum
.
NEED
.
getCode
(),
RnrStatus
.
RNR
.
getCode
());
}
else
{
//更新rnr状态
mgRnrInfoService
.
updateRnrStatus
(
rnrId
,
RnrStatus
.
RNR_FAIL
);
//更新订单状态
cardInfoService
.
updateCardStatusByOrderId
(
orderId
,
NoticeStatusEnum
.
NONEED
.
getCode
(),
RnrStatus
.
RNR_FAIL
.
getCode
());
}
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/RnrUnboundServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.exception.CuscUserException
;
import
com.cusc.nirvana.user.rnr.common.constants.ResponseCode
;
import
com.cusc.nirvana.user.rnr.mg.constants.*
;
import
com.cusc.nirvana.user.rnr.mg.converter.MgRnrCardInfoConverter
;
import
com.cusc.nirvana.user.rnr.mg.dto.*
;
import
com.cusc.nirvana.user.rnr.mg.service.*
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* Description: 通用实名解绑service
* <br />
* CreateDate 2022-01-26 10:36:27
*
* @author yuyi
**/
@Service
@Slf4j
public
class
RnrUnboundServiceImpl
implements
IRnrUnboundService
{
@Autowired
private
IMgRnrInfoService
rnrInfoService
;
@Autowired
private
IMgRnrCardInfoService
rnrCardInfoService
;
@Autowired
private
IRnrOrderService
orderService
;
@Autowired
@Lazy
private
IMgRnrCardNoticeService
cardNoticeService
;
@Autowired
private
IOrganService
organService
;
@Autowired
private
IRnrRelationService
relationService
;
@Resource
private
IMgRnrCompanyInfoService
companyInfoService
;
/**
* 通用实名解绑
*
* @param bean 参数体
* @return
*/
@Override
@Transactional
public
Response
rnrUnbound
(
RnrUnbindDTO
bean
)
{
//判断vin号是否为空
if
(
StringUtils
.
isBlank
(
bean
.
getIccid
()))
{
return
Response
.
createError
(
ResponseCode
.
ICCID_NOT_NULL
.
getMsg
(),
ResponseCode
.
ICCID_NOT_NULL
.
getCode
());
}
List
<
MgCardNoticeDTO
>
noticeDTOS
=
new
ArrayList
<>();
List
<
MgRnrCardInfoDTO
>
cardInfoDTOS
=
new
ArrayList
<>();
//查询ICCID对应的用户,并判断用户信息和传入的是否一致
Response
response
=
checkCardAndRnrInfo
(
bean
,
cardInfoDTOS
,
noticeDTOS
);
if
(!
response
.
isSuccess
())
{
return
response
;
}
//查询不到需要解绑的信息
if
(
noticeDTOS
.
isEmpty
())
{
return
Response
.
createError
(
ResponseCode
.
ICCID_RNR_INFO_NOT_MATCHED
.
getMsg
(),
ResponseCode
.
ICCID_RNR_INFO_NOT_MATCHED
.
getCode
());
}
//card表设置成解绑状态
List
<
String
>
uuids
=
cardInfoDTOS
.
stream
().
map
(
MgRnrCardInfoDTO:
:
getUuid
).
collect
(
Collectors
.
toList
());
// List<String> rnrids = cardInfoDTOS.stream().map(MgRnrCardInfoDTO::getRnrId).collect(Collectors.toList());
rnrCardInfoService
.
unboundCardBatch
(
uuids
,
RnrStatus
.
UNBOUND
);
// rnrInfoService.updateRnrStatusBatch(rnrids, RnrStatus.UNBOUND);
//异步发送解绑消息
cardNoticeService
.
sendCardNotice
(
noticeDTOS
);
return
Response
.
createSuccess
();
}
@Override
@Transactional
public
Response
batchUnbound
(
VehicleUnbindDTO
bean
)
{
log
.
info
(
"车企实名解绑:{}"
,
JSON
.
toJSONString
(
bean
));
//原card表设置成解绑状态
List
<
String
>
cardIds
=
bean
.
getCardIds
();
rnrCardInfoService
.
unboundCardBatch
(
cardIds
,
RnrStatus
.
UNBOUND
);
orderService
.
updateOrderStatus
(
Collections
.
singletonList
(
bean
.
getOrder
().
getUuid
()),
RnrOrderStatusEnum
.
PASS
.
getCode
());
//保存实名解绑数据 并发送通知
Response
response
=
relationService
.
saveRnrRelation
(
bean
);
if
(!
response
.
isSuccess
())
{
throw
new
CuscUserException
(
response
.
getCode
(),
response
.
getMsg
());
}
return
response
;
}
/**
* 二手车解绑
*
* @param bean
* @return
*/
@Override
public
Response
secondHandUnBound
(
RnrRelationDTO
bean
)
{
return
relationService
.
saveRnrRelation
(
bean
);
}
/**
* 用户信息和传入的一致的加入解绑列表
*/
private
Response
checkCardAndRnrInfo
(
RnrUnbindDTO
bean
,
List
<
MgRnrCardInfoDTO
>
cardInfoDTOS
,
List
<
MgCardNoticeDTO
>
noticeDTOS
)
{
//根据ICCID查询卡信息
MgRnrCardInfoDTO
parm
=
new
MgRnrCardInfoDTO
();
parm
.
setIccid
(
bean
.
getIccid
());
List
<
MgRnrCardInfoDTO
>
mgRnrCardInfoDTOS
=
rnrCardInfoService
.
getListByIccid
(
parm
);
for
(
MgRnrCardInfoDTO
cardInfoDTO
:
mgRnrCardInfoDTOS
)
{
//查询实名信息
String
rnrId
=
cardInfoDTO
.
getRnrId
();
MgRnrInfoDTO
mgRnrInfoDTO
=
new
MgRnrInfoDTO
();
mgRnrInfoDTO
.
setUuid
(
rnrId
);
mgRnrInfoDTO
=
rnrInfoService
.
getByUuid
(
mgRnrInfoDTO
);
//判断是否加入解绑列表
//卡是实名状态
//用户姓名、证件号、证件类型和传入的一致
if
(
cardInfoDTO
.
getRnrStatus
()
==
RnrStatus
.
RNR
.
getCode
()
&&
StringUtils
.
equals
(
mgRnrInfoDTO
.
getFullName
(),
bean
.
getFullName
())
&&
StringUtils
.
equals
(
mgRnrInfoDTO
.
getCertNumber
(),
bean
.
getCertNumber
())
&&
StringUtils
.
equals
(
mgRnrInfoDTO
.
getCertType
(),
bean
.
getCertType
()))
{
//加入解绑列表
cardInfoDTOS
.
add
(
cardInfoDTO
);
//解绑通知消息
MgCardNoticeDTO
mgCardNoticeDTO
=
MgRnrCardInfoConverter
.
INSTANCE
.
unboundDTOtoNoticeDTO
(
bean
);
//mgCardNoticeDTO.setOperationType(RnrBizzTypeEnum.Unbound.getCode());
//mgCardNoticeDTO.setRnrId(mgRnrInfoDTO.getUuid());
mgCardNoticeDTO
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Unbound
.
getCode
());
mgCardNoticeDTO
.
setOrderId
(
cardInfoDTO
.
getOrderId
());
//添加项目ID
//Response<ProjectNumResponseDTO> responseDTOResponse = projectService.findProjectNoByIccid(mgCardNoticeDTO.getIccid());
//if (!responseDTOResponse.isSuccess()) {
// return responseDTOResponse;
//}
//mgCardNoticeDTO.setProjectNum(responseDTOResponse.getData().getProjectNum());
noticeDTOS
.
add
(
mgCardNoticeDTO
);
}
}
return
Response
.
createSuccess
();
}
@Override
public
void
checkUnBindVehicle
(
RnrRelationDTO
bean
)
{
Integer
orderType
=
bean
.
getOrder
().
getOrderType
();
if
(!
orderType
.
equals
(
RnrOrderType
.
NEW_VEHICLE
.
getCode
())
&&
!
orderType
.
equals
(
RnrOrderType
.
SEC_VEHICLE
.
getCode
())
&&
!
orderType
.
equals
(
RnrOrderType
.
COMPANY_NEW_VEHICLE
.
getCode
()))
{
log
.
info
(
"checkUnBindVehicle not orderType orderId = {}"
,
bean
.
getOrder
().
getUuid
());
return
;
}
log
.
info
(
"checkUnBindVehicle start orderId = {}"
,
bean
.
getOrder
().
getUuid
());
List
<
String
>
iccidList
=
bean
.
getCardList
().
stream
().
map
(
MgRnrCardInfoDTO:
:
getIccid
).
distinct
().
collect
(
Collectors
.
toList
());
MgRnrCardInfoDTO
cardQuery
=
new
MgRnrCardInfoDTO
();
cardQuery
.
setIccidList
(
iccidList
);
List
<
MgRnrCardInfoDTO
>
cardInfoDTOList
=
rnrCardInfoService
.
queryByList
(
cardQuery
);
log
.
info
(
"checkUnBindVehicle 查询到已经卡信息结果 orderId = {},cardInfoDTOList = {}"
,
bean
.
getOrder
().
getUuid
(),
JSONObject
.
toJSONString
(
cardInfoDTOList
));
if
(
CollectionUtils
.
isEmpty
(
cardInfoDTOList
))
{
return
;
}
List
<
String
>
rnrOrderIdList
=
cardInfoDTOList
.
stream
()
.
filter
(
card
->
RnrStatus
.
RNR
.
getCode
()
==
card
.
getRnrStatus
())
.
map
(
MgRnrCardInfoDTO:
:
getOrderId
)
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
rnrOrderIdList
))
{
return
;
}
RnrOrderDTO
orderQuery
=
new
RnrOrderDTO
();
orderQuery
.
setUuidList
(
rnrOrderIdList
);
orderQuery
.
setOrderType
(
RnrOrderType
.
CARMAKER_NEW_VEHICLE
.
getCode
());
List
<
RnrOrderDTO
>
orderDTOList
=
orderService
.
queryByList
(
orderQuery
);
log
.
info
(
"checkUnBindVehicle 查询车企实名工单信息 orderId = {},orderDTOList = {}"
,
bean
.
getOrder
().
getUuid
(),
JSONObject
.
toJSONString
(
orderDTOList
));
if
(
CollectionUtils
.
isEmpty
(
orderDTOList
))
{
return
;
}
boolean
tenantNoMatch
=
orderDTOList
.
stream
().
allMatch
(
order
->
order
.
getTenantNo
().
equals
(
bean
.
getOrder
().
getTenantNo
()));
if
(!
tenantNoMatch
)
{
throw
new
CuscUserException
(
ResponseCode
.
SYSTEM_ERROR
.
getCode
(),
"租户号不一致,不能覆盖车企实名"
);
}
//车企实名的工单
List
<
String
>
vehicleRnrOrderIdList
=
orderDTOList
.
stream
().
map
(
RnrOrderDTO:
:
getUuid
).
collect
(
Collectors
.
toList
());
//已经车企实名的卡
List
<
MgRnrCardInfoDTO
>
vehicleRnrCardList
=
cardInfoDTOList
.
stream
().
filter
(
card
->
vehicleRnrOrderIdList
.
contains
(
card
.
getOrderId
())).
collect
(
Collectors
.
toList
());
log
.
info
(
"checkUnBindVehicle 查询车企实名卡信息 orderId = {},vehicleRnrCardList = {}"
,
bean
.
getOrder
().
getUuid
(),
JSONObject
.
toJSONString
(
vehicleRnrCardList
));
if
(
CollectionUtils
.
isEmpty
(
vehicleRnrCardList
)){
return
;
}
//解绑 已经车企实名的卡
VehicleUnbindDTO
dto
=
transferToVehicleUnbindDTO
(
orderDTOList
.
get
(
0
),
vehicleRnrCardList
);
dto
.
setCardIds
(
vehicleRnrCardList
.
stream
().
map
(
MgRnrCardInfoDTO:
:
getUuid
).
distinct
().
collect
(
Collectors
.
toList
()));
this
.
batchUnbound
(
dto
);
}
private
VehicleUnbindDTO
transferToVehicleUnbindDTO
(
RnrOrderDTO
orderDTO
,
List
<
MgRnrCardInfoDTO
>
bindCardList
){
String
rnrId
=
orderDTO
.
getRnrId
();
//查询rnrInfo
MgRnrInfoDTO
rnrInfoQuery
=
new
MgRnrInfoDTO
();
rnrInfoQuery
.
setUuid
(
rnrId
);
MgRnrInfoDTO
rnrInfo
=
rnrInfoService
.
getByUuid
(
rnrInfoQuery
);
log
.
info
(
"checkUnBindVehicle 查询实名信息单信息 orderId = {},rnrInfo = {}"
,
orderDTO
.
getUuid
(),
JSONObject
.
toJSONString
(
rnrInfo
));
//查询公司信息
MgRnrCompanyInfoDTO
companyQuery
=
new
MgRnrCompanyInfoDTO
();
companyQuery
.
setRnrId
(
rnrId
);
MgRnrCompanyInfoDTO
companyInfo
=
companyInfoService
.
getByRnrid
(
companyQuery
);
log
.
info
(
"checkUnBindVehicle 查询公司信息 orderId = {},companyInfo = {}"
,
orderDTO
.
getUuid
(),
JSONObject
.
toJSONString
(
companyInfo
));
VehicleUnbindDTO
vehicleUnbindDTO
=
new
VehicleUnbindDTO
();
vehicleUnbindDTO
.
setTenantNo
(
orderDTO
.
getTenantNo
());
vehicleUnbindDTO
.
setIsTrust
(
0
);
vehicleUnbindDTO
.
setIsSecondHandCar
(
0
);
MgRnrInfoDTO
vehicleUnbindInfo
=
new
MgRnrInfoDTO
();
BeanUtils
.
copyProperties
(
rnrInfo
,
vehicleUnbindInfo
);
vehicleUnbindInfo
.
setSerial_number
(
CuscStringUtils
.
generateUuid
());
vehicleUnbindInfo
.
setOperator
(
""
);
vehicleUnbindInfo
.
setCreator
(
""
);
vehicleUnbindInfo
.
setUuid
(
CuscStringUtils
.
generateUuid
());
vehicleUnbindInfo
.
setUserId
(
""
);
vehicleUnbindInfo
.
setIsCompany
(
1
);
vehicleUnbindInfo
.
setRnrStatus
(
RnrStatus
.
UNBOUND
.
getCode
());
vehicleUnbindInfo
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Unbound
.
getCode
());
vehicleUnbindDTO
.
setInfo
(
vehicleUnbindInfo
);
RnrOrderDTO
rnrOrderDTO
=
new
RnrOrderDTO
();
rnrOrderDTO
.
setOrderType
(
RnrOrderType
.
COMPANY_CORPORATION_UNBIND
.
getCode
());
rnrOrderDTO
.
setRnrId
(
vehicleUnbindInfo
.
getUuid
());
rnrOrderDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
rnrOrderDTO
.
setTenantNo
(
vehicleUnbindInfo
.
getTenantNo
());
rnrOrderDTO
.
setOperator
(
""
);
rnrOrderDTO
.
setCreator
(
""
);
rnrOrderDTO
.
setOrderSource
(
RnrOrderSourceEnum
.
PORTAL
.
getCode
());
rnrOrderDTO
.
setSerialNumber
(
vehicleUnbindInfo
.
getSerial_number
());
rnrOrderDTO
.
setIsBatchOrder
(
0
);
rnrOrderDTO
.
setOrderStatus
(
RnrOrderStatusEnum
.
PASS
.
getCode
());
rnrOrderDTO
.
setAutoRnr
(
true
);
rnrOrderDTO
.
setAuditType
(
RnrOrderAuditTypeEnum
.
AUTO
.
getCode
());
rnrOrderDTO
.
setSendWorkOrder
(
false
);
rnrOrderDTO
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Unbound
.
getCode
());
rnrOrderDTO
.
setOrgId
(
vehicleUnbindInfo
.
getOrgId
());
vehicleUnbindDTO
.
setOrder
(
rnrOrderDTO
);
MgRnrCompanyInfoDTO
mgRnrCompanyInfoDTO
=
new
MgRnrCompanyInfoDTO
();
BeanUtils
.
copyProperties
(
companyInfo
,
mgRnrCompanyInfoDTO
);
mgRnrCompanyInfoDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
mgRnrCompanyInfoDTO
.
setRnrId
(
vehicleUnbindInfo
.
getUuid
());
mgRnrCompanyInfoDTO
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Unbound
.
getCode
());
mgRnrCompanyInfoDTO
.
setCreator
(
""
);
mgRnrCompanyInfoDTO
.
setOperator
(
""
);
//是否是车企
mgRnrCompanyInfoDTO
.
setIndustryType
(
"1"
);
vehicleUnbindDTO
.
setCompanyInfo
(
mgRnrCompanyInfoDTO
);
List
<
MgRnrCardInfoDTO
>
cardList
=
bindCardList
.
stream
().
map
(
card
->
{
MgRnrCardInfoDTO
cardInfoDTO
=
new
MgRnrCardInfoDTO
();
cardInfoDTO
.
setOldCardId
(
card
.
getUuid
());
cardInfoDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
cardInfoDTO
.
setIotId
(
card
.
getIotId
());
cardInfoDTO
.
setIccid
(
card
.
getIccid
());
cardInfoDTO
.
setRnrId
(
vehicleUnbindInfo
.
getUuid
());
cardInfoDTO
.
setRnrStatus
(
RnrStatus
.
UNBOUND
.
getCode
());
cardInfoDTO
.
setNoticeStatus
(
NoticeStatusEnum
.
NONEED
.
getCode
());
cardInfoDTO
.
setSerial_number
(
vehicleUnbindInfo
.
getSerial_number
());
cardInfoDTO
.
setOrderId
(
rnrOrderDTO
.
getUuid
());
cardInfoDTO
.
setTenantNo
(
rnrOrderDTO
.
getTenantNo
());
cardInfoDTO
.
setRnrBizzType
(
RnrBizzTypeEnum
.
Unbound
.
getCode
());
cardInfoDTO
.
setCreator
(
""
);
cardInfoDTO
.
setOperator
(
""
);
return
cardInfoDTO
;
}).
collect
(
Collectors
.
toList
());
vehicleUnbindDTO
.
setCardList
(
cardList
);
return
vehicleUnbindDTO
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/mg/service/impl/SimFileHistoryServiceImpl.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.rds.mybatis.PageHelper
;
import
com.cusc.nirvana.user.rnr.mg.constants.CommonDeleteEnum
;
import
com.cusc.nirvana.user.rnr.mg.converter.SimFileHistoryConverter
;
import
com.cusc.nirvana.user.rnr.mg.dao.SimFileHistoryDao
;
import
com.cusc.nirvana.user.rnr.mg.dao.entity.SimFileHistoryPO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryQueryDTO
;
import
com.cusc.nirvana.user.rnr.mg.service.ISimFileHistoryService
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.Calendar
;
@Service
public
class
SimFileHistoryServiceImpl
extends
ServiceImpl
<
SimFileHistoryDao
,
SimFileHistoryPO
>
implements
ISimFileHistoryService
{
@Override
public
SimFileHistoryDTO
getByUuid
(
String
uuid
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"uuid"
,
uuid
);
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
SimFileHistoryPO
historyPO
=
this
.
getOne
(
queryWrapper
);
return
historyPO
==
null
?
null
:
SimFileHistoryConverter
.
INSTANCE
.
poToDto
(
historyPO
);
}
@Override
public
PageResult
<
SimFileHistoryDTO
>
queryByPage
(
SimFileHistoryQueryDTO
queryDTO
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"org_uuid"
,
queryDTO
.
getOrgUuid
());
queryWrapper
.
eq
(
null
!=
queryDTO
.
getFileType
(),
"file_type"
,
queryDTO
.
getFileType
());
queryWrapper
.
gt
(
queryDTO
.
getStartCreateTime
()
!=
null
,
"create_time"
,
queryDTO
.
getStartCreateTime
());
queryWrapper
.
lt
(
queryDTO
.
getEndCreateTime
()
!=
null
,
"create_time"
,
queryDTO
.
getEndCreateTime
());
if
(
queryDTO
.
getStatus
()
!=
null
)
{
if
(
queryDTO
.
getStatus
()
!=
2
)
{
queryWrapper
.
eq
(
"status"
,
queryDTO
.
getStatus
());
queryWrapper
.
eq
(
"error_count"
,
0
);
}
else
{
queryWrapper
.
gt
(
"error_count"
,
0
);
}
}
queryWrapper
.
eq
(
"is_delete"
,
CommonDeleteEnum
.
NORMAL
.
getCode
());
queryWrapper
.
orderByDesc
(
"create_time"
);
Page
<
SimFileHistoryPO
>
historyPOPage
=
this
.
page
(
new
Page
<>(
queryDTO
.
getCurrPage
(),
queryDTO
.
getPageSize
()),
queryWrapper
);
return
PageHelper
.
convert
(
historyPOPage
,
SimFileHistoryDTO
.
class
);
}
@Override
public
SimFileHistoryDTO
insert
(
SimFileHistoryDTO
historyDTO
)
{
historyDTO
.
setUuid
(
CuscStringUtils
.
generateUuid
());
if
(
historyDTO
.
getErrorCount
()
>
0
)
{
historyDTO
.
setStatus
(
2
);
}
SimFileHistoryPO
simFileHistoryPO
=
SimFileHistoryConverter
.
INSTANCE
.
dtoToPo
(
historyDTO
);
this
.
save
(
simFileHistoryPO
);
return
historyDTO
;
}
@Override
public
SimFileHistoryDTO
update
(
SimFileHistoryDTO
historyDTO
)
{
SimFileHistoryDTO
bean
=
this
.
getByUuid
(
historyDTO
.
getUuid
());
if
(
bean
==
null
)
{
return
null
;
}
historyDTO
.
setId
(
bean
.
getId
());
if
(
historyDTO
.
getErrorCount
()
>
0
)
{
historyDTO
.
setStatus
(
2
);
}
SimFileHistoryPO
simFileHistoryPO
=
SimFileHistoryConverter
.
INSTANCE
.
dtoToPo
(
historyDTO
);
this
.
updateById
(
simFileHistoryPO
);
return
historyDTO
;
}
@Override
public
boolean
deleteById
(
String
orgUuid
,
String
uuid
)
{
SimFileHistoryDTO
historyDTO
=
this
.
getByUuid
(
uuid
);
if
(
historyDTO
==
null
||
!
historyDTO
.
getOrgUuid
().
equals
(
orgUuid
))
{
return
false
;
}
historyDTO
.
setIsDelete
(
1
);
return
this
.
updateById
(
SimFileHistoryConverter
.
INSTANCE
.
dtoToPo
(
historyDTO
));
}
}
Prev
1
…
14
15
16
17
18
19
20
21
22
Next
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