发表于: 2018-01-04 23:17:07
1 537
今天完成的事情:
1.修复bug
2.重构
3压测报告
问了老大是数据库性能瓶颈.
明天计划完成的事情:
1.微信支付
/**
* 微信网页授权登录回调接口
*
* @param request
* @param model
* @return
*/
@RequestMapping(value = "/a/wechat/login/callback")
public String weChatLoginCallback(HttpServletRequest request, HttpServletResponse response, Model model) {
UserInfoOfWeChat userInfoOfWeChat = new UserInfoOfWeChat();
String code = request.getParameter("code");
Long uid = null;
String openId = null;
String wechatToken = null;
try {
//获取openId
String resultOfJson = weChatUtil.getUserOpenIdAndAccessTokenOfWeChat(code);
Map<String, String> resultOfMap = weChatUtil.jsonToMap(resultOfJson);
openId = resultOfMap.get("openid");
wechatToken = resultOfMap.get("access_token");
//通过openId判断用户是否绑定
uid = null != openId ? OpenLoginUtil.openIdIsExistent(openId, 1) : null;
//当前微信用户账号于本系统账号有绑定
if (null != uid) {
String token = DesUtil.getStrMi(uid + "," + new Date().getTime());
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
cookie.setMaxAge(60 * 60 * 3);
response.addCookie(cookie);
userInfoOfWeChat.setOpenid(openId);
model.addAttribute("token", token);
model.addAttribute("code", 0);
} else {
userInfoOfWeChat = weChatUtil.getUserInfoOfWeChatByOpenIdAndAccessToken(openId, wechatToken);
log.info("user information is " + userInfoOfWeChat.toString());
model.addAttribute("code", -2100);
}
model.addAttribute("userInfo", userInfoOfWeChat);
} catch (Exception e) {
log.error(e);
model.addAttribute("code", -1);
}
return "reclamation-funlearn-user-service/user/json/openLoginResult";
}
/**
* 微信公众号内H5支付预下单
* @param request
* @param model
* @return
*/
@RequestMapping(value = "/a/u/wechat/prepaidorder", method = RequestMethod.POST)
public String getWeChatPayPrepaidOrder(Integer orderType,Long[] commodityId,String email,HttpServletRequest request,Model model) {
log.info("orderType is=="+orderType+" commodityId is=="+Arrays.toString(commodityId)+" email is=="+email);
//参数校验
boolean importantParamIsNotNull = CheckTheParameters.allOfParamIsNotNull(orderType,commodityId);
boolean paramIsIllegal = CheckTheParameters.valueIsIllegal(orderType, CheckTheParameters.typeOfCheck.ALLOW_BUY_OF_TYPES);
if (1==orderType&&(null==email||email.equals(""))) {
model.addAttribute("code",-3);
return "util/weChatCreatePrepaidOrderResult";
}
if (!importantParamIsNotNull||paramIsIllegal) {
model.addAttribute("code",-3);
return "util/weChatCreatePrepaidOrderResult";
}
//用户是否登录
String token = CookieUtil.getCookie(request,"token");
if (null==token) {
log.info("用户未登录");
model.addAttribute("code",-2);
return "util/weChatCreatePrepaidOrderResult";
}
Long userId = null;
String openId = null;
Map<String,Object> result = null;
try {
//是否绑定微信号
userId = CookieUtil.findUserIdByTokenValue(token);
openId = null!=userId?userOpenService.getOpenIdByUserIdAndOpenIdType(userId,1):null;
if (null==openId) {
log.info("未绑定微信号");
model.addAttribute("code",-2100);
return "util/weChatCreatePrepaidOrderResult";
}
//根据类型封装及数据封装成订单
List<Object> resultOfPackage = new ArrayList<>();
if (1==orderType) {
resultOfPackage = toPackageCommodityInformation.
doPackage(ToPackageCommodityInformation.Type.PAPER, commodityId, userId);
}else if (2==orderType) {
resultOfPackage = toPackageCommodityInformation.doPackage(ToPackageCommodityInformation.Type.PERIOD,commodityId,userId);
}else {
resultOfPackage = toPackageCommodityInformation.
doPackage(ToPackageCommodityInformation.Type.LESSON, commodityId, userId);
}
Map<String,Object> prepaidOrderInfo = (Map<String,Object>)resultOfPackage.get(0);
List<Map<String,String>> ordersInfo = (List<Map<String,String>>)resultOfPackage.get(1);
prepaidOrderInfo.put("openid",openId);
prepaidOrderInfo.put("attach",orderType+","+userId+","+email);
result = weChatPay.getPrepaidOrder(prepaidOrderInfo,userId,ordersInfo);
result.put("outTradeNo",prepaidOrderInfo.get("out_trade_no"));
model.addAttribute("code",0);
model.addAttribute("result",result);
}catch (Exception e) {
String[] messages = e.getMessage().split(",");
int code = -1;
if (0!=messages.length) {
code = Integer.valueOf(messages[0]);
}
log.error(e);
model.addAttribute("code",code);
}
return "util/weChatCreatePrepaidOrderResult";
}
2.提交Demo
困难:
无
收获:
无
评论