Commit 9a75b417 authored by 董建华's avatar 董建华

运营2.0通知消息中心激活用户

parent 29b76ded
......@@ -22,6 +22,7 @@ import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.entity.UserExtInfo;
import cn.quantgroup.xyqb.entity.UserSpouse;
import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.event.DisableActiveEvent;
import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.model.AddressRet;
import cn.quantgroup.xyqb.model.ContactInfo;
......@@ -76,11 +77,13 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Min;
import java.io.UnsupportedEncodingException;
......@@ -132,6 +135,8 @@ public class InnerController implements IBaseController {
private ISmsService smsService;
@Autowired
private IUserRegisterService userRegisterService;
@Resource
private ApplicationEventPublisher applicationEventPublisher;
private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b";
private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!";
......@@ -971,6 +976,7 @@ public class InnerController implements IBaseController {
// 禁用微信
wechatService.forbiddenUserWeChat(userId);
}
applicationEventPublisher.publishEvent(new DisableActiveEvent(this,user));
return Objects.equals(enable, user.getEnable());
}
......
package cn.quantgroup.xyqb.event;
import cn.quantgroup.xyqb.entity.User;
import lombok.Getter;
import lombok.Setter;
import org.springframework.context.ApplicationEvent;
/**
* @author :dongjianhua
* @date :Created in 2020/7/14 15:42
* @description:激活或者注销用户事件
* @modified By:
* @version: 1.0
*/
@Getter
@Setter
public class DisableActiveEvent extends ApplicationEvent {
private User user;
public DisableActiveEvent(Object source) {
super(source);
}
public DisableActiveEvent(Object source,User user) {
super(source);
this.user = user;
}
}
package cn.quantgroup.xyqb.event;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.service.http.IHttpService;
import com.google.common.collect.ImmutableMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
/**
* @author :dongjianhua
* @date :Created in 2020/7/14 15:47
* @description:激活或者注销用户事件监听
* @modified By:
* @version: 1.0
*/
@Slf4j
@Async
@Component
public class DisableActiveEventListner implements ApplicationListener<DisableActiveEvent> {
//消息中心营销短信黑名单 - (注销/激活)专用
public static final String SMS_MARKET_BLACK_LIST = "/middle_office/sms_market_black_list/flush";
@Autowired
private IHttpService httpService;
@Value("${mo-msg.http}")
private String msgCenter;
@Override
public void onApplicationEvent(DisableActiveEvent disableActiveEvent) {
User user = disableActiveEvent.getUser();
if (null == user) {
return;
}
String userId = String.valueOf(user.getId());
String phoneNo = user.getPhoneNo();
Boolean enable = user.getEnable();
String post = httpService.postJson(msgCenter.concat(SMS_MARKET_BLACK_LIST),
ImmutableMap.of("userId", userId,
"phoneNo", phoneNo,
"enable", String.valueOf(enable)));
log.info("通知消息中心激活/注销用户结束user:{} ,post:{} ", user, post);
}
}
package cn.quantgroup.xyqb.service.http;
public enum BodyType {
FORM,JSON;
}
......@@ -61,4 +61,6 @@ public interface IHttpService {
* @return
*/
String post(String uri, Map<String, String> headers, Map<String, String> parameters);
String postJson(String uri, Map<String, String> parameters);
}
package cn.quantgroup.xyqb.service.http.impl;
import cn.quantgroup.tech.brave.service.ITechHttpClient;
import cn.quantgroup.xyqb.service.http.BodyType;
import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.util.PasswordUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets;
......@@ -29,6 +31,8 @@ import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.cookie.Cookie;
import org.apache.http.cookie.CookieOrigin;
import org.apache.http.cookie.CookieSpecProvider;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.StandardHttpRequestRetryHandler;
......@@ -74,7 +78,7 @@ public class HttpServiceImpl implements IHttpService {
@Override
public String get(String uri, Map<String, String> headers, Map<String, String> parameters) {
return doHttp(RequestBuilder.get(), uri, headers, parameters);
return doHttp(RequestBuilder.get(), uri, headers, parameters, BodyType.FORM);
}
@Override
......@@ -89,7 +93,12 @@ public class HttpServiceImpl implements IHttpService {
@Override
public String post(String uri, Map<String, String> headers, Map<String, String> parameters) {
return doHttp(RequestBuilder.post(), uri, headers, parameters);
return doHttp(RequestBuilder.post(), uri, headers, parameters, BodyType.FORM);
}
@Override
public String postJson(String uri, Map<String, String> parameters) {
return doHttp(RequestBuilder.post(), uri, null, parameters, BodyType.JSON);
}
/**
......@@ -99,9 +108,10 @@ public class HttpServiceImpl implements IHttpService {
* @param uri
* @param headers
* @param parameters
* @param bodyType
* @return
*/
private String doHttp(RequestBuilder requestBuilder, String uri, Map<String, String> headers, Map<String, String> parameters) {
private String doHttp(RequestBuilder requestBuilder, String uri, Map<String, String> headers, Map<String, String> parameters, BodyType bodyType) {
if (StringUtils.isEmpty(uri)) {
log.info("uri cannot be empty, uri:{}", uri);
return null;
......@@ -122,7 +132,7 @@ public class HttpServiceImpl implements IHttpService {
this.setHeader(requestBuilder, headers);
/************** 设置Parameter **************/
this.setParameter(requestBuilder, parameters, method);
this.setParameter(requestBuilder, parameters, method, bodyType);
/************** 发送请求 **************/
httpResponse = httpClient().execute(requestBuilder.build());
......@@ -204,7 +214,7 @@ public class HttpServiceImpl implements IHttpService {
* @param parameters
* @param method
*/
private void setParameter(RequestBuilder requestBuilder, Map<String, String> parameters, String method) {
private void setParameter(RequestBuilder requestBuilder, Map<String, String> parameters, String method, BodyType bodyType) {
if (MapUtils.isNotEmpty(parameters)) {
parameters = Maps.filterValues(parameters, Objects::nonNull);
......@@ -217,12 +227,19 @@ public class HttpServiceImpl implements IHttpService {
}
/************** Post 请求 **************/
else {
List<NameValuePair> valuePairs = new ArrayList<>();
for (Map.Entry<String, String> entry : entrys) {
valuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
if (bodyType == BodyType.JSON) {
requestBuilder.setEntity(new StringEntity(JSON.toJSONString(parameters), ContentType.APPLICATION_JSON));
} else {
List<NameValuePair> valuePairs = new ArrayList<>();
for (Map.Entry<String, String> entry : entrys) {
valuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
requestBuilder.setEntity(new UrlEncodedFormEntity(valuePairs, Charsets.UTF_8));
}
requestBuilder.setEntity(new UrlEncodedFormEntity(valuePairs, Charsets.UTF_8));
}
}
}
......
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