Authored by ping

update

/**
*
*/
package com.yoho.unions.common.constant;
import java.util.ArrayList;
import java.util.List;
/**
* 描述:
*
* @author ping.huang
* 2016年3月16日
*/
public class UnionConstant {
/**
* 安卓系统需要实现的联盟
*/
public static List<String> andriodServiceList = new ArrayList<String>();
/**
* iOS系统需要实现的联盟
*/
public static List<String> iOSServiceList = new ArrayList<String>();
static {
//andriod系统
//iSO系统
iOSServiceList.add("dDServiceImpl");
}
}
... ...
/**
*
*/
package com.yoho.unions.server.restapi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yoho.service.model.union.request.ActivateUnionRequestBO;
import com.yoho.service.model.union.request.ActivateUnionRequestVO;
import com.yoho.service.model.union.response.ActiveUnionResponseBO;
import com.yoho.unions.common.constant.UnionConstant;
import com.yoho.unions.common.utils.SpringContextUtil;
import com.yoho.unions.server.service.MainUnionService;
/**
* 描述:
* 激活联盟入口
* @author ping.huang
* 2016年3月16日
*/
@Controller
@RequestMapping("/ActivateUnionRest")
public class ActivateUnionRest {
static Logger log = LoggerFactory.getLogger(ActivateUnionRest.class);
/**
* 激活联盟
* @param request
* @return
*/
@RequestMapping("/activateUnion")
@ResponseBody public ActiveUnionResponseBO activateUnion(ActivateUnionRequestVO vo) {
log.info("addUnion with param is {}", vo);
ActivateUnionRequestBO bo = new ActivateUnionRequestBO();
BeanUtils.copyProperties(vo, bo);
MainUnionService service = null;
//处理安卓的服务
for (String str : UnionConstant.andriodServiceList) {
//捕获异常,不影响后面的联盟
try {
service = SpringContextUtil.getBean(str, MainUnionService.class);
service.activeUnion(bo);
} catch (Exception e) {
log.warn("addUnion error with param is {}", vo);
}
}
//处理iOS的服务
for (String str : UnionConstant.iOSServiceList) {
//捕获异常,不影响后面的联盟
try {
service = SpringContextUtil.getBean(str, MainUnionService.class);
service.activeUnion(bo);
} catch (Exception e) {
log.warn("addUnion error with param is {}", vo);
}
}
return new ActiveUnionResponseBO(200, "success");
}
}
... ...
/**
*
*/
package com.yoho.unions.server.restapi;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONObject;
import com.yoho.service.model.union.request.MainUnionRequestBO;
import com.yoho.service.model.union.response.ActiveUnionResponseBO;
import com.yoho.service.model.union.response.MainUnionResponseBO;
import com.yoho.unions.adapter.UnionServiceAdapter;
import com.yoho.unions.common.enums.UnionTypeEnum;
import com.yoho.unions.common.utils.SpringContextUtil;
import com.yoho.unions.server.service.MainUnionService;
/**
* 描述:
* 统一的联盟的入口
* @author ping.huang
* 2016年3月10日
*/
@Controller
@RequestMapping("/MainUnionRest")
public class MainUnionRest {
static Logger log = LoggerFactory.getLogger(MainUnionRest.class);
/**
* 添加联盟
* @param req
* @return
*/
@RequestMapping("/addUnion")
@ResponseBody public JSONObject addUnion(HttpServletRequest request) {
Map<String, String[]> requestMap = request.getParameterMap();
log.info("enter addunions with param is {}", requestMap);
String unionType = request.getParameter("unionType");
log.info("addUnion with unionType={}", unionType);
JSONObject response = new JSONObject();
//请求的对象中必须要包含unionType字段,而且该值必须是数字
if (StringUtils.isEmpty(unionType)) {
response.put("msg", "unionType must not be null");
response.put("isSuccess", false);
return response;
}
//unionType必须是数字
if (!unionType.matches("\\d+")) {
response.put("msg", "unionType must be a number");
response.put("isSuccess", false);
return response;
}
//根据unionType获取具体的实现类
UnionTypeEnum union = UnionServiceAdapter.getUnionService(Integer.parseInt(unionType.toString()));
MainUnionService service = null;
try {
service = SpringContextUtil.getBean(union.getBeanName(), MainUnionService.class);
} catch (Exception e) {
log.error("getUnionService error with unionType={}", unionType, e);
service = null;
}
if (service == null) {
//该类型的服务不存在
response.put("msg", "unionType error");
response.put("isSuccess", false);
return response;
}
//转换为所需的对象
MainUnionRequestBO requestBO = service.toAddRequestBO(request, union.getAddRequestClass());
log.info("addUnion with param is {}", requestBO);
//调用添加接口
MainUnionResponseBO responseBO = service.addUnionInfo(requestBO);
//转换为返回对象
response = service.toResponse(responseBO);
return response;
}
/**
* 激活联盟
* @param request
* @return
*/
@RequestMapping("/activateUnion")
@ResponseBody public ActiveUnionResponseBO activateUnion(HttpServletRequest request) {
Map<String, String[]> requestMap = request.getParameterMap();
log.info("enter activateUnion with param is {}", requestMap);
String unionType = request.getParameter("unionType");
log.info("activateUnion with unionType={}", unionType);
//请求的对象中必须要包含unionType字段,而且该值必须是数字
if (StringUtils.isEmpty(unionType)) {
return new ActiveUnionResponseBO(600, "unionType must not be null");
}
//unionType必须是数字
if (!unionType.matches("\\d+")) {
return new ActiveUnionResponseBO(601, "unionType must be a number");
}
//根据unionType获取具体的实现类
UnionTypeEnum union = UnionServiceAdapter.getUnionService(Integer.parseInt(unionType.toString()));
MainUnionService service = null;
try {
service = SpringContextUtil.getBean(union.getBeanName(), MainUnionService.class);
} catch (Exception e) {
log.error("getUnionService error with unionType={}", unionType, e);
service = null;
}
if (service == null) {
//该类型的服务不存在
return new ActiveUnionResponseBO(602, "unionType error");
}
//转换为所需的对象
MainUnionRequestBO requestBO = service.toActivateRequestBO(request, union.getActivateRequestClass());
log.info("activateUnion with param is {}", requestBO);
//调用激活接口
MainUnionResponseBO responseBO = service.activateUnionInfo(requestBO);
//转换为返回对象
if (!responseBO.getIsSuccess()) {
return new ActiveUnionResponseBO(400, responseBO.getMsg());
} else {
return new ActiveUnionResponseBO(200, "success");
}
}
}
... ... @@ -9,11 +9,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.yoho.service.model.union.request.ActiveUnionRequestBO;
import com.alibaba.fastjson.JSONObject;
import com.yoho.service.model.union.request.AddUnionRequestBO;
import com.yoho.service.model.union.response.ActiveUnionResponseBO;
import com.yoho.service.model.union.response.UnionResponseBO;
import com.yoho.unions.server.service.DingdangService;
import com.yoho.unions.server.service.MainUnionService;
@Controller
@RequestMapping("/UnionRest")
... ... @@ -22,7 +21,7 @@ public class UnionRest {
static Logger log = LoggerFactory.getLogger(UnionRest.class);
@Resource
DingdangService dingdangService;
MainUnionService dDServiceImpl;
/**
* 添加顶当
... ... @@ -30,47 +29,47 @@ public class UnionRest {
* @return
*/
@RequestMapping(value = "/addUnion")
@ResponseBody public UnionResponseBO addUnion(AddUnionRequestBO req) {
@ResponseBody public JSONObject addUnion(AddUnionRequestBO req) {
log.info("enter unionsRest.addunions with param is {}", req);
UnionResponseBO bo = null;
JSONObject response = null;
try {
bo = dingdangService.addUnion(req);
response = dDServiceImpl.addUnion(req);
} catch (Exception e) {
log.error("addunions error with param is {}", req, e);
bo = new UnionResponseBO();
bo.setIsSuccess(false);
bo.setMsg("error");
response = new JSONObject();
response.put("isSuccess", false);
response.put("msg", "error");
}
return bo;
return response;
}
/**
* 激活顶当
* @param req
* @return
*/
@RequestMapping(value = "/activeUnion")
@ResponseBody public ActiveUnionResponseBO activeUnion(ActiveUnionRequestBO req) {
log.info("enter unionsRest.activeunions with param is {}", req);
ActiveUnionResponseBO response = new ActiveUnionResponseBO();
try {
UnionResponseBO bo = dingdangService.activeUnion(req);
if (!bo.getIsSuccess()) {
response.setCode(400);
response.setMessage(bo.getMsg());
} else {
response.setCode(200);
response.setMessage("success");
response.setData(bo);
}
} catch (Exception e) {
log.error("", e);
response.setCode(500);
response.setMessage("error");
}
return response;
}
// /**
// * 激活顶当
// * @param req
// * @return
// */
// @RequestMapping(value = "/activeUnion")
// @ResponseBody public ActiveUnionResponseBO activeUnion(ActiveUnionRequestBO req) {
// log.info("enter unionsRest.activeunions with param is {}", req);
// ActiveUnionResponseBO response = new ActiveUnionResponseBO();
// try {
// UnionResponseBO bo = dingdangService.activeUnion(req);
// if (!bo.getIsSuccess()) {
// response.setCode(400);
// response.setMessage(bo.getMsg());
// } else {
// response.setCode(200);
// response.setMessage("success");
// response.setData(bo);
// }
// } catch (Exception e) {
// log.error("", e);
// response.setCode(500);
// response.setMessage("error");
// }
// return response;
// }
@RequestMapping(value = "/test")
@ResponseBody public UnionResponseBO test() {
... ...
... ... @@ -3,18 +3,12 @@
*/
package com.yoho.unions.server.service;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONObject;
import com.yoho.service.model.union.request.MainUnionRequestBO;
import com.yoho.service.model.union.response.MainUnionResponseBO;
import com.yoho.unions.common.utils.ObjectUtil;
import com.yoho.service.model.union.request.ActivateUnionRequestBO;
import com.yoho.service.model.union.response.UnionResponseBO;
/**
* 描述:联盟的主函数入口
... ... @@ -25,168 +19,18 @@ public interface MainUnionService {
static Logger log = LoggerFactory.getLogger(MainUnionService.class);
/////添加开始---------------------------------------------------------------
/**
* 添加联盟,转换对象为具体联盟的请求对象
* @param request
* @param addRequestClass
* @return
*/
default public MainUnionRequestBO toAddRequestBO(HttpServletRequest request, Class<? extends MainUnionRequestBO> addRequestClass) {
if (request == null) {
log.warn("request is null");
return null;
}
if (addRequestClass == null) {
log.warn("addRequestClass is null");
return null;
}
MainUnionRequestBO obj = null;
try {
obj = addRequestClass.newInstance();
List<String> fields = ObjectUtil.getFields(addRequestClass, true);
if (fields == null) {
return obj;
}
for (String field : fields) {
BeanUtils.setProperty(obj, field, request.getParameter(field));
}
} catch (Exception e) {
log.error("", e);
}
return obj;
}
/**
* 添加联盟的检查
* @param request
* @return
*/
public MainUnionResponseBO addUnionCheck(MainUnionRequestBO request);
/**
* 调用联盟添加
*
* @param requestBO
* @return
* @throws Exception
*/
default public MainUnionResponseBO addUnionInfo(MainUnionRequestBO requestBO) {
//检查输入参数
MainUnionResponseBO responseBO = addUnionCheck(requestBO);
if (!responseBO.getIsSuccess()) {
return responseBO;
}
try {
// 调用添加接口
responseBO = addUnion(requestBO);
} catch (Exception e) {
log.error("addUnionInfo error with request is {}", requestBO, e);
return responseBO;
}
return responseBO;
}
/**
* 添加联盟
* @param request
* @return
*/
public MainUnionResponseBO addUnion(MainUnionRequestBO request);
/**
* 具体的返回对象转为jsonObject 该方法一般情况下,子类不需要实现
*
* @param responseBO
* @return
* @throws Exception
*/
default public JSONObject toResponse(MainUnionResponseBO responseBO) {
if (responseBO == null) {
return null;
}
JSONObject json = ObjectUtil.getDeclaredFields(responseBO, true);
return json;
}
/////添加结束---------------------------------------------------------------
/////激活开始--------------------------------------------------------------
/**
* 激活联盟,转换对象为具体联盟的请求对象
* @param request
* @param activateRequestClass
* @return
*/
default public MainUnionRequestBO toActivateRequestBO(HttpServletRequest request, Class<? extends MainUnionRequestBO> activateRequestClass) {
if (request == null) {
log.warn("request is null");
return null;
}
if (activateRequestClass == null) {
log.warn("activateRequestClass is null");
return null;
}
MainUnionRequestBO obj = null;
try {
obj = activateRequestClass.newInstance();
List<String> fields = ObjectUtil.getFields(activateRequestClass, true);
if (fields == null) {
return obj;
}
for (String field : fields) {
BeanUtils.setProperty(obj, field, request.getParameter(field));
}
} catch (Exception e) {
log.error("", e);
}
return obj;
}
/**
* 激活联盟的检查
* @param request
* @param obj
* @return
*/
public MainUnionResponseBO activateUnionCheck(MainUnionRequestBO request);
/**
* 调用联盟激活
*
* @param requestBO
* @return
* @throws Exception
*/
default public MainUnionResponseBO activateUnionInfo(MainUnionRequestBO requestBO) {
//检查输入参数
MainUnionResponseBO responseBO = activateUnionCheck(requestBO);
if (!responseBO.getIsSuccess()) {
return responseBO;
}
try {
// 调用激活接口
responseBO = activateUnion(requestBO);
} catch (Exception e) {
log.error("activityUnionInfo error with request is {}", requestBO, e);
return responseBO;
}
return responseBO;
}
public JSONObject addUnion(Object obj);
/**
* 激活联盟
* @param request
* @return
*/
public MainUnionResponseBO activateUnion(MainUnionRequestBO request);
public UnionResponseBO activeUnion(ActivateUnionRequestBO request);
/////激活结束--------------------------------------------------------------
}
... ...
/**
*
*/
package com.yoho.unions.server.service;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONObject;
import com.yoho.service.model.union.request.MainUnionRequestBO;
import com.yoho.service.model.union.response.MainUnionResponseBO;
import com.yoho.unions.common.utils.ObjectUtil;
/**
* 描述:联盟的主函数入口
*
* @author ping.huang 2016年3月9日
*/
public interface MainUnionService_bak {
static Logger log = LoggerFactory.getLogger(MainUnionService_bak.class);
/////添加开始---------------------------------------------------------------
/**
* 添加联盟,转换对象为具体联盟的请求对象
* @param request
* @param addRequestClass
* @return
*/
default public MainUnionRequestBO toAddRequestBO(HttpServletRequest request, Class<? extends MainUnionRequestBO> addRequestClass) {
if (request == null) {
log.warn("request is null");
return null;
}
if (addRequestClass == null) {
log.warn("addRequestClass is null");
return null;
}
MainUnionRequestBO obj = null;
try {
obj = addRequestClass.newInstance();
List<String> fields = ObjectUtil.getFields(addRequestClass, true);
if (fields == null) {
return obj;
}
for (String field : fields) {
BeanUtils.setProperty(obj, field, request.getParameter(field));
}
} catch (Exception e) {
log.error("", e);
}
return obj;
}
/**
* 添加联盟的检查
* @param request
* @return
*/
public MainUnionResponseBO addUnionCheck(MainUnionRequestBO request);
/**
* 调用联盟添加
*
* @param requestBO
* @return
* @throws Exception
*/
default public MainUnionResponseBO addUnionInfo(MainUnionRequestBO requestBO) {
//检查输入参数
MainUnionResponseBO responseBO = addUnionCheck(requestBO);
if (!responseBO.getIsSuccess()) {
return responseBO;
}
try {
// 调用添加接口
responseBO = addUnion(requestBO);
} catch (Exception e) {
log.error("addUnionInfo error with request is {}", requestBO, e);
return responseBO;
}
return responseBO;
}
/**
* 添加联盟
* @param request
* @return
*/
public MainUnionResponseBO addUnion(MainUnionRequestBO request);
/**
* 具体的返回对象转为jsonObject 该方法一般情况下,子类不需要实现
*
* @param responseBO
* @return
* @throws Exception
*/
default public JSONObject toResponse(MainUnionResponseBO responseBO) {
if (responseBO == null) {
return null;
}
JSONObject json = ObjectUtil.getDeclaredFields(responseBO, true);
return json;
}
/////添加结束---------------------------------------------------------------
/////激活开始--------------------------------------------------------------
/**
* 激活联盟,转换对象为具体联盟的请求对象
* @param request
* @param activateRequestClass
* @return
*/
default public MainUnionRequestBO toActivateRequestBO(HttpServletRequest request, Class<? extends MainUnionRequestBO> activateRequestClass) {
if (request == null) {
log.warn("request is null");
return null;
}
if (activateRequestClass == null) {
log.warn("activateRequestClass is null");
return null;
}
MainUnionRequestBO obj = null;
try {
obj = activateRequestClass.newInstance();
List<String> fields = ObjectUtil.getFields(activateRequestClass, true);
if (fields == null) {
return obj;
}
for (String field : fields) {
BeanUtils.setProperty(obj, field, request.getParameter(field));
}
} catch (Exception e) {
log.error("", e);
}
return obj;
}
/**
* 激活联盟的检查
* @param request
* @return
*/
public MainUnionResponseBO activateUnionCheck(MainUnionRequestBO request);
/**
* 调用联盟激活
*
* @param requestBO
* @return
* @throws Exception
*/
default public MainUnionResponseBO activateUnionInfo(MainUnionRequestBO requestBO) {
//检查输入参数
MainUnionResponseBO responseBO = activateUnionCheck(requestBO);
if (!responseBO.getIsSuccess()) {
return responseBO;
}
try {
// 调用激活接口
responseBO = activateUnion(requestBO);
} catch (Exception e) {
log.error("activityUnionInfo error with request is {}", requestBO, e);
return responseBO;
}
return responseBO;
}
/**
* 激活联盟
* @param request
* @return
*/
public MainUnionResponseBO activateUnion(MainUnionRequestBO request);
/////激活结束--------------------------------------------------------------
}
... ...
/**
*
*/
package com.yoho.unions.server.service.impl;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.netflix.config.DynamicIntProperty;
import com.netflix.config.DynamicPropertyFactory;
import com.yoho.core.cache.CacheClient;
import com.yoho.service.model.union.request.ActivateUnionRequestBO;
import com.yoho.service.model.union.request.AddUnionRequestBO;
import com.yoho.service.model.union.response.UnionResponseBO;
import com.yoho.unions.common.enums.SourceEnum;
import com.yoho.unions.common.utils.DateUtil;
import com.yoho.unions.common.utils.HttpUtils;
import com.yoho.unions.dal.IUnionsActiveRecordDAO;
import com.yoho.unions.dal.model.UnionsActiveRecord;
import com.yoho.unions.server.service.MainUnionService;
/**
* 描述:
* 顶当的联盟实现
* @author ping.huang
* 2016年3月16日
*/
@Service("dDServiceImpl")
public class DDServiceImpl implements MainUnionService {
static Logger log = LoggerFactory.getLogger(DDServiceImpl.class);
static Logger addDingdang = LoggerFactory.getLogger("addDingdang");
static Logger activeDingdang = LoggerFactory.getLogger("activeDingdang");
@Resource
CacheClient cacheClient;
@Resource
IUnionsActiveRecordDAO unionsActiveRecordDAO;
private static final String unions_KEY = "yh:unions:dingdang_";
@Override
public JSONObject addUnion(Object obj) {
AddUnionRequestBO request = (AddUnionRequestBO) obj;
log.debug("addUnion with param is {}", request);
log.debug("addUnion with param is {}", request);
String app = request.getApp();
String udid = request.getUdid();
String type = request.getType();
String callbackurl = request.getCallbackurl();
JSONObject response = new JSONObject();
if (StringUtils.isEmpty(app)) {
log.warn("addunions error app is null with param is {}", request);
response.put("isSuccess", false);
response.put("msg", "APP IS NULL");
return response;
}
if (StringUtils.isEmpty(udid)) {
log.warn("addunions error udid is null with param is {}", request);
response.put("isSuccess", false);
response.put("msg", "UDID IS NULL");
return response;
}
if (StringUtils.isEmpty(callbackurl)) {
log.warn("addunions error callbackurl is null with param is {}", request);
response.put("isSuccess", false);
response.put("msg", "CALLBACKURL IS NULL");
return response;
}
//检查memcached中是否已经有该udid
String cacheUdid = cacheClient.get(unions_KEY + app + "_" + udid, String.class);
log.info("addunions get cache key={}, cacheUdid={}", unions_KEY + app + "_" + udid, cacheUdid);
if (StringUtils.isNotEmpty(cacheUdid)) {
log.warn("addunions error app and udid is added with param is {}", request);
response.put("isSuccess", false);
response.put("msg", "APP UDID IS EXISTS");
return response;
}
//保存到memcached,时间,一个小时
DynamicIntProperty activeTime = DynamicPropertyFactory.getInstance().getIntProperty("activeTime", 60 * 60);
cacheClient.set(unions_KEY + app + "_" + udid, activeTime.get(), udid);
log.debug("addunions set cache success");
//插入数据库
try {
UnionsActiveRecord unions = new UnionsActiveRecord();
unions.setApp(app);
unions.setUdid(udid);
unions.setCallbackurl(callbackurl);
unions.setType(type);
log.debug("add to unionsLog db with param is {}", unions);
unionsActiveRecordDAO.insert(unions);
} catch (Exception e) {
log.error("", e);
}
log.info("addunions success with param is {}", request);
addDingdang.info("addunions success with param is {}", request);
response.put("isSuccess", true);
response.put("msg", "成功");
return response;
}
@Override
public UnionResponseBO activeUnion(ActivateUnionRequestBO request) {
log.debug("activeunions with param is {}", request);
UnionResponseBO response = new UnionResponseBO();
if (StringUtils.isEmpty(request.getAppid())) {
log.warn("activeunions error app is null with param is {}", request);
response.setIsSuccess(false);
response.setMsg("APP IS NULL");
return response;
}
if (StringUtils.isEmpty(request.getUdid())) {
log.warn("activeunions error udid is null with param is {}", request);
response.setIsSuccess(false);
response.setMsg("UDID IS NULL");
return response;
}
String memKey = unions_KEY + request.getAppid() + "_" + request.getUdid();
//检查memcached中是否已经有该udid
String cacheUdid = cacheClient.get(memKey, String.class);
log.info("activeUnion get cache key={}, cacheUdid={}", memKey, cacheUdid);
if (StringUtils.isEmpty(cacheUdid)) {
log.warn("activeunions error app and udid is not exists with param is {}", request);
response.setIsSuccess(false);
response.setMsg("APP UDID IS NOT EXISTS IN CACHE");
return response;
}
//检查该app和udid是否已经激活
UnionsActiveRecord unions = new UnionsActiveRecord();
unions.setApp(request.getAppid());
unions.setUdid(request.getUdid());
unions.setType(request.getClient_type());
UnionsActiveRecord u = unionsActiveRecordDAO.selectByUdidAndApp(unions);
if (u == null) {
log.warn("activeunions error app and udid is not exists with param is {}", request);
response.setIsSuccess(false);
response.setMsg("database has not exists this udid but cache exists");
return response;
}
//已经激活
if ("1".equals(u.getIsActive())) {
log.warn("activeunions error app is actived with param is {}", request);
response.setIsSuccess(false);
response.setMsg("app udid had actived");
return response;
}
//调用联盟激活接口
int repeatCount = 0;
Pair<Integer, String> pair = null;
JSONObject json = null;
boolean isSuccess = false;
String url = "";
while (true) {
//如果已经成功,或者重试次数大于3次,则不再调用
if (isSuccess || repeatCount >= 3) {
break;
}
try {
url = u.getCallbackurl();
pair = HttpUtils.httpGet(url);
if (pair.getLeft() == HttpStatus.SC_OK) {
log.debug("call " + u.getCallbackurl() + " url success return message is {}", pair.getRight());
json = JSONObject.parseObject(pair.getRight());
isSuccess = json.getBooleanValue("isSuccess");
}
} catch (Exception e) {
log.error("", e);
}
repeatCount++;
}
log.info("call " + u.getCallbackurl() + " url return message is {}", pair.getRight());
//更新数据库
if (isSuccess) {
unions.setIsActive("1");
unions.setId(u.getId());
unionsActiveRecordDAO.updateByPrimaryKey(unions);
//激活成功,从memcached中删除
cacheClient.delete(memKey);
log.debug("activeUnion delete cache success key={}", memKey);
response.setMsg("激活成功");
response.setIsSuccess(true);
} else {
unions.setIsActive("0");
unions.setId(u.getId());
unionsActiveRecordDAO.updateByPrimaryKey(unions);
response.setMsg("激活失败");
response.setIsSuccess(false);
}
try {
//组装大数据分析的日志
JSONObject j = new JSONObject();
j.put("apptype", request.getClient_type());
j.put("appid", request.getAppid());
j.put("ifda", request.getUdid());
j.put("dateid", DateUtil.getcurrentDateTime());
SourceEnum e = SourceEnum.getSourceEnumByValue(u.getType());
j.put("source", e == null ? "" : e.getName());
j.put("ip", request.getClientIp());
j.put("collect_ip", "");
activeDingdang.info(j.toString());
} catch (Exception e) {
log.error("", e);
}
return response;
}
}
... ...
... ... @@ -35,7 +35,7 @@ import com.yoho.unions.server.service.MainUnionService;
* @author yoho
*
*/
@Service("gdtServiceImpl")
//@Service("gdtServiceImpl")
public class GDTServiceImpl implements MainUnionService {
static Logger log = LoggerFactory.getLogger(GDTServiceImpl.class);
... ...
... ... @@ -13,13 +13,13 @@
<dependent-module archiveName="yoho-unions-common-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/yoho-unions-common/yoho-unions-common">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="error-code-1.0.5-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/error-code/error-code">
<dependent-module archiveName="error-code-1.0.6-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/error-code/error-code">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="union-service-model-1.0.5-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/union-service-model/union-service-model">
<dependent-module archiveName="union-service-model-1.0.6-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/union-service-model/union-service-model">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="users-service-model-1.0.5-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/users-service-model/users-service-model">
<dependent-module archiveName="users-service-model-1.0.6-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/users-service-model/users-service-model">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/yoho-unions-web/target/classes"/>
... ...
... ... @@ -58,7 +58,7 @@
</bean>
<mvc:interceptors>
<!--<ref bean="securityInterceptor" />-->
<!-- <ref bean="securityInterceptor" /> -->
<ref bean="threadProfileInterceptor"/>
</mvc:interceptors>
</beans>
... ...