发表于: 2018-01-29 21:24:52

1 682


今天完成的事情:

写微信上传接口,用户签到,用户更新,用户查看自己信息。

@RequestMapping(value = "/a/info", method = RequestMethod.POST)
public String etUsersJson(@RequestBody Users users ,
                   HttpServletResponse response, ModelMap model)
throws Exception {
Long id = 1L;
  Users users1 = usersService.getObjectById(id);
  Users user = new Users();
  user.setId(id);
  user.setGrade(users.getGrade());
  user.setName(users.getName());
  user.setOpenid(users1.getOpenid());
  user.setCreateAt(users1.getCreateAt());
  System.out.println(user);
  String mediaId = users.getImage();//mediaId为前端用户提交图片后在微信服务器图片ID
  //先判断mediaId是否为空(判断用户是否提交新图片),若无,则图片不变。
  if(mediaId!=null){
//判断之前是否存在图片,先删除之前的图片,后存入新图片.
     if(users1.getImage()!=null){
String oldPicPath = users1.getImage();
        String key = oldPicPath.substring(56);
        PictureUtil.delPic(key);
     }
//这里用当前系统的毫秒值加上传入文件的后缀(例如jpg,gif),然后添加到ObjectKey,作为传入文件的命名,这样自动匹配格式。
     String Objectkey =String.valueOf(System.currentTimeMillis())+".jpg";
     //bucketName endpoint均是为了定位图片url
     String bucketName = "test-for-java-jnshu";
     //endpoint 来自于官方文档。
     String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
     PictureUtil.setPic(Objectkey,PictureUtil.getInput(mediaId));
     String picturePath ="http://" +bucketName+"."+endpoint.substring(7)+"/"+Objectkey;
     user.setImage(picturePath);
     usersService.update(user);
     return "users/json/usersDetailJson";
  }else {
usersService.update(user);
     return "users/json/usersDetailJson";
  }
}


// 签到  已经完成POSTMAN测试通过
@RequestMapping(value = "/a/reception", method = RequestMethod.GET)
public String addSignJson(HttpServletRequest request,
     HttpServletResponse response, ModelMap model, Sign sign) throws Exception {
log.info("update sign : sign= " + sign);
  try {
Long id = 1L;
     Users users = usersService.getObjectById(id);
     System.out.println("users----->"+users);
     sign.setUserId(id);
     sign.setSignTime(System.currentTimeMillis());
     Calendar c = Calendar.getInstance();
     //获取当月第一天时间戳00:00:00
     c.set(c.get(Calendar.YEAR),c.get(Calendar.MONTH),1,0,0,0);
     Long month  = c.getTimeInMillis()/1000;
     sign.setMonth(month);
     System.out.println("id---->"+signService.insert(sign));
     int consec = users.getConsecutive()+1;//签到成功连续签到+1
     users.setConsecutive(consec);
     users.setSign(2);//更改签到状态为已签到
     users.setTotal(users.getTotal()+1);//总签到+1
     System.out.println("consec---->"+consec);
     System.out.println("high---->"+users.getSignHighest());
     if(consec>=users.getSignHighest()){//是否更新最高连续签到
        users.setSignHighest(consec);
        System.out.println("id------>"+id);
        usersService.update(users);
     }
if(consec<5){//更新逆袭豆数量
        users.setBeans(users.getBeans()+consec);
        usersService.update(users);
     }else {
users.setBeans(users.getBeans()+5L);
        usersService.update(users);
     }
//model.addAttribute("user",users);
     model.addAttribute("code", 0);
     List<Long> idList = signService.getSignInfoByUserIdAndMonth(id,month);
     List<Sign> signList = signService.getObjectsByIds(idList);
     model.addAttribute("users",users);
     model.addAttribute("signList",signList);
     return "sign/json/signListJson";
  } catch (Throwable t) {
t.printStackTrace();
     log.error(t.getMessage());
     log.error("add sign error ");
     model.addAttribute("code", -6002);
  }
//返回签到结果

  return "sign/json/signListJson";
}


明天计划的事情:

继续写接口

遇到的问题:

没问题
收获:


返回列表 返回列表
评论

    分享到