Commit 05b38cac authored by hanfeng's avatar hanfeng

Merge branch 'base-modify' of http://10.5.52.3/youjj/cloud-platform into base-modify

parents e6326a66 4e63e50f
......@@ -15,7 +15,7 @@ public class RabbitConstant {
public static final String ORDER_TOPIC = ORDER+ TOPIC_EXC;
/**************************key*********************************/
// public static final String
public static final String KEY_REGISTER_SUCCESS = "register.success";
static {
exchangeTopicSet = new HashSet<String>() {{
......
package com.github.wxiaoqi.security.admin.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class RegisterParamDTO {
String username;
String password;
......
package com.github.wxiaoqi.security.admin.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class RegisterQueueDTO {
RegisterParamDTO registerParamDTO;
Integer appUserId;
JSONObject data;
}
package com.github.wxiaoqi.security.admin.rpc.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserBiz;
......@@ -9,6 +11,8 @@ import com.github.wxiaoqi.security.admin.biz.ElementBiz;
import com.github.wxiaoqi.security.admin.constant.RedisKey;
import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterParamDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
......@@ -40,7 +44,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
......@@ -48,6 +51,8 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.KEY_REGISTER_SUCCESS;
/**
* @author keliii
*/
......@@ -211,6 +216,8 @@ public class AppPermissionService {
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public JSONObject register(String username, String password, String headimgurl,
String nickname, String mobilecode, String openId, String unionid, Integer type,String code) {
String activityCode;
// 判断参数和验证码
if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(mobilecode)) {
return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空");
......@@ -266,6 +273,12 @@ public class AppPermissionService {
//邀请人id关系绑定
Integer parentId=0;
if (StringUtils.isNotBlank(code)){
//判断处理活动关键字
String[] codes = code.split("_");
if(codes.length > 1) {
code = codes[0];
activityCode = codes[1];
}
parentId=appUserDetailBiz.getUserByCode(code);
}
if(parentId!=null&&parentId>0){
......@@ -306,10 +319,19 @@ public class AppPermissionService {
data.put("imUserId", imUserId);
}
if (data != null) {
// try {
try {
//入参
RegisterQueueDTO registerQueueDTO = new RegisterQueueDTO(){{
setData(data);
setAppUserId(userid);
setRegisterParamDTO(new RegisterParamDTO(username, password, headimgurl,
nickname, mobilecode, openId, unionid, type, null));
}};
// //注册成功,发送队列
// mqSerderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, )
// }
mqSerderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, KEY_REGISTER_SUCCESS, JSONUtil.toJsonStr(registerQueueDTO));
}catch (Exception e){
log.error(e.getMessage(), e);
}
return JsonResultUtil.createSuccessResultWithObj(data);
} else {
return JsonResultUtil.createDefaultFail();
......
package com.xxfc.platform.activity.config;
import com.github.wxiaoqi.security.common.config.RabbitCommonConfig;
import com.github.wxiaoqi.security.common.config.rabbit.BindDTO;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
/**
* rabbitmq配置类
* 包含: 不知道什么orderWater队列
* @author zhoujw
* @date 2019/7/15
*/
@Configuration
public class RabbitActivityConfig extends RabbitCommonConfig {
public static final String INTEGRAL_QUEUE = "integral_queue";
static {
myQueue = new ArrayList<BindDTO>(){{
add(new BindDTO(INTEGRAL_QUEUE, RabbitConstant.ADMIN_TOPIC, "order.#"));
}};
}
// public static final String BASE_EXC = "hz_exchange";
// public static final String INTEGRAL_QUEUE = "integral_queue";
// public static final String ORDER_WATER_KEY = "order";
// /**
// * 队列交换机
// * 注意这里的交换机类型:CustomExchange
// * @return
// */
// @Bean
// public DirectExchange directExchange(){
// return new DirectExchange(BASE_EXC, true, false);
// }
//
// /**
// * 队列
// * @return
// */
// @Bean
// public Queue orderWaterQueue(){
// return new Queue(INTEGRAL_QUEUE,true);
// }
//
// /**
// * 队列绑定交换机
// * @return
// */
// @Bean
// public Binding orderWaterBinding(Queue orderWaterQueue, DirectExchange directExchange){
// return BindingBuilder.bind(orderWaterQueue).to(directExchange).with(ORDER_WATER_KEY);
// }
}
package com.xxfc.platform.activity.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* rabbitmq配置类
* 包含: 不知道什么orderWater队列
* @author zhoujw
* @date 2019/7/15
*/
@Configuration
public class RabbitUserConfig {
public static final String BASE_EXC = "hz_exchange";
public static final String INTEGRAL_QUEUE = "integral_queue";
public static final String ORDER_WATER_KEY = "order";
/**
* 队列交换机
* 注意这里的交换机类型:CustomExchange
* @return
*/
@Bean
public DirectExchange directExchange(){
return new DirectExchange(BASE_EXC, true, false);
}
/**
* 队列
* @return
*/
@Bean
public Queue orderWaterQueue(){
return new Queue(INTEGRAL_QUEUE,true);
}
/**
* 队列绑定交换机
* @return
*/
@Bean
public Binding orderWaterBinding(Queue orderWaterQueue, DirectExchange directExchange){
return BindingBuilder.bind(orderWaterQueue).to(directExchange).with(ORDER_WATER_KEY);
}
}
//package com.xxfc.platform.activity.handler;
//
//
//import com.alibaba.fastjson.JSONObject;
//import com.rabbitmq.client.Channel;
//import com.xxfc.platform.activity.biz.IntegralUserRecordBiz;
//import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.amqp.support.AmqpHeaders;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.messaging.handler.annotation.Headers;
//import org.springframework.stereotype.Component;
//
//import java.io.IOException;
//import java.util.Map;
//import java.util.concurrent.ExecutorService;
//import java.util.concurrent.Executors;
//
//@Component
//@Slf4j
//public class IntegralMQHandler {
//
// @Autowired
// IntegralUserRecordBiz integralUserRecordBiz;
//
// @RabbitListener(queues = "integral_queue")
// public void integralHandler(Message message, @Headers Map<String, Object> headers, Channel channel) {
// ExecutorService executorService = Executors.newCachedThreadPool();
// executorService.execute(new Runnable() {
// @Override
// public void run() {
// try {
// String messageId = message.getMessageProperties().getMessageId();
// String msg = new String(message.getBody(), "UTF-8");
// log.info("接收到的消息:msg = {}, 消息ID是:messageId = {} ", msg, messageId);
//
// if (StringUtils.isNotBlank(msg)) {
// IntegralUserRecordDto integralUserRecordDto = JSONObject.parseObject(msg, IntegralUserRecordDto.class);
// integralUserRecordBiz.add(integralUserRecordDto);
// }
//
// executorService.shutdown();
// Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// // 手动签收
// channel.basicAck(deliveryTag, false);
// } catch (Exception e) {
// log.info("接收到的消息失败");
// try {
// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
// } catch (IOException i) {
// i.printStackTrace();
// }
// e.printStackTrace();
// }
// }
// });
// }
//
//
//}
package com.xxfc.platform.activity.handler;
import com.alibaba.fastjson.JSONObject;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.activity.biz.IntegralUserRecordBiz;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Component
@Slf4j
public class IntegralMQHandler {
@Autowired
IntegralUserRecordBiz integralUserRecordBiz;
@RabbitListener(queues = "integral_queue")
public void integralHandler(Message message, @Headers Map<String, Object> headers, Channel channel) {
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(new Runnable() {
@Override
public void run() {
try {
String messageId = message.getMessageProperties().getMessageId();
String msg = new String(message.getBody(), "UTF-8");
log.info("接收到的消息:msg = {}, 消息ID是:messageId = {} ", msg, messageId);
if (StringUtils.isNotBlank(msg)) {
IntegralUserRecordDto integralUserRecordDto = JSONObject.parseObject(msg, IntegralUserRecordDto.class);
integralUserRecordBiz.add(integralUserRecordDto);
}
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
log.info("接收到的消息失败");
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
} catch (IOException i) {
i.printStackTrace();
}
e.printStackTrace();
}
}
});
}
}
......@@ -216,7 +216,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//优惠券处理
//待完成
// activityFeign.use(dto.getUserid(),);
// activityFeign.use(dto.getUserid());
//如果有使用会员权益或者优惠券,则设置订单已优惠
if(SYS_TRUE.equals(detail.getOrder().getHasMemberRight())) {
......
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