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

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

parent 29b76ded
...@@ -22,6 +22,7 @@ import cn.quantgroup.xyqb.entity.UserDetail; ...@@ -22,6 +22,7 @@ import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.entity.UserExtInfo; import cn.quantgroup.xyqb.entity.UserExtInfo;
import cn.quantgroup.xyqb.entity.UserSpouse; import cn.quantgroup.xyqb.entity.UserSpouse;
import cn.quantgroup.xyqb.entity.WechatUserInfo; import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.event.DisableActiveEvent;
import cn.quantgroup.xyqb.exception.UserNotExistException; import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.model.AddressRet; import cn.quantgroup.xyqb.model.AddressRet;
import cn.quantgroup.xyqb.model.ContactInfo; import cn.quantgroup.xyqb.model.ContactInfo;
...@@ -76,11 +77,13 @@ import org.apache.commons.lang3.StringUtils; ...@@ -76,11 +77,13 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.messaging.handler.annotation.Header; import org.springframework.messaging.handler.annotation.Header;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
...@@ -132,6 +135,8 @@ public class InnerController implements IBaseController { ...@@ -132,6 +135,8 @@ public class InnerController implements IBaseController {
private ISmsService smsService; private ISmsService smsService;
@Autowired @Autowired
private IUserRegisterService userRegisterService; private IUserRegisterService userRegisterService;
@Resource
private ApplicationEventPublisher applicationEventPublisher;
private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b"; private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b";
private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!"; private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!";
...@@ -971,6 +976,7 @@ public class InnerController implements IBaseController { ...@@ -971,6 +976,7 @@ public class InnerController implements IBaseController {
// 禁用微信 // 禁用微信
wechatService.forbiddenUserWeChat(userId); wechatService.forbiddenUserWeChat(userId);
} }
applicationEventPublisher.publishEvent(new DisableActiveEvent(this,user));
return Objects.equals(enable, user.getEnable()); 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 { ...@@ -61,4 +61,6 @@ public interface IHttpService {
* @return * @return
*/ */
String post(String uri, Map<String, String> headers, Map<String, String> parameters); 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; package cn.quantgroup.xyqb.service.http.impl;
import cn.quantgroup.tech.brave.service.ITechHttpClient; 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.service.http.IHttpService;
import cn.quantgroup.xyqb.util.PasswordUtil; import cn.quantgroup.xyqb.util.PasswordUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets; import org.apache.commons.codec.Charsets;
...@@ -29,6 +31,8 @@ import org.apache.http.conn.ssl.SSLContextBuilder; ...@@ -29,6 +31,8 @@ import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.cookie.Cookie; import org.apache.http.cookie.Cookie;
import org.apache.http.cookie.CookieOrigin; import org.apache.http.cookie.CookieOrigin;
import org.apache.http.cookie.CookieSpecProvider; 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.CloseableHttpClient;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy; import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.StandardHttpRequestRetryHandler; import org.apache.http.impl.client.StandardHttpRequestRetryHandler;
...@@ -74,7 +78,7 @@ public class HttpServiceImpl implements IHttpService { ...@@ -74,7 +78,7 @@ public class HttpServiceImpl implements IHttpService {
@Override @Override
public String get(String uri, Map<String, String> headers, Map<String, String> parameters) { 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 @Override
...@@ -89,7 +93,12 @@ public class HttpServiceImpl implements IHttpService { ...@@ -89,7 +93,12 @@ public class HttpServiceImpl implements IHttpService {
@Override @Override
public String post(String uri, Map<String, String> headers, Map<String, String> parameters) { 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 { ...@@ -99,9 +108,10 @@ public class HttpServiceImpl implements IHttpService {
* @param uri * @param uri
* @param headers * @param headers
* @param parameters * @param parameters
* @param bodyType
* @return * @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)) { if (StringUtils.isEmpty(uri)) {
log.info("uri cannot be empty, uri:{}", uri); log.info("uri cannot be empty, uri:{}", uri);
return null; return null;
...@@ -122,7 +132,7 @@ public class HttpServiceImpl implements IHttpService { ...@@ -122,7 +132,7 @@ public class HttpServiceImpl implements IHttpService {
this.setHeader(requestBuilder, headers); this.setHeader(requestBuilder, headers);
/************** 设置Parameter **************/ /************** 设置Parameter **************/
this.setParameter(requestBuilder, parameters, method); this.setParameter(requestBuilder, parameters, method, bodyType);
/************** 发送请求 **************/ /************** 发送请求 **************/
httpResponse = httpClient().execute(requestBuilder.build()); httpResponse = httpClient().execute(requestBuilder.build());
...@@ -204,7 +214,7 @@ public class HttpServiceImpl implements IHttpService { ...@@ -204,7 +214,7 @@ public class HttpServiceImpl implements IHttpService {
* @param parameters * @param parameters
* @param method * @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)) { if (MapUtils.isNotEmpty(parameters)) {
parameters = Maps.filterValues(parameters, Objects::nonNull); parameters = Maps.filterValues(parameters, Objects::nonNull);
...@@ -217,12 +227,19 @@ public class HttpServiceImpl implements IHttpService { ...@@ -217,12 +227,19 @@ public class HttpServiceImpl implements IHttpService {
} }
/************** Post 请求 **************/ /************** Post 请求 **************/
else { else {
List<NameValuePair> valuePairs = new ArrayList<>(); if (bodyType == BodyType.JSON) {
for (Map.Entry<String, String> entry : entrys) { requestBuilder.setEntity(new StringEntity(JSON.toJSONString(parameters), ContentType.APPLICATION_JSON));
valuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } 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