PageRenderTime 48ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/lehuo/lsm/controller/ImgPKController.java

https://gitlab.com/Simon0622/web
Java | 259 lines | 202 code | 51 blank | 6 comment | 24 complexity | d80eaef78e3c03001d11556b97bbf497 MD5 | raw file
  1. package lehuo.lsm.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import lehuo.lsm.global.Global;
  4. import lehuo.lsm.model.*;
  5. import lehuo.lsm.service.impl.*;
  6. import lehuo.lsm.util.ImgDownload;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.ModelMap;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestParam;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import org.apache.commons.io.FileUtils;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpSession;
  20. import java.io.InputStream;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. /**
  24. * Created by simonliu on 2014/10/26.
  25. */
  26. @Controller
  27. @RequestMapping(value = "/imgpk")
  28. public class ImgPKController {
  29. protected static Logger logger = LoggerFactory.getLogger(RankController.class);
  30. @Resource
  31. private ImgPKService imgPKService;
  32. @Resource
  33. private LinksService linksService;
  34. @Resource
  35. private UserService userService;
  36. @Resource
  37. private ImagesService imagesService;
  38. @Resource
  39. private DoubanProcesser doubanProcesser;
  40. private static final int oneBatchNum = 10;
  41. @RequestMapping(value = "/index")
  42. public String oneRound(ModelMap map, HttpSession session) {
  43. User user = null;
  44. if (Global.getLINK_MAX() == 0) {
  45. Global.setLINK_MAX(linksService.selectMax());
  46. }
  47. String name = (String) session.getAttribute("name");
  48. if (StringUtils.isBlank(name)) {
  49. String sessionid = session.getId();
  50. String ip = (String) session.getAttribute("ip");
  51. User item = new User();
  52. item.setSessionid(sessionid);
  53. user = userService.select(item);
  54. if(user!=null){
  55. map.put("age", user.getAge());
  56. map.put("birth", user.getBirth());
  57. }else{
  58. userService.insert(new User("", "", sessionid, ip));
  59. }
  60. } else {
  61. User item = new User();
  62. item.setUsername(name);
  63. user = userService.select(item);
  64. map.put("age", user.getAge());
  65. map.put("birth", user.getBirth());
  66. }
  67. List<Images> list = imgPKService.selectLownumPkImg(0, oneBatchNum * 2);
  68. List<Images> left = list.subList(0, 10);
  69. List<Images> right = list.subList(10, list.size());
  70. map.put("left", left);
  71. map.put("right", right);
  72. return "pk";
  73. }
  74. @RequestMapping(value = "/oneround")
  75. public void oneRound(String data, HttpSession session) {
  76. String sessionid = session.getId();
  77. User item = new User();
  78. item.setSessionid(sessionid);
  79. User user = userService.select(item);
  80. try {
  81. List<PkImg> list = new ArrayList<PkImg>();
  82. String[] rounds = data.split(":");
  83. for (String r : rounds) {
  84. if (StringUtils.isBlank(r)) {
  85. continue;
  86. }
  87. String[] pkvo = r.split(",");
  88. if (StringUtils.isNumeric(pkvo[0]) && StringUtils.isNumeric(pkvo[1])) {
  89. PkImg vo = new PkImg(Integer.parseInt(pkvo[0]), Integer.parseInt(pkvo[1]), user.getId(), 0);
  90. list.add(vo);
  91. }
  92. }
  93. imgPKService.insertPKSubmit(session.getId(), list);
  94. } catch (Exception e) {
  95. logger.error("oneRound function error", e);
  96. }
  97. }
  98. @RequestMapping(value = "/change")
  99. public void change(String win, String lose, HttpSession session) {
  100. String sessionid = session.getId();
  101. User item = new User();
  102. item.setSessionid(sessionid);
  103. User user = userService.select(item);
  104. if (user == null) {
  105. userService.insert(item);
  106. }
  107. try {
  108. PkImg vo = null;
  109. if (StringUtils.isNumeric(win) && StringUtils.isNumeric(lose)) {
  110. vo = new PkImg(Integer.parseInt(win), Integer.parseInt(lose), user.getId(), 0);
  111. }
  112. imgPKService.insert(vo);
  113. imagesService.updateImgWin(Integer.parseInt(win));
  114. imagesService.updateImgLose(Integer.parseInt(lose));
  115. } catch (Exception e) {
  116. logger.error("change function error", e);
  117. }
  118. }
  119. @RequestMapping(value = "/nextbatch")
  120. @ResponseBody
  121. public String nextBatch(String offset) {
  122. if (!StringUtils.isNumeric(offset)) {
  123. offset = "0";
  124. }
  125. List<Images> newround = imgPKService.selectLownumPkImg(Integer.parseInt(offset), oneBatchNum);
  126. return JSON.toJSONString(newround);
  127. }
  128. @RequestMapping(value = "/agebirth")
  129. @ResponseBody
  130. public String agebirth(String age, String birth, String province, HttpSession session) {
  131. try {
  132. Integer ageint = Integer.parseInt(age);
  133. Integer birthint = Integer.parseInt(birth);
  134. session.setAttribute("age", ageint);
  135. session.setAttribute("birth", birthint);
  136. if (StringUtils.isBlank(province)) {
  137. province = "";
  138. }
  139. User update = new User();
  140. update.setAge(ageint);
  141. update.setBirth(birthint);
  142. update.setProvince(province);
  143. User item = new User();
  144. item.setSessionid(session.getId());
  145. userService.update(update, item);
  146. return "true";
  147. } catch (Exception e) {
  148. return "false";
  149. }
  150. }
  151. @RequestMapping(value = "/ipk")
  152. public String ipk() {
  153. return "ipk";
  154. }
  155. @RequestMapping(value = "/addpkimg")
  156. @ResponseBody
  157. public String addpkimg(@RequestParam MultipartFile myfile, HttpSession session, String catagory) {
  158. Images image = null;
  159. logger.info("session id is {}", session.getId());
  160. if (myfile.isEmpty()) {
  161. System.out.println("文件未上传");
  162. } else {
  163. System.out.println("文件长度: " + myfile.getSize());
  164. System.out.println("文件类型: " + myfile.getContentType());
  165. System.out.println("文件名称: " + myfile.getName());
  166. System.out.println("文件原名: " + myfile.getOriginalFilename());
  167. System.out.println("========================================");
  168. //如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
  169. //String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");
  170. //这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
  171. try {
  172. InputStream inputStream = myfile.getInputStream();
  173. byte[] btImg = ImgDownload.readInputStream(inputStream);
  174. image = new Images(0, session.getId() + myfile.getOriginalFilename(), 1, myfile.getOriginalFilename());
  175. User item = new User();
  176. item.setSessionid(session.getId());
  177. User u = userService.select(item);
  178. if (u == null) {
  179. userService.insert(item);
  180. u = userService.select(item);
  181. }
  182. if (StringUtils.isEmpty(catagory)) {
  183. catagory = "1";
  184. }
  185. Integer icatagory = Integer.parseInt(catagory);
  186. image.setCatagory(icatagory);
  187. image.setDeal(1);
  188. imagesService.insert(image);
  189. logger.info("image id is {}", image.getId());
  190. ImgDownload.writeImageToDisk(btImg, image.getId().toString() + ".jpg");
  191. Images update = new Images();
  192. update.setUserid(u.getId());
  193. if (icatagory == 1) {
  194. update.setImgshow(1);
  195. } else if (icatagory > 10) {
  196. update.setImgshow(0);
  197. }
  198. Images where = new Images();
  199. where.setId(image.getId());
  200. imagesService.update(update, where);
  201. } catch (Exception e) {
  202. logger.error("addpkimg", e);
  203. return null;
  204. }
  205. }
  206. return JSON.toJSONString(image.getId().toString());
  207. }
  208. }