generated from root/miduo_server
117 lines
5.3 KiB
Java
117 lines
5.3 KiB
Java
package com.jmfy.controller;
|
|
|
|
import com.jmfy.dto.*;
|
|
import com.jmfy.thrift.idl.RPCRequestIFace;
|
|
import com.jmfy.thrift.idl.Result;
|
|
import com.jmfy.thrift.pool.ClientAdapterPo;
|
|
import com.jmfy.thrift.pool.ServiceKey;
|
|
import com.jmfy.util.JsonUtil;
|
|
import com.jmfy.util.MD5Util;
|
|
import com.jmfy.util.YsjConstant;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.net.URLDecoder;
|
|
import java.util.HashMap;
|
|
|
|
@RestController
|
|
public class SendMailController {
|
|
@Resource
|
|
private CUserDao cuserDao;
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(SendMailController.class);
|
|
@RequestMapping(value = "/efun_reward")
|
|
public String efun_reward(HttpServletRequest request) throws Exception {
|
|
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
|
|
String userId = parameterMap.get("userId");
|
|
String roleId = parameterMap.get("roleId");
|
|
String serialNo = parameterMap.get("serialNo");
|
|
String gameCode = parameterMap.get("gameCode");
|
|
String serverCode = parameterMap.get("serverCode");
|
|
String packageId = parameterMap.get("packageId");
|
|
String activityCode = parameterMap.get("activityCode");
|
|
String title = parameterMap.get("title");
|
|
String content = parameterMap.get("content");
|
|
String sign = parameterMap.get("sign");
|
|
//验证sign
|
|
String sig = MD5Util.encrypByMd5(userId+roleId+serverCode+gameCode+serialNo+packageId+YsjConstant.TW_GameKey);
|
|
if (!sig.equals(sign)){
|
|
LOGGER.info("efun_reward==>userId={},sin derify fail ",userId);
|
|
ResultVo resultVo = new ResultVo("1010", "sign derify failed");
|
|
return JsonUtil.getInstence().getGson().toJson(resultVo);
|
|
}
|
|
boolean isExist =cuserDao.getMailSeriaNo(serialNo);
|
|
//发奖流水号 不能重复
|
|
if (isExist){
|
|
LOGGER.info("efun_reward==>userId={},serialNo is exist ",userId);
|
|
ResultVo resultVo = new ResultVo("1006", "serialNo is exist");
|
|
return JsonUtil.getInstence().getGson().toJson(resultVo);
|
|
}
|
|
String plat = "android";
|
|
if (gameCode.equals(YsjConstant.TW_IOS_GameCode)){
|
|
plat = "ios";
|
|
}
|
|
CUserInfo cUserInfo = cuserDao.getUserInfobyNameAndServerId(userId, Integer.parseInt(serverCode),plat);
|
|
if (Integer.parseInt(roleId) != cUserInfo.getUserId()){
|
|
ResultVo resultVo = new ResultVo("1038", "no userInfo");
|
|
return JsonUtil.getInstence().getGson().toJson(resultVo);
|
|
}
|
|
// String rewardItems = packageId.replaceAll(",","#").replaceAll(";","|");
|
|
String rewardItems = getNewRewardItem(packageId);
|
|
String userAddress = cuserDao.findUserInfo(Integer.parseInt(serverCode), cUserInfo.getUserId());
|
|
LOGGER.info("efun_reward ==> userAddress={},rewardItems={} ",userAddress,rewardItems);
|
|
Result result = null;
|
|
if (userAddress != null){
|
|
String[] split = userAddress.split(":");
|
|
String ip = split[0];
|
|
String port = split[1];
|
|
LOGGER.info("efun_reward ==>RPC address --> IP : "+ ip + "; PORT : "+ port);
|
|
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
|
|
String serviceKey = JsonUtil.getServiceKey(ServiceKey.RPCCore,ip,port);
|
|
LOGGER.info("serviceKey : "+ serviceKey);
|
|
try {
|
|
rPCClient = ClientAdapterPo.getClientAdapterPo(serviceKey);
|
|
result = rPCClient.getClient().sendMail(cUserInfo.getUserId(), rewardItems, URLDecoder.decode(title, "UTF-8"), URLDecoder.decode(content, "UTF-8"));
|
|
cuserDao.addMailSeriaNo(serialNo);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}finally {
|
|
if (rPCClient != null){
|
|
rPCClient.returnObject(serviceKey);
|
|
}else{
|
|
LOGGER.info("callback=> rPCClient is null ");
|
|
}
|
|
}
|
|
}
|
|
ResultVo resultVo;
|
|
if (result!= null && result.getResultCode() == 0) {
|
|
resultVo = new ResultVo("1000", "send reward success !!!!");
|
|
} else {
|
|
resultVo = new ResultVo("1002", "send reward fail !!!!");
|
|
}
|
|
return JsonUtil.getInstence().getGson().toJson(resultVo);
|
|
}
|
|
|
|
private String getNewRewardItem(String packageId) {
|
|
StringBuilder rewardItems = new StringBuilder();
|
|
String[] split = packageId.split(";");
|
|
for (String string :split){
|
|
String[] split1 = string.split(",");
|
|
if (rewardItems.length() == 0){
|
|
rewardItems = new StringBuilder(split1[1] + "#" + split1[2] + "#" + split1[0]);
|
|
}else {
|
|
rewardItems.append("|").append(split1[1]).append("#").append(split1[2]).append("#").append(split1[0]);
|
|
}
|
|
}
|
|
return rewardItems.toString();
|
|
}
|
|
|
|
public static void main (String [] args){
|
|
String s = MD5Util.encrypByMd5("111112"+10005686+10074+"TWDK"+"skdfjskfdjslakdfjals"+"1,1001,100;1,1002,1000"+YsjConstant.TW_GameKey);
|
|
System.out.println(s);
|
|
}
|
|
}
|