QrcodeController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. package com.yihu.wlyy.web.common.qrcode;
  2. import com.yihu.wlyy.entity.doctor.profile.Doctor;
  3. import com.yihu.wlyy.service.common.QrcodeService;
  4. import com.yihu.wlyy.service.common.account.DoctorService;
  5. import com.yihu.wlyy.web.WeixinBaseController;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.File;
  13. import java.io.FileInputStream;
  14. import java.io.InputStream;
  15. import java.io.OutputStream;
  16. /**
  17. * Created by lyr on 2016/08/10.
  18. */
  19. @Controller
  20. @RequestMapping(value = "/qrcode")
  21. public class QrcodeController extends WeixinBaseController {
  22. @Autowired
  23. private QrcodeService qrcodeService;
  24. @Autowired
  25. private DoctorService doctorService;
  26. @RequestMapping(value = "/doctors")
  27. @ResponseBody
  28. public String makeDoctorQrcodes(String hospital){
  29. try{
  30. if(qrcodeService.makeDoctorQrCode(hospital,getAccessToken())){
  31. return write(200,"生成二维码成功!");
  32. }else{
  33. return error(-1,"生成二维码失败!");
  34. }
  35. }catch (Exception e){
  36. e.printStackTrace();
  37. return error(-1,"生成二维码失败!");
  38. }
  39. }
  40. /**
  41. * 生成某个医生的二维码
  42. *
  43. * @param doctor
  44. * @return
  45. */
  46. @RequestMapping(value = "/doctor")
  47. @ResponseBody
  48. public String makeDoctorQrcode(String doctor){
  49. try{
  50. if(qrcodeService.makeDoctorQrcode(doctor,getAccessToken())){
  51. return write(200,"生成二维码成功!");
  52. }else{
  53. return error(-1,"生成二维码失败!");
  54. }
  55. }catch (Exception e){
  56. e.printStackTrace();
  57. return error(-1,"生成二维码失败!");
  58. }
  59. }
  60. /**
  61. * 生成社区二维码
  62. *
  63. * @param hospital
  64. * @return
  65. */
  66. @RequestMapping(value = "/hospital")
  67. @ResponseBody
  68. public String makeHospitalQrcode(String hospital){
  69. try{
  70. if(qrcodeService.makeHospitalQrcode(hospital,getAccessToken())){
  71. return write(200,"生成二维码成功!");
  72. }else{
  73. return error(-1,"生成二维码失败!");
  74. }
  75. }catch (Exception e){
  76. e.printStackTrace();
  77. return error(-1,"生成二维码失败!");
  78. }
  79. }
  80. /**
  81. * 生成区二维码
  82. *
  83. * @param town
  84. * @return
  85. */
  86. @RequestMapping(value = "/town")
  87. @ResponseBody
  88. public String makeTownQrcode(String town){
  89. try{
  90. if(qrcodeService.makeTownQrcode(town,getAccessToken())){
  91. return write(200,"生成二维码成功!");
  92. }else{
  93. return error(-1,"生成二维码失败!");
  94. }
  95. }catch (Exception e){
  96. e.printStackTrace();
  97. return error(-1,"生成二维码失败!");
  98. }
  99. }
  100. /**
  101. * 下载某个社区的二维码
  102. *
  103. * @param hospital
  104. * @param response
  105. */
  106. @RequestMapping(value = "/hospital_img")
  107. public void downloadSqQrcode(String hospital, HttpServletResponse response){
  108. try{
  109. File file = new File(QrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "") +
  110. File.separator +"qrcode" + File.separator + hospital + ".png");
  111. boolean flag = false;
  112. if(!file.exists()){
  113. flag = qrcodeService.makeHospitalQrcode(hospital,getAccessToken());
  114. }else{
  115. flag = true;
  116. }
  117. if(flag = true) {
  118. response.setCharacterEncoding("utf-8");
  119. String path = request.getSession().getServletContext().getRealPath("/")
  120. + File.separator + "qrcode" + File.separator + hospital + ".png";
  121. InputStream inputStream = new FileInputStream(path);
  122. OutputStream outputStream = response.getOutputStream();
  123. byte[] b = new byte[2048];
  124. int length = 0;
  125. while ((length = inputStream.read(b)) > 0) {
  126. outputStream.write(b, 0, length);
  127. }
  128. outputStream.close();
  129. inputStream.close();
  130. }else{
  131. response.setStatus(404);
  132. }
  133. }catch (Exception e){
  134. e.printStackTrace();
  135. }
  136. }
  137. /**
  138. * 下载某个区的二维码
  139. *
  140. * @param town
  141. * @param response
  142. */
  143. @RequestMapping(value = "/town_img")
  144. public void downloadTownQrcode(String town, HttpServletResponse response){
  145. try{
  146. File file = new File(QrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "") +
  147. File.separator +"qrcode" + File.separator + town + ".png");
  148. boolean flag = false;
  149. if(!file.exists()){
  150. flag = qrcodeService.makeTownQrcode(town,getAccessToken());
  151. }else{
  152. flag = true;
  153. }
  154. if(flag = true) {
  155. response.setCharacterEncoding("utf-8");
  156. String path = request.getSession().getServletContext().getRealPath("/")
  157. + File.separator + "qrcode" + File.separator + town + ".png";
  158. InputStream inputStream = new FileInputStream(path);
  159. OutputStream outputStream = response.getOutputStream();
  160. byte[] b = new byte[2048];
  161. int length = 0;
  162. while ((length = inputStream.read(b)) > 0) {
  163. outputStream.write(b, 0, length);
  164. }
  165. outputStream.close();
  166. inputStream.close();
  167. }else{
  168. response.setStatus(404);
  169. }
  170. }catch (Exception e){
  171. e.printStackTrace();
  172. }
  173. }
  174. /**
  175. * 下载某个医生的二维码
  176. *
  177. * @param doctor
  178. * @param response
  179. */
  180. @RequestMapping(value = "/download")
  181. public void downloadQrcode(String doctor, HttpServletResponse response){
  182. try{
  183. Doctor doc = doctorService.findDoctorByCode(doctor);
  184. if(doc != null){
  185. if(StringUtils.isEmpty(doc.getQrcode())){
  186. qrcodeService.makeDoctorQrcode(doctor,getAccessToken());
  187. doc = doctorService.findDoctorByCode(doctor);
  188. }else{
  189. File file = new File(QrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "") +
  190. File.separator +"qrcode" + File.separator + doc.getQrcode());
  191. if(!file.exists()){
  192. qrcodeService.makeDoctorQrcode(doctor,getAccessToken());
  193. doc = doctorService.findDoctorByCode(doctor);
  194. }
  195. }
  196. response.setCharacterEncoding("utf-8");
  197. response.setContentType("multipart/form-data");
  198. response.setHeader("Content-Disposition", "attachment;fileName="
  199. + doc.getQrcode());
  200. String path = request.getSession().getServletContext().getRealPath("/")
  201. + File.separator + "qrcode" + File.separator + doc.getQrcode();
  202. InputStream inputStream = new FileInputStream(path);
  203. OutputStream outputStream = response.getOutputStream();
  204. byte[] b = new byte[2048];
  205. int length = 0;
  206. while ((length = inputStream.read(b)) > 0) {
  207. outputStream.write(b, 0, length);
  208. }
  209. outputStream.close();
  210. inputStream.close();
  211. }else{
  212. throw new Exception("医生信息不存在!");
  213. }
  214. }catch (Exception e){
  215. e.printStackTrace();
  216. }
  217. }
  218. /**
  219. * 下载某个医生的二维码
  220. *
  221. * @param doctor
  222. * @param response
  223. */
  224. @RequestMapping(value = "/doctor_img")
  225. public void downloadQrcodeImage(String doctor, HttpServletResponse response){
  226. try{
  227. System.out.println("------------------doctor:"+doctor);
  228. Doctor doc = doctorService.findDoctorByCode(doctor);
  229. if(doc != null){
  230. if(StringUtils.isEmpty(doc.getQrcode())){
  231. qrcodeService.makeDoctorQrcode(doctor,getAccessToken());
  232. doc = doctorService.findDoctorByCode(doctor);
  233. }else{
  234. File file = new File(QrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "") +
  235. File.separator +"qrcode" + File.separator + doc.getQrcode());
  236. if(!file.exists()){
  237. qrcodeService.makeDoctorQrcode(doctor,getAccessToken());
  238. doc = doctorService.findDoctorByCode(doctor);
  239. }
  240. }
  241. String path = request.getSession().getServletContext().getRealPath("/")
  242. + File.separator + "qrcode" + File.separator + doc.getQrcode();
  243. InputStream inputStream = new FileInputStream(path);
  244. OutputStream outputStream = response.getOutputStream();
  245. byte[] b = new byte[2048];
  246. int length = 0;
  247. while ((length = inputStream.read(b)) > 0) {
  248. outputStream.write(b, 0, length);
  249. }
  250. outputStream.close();
  251. inputStream.close();
  252. }else{
  253. throw new Exception("医生信息不存在!");
  254. }
  255. }catch (Exception e){
  256. e.printStackTrace();
  257. }
  258. }
  259. /**
  260. * 下载所有医生的二维码图片
  261. *
  262. * @param hospital
  263. * @param response
  264. */
  265. @RequestMapping(value = "/download/doctors")
  266. public void downloadQrcodes(String hospital,HttpServletResponse response){
  267. try{
  268. File file = qrcodeService.downloadDoctorQrCodes(hospital,getAccessToken());
  269. if(file != null){
  270. response.setCharacterEncoding("utf-8");
  271. response.setContentType("multipart/form-data");
  272. response.setHeader("Content-Disposition", "attachment;fileName=doctors_qrcode.zip");
  273. InputStream inputStream = new FileInputStream(file);
  274. OutputStream outputStream = response.getOutputStream();
  275. byte[] b = new byte[2048];
  276. int length = 0;
  277. while ((length = inputStream.read(b)) > 0) {
  278. outputStream.write(b, 0, length);
  279. }
  280. outputStream.close();
  281. inputStream.close();
  282. }else{
  283. response.setStatus(500);
  284. }
  285. }catch (Exception e){
  286. e.printStackTrace();
  287. response.setStatus(500);
  288. }
  289. }
  290. /**
  291. * 下载某个区的社区的二维码图片
  292. *
  293. * @param area
  294. * @param response
  295. */
  296. @RequestMapping(value = "/download/hospitals")
  297. public void downloadSqQrcodes(String area,HttpServletResponse response){
  298. try{
  299. File file = qrcodeService.downloadHospitalQrCodes(area,getAccessToken());
  300. if(file != null){
  301. response.setCharacterEncoding("utf-8");
  302. response.setContentType("multipart/form-data");
  303. response.setHeader("Content-Disposition", "attachment;fileName=hospitals_qrcode.zip");
  304. InputStream inputStream = new FileInputStream(file);
  305. OutputStream outputStream = response.getOutputStream();
  306. byte[] b = new byte[2048];
  307. int length = 0;
  308. while ((length = inputStream.read(b)) > 0) {
  309. outputStream.write(b, 0, length);
  310. }
  311. outputStream.close();
  312. inputStream.close();
  313. }else{
  314. response.setStatus(500);
  315. }
  316. }catch (Exception e){
  317. e.printStackTrace();
  318. response.setStatus(500);
  319. }
  320. }
  321. /**
  322. * 下载某个城市的区的二维码图片
  323. *
  324. * @param city
  325. * @param response
  326. */
  327. @RequestMapping(value = "/download/towns")
  328. public void downloadTownQrcodes(String city,HttpServletResponse response){
  329. try{
  330. File file = qrcodeService.downLoadTownQrcodes(city,getAccessToken());
  331. if(file != null){
  332. response.setCharacterEncoding("utf-8");
  333. response.setContentType("multipart/form-data");
  334. response.setHeader("Content-Disposition", "attachment;fileName=towns_qrcode.zip");
  335. InputStream inputStream = new FileInputStream(file);
  336. OutputStream outputStream = response.getOutputStream();
  337. byte[] b = new byte[2048];
  338. int length = 0;
  339. while ((length = inputStream.read(b)) > 0) {
  340. outputStream.write(b, 0, length);
  341. }
  342. outputStream.close();
  343. inputStream.close();
  344. }else{
  345. response.setStatus(500);
  346. }
  347. }catch (Exception e){
  348. e.printStackTrace();
  349. response.setStatus(500);
  350. }
  351. }
  352. }