发表于: 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



困难:


收获:


返回列表 返回列表
评论

    分享到