Commit 3d92b780 authored by 技术部-任文超's avatar 技术部-任文超

Merge branch 'master' into 20180130-geetest

parents d8c18754 fba3c8c4
......@@ -253,7 +253,7 @@
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>commons</artifactId>
<version>0.0.5</version>
<version>0.0.7</version>
<scope>compile</scope>
</dependency>
......
......@@ -17,7 +17,7 @@ import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import sun.misc.Signal;
@ComponentScan(basePackages = {"cn.quantgroup.sms", "cn.quantgroup.xyqb"})
@ComponentScan(basePackages = {"cn.quantgroup.sms", "cn.quantgroup.xyqb", "cn.quantgroup.tech"})
@SpringBootApplication
@EnableCaching
@EnableAspectJAutoProxy
......
......@@ -117,7 +117,7 @@ public class InnerController implements IBaseController {
@LogHttpCaller
@RequestMapping("/user/search/uuid")
public JsonResult findByUuid(String uuid) {
User user = userService.findByUuidInDb(uuid);
User user = userService.findByUuidWithCache(uuid);
if (user == null) {
return JsonResult.buildErrorStateResult("", null);
}
......@@ -133,7 +133,7 @@ public class InnerController implements IBaseController {
if (StringUtils.isBlank(uuid)) {
return JsonResult.buildSuccessResult(null, null);
}
User user = userService.findByUuidInDb(uuid);
User user = userService.findByUuidWithCache(uuid);
if (null != user) {
if (!user.getEnable()) {
return JsonResult.buildSuccessResult("", null);
......
......@@ -49,7 +49,7 @@ public class UserAuthorizedController {
}
UserAuthorized userAuthorized = userAuthorizedService.createUserAuthorized(userAuthorizedParam);
if (null == userAuthorized) {
return JsonResult.buildErrorStateResult("重复创建异常", null);
return JsonResult.buildErrorStateResult("重复创建异常或userUuid有误", null);
} else {
return JsonResult.buildSuccessResult("创建成功", userAuthorized.getId());
}
......
......@@ -26,7 +26,7 @@ public class RequestFilter implements Filter {
private static final String[] ALLOWED_PATTERNS = {
"/wechat/**", "/config/**", "/api/**", "/query/**", "/user_detail/**", "/hello/**", "/innerapi/**", "/app/**", "/motan/**", "/user/**", "/lock/**",
"/auth/info/login", "/platform/api/page/return_url", "/MP_verify_AWiagUn4kZiwmTt0.txt"
"/auth/info/login", "/platform/api/page/return_url", "/MP_verify_AWiagUn4kZiwmTt0.txt", "/tech/health/check"
};
private static final String UNAUTH_RESULT = JSONObject.toJSONString(JsonResult.buildErrorStateResult("登录失败", null));
@Autowired
......
......@@ -5,7 +5,9 @@ package cn.quantgroup.xyqb.model;
*/
public enum AuthPattern {
ZMXY("芝麻分授权"),
FOUR_ELEMENTS_OF_BANK_CARD("银行卡四要素");
FOUR_ELEMENTS_OF_BANK_CARD("银行卡四要素"),
KA_ZMXY("ka芝麻分授权"),
KA_FOUR_ELEMENTS_OF_BANK_CARD("ka银行卡四要素");
private String desc;
AuthPattern(String desc) {
......
......@@ -11,7 +11,6 @@ import lombok.Getter;
public class UserAuthorizedParam {
private String name;
private String idNo;
private Long userId;
private String authPattern;
private String userUuid;
}
......@@ -24,7 +24,7 @@ public interface IUserAuthorizedService {
UserAuthorized createUserAuthorized(UserAuthorizedParam userAuthorizedParam);
/**
* 通过userId获取实名账户表的id
* 通过userUuid获取实名账户表的id
*
* @param userUuid userUuid
* @return
......
......@@ -4,6 +4,7 @@ import cn.quantgroup.xyqb.entity.UserAuthorized;
import cn.quantgroup.xyqb.model.AuthPattern;
import cn.quantgroup.xyqb.model.UserAuthorizedParam;
import cn.quantgroup.xyqb.repository.IUserAuthorizedRepository;
import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.auth.IIdCardService;
import cn.quantgroup.xyqb.service.auth.IUserAuthorizedService;
import org.apache.commons.lang.StringUtils;
......@@ -29,7 +30,10 @@ public class UserAuthorizedServiceImpl implements IUserAuthorizedService {
@Resource
private IUserAuthorizedRepository userAuthorizedRepository;
@Cacheable(value = "user_authorized_idno_cache", key = "#idNo", unless = "#result == null", cacheManager = "cacheManager")
@Resource
private IUserRepository userRepository;
@Cacheable(value = "user_authorized_idno_cache", key = "#idNo", unless = "#result == false", cacheManager = "cacheManager")
@Override
public Boolean hasUserAuthorized(String idNo) {
try {
......@@ -51,12 +55,9 @@ public class UserAuthorizedServiceImpl implements IUserAuthorizedService {
if (null == userAuthorizedParam) {
return Boolean.TRUE;
}
Long userId = userAuthorizedParam.getUserId();
String userUuid = userAuthorizedParam.getUserUuid();
if (userId == null || userId == 0L) {
if (StringUtils.isBlank(userUuid)) {
return Boolean.TRUE;
}
if (StringUtils.isBlank(userUuid)) {
return Boolean.TRUE;
}
String name = userAuthorizedParam.getName();
String authPattern = userAuthorizedParam.getAuthPattern();
......@@ -66,8 +67,9 @@ public class UserAuthorizedServiceImpl implements IUserAuthorizedService {
@Override
public UserAuthorized createUserAuthorized(UserAuthorizedParam userAuthorizedParam) {
// 数据检查
if(Objects.isNull(userAuthorizedParam) || this.hasUserAuthorized(userAuthorizedParam.getIdNo())){
// 数据检查,以及检查userUuid是否存在
if (Objects.isNull(userAuthorizedParam) || this.hasUserAuthorized(userAuthorizedParam.getIdNo())
|| Objects.isNull(userRepository.findByUuid(userAuthorizedParam.getUserUuid()))) {
return null;
}
AuthPattern authPatternEnum = AuthPattern.valueOf(userAuthorizedParam.getAuthPattern());
......@@ -100,7 +102,7 @@ public class UserAuthorizedServiceImpl implements IUserAuthorizedService {
}
UserAuthorized userAuthorized = userAuthorizedRepository.findByUserUuid(userUuid);
LOGGER.info("[getUserAuthorizedId]获取实名账户的id,userUuid:{},userAuthorized:{}", userUuid,userAuthorized);
LOGGER.info("[getUserAuthorizedId]获取实名账户的id,userUuid:{},userAuthorized:{}", userUuid, userAuthorized);
if (null == userAuthorized) {
return null;
}
......
package cn.quantgroup.xyqb.util;
import cn.quantgroup.tech.security.TechSecurityUtil;
import cn.quantgroup.tech.util.TechEnvironment;
import com.google.common.collect.Sets;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -29,8 +31,7 @@ public class IPUtil {
String[] ips = {"172.16.", "172.20.", "172.30.", "192.168.3.", "192.168.4."};
WHITE_ADDRESS.addAll(Arrays.asList(ips));
//系统环境
String jvmTest = System.getProperty("test");
if(Boolean.valueOf(jvmTest)){
if(!TechEnvironment.isPro()){
WHITE_ADDRESS.add("192.168.");
WHITE_ADDRESS.add("10.");
WHITE_ADDRESS.add(LOCAL_ADDRESS);
......
......@@ -2,12 +2,13 @@ package demo;
import org.junit.Before;
import org.springframework.test.context.TestContextManager;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
/**
* @author renwc
* @date 2018-01-05
*/
public abstract class BaseParametersTests {
public abstract class BaseParametersTests extends AbstractTransactionalJUnit4SpringContextTests {
private TestContextManager testContextManager;
@Before
public void setUpContext() throws Exception {
......
......@@ -10,6 +10,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
......@@ -28,7 +29,7 @@ import java.time.Instant;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Bootstrap.class)
@ContextConfiguration(initializers = ApolloPropertySourceInitializer.class)
public class RepsitoryTests {
public class RepsitoryTests extends AbstractTransactionalJUnit4SpringContextTests {
@Resource
private IUserRepository userRepository;
......
......@@ -10,6 +10,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
......@@ -27,7 +28,7 @@ import java.time.Instant;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Bootstrap.class)
@ContextConfiguration(initializers = ApolloPropertySourceInitializer.class)
public class ServiceTests {
public class ServiceTests extends AbstractTransactionalJUnit4SpringContextTests {
@Resource
private IUserService userService;
......
......@@ -49,10 +49,10 @@ public class UserAuthorizedRepsitoryTests extends BaseParametersTests {
@Parameterized.Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][]{
{1L,"350504198805144101","史书一", AuthPattern.ZMXY, true},
{10L,"350504198805144102","史书二", AuthPattern.ZMXY, true},
{20L,"350504198805144103","史书三", AuthPattern.FOUR_ELEMENTS_OF_BANK_CARD, true},
{1L, "IDNO-1", "王-1", AuthPattern.ZMXY, true}
{"711892ae-191b-445a-a4eb-3c0b7bab7840","350504198805144101","史书一", AuthPattern.ZMXY, true},
{"711892ae-191b-445a-a4eb-3c0b7bab7841","350504198805144102","史书二", AuthPattern.ZMXY, true},
{"711892ae-191b-445a-a4eb-3c0b7bab7842","350504198805144103","史书三", AuthPattern.FOUR_ELEMENTS_OF_BANK_CARD, true},
{"711892ae-191b-445a-a4eb-3c0b7bab7843", "IDNO-1", "王-1", AuthPattern.ZMXY, true}
};
return Arrays.asList(data);
}
......@@ -60,24 +60,24 @@ public class UserAuthorizedRepsitoryTests extends BaseParametersTests {
@Test
public void testExist() throws Exception {
log.info("testExist: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
UserAuthorized obj = new UserAuthorized();
boolean exist = userAuthorizedRepository.exists(Example.of(obj));
Assert.assertNotNull(obj);
Assert.assertFalse(exist);
}
@Test
public void testSave() throws Exception {
log.info("testSave: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
UserAuthorized obj = new UserAuthorized();
obj = userAuthorizedRepository.save(obj);
Assert.assertNotNull(obj);
Object o = userAuthorizedRepository.save(obj);
Assert.assertNotNull(o);
Assert.assertEquals(obj, o);
}
@Test
public void testQuery(){
public void testThenQuery(){
log.info("testQuery: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
UserAuthorized obj = userAuthorizedRepository.findByIdNo(this.obj.getIdNo());
Assert.assertNotNull(obj);
UserAuthorized o = userAuthorizedRepository.findByIdNo(this.obj.getIdNo());
Assert.assertNotNull(o);
Assert.assertEquals(obj.getIdNo(), o.getIdNo());
}
}
package service;
import cn.quantgroup.xyqb.Bootstrap;
import cn.quantgroup.xyqb.entity.UserAuthorized;
import cn.quantgroup.xyqb.model.AuthPattern;
import cn.quantgroup.xyqb.model.UserAuthorizedParam;
import cn.quantgroup.xyqb.service.auth.IUserAuthorizedService;
......@@ -8,8 +9,10 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
import demo.BaseParametersTests;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.junit.runners.Parameterized;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
......@@ -27,8 +30,9 @@ import java.util.Optional;
* @date 2018-01-05
*/
@Slf4j
@Rollback
@Rollback(true)
@Transactional
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@RunWith(value = Parameterized.class)
@SpringBootTest(classes = Bootstrap.class)
@ContextConfiguration(initializers = ApolloPropertySourceInitializer.class)
......@@ -48,10 +52,10 @@ public class UserAuthorizedServiceTests extends BaseParametersTests {
@Parameterized.Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][]{
{1L,"350504198805144101","史书一", AuthPattern.ZMXY, true},
{10L,"350504198805144102","史书二", AuthPattern.ZMXY, true},
{20L,"350504198805144103","史书三", AuthPattern.FOUR_ELEMENTS_OF_BANK_CARD, true},
{1L, "IDNO-1", "王-1", AuthPattern.ZMXY, true}
{"55544ae9-a1dd-458b-a7ac-2b4e64e59f99","350504198805144101","史书一", AuthPattern.ZMXY, true},
{"2f7715f1-e59e-4169-8214-89aef11d2291","350504198805144102","史书二", AuthPattern.ZMXY, true},
{"7addad2f-100b-49fa-ac44-bb729dfca06e","350504198805144103","史书三", AuthPattern.FOUR_ELEMENTS_OF_BANK_CARD, true},
{"2dae9875-71ba-47bd-9332-0e4922f75f12", "IDNO-1", "王-1", AuthPattern.ZMXY, true}
};
return Arrays.asList(data);
}
......@@ -59,22 +63,23 @@ public class UserAuthorizedServiceTests extends BaseParametersTests {
@Test
public void testExist() throws Exception {
log.info("testExist: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
Object obj = userAuthorizedService.hasUserAuthorized(this.obj.getIdNo());
Assert.assertNotNull(obj);
Boolean exist = userAuthorizedService.hasUserAuthorized(this.obj.getIdNo());
Assert.assertFalse(exist);
}
@Test
public void testSave() throws Exception {
log.info("testSave: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
Object obj = userAuthorizedService.createUserAuthorized(this.obj);
Assert.assertNotNull(obj);
UserAuthorized o = userAuthorizedService.createUserAuthorized(this.obj);
Assert.assertNotNull(o);
Assert.assertEquals(obj.getIdNo(), o.getIdNo());
}
@Test
public void testQuery(){
public void testThenQuery(){
log.info("testQuery: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserUuid(), obj.getAuthPattern());
Object obj = userAuthorizedService.getUserAuthorizedId(this.obj.getUserUuid());
Assert.assertNotNull(obj);
Object o = userAuthorizedService.getUserAuthorizedId(this.obj.getUserUuid());
Assert.assertNotNull(o);
}
}
......@@ -38,12 +38,12 @@ public class UserAuthorizedControllerTests extends BaseParametersTests {
private TestRestTemplate restTemplate;
private UserAuthorizedParam obj = new UserAuthorizedParam();
{
Long userId = 1L;
String userUuid = "711892ae-191b-445a-a4eb-3c0b7bab7840";
String idNo = "350504198805144101";
String name = "史书一";
AuthPattern authPattern = AuthPattern.ZMXY;
Boolean available = true;
obj.setUserId(userId);
obj.setUserUuid(userUuid);
obj.setIdNo(idNo);
obj.setName(name);
obj.setAuthPattern(Optional.ofNullable(authPattern).orElse(AuthPattern.ZMXY).name());
......@@ -52,20 +52,20 @@ public class UserAuthorizedControllerTests extends BaseParametersTests {
@Test
public void testExist() throws Exception {
ResponseEntity<String> phil = restTemplate.getForEntity("/user/auth/{model}?idNo={idNo}", String.class, "hasUserAuthorized", obj.getIdNo());
log.info("testExist: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserId(), obj.getAuthPattern());
log.info("testExist: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getAuthPattern());
Assert.assertEquals(phil.getStatusCode(), HttpStatus.OK);
}
@Test
public void testSave() throws Exception {
ResponseEntity<String> phil = restTemplate.postForEntity("/user/auth/{model}", this.obj, String.class, "createUserAuthorized");
log.info("testSave: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getUserId(), obj.getAuthPattern());
log.info("testSave: name:{}, idNo:{}, userId:{}, authPattern:{}", obj.getName(), obj.getIdNo(), obj.getAuthPattern());
Assert.assertEquals(phil.getStatusCode(), HttpStatus.OK);
}
@Test
public void testQuery(){
ResponseEntity<String> phil = restTemplate.getForEntity("/user/auth/{model}?userId={userId}", String.class, "getUserAuthorizedId", obj.getUserId());
ResponseEntity<String> phil = restTemplate.getForEntity("/user/auth/{model}?userUuid={userUuid}", String.class, "getUserAuthorizedId", obj.getUserUuid());
Assert.assertEquals(phil.getStatusCode(), HttpStatus.OK);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment