Commit c7bfb215 authored by Java—红包—徐 然's avatar Java—红包—徐 然

修改合并分支

parents d537dc46 61f9b0bc
......@@ -31,7 +31,16 @@
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.2</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
......
package cn.quantgroup.xyqb.config.mq;
import cn.quantgroup.xyqb.service.mq.IVestService;
import org.springframework.amqp.core.AcknowledgeMode;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* //马甲包 xuran
*/
@Configuration
public class LoanVestMQConfig {
@Value("${loanvest.rabbitmq.queue}")
private String queueName;
@Value("${loanvest.rabbitmq.exchange}")
private String loanVestExchange;
@Value("${loanvest.rabbitmq.connection.host}")
private String host;
@Value("${loanvest.rabbitmq.connection.port}")
private Integer port;
@Value("${loanvest.rabbitmq.connection.user}")
private String user;
@Value("${loanvest.rabbitmq.connection.password}")
private String password;
@Value("${loanvest.rabbitmq.connection.virtual-host}")
private String virtualHost;
//@Value("${loanvest.rabbitmq.stateMsgQueue}")
//private String stateQueueName;
@Bean(name = "vestFactory")
public ConnectionFactory vestFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host, port);
connectionFactory.setChannelCacheSize(1024);
connectionFactory.setCacheMode(CachingConnectionFactory.CacheMode.CONNECTION);
connectionFactory.setChannelCacheSize(180 * 1000);
connectionFactory.setConnectionCacheSize(1024);
connectionFactory.setUsername(user);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtualHost);
connectionFactory.setPublisherReturns(false);
connectionFactory.setPublisherConfirms(false);
return connectionFactory;
}
@Bean(name= "loanVestAmqpAdmin")
public AmqpAdmin loanVestAdmin(@Qualifier("vestFactory") ConnectionFactory vestFactory) {
return new RabbitAdmin(vestFactory);
}
@Bean(name = "loanVestExchange")
public FanoutExchange loanVestExchange() {
return new FanoutExchange(loanVestExchange);
}
@Bean(name = "loanVestQueue")
public Queue loanVestQueue() {
return new Queue(queueName);
}
@Bean(name = "loanVestBinding")
public Binding bindingLoanVest(@Qualifier("loanVestAmqpAdmin")AmqpAdmin loanVestAdmin, @Qualifier("loanVestQueue")Queue loanVestQueue, @Qualifier("loanVestExchange")FanoutExchange loanVestExchange) {
Binding binding = BindingBuilder.bind(loanVestQueue).to(loanVestExchange);
loanVestAdmin.declareBinding(binding);
return binding;
}
@Bean(name = "loanVestRabbitTemplate")
public RabbitTemplate loanVestTemplate(@Qualifier("vestFactory") ConnectionFactory vestFactory) {
RabbitTemplate template = new RabbitTemplate(vestFactory);
template.setExchange(loanVestExchange);
return template;
}
//@Bean(name = "loanVestMsgQueue")
//public Queue loanStateMsgQueue() {
// return new Queue(stateQueueName);
//}
//@Bean(name = "loanVestListenerContainer")
//public SimpleMessageListenerContainer loanVestSimpleMessageListenerContainer(@Qualifier("loanVestMQService") IVestService vestService, @Qualifier("vestFactory") ConnectionFactory vestFactory, @Qualifier("loanVestMsgQueue")Queue loanVestMsgQueue) {
// SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
// container.setConnectionFactory(vestFactory);
// container.setQueues(loanVestMsgQueue);
// container.setAcknowledgeMode(AcknowledgeMode.NONE);
// container.setMessageListener(new MessageListenerAdapter(vestService));
// container.start();
// return container;
//
//}
}
package cn.quantgroup.xyqb.controller.external.index;
import cn.quantgroup.xyqb.model.JsonResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by xuran on 2017/7/12.
*/
@RestController
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "ok";
}
}
......@@ -369,11 +369,15 @@ public class UserQueryLogController {
}
@RequestMapping("/exportUserInfo")
public JsonResult exportExcel(final HttpServletResponse response,String key,String keyValues, String columns,String token){
public JsonResult exportExcel(final HttpServletResponse response, HttpServletRequest request,String key,String keyValues, String columns){
String token=request.getHeader("x-auth-token");
if(token==null||token.equals("")){
LOGGER.info("token为空,非法查询");
return JsonResult.buildErrorStateResult("缺少授权信息",null);
}
String userName=checkUserToken(token);
if(userName.equals("")){
return JsonResult.buildErrorStateResult("未授权查询",null);
......@@ -564,8 +568,9 @@ public class UserQueryLogController {
{
OutputStream output=response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=users.xls");
response.setContentType("application/msexcel");
response.setHeader("Content-disposition", "attachment; filename=users.xlsx");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("utf-8");
wb.write(output);
output.close();
......
......@@ -22,6 +22,7 @@ import cn.quantgroup.xyqb.service.user.IUserBtRegisterService;
import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.IPUtil;
import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import org.apache.commons.lang3.StringUtils;
......@@ -74,7 +75,7 @@ public class AppController implements IBaseController {
String phoneNo,
@RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long channelId,
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "") String appChannel,@RequestParam(required = false)Long btRegisterChannelId, HttpServletRequest request
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "") String appChannel,@RequestParam(required = false)Long btRegisterChannelId,HttpServletRequest request
) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
......@@ -85,6 +86,7 @@ public class AppController implements IBaseController {
User user = userService.findByPhoneInDb(phoneNo);
if (user == null) {
user = register(registerFrom, phoneNo, idNo, name, channelId,btRegisterChannelId);
}
if (user == null) {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
......@@ -106,6 +108,9 @@ public class AppController implements IBaseController {
bean.setToken(sessionStruct.getSid());
bean.setPhoneNo(phoneNo);
LOGGER.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,null,4,channelId);
MqUtils.sendLoanVest(statistics);
return new JsonResult(bean);
}
......@@ -196,7 +201,11 @@ public class AppController implements IBaseController {
loginInfo.setLoginContext(context);
LOGGER.info("第三方用户获取信息登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,null,4,channelId);
MqUtils.sendLoanVest(statistics);
return JsonResult.buildSuccessResult("", loginInfo);
}
/**
......@@ -279,7 +288,9 @@ public class AppController implements IBaseController {
LOGGER.error("保存 UserDetail 出现异常", e);
}
}
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,null,2,channelId);
MqUtils.sendLoanVest(statistics);
return user;
}
......
......@@ -20,6 +20,7 @@ import cn.quantgroup.xyqb.model.IdType;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.UserDetailRet;
import cn.quantgroup.xyqb.model.UserExtInfoRet;
import cn.quantgroup.xyqb.model.UserInfo;
import cn.quantgroup.xyqb.model.UserRet;
import cn.quantgroup.xyqb.model.UserSpouseRet;
import cn.quantgroup.xyqb.service.auth.IIdCardService;
......@@ -124,8 +125,8 @@ public class InnerController implements IBaseController {
if (user == null) {
return JsonResult.buildErrorStateResult("", null);
}
UserRet userRet = new UserRet(user);
UserRet userRet = new UserRet(user);
return JsonResult.buildSuccessResult("", userRet);
}
......@@ -137,10 +138,50 @@ public class InnerController implements IBaseController {
if (user == null) {
return JsonResult.buildErrorStateResult("", null);
}
UserRet userRet = new UserRet(user);
UserRet userRet = new UserRet(user);
return JsonResult.buildSuccessResult("", userRet);
}
@RequestMapping("/userInfo/search/uuid")
@LogHttpCaller
public JsonResult findUserInfoByUuid(@RequestParam(value = "uuid") String uuid) {
LOGGER.info("需要查询的用户uuidid, uuid:" + uuid);
if (StringUtils.isBlank(uuid)) {
return JsonResult.buildSuccessResult(null, null);
}
User user = userService.findByUuidInDb(uuid);
if(null!=user){
if(!user.getEnable()){
return JsonResult.buildSuccessResult("", null);
}
UserDetail userDetail = userDetailService.findByUserId(user.getId());
UserInfo info = new UserInfo(user,userDetail);
return JsonResult.buildSuccessResult("", info);
}
return JsonResult.buildSuccessResult("", null);
}
@RequestMapping("/userInfo/search/phone")
@LogHttpCaller
public JsonResult findUserInfoByPhone(@RequestParam(value = "phone") String phone) {
LOGGER.info("需要查询的用户phone, phone:" + phone);
if (StringUtils.isBlank(phone)) {
return JsonResult.buildSuccessResult(null, null);
}
User user = userService.findByPhoneInDb(phone);
if(null!=user){
if(!user.getEnable()){
return JsonResult.buildSuccessResult("", null);
}
UserDetail userDetail = userDetailService.findByUserId(user.getId());
UserInfo info = new UserInfo(user,userDetail);
return JsonResult.buildSuccessResult("", info);
}
return JsonResult.buildSuccessResult("", null);
}
@RequestMapping("/user/getPhoneByUserIds")
@LogHttpCaller
public JsonResult findByIds(@RequestParam(value = "userIds") String userIdsString) {
......@@ -266,7 +307,7 @@ public class InnerController implements IBaseController {
public JsonResult findUserByUserId(Long userId) {
User user = userService.findById(userId);
if (user != null) {
return JsonResult.buildSuccessResult(null, new UserRet(user));
return JsonResult.buildSuccessResult(null, new UserRet(user));
}
return JsonResult.buildErrorStateResult("", null);
}
......@@ -673,4 +714,17 @@ public class InnerController implements IBaseController {
}
return JsonResult.buildSuccessResult(null, new UserRet(user));
}
//根据日期时间段查询新注册用户信息并返回
@RequestMapping("/contract/queryRegisterUsers")
@LogHttpCaller
public JsonResult findRegisterUserByTime(String beginTime,String endTime) {
if (null == beginTime||endTime==null) {
return JsonResult.buildErrorStateResult(null, null);
}
List<User> userList=userService.findRegisterUserByTime(beginTime,endTime);
return JsonResult.buildSuccessResult(null, userList);
}
}
\ No newline at end of file
......@@ -68,8 +68,10 @@ public class UserCenterController {
}
UserDetail userDetail = userDetailService.findByUserId(userId);
if(userDetail != null) {
result.put("name", userDetail.getName());
result.put("sex", userDetail.getGender().ordinal() + "");
result.put("phoneNo", userDetail.getPhoneNo().substring(0,3)+"****"+userDetail.getPhoneNo().substring(7,11));
}
return JsonResult.buildSuccessResult(null, result);
}
......
......@@ -10,12 +10,14 @@ import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.UserModel;
import cn.quantgroup.xyqb.model.UserStatistics;
import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService;
import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import org.apache.commons.codec.binary.Base64;
......@@ -75,16 +77,17 @@ public class UserController implements IBaseController {
public JsonResult login(
@RequestParam(required = false, defaultValue = "1") Long channelId, String appChannel,
@RequestParam(required = false, defaultValue = "1") Long createdFrom,
@RequestParam(required = false, defaultValue = "") String userId, String key, HttpServletRequest request, String openId) {
@RequestParam(required = false, defaultValue = "") String userId, String key, HttpServletRequest request, String openId,@RequestParam(required = false) String dimension) {
Merchant merchant = merchantService.findMerchantByName(key);
if (merchant == null) {
return JsonResult.buildErrorStateResult("未知的连接", null);
}
if (!StringUtils.isEmpty(userId) && userId.length() > 10) {
return loginWithUserId(channelId, appChannel, createdFrom, userId, merchant);
return loginWithUserId(channelId, appChannel, createdFrom, userId, merchant,dimension);
} else {
return loginWithHttpBasic(channelId, appChannel, createdFrom, merchant, request, openId);
return loginWithHttpBasic(channelId, appChannel, createdFrom, merchant, request, openId,dimension);
}
}
@LogHttpCaller
......@@ -92,13 +95,13 @@ public class UserController implements IBaseController {
public JsonResult login2(
@RequestParam(required = false, defaultValue = "1") Long channelId, String appChannel,
@RequestParam(required = false, defaultValue = "1") Long createdFrom,
@RequestParam(required = false, defaultValue = "") String userId, HttpServletRequest request, @RequestParam(required = false) String openId) {
@RequestParam(required = false, defaultValue = "") String userId, HttpServletRequest request, @RequestParam(required = false) String openId,@RequestParam(required = false) String dimension) {
if (!StringUtils.isEmpty(userId) && userId.length() > 10) {
return loginWithUserId(channelId, appChannel, createdFrom, userId, null);
return loginWithUserId(channelId, appChannel, createdFrom, userId, null, dimension);
} else {
return loginWithHttpBasic(channelId, appChannel, createdFrom, null, request, null);
return loginWithHttpBasic(channelId, appChannel, createdFrom, null, request, null,dimension);
}
}
......@@ -110,7 +113,7 @@ public class UserController implements IBaseController {
@RequestMapping("/login/fast")
public JsonResult loginFast(
@RequestParam(required = false, defaultValue = "1") Long channelId, String appChannel,
@RequestParam(required = false, defaultValue = "1") Long createdFrom, String key,@RequestParam(required = false)Long btRegisterChannelId ,HttpServletRequest request) {
@RequestParam(required = false, defaultValue = "1") Long createdFrom, String key,@RequestParam(required = false)Long btRegisterChannelId,@RequestParam(required = false) String dimension ,HttpServletRequest request) {
Map<String, JsonResult> validMap = getHeaderParam(request);
if (null != validMap.get("fail")) {
return validMap.get("fail");
......@@ -126,16 +129,19 @@ public class UserController implements IBaseController {
return JsonResult.buildErrorStateResult("登录失败", null);
}
if (user == null) {
user = registerFastWhenLogin(phoneNo, channelId, createdFrom, appChannel,btRegisterChannelId);
user = registerFastWhenLogin(phoneNo, channelId, createdFrom, appChannel,btRegisterChannelId,dimension);
if (user == null) {
throw new UserNotExistException("用户未找到");
}
}
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,dimension,3,channelId);
MqUtils.sendLoanVest(statistics);
return new JsonResult(sessionService.createSession(channelId, createdFrom, appChannel, user, merchant));
// return createSession(channelId, createdFrom, appChannel, user);
}
private User registerFastWhenLogin(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId) {
private User registerFastWhenLogin(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId,String dimension) {
String password = genRandomPwd();
LOGGER.info("用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{},btRegisterChannelId", phoneNo, channelId, registerFrom, appChannel,btRegisterChannelId);
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
......@@ -147,10 +153,12 @@ public class UserController implements IBaseController {
}
if (channelId == 222L) {
registerFrom=222L;
}
}
User user=userService.registerAndReturn(phoneNo, password, registerFrom,btRegisterChannelId);
LOGGER.info("用户快速注册成功, registerFrom:{}, phoneNo:{}", registerFrom, phoneNo);
return userService.registerAndReturn(phoneNo, password, registerFrom,btRegisterChannelId);
UserStatistics statistics=new UserStatistics(user,dimension,2,channelId);
MqUtils.sendLoanVest(statistics);
return user;
}
/**
......@@ -206,7 +214,7 @@ public class UserController implements IBaseController {
@RequestMapping("/register/fast")
public JsonResult registerFast(@RequestParam String phoneNo, @RequestParam String verificationCode, @RequestParam(required = false) Long channelId,
@RequestParam(required = false) Long registerFrom, @RequestParam(required = false, defaultValue = "") String appChannel,
@RequestParam(required = false)Long btRegisterChannelId) {
@RequestParam(required = false)Long btRegisterChannelId,@RequestParam(required = false)String dimension) {
String password = genRandomPwd();
LOGGER.info("用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{}", phoneNo, verificationCode, channelId, registerFrom, appChannel);
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
......@@ -232,7 +240,7 @@ public class UserController implements IBaseController {
LOGGER.info("用户快速注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}", registerFrom, phoneNo, verificationCode);
return JsonResult.buildErrorStateResult("短信验证码错误", null);
}
if (!userService.register(phoneNo, password, registerFrom, getIp(), channelId,btRegisterChannelId)) {
if (!userService.register(phoneNo, password, registerFrom, getIp(), channelId,btRegisterChannelId,dimension)) {
LOGGER.info("用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}", registerFrom, phoneNo);
return JsonResult.buildErrorStateResult("注册失败,请稍后重试", null);
}
......@@ -256,7 +264,7 @@ public class UserController implements IBaseController {
public JsonResult register(@RequestParam String phoneNo, @RequestParam String password,
@RequestParam String verificationCode, @RequestParam(required = false) Long channelId,
@RequestParam(required = false) Long registerFrom,
@RequestParam(required = false)Long btRegisterChannelId) {
@RequestParam(required = false)Long btRegisterChannelId,@RequestParam(required = false)String dimension) {
LOGGER.info("用户注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},btRegisterChannelId:{}", phoneNo, verificationCode, channelId, registerFrom,btRegisterChannelId);
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
LOGGER.info("用户注册失败,手机号错误, registerFrom:{}, phoneNo:{}", registerFrom, phoneNo);
......@@ -281,7 +289,7 @@ public class UserController implements IBaseController {
LOGGER.info("用户注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}", registerFrom, phoneNo, verificationCode);
return JsonResult.buildErrorStateResult("短信验证码错误", null);
}
if (!userService.register(phoneNo, password, registerFrom, getIp(), channelId,btRegisterChannelId)) {
if (!userService.register(phoneNo, password, registerFrom, getIp(), channelId,btRegisterChannelId,dimension)) {
LOGGER.info("用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}", registerFrom, phoneNo);
return JsonResult.buildErrorStateResult("注册失败,请稍后重试", null);
}
......@@ -414,11 +422,14 @@ public class UserController implements IBaseController {
}
private JsonResult loginWithHttpBasic(Long channelId, String appChannel, Long createdFrom, Merchant merchant, HttpServletRequest request, String openId) {
private JsonResult loginWithHttpBasic(Long channelId, String appChannel, Long createdFrom, Merchant merchant, HttpServletRequest request, String openId,String dimension) {
User user = verificateUserNameAndPassword(request, openId);
if (user == null) {
return JsonResult.buildErrorStateResult("用户名或密码不正确", null);
}
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,dimension,1,channelId);
MqUtils.sendLoanVest(statistics);
return new JsonResult(sessionService.createSession(channelId, createdFrom, appChannel, user, merchant));
}
......@@ -456,11 +467,14 @@ public class UserController implements IBaseController {
return StringUtils.defaultString(targetPassword, "").equals(PasswordUtil.MD5(paramPass.toLowerCase() + pwdSalt));
}
private JsonResult loginWithUserId(Long channelId, String appChannel, Long createdFrom, String userId, Merchant merchant) {
private JsonResult loginWithUserId(Long channelId, String appChannel, Long createdFrom, String userId, Merchant merchant,String dimension) {
//查询用户,存在则保存用户session信息,userId为uuid
User user = userService.findByUuidInDb(userId);
//用户信息存在,更新session中的最后访问时间,重新写入缓存.
if (null != user || !user.getEnable()) {
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,dimension,1,channelId);
MqUtils.sendLoanVest(statistics);
return new JsonResult(sessionService.createSession(channelId, createdFrom, appChannel, user, merchant));
} else {
return JsonResult.buildErrorStateResult("登录失败", null);
......
package cn.quantgroup.xyqb.model;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDetail;
import java.io.Serializable;
import jdk.nashorn.internal.ir.IdentNode;
import lombok.Data;
/**
* Created by xuran on 2017/7/5.
*/
@Data
public class UserInfo implements Serializable {
private static final long serialVersionUID = -1L;
private Long id;
private String name;
private String phoneNo;
private Long registerFrom;
private String uuid;
private String IdNo;
public UserInfo(User user, UserDetail userDetail) {
assert user != null;
this.id = user.getId();
this.phoneNo = user.getPhoneNo();
this.registerFrom = user.getRegisteredFrom();
this.uuid = user.getUuid();
if (userDetail != null) {
this.name = userDetail.getName();
this.IdNo = userDetail.getIdNo();
}
}
}
package cn.quantgroup.xyqb.model;
import cn.quantgroup.xyqb.entity.User;
import lombok.Data;
/**
* Created by xuran on 2017/6/23.
* 用户统计使用
*/
@Data
public class UserStatistics {
private String uuid;
private Long registerFrom;
private String dimension;
private int action;//登录0,注册1,快捷登录2,免密登录3
private Long channel;
public UserStatistics() {
}
public UserStatistics(User user, String dimension, int action,Long channel) {
this.uuid = user.getUuid();
this.registerFrom = user.getRegisteredFrom();
this.action = action;
this.dimension = dimension;
this.channel=channel;
}
}
......@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
......@@ -18,4 +19,8 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica
List<User> findByIdIn(List<Long> ids);
User findById(Long id);
@Query(value ="select * from user where created_at>=?1 and created_at<?2 ", nativeQuery = true)
List<User> findRegisterUserByTime(String beginTime,String endTime);
}
......@@ -6,6 +6,7 @@ import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.entity.UserJr58;
import cn.quantgroup.xyqb.model.IdCardInfo;
import cn.quantgroup.xyqb.model.IdType;
import cn.quantgroup.xyqb.model.UserStatistics;
import cn.quantgroup.xyqb.model.jr58.Jr58Authorization;
import cn.quantgroup.xyqb.model.jr58.Jr58RegisterParam;
import cn.quantgroup.xyqb.model.jr58.Jr58RegisterResult;
......@@ -17,6 +18,7 @@ import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.service.jr58.Jr58Service;
import cn.quantgroup.xyqb.service.user.ILkbUserService;
import cn.quantgroup.xyqb.util.GZipUtil;
import cn.quantgroup.xyqb.util.MqUtils;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.lang3.StringUtils;
......@@ -106,7 +108,9 @@ public class Jr58ServiceImpl implements Jr58Service {
LOGGER.info("Save UserJr58:{}", user.getId());
this.saveUserJr58(param, user.getId());
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,null,2,user.getRegisteredFrom());
MqUtils.sendLoanVest(statistics);
LOGGER.info("用户注册成功, registerFrom:{}, phoneNo:{}", Constants.Channel.JR58, param.getPhone());
return uuid;
}
......
package cn.quantgroup.xyqb.service.mq;
import cn.quantgroup.xyqb.model.UserStatistics;
/**
* Created by xuran on 2017/6/21.
* 马甲包
*/
public interface IVestService {
void send(UserStatistics message);
}
package cn.quantgroup.xyqb.service.mq.Impl;
import cn.quantgroup.xyqb.Constants;;
import cn.quantgroup.xyqb.model.UserStatistics;
import cn.quantgroup.xyqb.service.mq.IVestService;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
/**
* Created by xuran on 2017/6/21.
* 用户统计信息
*/
@Service("loanVestMQService")
public class LoanVestMQServiceImpl implements IVestService {
private static final Logger LOGGER = LoggerFactory.getLogger(LoanVestMQServiceImpl.class);
@Autowired
@Qualifier(value = "loanVestRabbitTemplate")
RabbitTemplate loanVestRabbitTemplate;
@Autowired
@Qualifier(value = "loanVestQueue")
Queue loanVestQueue;
/**
* 发送用登陆统计信息
* @param message 订单信息
*/
@Async
public void send(UserStatistics message){
if(null==message){
LOGGER.error("用登陆统计消息不能为空");
}
LOGGER.info("用登陆统计发送,message={}",message);
String msg = JSONObject.toJSONString(message);
loanVestRabbitTemplate.convertAndSend("statistics-user", msg);
LOGGER.info("用登陆统计成功,message={}",msg);
}
}
......@@ -32,7 +32,7 @@ public interface IUserService {
User findById(Long userId);
boolean register(String phoneNo, String password, Long registerFrom, String ip, Long channelId, Long btRegisterChannelId);
boolean register(String phoneNo, String password, Long registerFrom, String ip, Long channelId, Long btRegisterChannelId,String dimension);
List<User> findByPhones(List<String> phones);
User registerAndReturn(String phoneNo, String password, Long registerFrom, Long btRegisterChannelId);
......@@ -67,4 +67,6 @@ public interface IUserService {
String district,
String address,
String contacts);
List<User> findRegisterUserByTime(String beginTime,String endTime);
}
......@@ -6,6 +6,7 @@ import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.model.IdCardInfo;
import cn.quantgroup.xyqb.model.IdType;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.UserStatistics;
import cn.quantgroup.xyqb.repository.IAddressRepository;
import cn.quantgroup.xyqb.repository.IContactRepository;
import cn.quantgroup.xyqb.repository.IUserBtRegisterRepository;
......@@ -16,6 +17,7 @@ import cn.quantgroup.xyqb.service.user.ILkbUserService;
import cn.quantgroup.xyqb.service.user.IUserBtRegisterService;
import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.PasswordUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
......@@ -150,7 +152,7 @@ public class UserServiceImpl implements IUserService {
@Override
public boolean register(String phoneNo, String password, Long registerFrom, String ip, Long channelId, Long btRegisterChannelId) {
public boolean register(String phoneNo, String password, Long registerFrom, String ip, Long channelId, Long btRegisterChannelId,String dimension) {
String uuid = lkbUserService.registerApp(phoneNo, password);
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
......@@ -170,18 +172,29 @@ public class UserServiceImpl implements IUserService {
//user.setRegisteredFrom(registerFrom);
user = userRepository.save(user);
boolean registerSuccess=false;
if(null != user){
UserBtRegister userBtRegister = new UserBtRegister();
userBtRegister.setUserId(user.getId());
userBtRegister.setRegisterBtMerchantId(btRegisterChannelId);
if(null==btRegisterChannelId){
userBtRegister.setRegisterBtMerchantId(0L);
}else{
userBtRegister.setRegisterBtMerchantId(btRegisterChannelId);
}
userBtRegisterService.save(userBtRegister);
log.info("白条注册渠道信息保存完成");
registerSuccess=true;
}
if(registerFrom!=158412){////网易KA引入注册时不发送短信提醒
smsService.sendAfterRegister(phoneNo);
}
if(registerSuccess){
//增加登陆统计发送
UserStatistics statistics=new UserStatistics(user,dimension,2,channelId);
MqUtils.sendLoanVest(statistics);
}
return user != null;
}
......@@ -356,7 +369,12 @@ public class UserServiceImpl implements IUserService {
return user;
}
/**
@Override
public List<User> findRegisterUserByTime(String beginTime, String endTime) {
return userRepository.findRegisterUserByTime(beginTime,endTime);
}
/**
*
* @param userId
* @param contacts
......
......@@ -35,7 +35,7 @@ public class JR58GzipUtil {
e.printStackTrace();
} finally {
try {
byteArrayIn.close();
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
......
package cn.quantgroup.xyqb.util;
import cn.quantgroup.xyqb.model.UserStatistics;
import cn.quantgroup.xyqb.service.mq.IVestService;
import lombok.extern.slf4j.Slf4j;
/**
* Created by xuran on 2017/6/23.
*/
@Slf4j
public class MqUtils {
/**
* 发送用户统计信息
* @param vest
*/
public static void sendLoanVest(UserStatistics vest){
try {
IVestService mqService = ApplicationContextHolder.getBean("loanVestMQService");
mqService.send(vest);
} catch (Exception e) {
log.error("[MQUtils][MQUtils_exception]发送用户统计信息,vest={},error={}",
vest, e);
}
}
}
......@@ -59,4 +59,14 @@ xyqb.domain = http://api.xyqb.com
xyqb.paycenter.url=http://payapi.xyqb.com/
xyqb.paycenter.id=3
#内部运营系统
xyqb.yunying.url=https://opapi.xyqb.com
\ No newline at end of file
xyqb.yunying.url=https://opapi.xyqb.com
#马甲包
loanvest.rabbitmq.connection.virtual-host=/loan_order
loanvest.rabbitmq.queue=loan_user_queue
#loanvest.rabbitmq.stateMsgQueue=loan_vest_msg_queue
loanvest.rabbitmq.exchange=loan_vest_exchange
loanvest.rabbitmq.connection.host=172.16.1.242
loanvest.rabbitmq.connection.port=56720
loanvest.rabbitmq.connection.user=rabbit_admin
loanvest.rabbitmq.connection.password=abc1234
\ No newline at end of file
......@@ -54,4 +54,14 @@ wechat.secret=16eaec16084d0d9c52d4114f359cc72c
xyqb.user.domain=passport.xyqb.com
xyqb.user.query.url=http://userqry.xyqb.com
xyqb.domain = http://192.168.4.153:7003
\ No newline at end of file
xyqb.domain = http://192.168.4.153:7003
#马甲包
loanvest.rabbitmq.connection.virtual-host=/loan_order
#loanvest.rabbitmq.stateMsgQueue=loan_vest_msg_queue
loanvest.rabbitmq.queue=loan_user_queue
loanvest.rabbitmq.exchange=loan_vest_exchange
loanvest.rabbitmq.connection.host=192.168.4.46
loanvest.rabbitmq.connection.port=5672
loanvest.rabbitmq.connection.user=qa
loanvest.rabbitmq.connection.password=qatest
\ No newline at end of file
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