Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ufo
/
yohoufo-fore
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
qinchao
6 years ago
Commit
02a8e35e069fa415e17eb093dc0bd72fbfccdb16
2 parents
b2bf4edf
49348368
Merge branch 'dev_mayi' into test6.8.2
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
777 additions
and
4 deletions
dal/src/main/java/com/yohoufo/dal/user/IStoredSellerDao.java
dal/src/main/java/com/yohoufo/dal/user/IZhiMaCertDao.java
dal/src/main/java/com/yohoufo/dal/user/model/StoredSeller.java
dal/src/main/java/com/yohoufo/dal/user/model/ZhiMaCert.java
dal/src/main/resources/META-INF/mybatis/users/IStoredSellerDao.xml
dal/src/main/resources/META-INF/mybatis/users/IZhiMaCertDao.xml
users/pom.xml
users/src/main/java/com/yohoufo/user/cache/CacheKeyEnum.java
users/src/main/java/com/yohoufo/user/cache/CacheService.java
users/src/main/java/com/yohoufo/user/controller/passport/RealNameAuthorizeController.java
users/src/main/java/com/yohoufo/user/controller/passport/StoredSellerController.java
users/src/main/java/com/yohoufo/user/requestVO/RealNameAuthorizeReqVO.java
users/src/main/java/com/yohoufo/user/service/IRealNameAuthorizeService.java
users/src/main/java/com/yohoufo/user/service/IStoredSellerService.java
users/src/main/java/com/yohoufo/user/service/impl/RealNameAuthorizeServiceImpl.java
users/src/main/java/com/yohoufo/user/service/impl/StoredSellerServiceImpl.java
users/src/main/java/com/yohoufo/user/service/impl/ZhiMaCallUtil.java
web/src/main/resources/databases.yml
web/src/main/webapp/META-INF/autoconf/databases.yml
dal/src/main/java/com/yohoufo/dal/user/IStoredSellerDao.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
dal
.
user
;
import
com.yohoufo.dal.user.model.StoredSeller
;
public
interface
IStoredSellerDao
{
//获取生效的信息
StoredSeller
selectValidByUid
(
int
uid
);
int
insert
(
StoredSeller
storedSeller
);
}
...
...
dal/src/main/java/com/yohoufo/dal/user/IZhiMaCertDao.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
dal
.
user
;
import
com.yohoufo.dal.user.model.ZhiMaCert
;
import
org.apache.ibatis.annotations.Param
;
public
interface
IZhiMaCertDao
{
//int insert(ZhiMaCert zhiMaCert);
int
insertAndGetID
(
ZhiMaCert
zhiMaCert
);
int
updateValidStatusByPrimaryKey
(
int
id
);
int
updateBizNoByByPrimaryKey
(
@Param
(
"id"
)
int
id
,
@Param
(
"bizNo"
)
String
bizNo
);
//获取生效的认证信息
ZhiMaCert
selectByPrimaryKey
(
int
id
);
ZhiMaCert
selectValidByUid
(
int
uid
);
ZhiMaCert
selectValidByCertNo
(
String
certNo
);
//根据业务编号查询
//ZhiMaCert selectByBizNo(String bizNo);
}
...
...
dal/src/main/java/com/yohoufo/dal/user/model/StoredSeller.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
dal
.
user
.
model
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ToString
public
class
StoredSeller
{
//主键
private
Integer
id
;
//uid ,索引
private
Integer
uid
;
//生效状态:1 生效 ; 0 不生效
private
Integer
validStatus
;
private
long
createTime
;
private
long
updateTime
;
}
...
...
dal/src/main/java/com/yohoufo/dal/user/model/ZhiMaCert.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
dal
.
user
.
model
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ToString
public
class
ZhiMaCert
{
//主键
private
Integer
id
;
//uid ,索引
private
Integer
uid
;
//生效状态:1 生效 ; 0 不生效
private
Integer
validStatus
;
//证件姓名
private
String
certName
;
//证件号码:身份证号码
private
String
certNo
;
//芝麻业务编号,唯一索引
private
String
bizNo
;
private
long
createTime
;
private
long
updateTime
;
}
...
...
dal/src/main/resources/META-INF/mybatis/users/IStoredSellerDao.xml
0 → 100644
View file @
02a8e35
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.yohoufo.dal.user.IStoredSellerDao"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yohoufo.dal.user.model.StoredSeller"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"uid"
property=
"uid"
jdbcType=
"INTEGER"
/>
<result
column=
"valid_status"
property=
"validStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"INTEGER"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, uid, valid_status, create_time, update_time
</sql>
<select
id=
"selectValidByUid"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from stored_seller
where uid = #{uid} and valid_status = 1
order by id desc limit 1
</select>
<insert
id=
"insert"
parameterType=
"com.yohoufo.dal.user.model.StoredSeller"
>
insert into stored_seller (uid, valid_status, create_time, update_time)
values (#{uid},#{validStatus},
#{createTime},#{updateTime})
</insert>
</mapper>
\ No newline at end of file
...
...
dal/src/main/resources/META-INF/mybatis/users/IZhiMaCertDao.xml
0 → 100644
View file @
02a8e35
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.yohoufo.dal.user.IZhiMaCertDao"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yohoufo.dal.user.model.ZhiMaCert"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"uid"
property=
"uid"
jdbcType=
"INTEGER"
/>
<result
column=
"valid_status"
property=
"validStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"cert_no"
property=
"certNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"cert_name"
property=
"certName"
jdbcType=
"VARCHAR"
/>
<result
column=
"biz_no"
property=
"bizNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"INTEGER"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, uid, valid_status,cert_no, cert_name, biz_no,create_time, update_time
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from zhima_cert
where id = #{id}
</select>
<select
id=
"selectValidByUid"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from zhima_cert
where uid = #{uid} and valid_status = 1
order by id desc limit 1
</select>
<select
id=
"selectValidByCertNo"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.String"
>
select
<include
refid=
"Base_Column_List"
/>
from zhima_cert
where cert_no = #{certNo} and valid_status = 1
order by id desc limit 1
</select>
<select
id=
"selectByBizNo"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.String"
>
select
<include
refid=
"Base_Column_List"
/>
from zhima_cert
where biz_no = #{bizNo}
</select>
<insert
id=
"insert"
parameterType=
"com.yohoufo.dal.user.model.ZhiMaCert"
>
insert into zhima_cert (uid, valid_status, cert_no, cert_name, biz_no,create_time, update_time)
values (#{uid},#{validStatus},
#{certNo},#{certName},#{bizNo},
#{createTime},#{updateTime})
</insert>
<insert
id=
"insertAndGetID"
parameterType=
"com.yohoufo.dal.user.model.ZhiMaCert"
>
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
SELECT LAST_INSERT_ID()
</selectKey>
insert into zhima_cert (uid, valid_status, cert_no, cert_name, biz_no,create_time, update_time)
values (#{uid},#{validStatus},
#{certNo},#{certName},#{bizNo},
#{createTime},#{updateTime})
</insert>
<update
id=
"updateValidStatusByPrimaryKey"
parameterType=
"java.lang.Integer"
>
update zhima_cert
set valid_status = 1
where id = #{id,jdbcType=INTEGER}
</update>
<update
id=
"updateBizNoByByPrimaryKey"
>
update zhima_cert
set biz_no = #{bizNo}
where id = #{id}
</update>
</mapper>
\ No newline at end of file
...
...
users/pom.xml
View file @
02a8e35
...
...
@@ -123,5 +123,11 @@
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
<dependency>
<groupId>
com.alipay.sdk
</groupId>
<artifactId>
alipay-sdk-java
</artifactId>
<version>
3.4.27.ALL
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
...
...
users/src/main/java/com/yohoufo/user/cache/CacheKeyEnum.java
View file @
02a8e35
...
...
@@ -18,6 +18,10 @@ public enum CacheKeyEnum {
AUTHORIZE_FAILED_KEY
(
"ufo:user:authorizeFailed:"
,
"实名认证失败次数"
,
30
,
TimeUnit
.
MINUTES
),
AUTHORIZE_INFO_KEY
(
"ufo:user:authorizeInfo:"
,
"实名认证信息"
,
2
,
TimeUnit
.
HOURS
),
ZHI_MA_CERT_KEY
(
"ufo:user:zhiMaCert:"
,
"芝麻认证信息"
,
2
,
TimeUnit
.
HOURS
),
STORED_SELLER_KEY
(
"ufo:user:storedSeller:"
,
"商家入驻信息"
,
2
,
TimeUnit
.
HOURS
),
USER_PRODUCT_FAVORITE_ZSET_KEY
(
"ufo:user:product:favorite:"
,
"用户商品收藏集合"
,
180
,
TimeUnit
.
DAYS
),
;
...
...
users/src/main/java/com/yohoufo/user/cache/CacheService.java
View file @
02a8e35
...
...
@@ -5,8 +5,10 @@ import com.yoho.core.redis.cluster.operations.nosync.YHRedisTemplate;
import
com.yoho.core.redis.cluster.operations.nosync.YHValueOperations
;
import
com.yoho.core.redis.cluster.operations.nosync.YHZSetOperations
;
import
com.yoho.core.redis.cluster.operations.serializer.RedisKeyBuilder
;
import
com.yohoufo.dal.user.model.StoredSeller
;
import
com.yohoufo.dal.user.model.UserAuthorizeInfo
;
import
com.yohoufo.dal.user.model.UserFavorite
;
import
com.yohoufo.dal.user.model.ZhiMaCert
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -47,6 +49,13 @@ public class CacheService {
return
RedisKeyBuilder
.
newInstance
().
appendFixed
(
CacheKeyEnum
.
AUTHORIZE_FAILED_KEY
.
getCacheKey
()).
appendVar
(
uid
);
}
public
static
RedisKeyBuilder
getZhiMaCertRedisKeyBuilder
(
Integer
uid
){
return
RedisKeyBuilder
.
newInstance
().
appendFixed
(
CacheKeyEnum
.
ZHI_MA_CERT_KEY
.
getCacheKey
()).
appendVar
(
uid
);
}
public
static
RedisKeyBuilder
getStoredSellerRedisKeyBuilder
(
Integer
uid
){
return
RedisKeyBuilder
.
newInstance
().
appendFixed
(
CacheKeyEnum
.
STORED_SELLER_KEY
.
getCacheKey
()).
appendVar
(
uid
);
}
/**************************************************************************
* 商品收藏相关
*************************************************************************/
...
...
@@ -182,6 +191,30 @@ public class CacheService {
return
incrementWithExpire
(
getAuthorizeFailedNumRedisKeyBuilder
(
uid
),
1
,
CacheKeyEnum
.
AUTHORIZE_FAILED_KEY
.
getDefaultExpireTime
(),
CacheKeyEnum
.
AUTHORIZE_FAILED_KEY
.
getTimeUnit
());
}
/**************************************************************************
* 芝麻认证相关
*************************************************************************/
public
ZhiMaCert
getZhiMaCert
(
Integer
uid
){
return
get
(
getZhiMaCertRedisKeyBuilder
(
uid
),
ZhiMaCert
.
class
);
}
public
void
setZhiMaCert
(
ZhiMaCert
zhiMaCert
){
set
(
getZhiMaCertRedisKeyBuilder
(
zhiMaCert
.
getUid
()),
zhiMaCert
,
CacheKeyEnum
.
ZHI_MA_CERT_KEY
.
getDefaultExpireTime
(),
CacheKeyEnum
.
ZHI_MA_CERT_KEY
.
getTimeUnit
());
}
/**************************************************************************
* 商家入驻相关
*************************************************************************/
public
StoredSeller
getStoredSeller
(
Integer
uid
){
return
get
(
getStoredSellerRedisKeyBuilder
(
uid
),
StoredSeller
.
class
);
}
public
void
setStoredSeller
(
StoredSeller
storedSeller
){
set
(
getStoredSellerRedisKeyBuilder
(
storedSeller
.
getUid
()),
storedSeller
,
CacheKeyEnum
.
STORED_SELLER_KEY
.
getDefaultExpireTime
(),
CacheKeyEnum
.
STORED_SELLER_KEY
.
getTimeUnit
());
}
/**************************************************************************
* 通用
*************************************************************************/
...
...
users/src/main/java/com/yohoufo/user/controller/passport/RealNameAuthorizeController.java
View file @
02a8e35
...
...
@@ -6,6 +6,8 @@ import com.yohobuy.ufo.model.user.resp.AuthorizeResultRespVO;
import
com.yohoufo.common.exception.GatewayException
;
import
com.yohoufo.common.utils.UserInfoHiddenHelper
;
import
com.yohoufo.dal.user.model.UserAuthorizeInfo
;
import
com.yohoufo.dal.user.model.ZhiMaCert
;
import
com.yohoufo.user.common.IDCardUtils
;
import
com.yohoufo.user.helper.HideDataUtil
;
import
com.yohoufo.user.requestVO.RealNameAuthorizeReqVO
;
import
com.yohoufo.user.service.IRealNameAuthorizeService
;
...
...
@@ -106,5 +108,77 @@ public class RealNameAuthorizeController {
return
apiResponse
;
}
/**
* 是否已经芝麻认证
*/
@RequestMapping
(
params
=
"method=ufo.user.isRealNameCert"
)
public
ApiResponse
isRealNameCert
(
RealNameAuthorizeReqVO
reqVO
)
throws
GatewayException
{
logger
.
info
(
"enter realNameAuthorize.isRealNameCert param reqVO is {}"
,
reqVO
);
//(1) 优先校验请求的参数
if
(
reqVO
==
null
||
reqVO
.
getUid
()
<=
0
){
throw
new
GatewayException
(
400
,
"参数错误,uid不存在!"
);
}
ZhiMaCert
zhiMaCertInfo
=
realNameAuthorizeService
.
getValidZhiMaCert
(
reqVO
.
getUid
());
boolean
isZhiMaCert
=
false
;
if
(
zhiMaCertInfo
!=
null
){
isZhiMaCert
=
true
;
}
return
new
ApiResponse
(
isZhiMaCert
);
}
/**
* 芝麻认证(初始化并购置返回url)
*/
@RequestMapping
(
params
=
"method=ufo.user.zhiMaCertInit"
)
public
ApiResponse
zhiMaCertInit
(
RealNameAuthorizeReqVO
reqVO
)
throws
GatewayException
{
logger
.
info
(
"enter realNameAuthorize.zhiMaCertInit param reqVO is {}"
,
reqVO
);
//(1) 优先校验请求的参数
if
(
reqVO
==
null
||
StringUtils
.
isEmpty
(
reqVO
.
getCertNo
())||
StringUtils
.
isEmpty
(
reqVO
.
getCertName
())){
throw
new
GatewayException
(
400
,
"身份证号、姓名不能为空!"
);
}
//身份证格式校验IDCardUtils
if
(!
IDCardUtils
.
validate
(
reqVO
.
getCertNo
())){
throw
new
GatewayException
(
400
,
"身份证号格式不正确!"
);
}
//调用芝麻,得到回调url
AuthorizeResultRespVO
resultVo
=
realNameAuthorizeService
.
zhiMaCertInit
(
reqVO
);
logger
.
info
(
"realNameAuthorize.zhiMaCertInit result vo {} "
,
resultVo
);
ApiResponse
apiResponse
=
new
ApiResponse
();
apiResponse
.
setData
(
resultVo
);
return
apiResponse
;
}
/**
* 芝麻认证结果查询
*/
@RequestMapping
(
params
=
"method=ufo.user.zhiMaCertResultQuery"
)
public
ApiResponse
zhiMaCertResultQuery
(
RealNameAuthorizeReqVO
reqVO
)
throws
GatewayException
{
logger
.
info
(
"enter realNameAuthorize.zhiMaCertResultQuery param reqVO is {}"
,
reqVO
);
//(1) 优先校验请求的参数
if
(
reqVO
==
null
||
reqVO
.
getUid
()<=
0
){
throw
new
GatewayException
(
400
,
"参数错误,uid不能为空!"
);
}
//zhiMacertID
if
(
reqVO
.
getZhiMaCertId
()
==
null
||
reqVO
.
getZhiMaCertId
()<=
0
){
throw
new
GatewayException
(
400
,
"参数错误,芝麻认知记录id不能为空!"
);
}
//bizNO
if
(
StringUtils
.
isBlank
(
reqVO
.
getBizNO
())){
throw
new
GatewayException
(
400
,
"参数错误,芝麻请求业务编号不能为空!"
);
}
ApiResponse
result
=
realNameAuthorizeService
.
zhiMaCertResultQuery
(
reqVO
);
return
result
;
}
}
...
...
users/src/main/java/com/yohoufo/user/controller/passport/StoredSellerController.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
user
.
controller
.
passport
;
import
com.yoho.tools.common.beans.ApiResponse
;
import
com.yohoufo.common.exception.GatewayException
;
import
com.yohoufo.user.requestVO.RealNameAuthorizeReqVO
;
import
com.yohoufo.user.service.IStoredSellerService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 入驻商户接口
* Created by craig.qin on 2018/9/11.
*/
@RestController
public
class
StoredSellerController
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
StoredSellerController
.
class
);
@Autowired
private
IStoredSellerService
storedSellerService
;
/**
* 是否入驻商户
*/
@RequestMapping
(
params
=
"method=ufo.user.isStoredSeller"
)
public
ApiResponse
isStoredSeller
(
RealNameAuthorizeReqVO
reqVO
)
throws
GatewayException
{
logger
.
info
(
"enter StoredSellerController isStoredSeller param reqVO is {}"
,
reqVO
);
//(1) 优先校验请求的参数
if
(
reqVO
==
null
||
reqVO
.
getUid
()
<=
0
){
throw
new
GatewayException
(
400
,
"参数错误,uid不存在!"
);
}
boolean
isStoredSeller
=
storedSellerService
.
isStoredSeller
(
reqVO
.
getUid
());
return
new
ApiResponse
(
isStoredSeller
);
}
/**
* 更新商户为入驻商户
*/
@RequestMapping
(
params
=
"method=ufo.user.updateAsStoredSeller"
)
public
ApiResponse
updateAsStoredSeller
(
RealNameAuthorizeReqVO
reqVO
)
throws
GatewayException
{
logger
.
info
(
"enter StoredSellerController updateAsStoredSeller param reqVO is {}"
,
reqVO
);
//(1) 优先校验请求的参数
if
(
reqVO
==
null
||
reqVO
.
getUid
()
<=
0
){
throw
new
GatewayException
(
400
,
"参数错误,uid不存在!"
);
}
storedSellerService
.
addUserAsStoredSeller
(
reqVO
.
getUid
());
return
new
ApiResponse
();
}
}
...
...
users/src/main/java/com/yohoufo/user/requestVO/RealNameAuthorizeReqVO.java
View file @
02a8e35
...
...
@@ -3,8 +3,6 @@ package com.yohoufo.user.requestVO;
import
com.yoho.service.model.BaseBO
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
RealNameAuthorizeReqVO
extends
BaseBO
{
// uid
...
...
@@ -15,4 +13,11 @@ public class RealNameAuthorizeReqVO extends BaseBO {
//证件姓名
private
String
certName
;
//芝麻认知的记录ID
private
Integer
zhiMaCertId
;
//证件号码:身份证号码
private
String
certNo
;
//芝麻调用的bizNO
private
String
bizNO
;
}
...
...
users/src/main/java/com/yohoufo/user/service/IRealNameAuthorizeService.java
View file @
02a8e35
package
com
.
yohoufo
.
user
.
service
;
import
com.yoho.tools.common.beans.ApiResponse
;
import
com.yohobuy.ufo.model.user.resp.AuthorizeResultRespVO
;
import
com.yohoufo.dal.user.model.UserAuthorizeInfo
;
import
com.yohoufo.dal.user.model.ZhiMaCert
;
import
com.yohoufo.user.requestVO.RealNameAuthorizeReqVO
;
import
net.sf.json.JSONObject
;
/**
* 用户身份实名认证
...
...
@@ -14,5 +16,11 @@ public interface IRealNameAuthorizeService {
void
saveAuthorizeInfo
(
RealNameAuthorizeReqVO
reqVO
);
ZhiMaCert
getValidZhiMaCert
(
int
uid
);
AuthorizeResultRespVO
zhiMaCertInit
(
RealNameAuthorizeReqVO
reqVO
);
ApiResponse
zhiMaCertResultQuery
(
RealNameAuthorizeReqVO
reqVO
);
//JSONObject authorizeRealNameWithBank(RealNameAuthorizeReqVO reqVO) throws ServiceException;
}
...
...
users/src/main/java/com/yohoufo/user/service/IStoredSellerService.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
user
.
service
;
public
interface
IStoredSellerService
{
boolean
isStoredSeller
(
Integer
uid
);
void
addUserAsStoredSeller
(
Integer
uid
);
}
...
...
users/src/main/java/com/yohoufo/user/service/impl/RealNameAuthorizeServiceImpl.java
View file @
02a8e35
package
com
.
yohoufo
.
user
.
service
.
impl
;
import
com.alipay.api.response.ZhimaCustomerCertificationQueryResponse
;
import
com.yoho.error.exception.ServiceException
;
import
com.yoho.tools.common.beans.ApiResponse
;
import
com.yohobuy.ufo.model.user.resp.AuthorizeResultRespVO
;
import
com.yohoufo.dal.user.IUserAuthorizeInfoDao
;
import
com.yohoufo.dal.user.IZhiMaCertDao
;
import
com.yohoufo.dal.user.model.UserAuthorizeInfo
;
import
com.yohoufo.dal.user.model.ZhiMaCert
;
import
com.yohoufo.user.cache.CacheService
;
import
com.yohoufo.user.helper.HideDataUtil
;
import
com.yohoufo.user.requestVO.RealNameAuthorizeReqVO
;
import
com.yohoufo.user.service.IRealNameAuthorizeService
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -27,6 +33,9 @@ public class RealNameAuthorizeServiceImpl implements IRealNameAuthorizeService {
@Autowired
private
CacheService
cacheService
;
@Autowired
private
IZhiMaCertDao
zhiMaCertDao
;
/* @Autowired
private GraphVerifyService graphVerifyService;*/
...
...
@@ -91,6 +100,128 @@ public class RealNameAuthorizeServiceImpl implements IRealNameAuthorizeService {
}
@Override
public
ZhiMaCert
getValidZhiMaCert
(
int
uid
)
{
logger
.
info
(
"RealNameAuthorizeServiceImpl getZhiMaCert uid is {} "
,
uid
);
// 从redis缓存中获取
ZhiMaCert
zhiMaCert
=
cacheService
.
getZhiMaCert
(
uid
);
logger
.
info
(
"RealNameAuthorizeServiceImpl getZhiMaCert uid is {} ,redis info is {} "
,
uid
,
zhiMaCert
);
if
(
null
!=
zhiMaCert
)
{
return
zhiMaCert
;
}
//如果不存在,则从数据库获取
zhiMaCert
=
zhiMaCertDao
.
selectValidByUid
(
uid
);
logger
.
info
(
"RealNameAuthorizeServiceImpl getZhiMaCert uid is {} ,database info is {} "
,
uid
,
zhiMaCert
);
if
(
zhiMaCert
!=
null
)
{
//保存到redis
cacheService
.
setZhiMaCert
(
zhiMaCert
);
}
return
zhiMaCert
;
}
@Override
public
AuthorizeResultRespVO
zhiMaCertInit
(
RealNameAuthorizeReqVO
reqVO
)
{
logger
.
info
(
"real name zhiMaCertInit reqVO {}"
,
reqVO
);
//检查是否已经认证,如果已经认证,报错
if
(
null
!=
this
.
getValidZhiMaCert
(
reqVO
.
getUid
()))
{
throw
new
ServiceException
(
400
,
"已实名认证!"
);
}
//检查身份证号认证信息是否已经存在,存在则不允许再次使用
if
(
null
!=
zhiMaCertDao
.
selectValidByCertNo
(
reqVO
.
getCertNo
()))
{
throw
new
ServiceException
(
400
,
"身份证号已被占用!"
);
}
//调用芝麻接口,返回biz_no
//构建唯一的 transaction_id : ufoCert+id
LocalDateTime
now
=
getLocalDateTime
();
Long
nowSecond
=
LocalDateTime
.
now
().
toEpochSecond
(
ZoneOffset
.
of
(
"+8"
));
//存储认证信息
ZhiMaCert
zhiMaCert
=
new
ZhiMaCert
();
zhiMaCert
.
setUid
(
reqVO
.
getUid
());
zhiMaCert
.
setValidStatus
(
0
);
//用户还未授权,暂时未生效
zhiMaCert
.
setCertName
(
reqVO
.
getCertName
());
zhiMaCert
.
setCertNo
(
reqVO
.
getCertNo
());
zhiMaCert
.
setCreateTime
(
nowSecond
);
zhiMaCert
.
setUpdateTime
(
nowSecond
);
zhiMaCertDao
.
insertAndGetID
(
zhiMaCert
);
if
(
zhiMaCert
.
getId
()==
null
||
zhiMaCert
.
getId
()<
1
){
logger
.
error
(
"zhi ma cert insertAndGetID zhiMaCert error zhiMaCert {},req vo {}"
,
zhiMaCert
,
reqVO
);
throw
new
ServiceException
(
400
,
"错误:保存实名认知信息异常!"
);
}
String
transactionId
=
"ufoCert"
+
zhiMaCert
.
getId
();
String
bizNo
=
ZhiMaCallUtil
.
zhiMaCertInit
(
transactionId
,
reqVO
.
getCertName
(),
reqVO
.
getCertNo
());
if
(
StringUtils
.
isBlank
(
bizNo
))
{
logger
.
error
(
"zhi ma cert biz no is null ,req vo {}"
,
reqVO
);
throw
new
ServiceException
(
400
,
"错误:支付宝接口调用出错了!"
);
}
//不需要更新bizNO到数据库了,不需要记录
//通过biz_no,生成returnUrl
String
returnUrl
=
ZhiMaCallUtil
.
zhiMaCertUrl
(
bizNo
);
if
(
StringUtils
.
isBlank
(
returnUrl
))
{
logger
.
error
(
"zhi ma cert url return null ,bizNo {} "
,
bizNo
);
throw
new
ServiceException
(
400
,
"错误:支付宝接口调用出错了!"
);
}
AuthorizeResultRespVO
respVO
=
new
AuthorizeResultRespVO
();
respVO
.
setZhiMaCertId
(
zhiMaCert
.
getId
());
respVO
.
setZhiMaBizNo
(
bizNo
);
respVO
.
setZhiMaUrl
(
returnUrl
);
return
respVO
;
}
@Override
public
ApiResponse
zhiMaCertResultQuery
(
RealNameAuthorizeReqVO
reqVO
)
{
logger
.
info
(
"real name zhiMaCertResultQuery reqVO {}"
,
reqVO
);
//根据uid,获取biz_no
ZhiMaCert
zhiMaCert
=
zhiMaCertDao
.
selectByPrimaryKey
(
reqVO
.
getZhiMaCertId
());
if
(
zhiMaCert
==
null
){
logger
.
error
(
"zhiMaCertResultQuery get cert by biz no is null "
,
reqVO
.
getBizNO
());
throw
new
ServiceException
(
400
,
"错误:未找到芝麻认证信息!"
);
}
logger
.
info
(
"zhiMaCertResultQuery get zhiMaCert by biz no from db is {} "
,
zhiMaCert
);
if
(
zhiMaCert
.
getUid
().
equals
(
reqVO
.
getUid
())){
logger
.
error
(
"zhiMaCertResultQuery get cert by biz no is not same req uid {} ,db uid {}"
,
reqVO
.
getUid
(),
zhiMaCert
.
getUid
());
throw
new
ServiceException
(
400
,
"错误:未找到用户芝麻认证信息!"
);
}
ZhimaCustomerCertificationQueryResponse
zhiMaResp
=
ZhiMaCallUtil
.
zhiMaResult
(
reqVO
.
getBizNO
());
if
(
zhiMaResp
==
null
){
logger
.
error
(
"zhiMaCertResultQuery result is null,reqVO {}"
,
reqVO
);
throw
new
ServiceException
(
400
,
"错误:获取用户芝麻认证信息错误!"
);
}
if
(
zhiMaResp
.
isSuccess
()&&
"true"
.
equals
(
zhiMaResp
.
getPassed
())){
//芝麻认证通过
int
updateCount
=
zhiMaCertDao
.
updateValidStatusByPrimaryKey
(
reqVO
.
getZhiMaCertId
());
if
(
updateCount
<
1
){
logger
.
error
(
"zhiMaCertResultQuery update zhi ma cert valid status error,req vo {}"
,
reqVO
);
throw
new
ServiceException
(
400
,
"错误:更新用户芝麻认证信息错误!"
);
}
return
new
ApiResponse
(
true
);
}
else
{
logger
.
error
(
"zhiMaCertResultQuery result is null,reqVO {}"
,
reqVO
);
return
new
ApiResponse
(
400
,
zhiMaResp
==
null
?
"用户芝麻认证不通过!"
:
zhiMaResp
.
getFailedReason
(),
false
);
}
}
private
LocalDateTime
getLocalDateTime
(){
LocalDateTime
now
=
LocalDateTime
.
now
();
return
now
;
...
...
users/src/main/java/com/yohoufo/user/service/impl/StoredSellerServiceImpl.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
user
.
service
.
impl
;
import
com.yoho.error.exception.ServiceException
;
import
com.yohoufo.dal.user.IStoredSellerDao
;
import
com.yohoufo.dal.user.model.StoredSeller
;
import
com.yohoufo.user.cache.CacheService
;
import
com.yohoufo.user.service.IRealNameAuthorizeService
;
import
com.yohoufo.user.service.IStoredSellerService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
@Service
public
class
StoredSellerServiceImpl
implements
IStoredSellerService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
StoredSellerServiceImpl
.
class
);
@Autowired
private
CacheService
cacheService
;
@Autowired
IRealNameAuthorizeService
realNameAuthorizeService
;
@Autowired
private
IStoredSellerDao
storedSellerDao
;
public
boolean
isStoredSeller
(
Integer
uid
){
StoredSeller
storedSeller
=
getValidStoredSeller
(
uid
);
if
(
storedSeller
!=
null
&&
storedSeller
.
getUid
()!=
null
){
return
true
;
}
return
false
;
}
private
StoredSeller
getValidStoredSeller
(
Integer
uid
){
//从缓存中获取
logger
.
info
(
"StoredSellerServiceImpl isStoredSeller uid is {} "
,
uid
);
StoredSeller
storedSeller
=
cacheService
.
getStoredSeller
(
uid
);
logger
.
info
(
"StoredSellerServiceImpl valid store seller uid is {} ,redis info is {} "
,
uid
,
storedSeller
);
if
(
null
!=
storedSeller
){
return
storedSeller
;
}
//如果不存在,则从数据库获取
storedSeller
=
storedSellerDao
.
selectValidByUid
(
uid
);
logger
.
info
(
"StoredSellerServiceImpl get valid store seller uid is {} ,database info is {} "
,
uid
,
storedSeller
);
if
(
storedSeller
!=
null
){
//保存到redis
cacheService
.
setStoredSeller
(
storedSeller
);
}
return
storedSeller
;
}
@Override
public
void
addUserAsStoredSeller
(
Integer
uid
){
logger
.
info
(
"StoredSellerServiceImpl addUserAsStoredSeller enter uid is {} "
,
uid
);
//检查是否已经实名认证
if
(
null
==
realNameAuthorizeService
.
getValidZhiMaCert
(
uid
)){
logger
.
error
(
"StoredSellerServiceImpl get zhi ma cert info is null , uid is {} "
,
uid
);
throw
new
ServiceException
(
400
,
"商户没有实名认证,不允许更新为入驻商户"
);
}
//@TODO 检查是否已经缴纳保证金
LocalDateTime
now
=
LocalDateTime
.
now
();
long
ts
=
now
.
toEpochSecond
(
ZoneOffset
.
of
(
"+8"
));
StoredSeller
storedSeller
=
new
StoredSeller
();
storedSeller
.
setUid
(
uid
);
storedSeller
.
setValidStatus
(
1
);
storedSeller
.
setCreateTime
(
ts
);
storedSeller
.
setUpdateTime
(
ts
);
logger
.
info
(
"StoredSellerServiceImpl addUserAsStoredSeller insert uid is {} , storedSeller {} "
,
uid
,
storedSeller
);
int
num
=
storedSellerDao
.
insert
(
storedSeller
);
if
(
num
<
0
){
logger
.
error
(
"StoredSellerServiceImpl addUserAsStoredSeller error uid is {} , storedSeller {} ,insert num {} "
,
uid
,
storedSeller
,
num
);
throw
new
ServiceException
(
400
,
"更新入驻用户信息错误"
);
}
//保存到redis
cacheService
.
setStoredSeller
(
storedSeller
);
}
}
...
...
users/src/main/java/com/yohoufo/user/service/impl/ZhiMaCallUtil.java
0 → 100644
View file @
02a8e35
package
com
.
yohoufo
.
user
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.AlipayClient
;
import
com.alipay.api.DefaultAlipayClient
;
import
com.alipay.api.request.ZhimaCustomerCertificationCertifyRequest
;
import
com.alipay.api.request.ZhimaCustomerCertificationInitializeRequest
;
import
com.alipay.api.request.ZhimaCustomerCertificationQueryRequest
;
import
com.alipay.api.response.ZhimaCustomerCertificationCertifyResponse
;
import
com.alipay.api.response.ZhimaCustomerCertificationInitializeResponse
;
import
com.alipay.api.response.ZhimaCustomerCertificationQueryResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
static
com
.
alipay
.
api
.
AlipayConstants
.
CHARSET_UTF8
;
public
class
ZhiMaCallUtil
{
private
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ZhiMaCallUtil
.
class
);
private
static
String
APP_ID
=
"2016092000556291"
,
APP_PRIVATE_KEY
=
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCFykKVR+xSSapScRNoi//rDLq5CaYLcN04Jzi/ivROFTkb5iYIdjshTio4tAJNpkT6HenCeiRUOrG9v2PPrLQN3utbkPv5XQag0wE2vaIHcfjNybx0xA8BWI9A5lgjJ47xE63qJvvLhlnpHSKq4tTkN7j7gaWWQjrqr5p78dEEp2+Wx/HTPE7wmSsYKN/8HqrKAxsh07dXRTDViGpHjA6RrdKZBCYUn8ncqLz6O5198Oost08BKSaX4qDQQLQD5ysdZBVgXspU0i55YCYdfCVqZ/1vsbptooN4BY501XmWsIpIUxSrUFR4pvvkZMncejyzkvWTbFtyqE3YuGUeVaedAgMBAAECggEAATwtwy0HzHaroNk0YamxMh1K9/xT0RU4pZUPHA2PVc0yWsSUI03cG+GZ2C4pO0hGqLxv9QClpzVngKXsqPUiMGKXb5/2A4ZNUlzATR4RCdqOfm/XUoigztVfdSzrMV/jHOyelWPIvUc/Ozyunj870eOFzKSUv79axeHbHjvMPyu8/kGE560tr0f/NgfmIcKjmeFQTh1R2FA61jwcYJBu5q5j+/ITsD3T5EPGneiMlAETXT1w80PHrTf4xrxnSoSwqryS+Qjh47DeSnAwK85g+R/Qlne89/XESGZJNJSChwoxHhuIEiLfyn2dFPETOqj129RT5QFST5WSdiQ08BAiLQKBgQDwSI3HGCu04yRDVuxNZqPcAHdxMZ7TjgLXfV6yEquR3uEYzx1RApvx+NnlyYLTGH4amWTAhIn3XiVAK+vxSIbQfEb9BaKLV819041c32YvEw5JMHOMCfzov3+auBt5Opmj64sG6p/DyOExAc2ZyitflMeSwE+NCk9GrJiJo1HhKwKBgQCOioT+pC4Rm1fsZcqtzx+t/FvFQuCztBIMIt6QkZ/5DabI4SYI+17DHes9uVN0Q75lqCOB6sCjKqfMqpok7wHqUQnA7gyswyaMjRQdcys2chkV33mozfeXQ+s/9YxBtsKg1zev9MJeLbKCSwo1rzaGdybmtCHAD4mreNptxeFmVwKBgQCFB+ZW4C7yiv88uRdDExyNZUS7yrkgb3NrUuHmvSd4L2l4jtKwUz17jkc1TYe8z8ahe2Oooriv19PP34FVqM3bB7NVypTfiNEgZMvTK2wri+VQ6B5Q3gbD5aIESwIK8EK32mSyg5vIjaL/uvvVtXSmCn0j5o0kjRyvCEe7jEx82QKBgQCCDWqItx19XQHco4dIDAm4gd7tXTaNX4dz4UC2INgXsVfyQlKksUzls1+V4oh9NO377GvxNlHqzZlqCGI5voQ92RCQIeIYormCVZn7wL+1nma66TokRUBYmFSE97Gvp2Nuws6BUU0iBomvjW3US3fxObeZmNKOXN7cP5jzvS8JYwKBgGCP22q/BZ/T73FC61k8M/OHr/sMOE01mifI8Cd+L5/eOkkbwYOgYEKsJoe+uGNMnOzWNYAGvgq4LHlvrYdBGcTFGLLOliRO8D0bIiPL8mFw8LuYtoV2l2mFUZOxQDwk57Mgv7bcAhV9lFeZS0M6X7vw2enSEdZDClhcBNz+VJFQ"
,
ALIPAY_PUBLIC_KEY
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu+Ykj77NJahXnNXuZ4YFm0mwnhjVZsjUMbf86IJ1Vrj44PDSr8S6xwM6EkGaSXXFod6XcKsDi32KavXHwgpYZLg1udTjtg6o0HnfBe4JiwMuI8wtx5PNaWPuer1C4JRhs3NP6nlF9en8tM0Hq6itZtQFo0/KK7qCDBlZjzz3BB+es33yab2Ts6qFVz+jjm+n8XocEzncNKVCafsuL05q5Myk6aBT8/J16i4uT86PBANtWctWX/uU5s7tassC9TCwTHnthMIZnV1bXV5WS+wqJ+wxv9ojS4Ug+dKo2P8GKgYl5ocezzG8EvGq4Xoha9dyZwM6uWBg3JvX3IGPilPd8wIDAQAB"
;
private
static
String
url
=
"https://openapi.alipaydev.com/gateway.do"
;
//"https://openapi.alipay.com/gateway.do"
private
final
static
String
ZHI_MA_PRODUCT_CODE
=
"w1010100000000002978"
;
/**
* 芝麻认知,请求biz_no
* @param transactionId
* @param certName
* @param certNo
* @return
* @throws Exception
*/
public
static
String
zhiMaCertInit
(
String
transactionId
,
String
certName
,
String
certNo
)
{
try
{
logger
.
info
(
"zhi ma cert init enter ,transactionId {} ,certName {},certNo {}"
,
transactionId
,
certName
,
certNo
);
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
url
,
APP_ID
,
APP_PRIVATE_KEY
,
"json"
,
"utf-8"
,
ALIPAY_PUBLIC_KEY
,
"RSA2"
);
ZhimaCustomerCertificationInitializeRequest
request
=
new
ZhimaCustomerCertificationInitializeRequest
();
JSONObject
identityParam
=
new
JSONObject
();
identityParam
.
put
(
"identity_type"
,
"CERT_INFO"
);
identityParam
.
put
(
"cert_type"
,
"IDENTITY_CARD"
);
identityParam
.
put
(
"cert_name"
,
certName
);
identityParam
.
put
(
"cert_no"
,
certNo
);
JSONObject
jo
=
new
JSONObject
();
jo
.
put
(
"transaction_id"
,
transactionId
);
jo
.
put
(
"product_code"
,
ZHI_MA_PRODUCT_CODE
);
jo
.
put
(
"biz_code"
,
"SMART_FACE"
);
jo
.
put
(
"identity_param"
,
identityParam
);
jo
.
put
(
"ext_biz_param"
,
new
JSONObject
());
/*String bizContent = "{"
+ "\"transaction_id\":\""+transactionId+"\","
+ "\"product_code\":\"w1010100000000002978\","
+ "\"biz_code\":\"SMART_FACE\","
+ "\"identity_param\":\"{\\\"identity_type\\\":\\\"CERT_INFO\\\",\\\"cert_type\\\":\\\"IDENTITY_CARD\\\",\\\"cert_name\\\":\\\""+certName+"\\\",\\\"cert_no\\\":\\\""+certNo+"\\\"}\","
+ "\"ext_biz_param\":\"{}\"" + " }";*/
String
bizContent
=
JSON
.
toJSONString
(
jo
);
request
.
setBizContent
(
bizContent
);
logger
.
info
(
"zhi ma cert init begin request is {} "
,
request
);
ZhimaCustomerCertificationInitializeResponse
response
=
alipayClient
.
execute
(
request
);
logger
.
info
(
"zhi ma cert init end response {}"
,
response
);
if
(
response
.
isSuccess
())
{
logger
.
info
(
"zhi ma cert init end ,call success "
);
return
response
.
getBizNo
();
}
else
{
logger
.
info
(
"zhi ma cert init end ,call fail "
);
return
""
;
}
}
catch
(
Exception
e
){
logger
.
error
(
"zhi ma cert init call error {} "
,
e
);
return
""
;
}
}
/**
* 芝麻认证,获取认证url
* @param bizNo
* @return
* @throws Exception
*/
public
static
String
zhiMaCertUrl
(
String
bizNo
){
try
{
// 获取alipay client
logger
.
info
(
"zhi ma cert url enter ,bizNo {} "
,
bizNo
);
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
url
,
APP_ID
,
APP_PRIVATE_KEY
,
"json"
,
"utf-8"
,
ALIPAY_PUBLIC_KEY
,
"RSA2"
);
ZhimaCustomerCertificationCertifyRequest
request
=
new
ZhimaCustomerCertificationCertifyRequest
();
// 设置业务参数,必须要biz_no
JSONObject
jo
=
new
JSONObject
();
jo
.
put
(
"biz_no"
,
bizNo
);
String
bizContent
=
JSON
.
toJSONString
(
jo
);
request
.
setBizContent
(
bizContent
);
// 设置回调地址,必填. 如果需要直接在支付宝APP里面打开回调地址使用alipay协议
// alipay://www.taobao.com 或者 alipays://www.taobao.com,分别对应http和https请求
request
.
setReturnUrl
(
"alipays://www.taobao.com"
);
logger
.
info
(
"zhi ma cert url begin ,request {} "
,
request
);
// 这里一定要使用GET模式
ZhimaCustomerCertificationCertifyResponse
response
=
alipayClient
.
pageExecute
(
request
,
"GET"
);
logger
.
info
(
"zhi ma cert url end ,response {} "
,
response
);
// 从body中获取URL
String
url
=
response
.
getBody
();
return
url
;
}
catch
(
Exception
e
){
logger
.
error
(
"zhi ma cert url error {}"
,
e
);
return
""
;
}
}
/**
* 芝麻认证,获取认证结果
* @param bizNo
* @return
*/
public
static
ZhimaCustomerCertificationQueryResponse
zhiMaResult
(
String
bizNo
)
{
ZhimaCustomerCertificationQueryResponse
response
=
null
;
try
{
// 获取alipay client
logger
.
info
(
"zhi ma result enter ,bizNo {} "
,
bizNo
);
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
url
,
APP_ID
,
APP_PRIVATE_KEY
,
"json"
,
"utf-8"
,
ALIPAY_PUBLIC_KEY
,
"RSA2"
);
ZhimaCustomerCertificationQueryRequest
request
=
new
ZhimaCustomerCertificationQueryRequest
();
// 设置业务参数,必须要biz_no
JSONObject
jo
=
new
JSONObject
();
jo
.
put
(
"biz_no"
,
bizNo
);
String
bizContent
=
JSON
.
toJSONString
(
jo
);
request
.
setBizContent
(
bizContent
);
logger
.
info
(
"zhi ma result begin ,request {} "
,
request
);
response
=
alipayClient
.
execute
(
request
);
logger
.
info
(
"zhi ma result end ,response {} "
,
response
);
return
response
;
}
catch
(
Exception
e
){
logger
.
error
(
"zhi ma result error {} "
,
e
);
return
response
;
}
}
}
...
...
web/src/main/resources/databases.yml
View file @
02a8e35
...
...
@@ -8,6 +8,7 @@ datasources:
daos
:
-
com.yohoufo.dal.user.IUserAuthorizeHistoryDao
-
com.yohoufo.dal.user.IUserAuthorizeInfoDao
-
com.yohoufo.dal.user.IZhiMaCertDao
ufo_product
:
servers
:
...
...
web/src/main/webapp/META-INF/autoconf/databases.yml
View file @
02a8e35
...
...
@@ -8,6 +8,7 @@ datasources:
daos
:
-
com.yohoufo.dal.user.IUserAuthorizeHistoryDao
-
com.yohoufo.dal.user.IUserAuthorizeInfoDao
-
com.yohoufo.dal.user.IZhiMaCertDao
ufo_product
:
servers
:
...
...
Please
register
or
login
to post a comment