wuwen 4 anos atrás
pai
commit
ec4017e6ef
100 arquivos alterados com 1592 adições e 2305 exclusões
  1. 31 0
      .gitignore
  2. 1 1
      src/main/java/com/ssj/dao/weixin/library/dao/impl/BookDetailQueryDaoImpl.java
  3. 3 0
      src/main/java/com/ssj/service/weixin/library/service/impl/BookBorrowServiceImpl.java
  4. 14 16
      src/main/java/com/ssj/service/weixin/user/service/impl/QrCodeServiceImpl.java
  5. 2 2
      src/main/java/com/ssj/service/weixin/user/service/impl/UserServiceImpl.java
  6. 7 7
      src/main/java/com/ssj/weixin/api/reading/controller/ReadingController.java
  7. 4 2
      src/main/java/com/ssj/weixin/interceptor/SetControlDataInterceptor.java
  8. 1222 1437
      src/main/java/com/ssj/weixin/library/controller/BookManagerController.java
  9. 24 2
      src/main/java/com/ssj/weixin/library/controller/LibBookController.java
  10. 78 313
      src/main/java/com/ssj/weixin/library/controller/LibVipController.java
  11. 17 2
      src/main/java/com/ssj/weixin/util/MessageHandlerUtil.java
  12. 50 0
      src/main/java/com/ssj/weixin/weixin/message/custom/ArticleNews.java
  13. 23 0
      src/main/java/com/ssj/weixin/weixin/message/custom/NewsCustom.java
  14. 3 3
      src/main/resources/static/story/css/explain.css
  15. 18 72
      src/main/resources/templates/weixin/library/backcart.html
  16. 6 0
      src/main/resources/templates/weixin/library/bookcase.html
  17. 1 1
      src/main/resources/templates/weixin/library/borrowManagercart.html
  18. 48 145
      src/main/resources/templates/weixin/library/borrowcart.html
  19. 19 8
      target/classes/templates/weixin/card/consume.html
  20. 21 21
      src/main/resources/templates/weixin/story/explainForm.html
  21. 0 55
      target/classes/META-INF/resources/swagger-ui.html
  22. 0 57
      target/classes/META-INF/resources/webjars/springfox-swagger-ui/lang/zh-cn.js
  23. 0 70
      target/classes/application-common-dev.properties
  24. 0 52
      target/classes/application-common-prod.properties
  25. 0 24
      target/classes/application-common.properties
  26. 0 15
      target/classes/application.properties
  27. BIN
      target/classes/com/ssj/WeixinApp.class
  28. BIN
      target/classes/com/ssj/alipay/utils/AlipayClientFactory.class
  29. BIN
      target/classes/com/ssj/alipay/utils/AlipayOrderHelper.class
  30. BIN
      target/classes/com/ssj/alipay/utils/AlipayPayConfig.class
  31. BIN
      target/classes/com/ssj/api/weixin/util/AesException.class
  32. BIN
      target/classes/com/ssj/api/weixin/util/ByteGroup.class
  33. BIN
      target/classes/com/ssj/api/weixin/util/PKCS7Encoder.class
  34. BIN
      target/classes/com/ssj/api/weixin/util/SHA1.class
  35. BIN
      target/classes/com/ssj/bean/award/dto/ActivityDrawDto.class
  36. BIN
      target/classes/com/ssj/bean/award/dto/ActivityInfoDto.class
  37. BIN
      target/classes/com/ssj/bean/award/dto/MaterialInfoDto.class
  38. BIN
      target/classes/com/ssj/bean/award/dto/MaterialListDto.class
  39. BIN
      target/classes/com/ssj/bean/award/dto/MyAwardListDto.class
  40. BIN
      target/classes/com/ssj/bean/award/dto/SncodeInfoDto.class
  41. BIN
      target/classes/com/ssj/bean/award/dto/VipIntegralDto.class
  42. BIN
      target/classes/com/ssj/bean/award/vo/ActivityDrawShareVO.class
  43. BIN
      target/classes/com/ssj/bean/award/vo/MaterialExchangeSaveVO.class
  44. BIN
      target/classes/com/ssj/bean/award/vo/UrlShareVO.class
  45. BIN
      target/classes/com/ssj/bean/award/vo/VipBaseRequestVO.class
  46. BIN
      target/classes/com/ssj/bean/award/vo/VipIntegralRequestVO.class
  47. BIN
      target/classes/com/ssj/bean/common/files/domain/FileInfo.class
  48. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/BaseEntity.class
  49. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/BasePageRequest.class
  50. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/BaseRequest.class
  51. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/BaseResponse.class
  52. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/PersistentEntity.class
  53. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/Response$Meta.class
  54. BIN
      target/classes/com/ssj/bean/common/framework/core/domain/Response.class
  55. BIN
      target/classes/com/ssj/bean/conch/conch/domain/ConchDerver.class
  56. BIN
      target/classes/com/ssj/bean/conch/conch/domain/ConchDerverUseRecord.class
  57. BIN
      target/classes/com/ssj/bean/conch/conch/domain/ConchSystemDerver.class
  58. BIN
      target/classes/com/ssj/bean/conch/conch/domain/HomeworkRanking.class
  59. BIN
      target/classes/com/ssj/bean/conch/conch/domain/HomeworkRecord.class
  60. BIN
      target/classes/com/ssj/bean/conch/conch/domain/IntegralDetail.class
  61. BIN
      target/classes/com/ssj/bean/conch/conch/domain/SconOtaManager.class
  62. BIN
      target/classes/com/ssj/bean/conch/conch/domain/SconPadInfo.class
  63. BIN
      target/classes/com/ssj/bean/conch/conch/domain/SconStudentTermtainData.class
  64. BIN
      target/classes/com/ssj/bean/conch/conch/domain/SmarttimePicture.class
  65. BIN
      target/classes/com/ssj/bean/conch/conch/dto/BriefHomeworkPictureDto.class
  66. BIN
      target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerSpaceDto.class
  67. BIN
      target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerStyleDto.class
  68. BIN
      target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerValueDto.class
  69. BIN
      target/classes/com/ssj/bean/conch/conch/dto/HomeworkCheckStatusDto.class
  70. BIN
      target/classes/com/ssj/bean/conch/conch/dto/HomeworkRecordDto.class
  71. BIN
      target/classes/com/ssj/bean/conch/conch/dto/KmtExerciseQuestionProblemDto.class
  72. BIN
      target/classes/com/ssj/bean/conch/conch/dto/KmtQuestionDto.class
  73. BIN
      target/classes/com/ssj/bean/conch/conch/dto/OpenTestDto$Contents.class
  74. BIN
      target/classes/com/ssj/bean/conch/conch/dto/OpenTestDto.class
  75. BIN
      target/classes/com/ssj/bean/conch/conch/dto/ProblemDetailDto.class
  76. BIN
      target/classes/com/ssj/bean/conch/curator/dto/ClassStudentDetailDto.class
  77. BIN
      target/classes/com/ssj/bean/conch/curator/dto/CuratorTeacherListDto.class
  78. BIN
      target/classes/com/ssj/bean/conch/curator/dto/TeacherDetailClassListDto.class
  79. BIN
      target/classes/com/ssj/bean/course/domain/CourseDetailFeedbackLib.class
  80. BIN
      target/classes/com/ssj/bean/course/domain/CourseFeedbackFile.class
  81. BIN
      target/classes/com/ssj/bean/course/domain/CourseLearn.class
  82. BIN
      target/classes/com/ssj/bean/course/domain/CourseReadHis.class
  83. BIN
      target/classes/com/ssj/bean/course/domain/CourseScanHis.class
  84. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeries.class
  85. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesDetail.class
  86. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesDetailFeedback.class
  87. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesDetailFile.class
  88. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesJoin.class
  89. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesOrder.class
  90. BIN
      target/classes/com/ssj/bean/course/domain/CourseSeriesSetting.class
  91. BIN
      target/classes/com/ssj/bean/curator/TbLibBindAudit.class
  92. BIN
      target/classes/com/ssj/bean/curator/TbVacationLimit.class
  93. BIN
      target/classes/com/ssj/bean/es/domain/EsDataRecode.class
  94. BIN
      target/classes/com/ssj/bean/kmt/arrange/dto/DutyTemplate.class
  95. BIN
      target/classes/com/ssj/bean/kmt/arrange/dto/DutyTimeVO.class
  96. BIN
      target/classes/com/ssj/bean/kmt/arrange/dto/TeacherArrangeDayVO.class
  97. BIN
      target/classes/com/ssj/bean/kmt/arrange/dto/TeacherArrangeVO.class
  98. BIN
      target/classes/com/ssj/bean/kmt/arrange/dto/TeacherNextArrangeVO.class
  99. BIN
      target/classes/com/ssj/bean/kmt/arrange/vo/DutyRequestVO.class
  100. 0 0
      target/classes/com/ssj/bean/kmt/arrange/vo/DutySysRequestVO.class

+ 31 - 0
.gitignore

@@ -0,0 +1,31 @@
+# Compiled class file
+*.class
+*.classpath
+*.factorypath
+# Log file
+*.log
+# BlueJ files
+*.ctxt
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+# Package Files #
+*.jar
+*.war
+*.ear
+*.zip
+*.tar.gz
+*.rar
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+# IDE Files #
+*.iml
+.idea
+.idea/
+.project
+.settings
+target
+.DS_Store
+# temp ignore
+*.cache
+*.diff
+*.patch

+ 1 - 1
src/main/java/com/ssj/dao/weixin/library/dao/impl/BookDetailQueryDaoImpl.java

@@ -62,7 +62,7 @@ public class BookDetailQueryDaoImpl implements IBookDetailQueryDao {
 			queryParams.add(vipId);
 		}
 		
-		selSql.append("group by t.id");	
+		selSql.append("group by t.id  order by a.create_time desc");
 		
 		return dao.findMap(selSql.toString(), queryParams.toArray());
 	}

+ 3 - 0
src/main/java/com/ssj/service/weixin/library/service/impl/BookBorrowServiceImpl.java

@@ -231,6 +231,9 @@ public class BookBorrowServiceImpl extends BaseServiceImpl<TbLibBookBorrow, Stri
 			if(!lockingList.isEmpty()){
 				for (LibBookLocking locking:lockingList){
 					TbLibBookInfo info = bookService.getById(locking.getBookInfoId());
+					if(info == null){
+						continue;
+					}
 					int bookStockRemain = ((info.getBookStockRemain()==null?0:info.getBookStockRemain())+(locking.getBookSize()==null?1:locking.getBookSize()));
 					info.setBookStockRemain(bookStockRemain>info.getBookStock()?info.getBookStock():bookStockRemain);
 					saveBookList.add(info);

+ 14 - 16
src/main/java/com/ssj/service/weixin/user/service/impl/QrCodeServiceImpl.java

@@ -442,21 +442,17 @@ public class QrCodeServiceImpl extends BaseServiceImpl<QrCode, String> implement
 		List<String> list = new ArrayList<String>(){
 			{
 				//白云 黄埔 天河 南山 嘉兴 扬州
-				add("白云");
-				add("黄埔");
-				add("天河");
-				add("南山");
-				add("嘉兴");
-				add("扬州");
+				//电梯的平面广告、电梯的视频广告、小区道闸广告、小区门禁广告
+				add("佛山电梯平面广告2");
 			}
 		};
-
+		int sceneId = 8904;
 		for (String str:list){
 			QrCode	qrcode = new  QrCode();
-			qrcode.setType("QR_STR_SCENE");//设置临时的二维码
+			qrcode.setType("QR_LIMIT_SCENE");//设置临时的二维码
 			qrcode.setExpireSeconds("2592000");//时间最大为30天这里为30天
 			qrcode.setObjectId(str);
-			qrcode.setSceneId("");
+			qrcode.setSceneId(sceneId+"");
 			qrcode.setParentId("ad2020");
 			try {
 				WxQRCode qRCode =new WxQRCode();
@@ -469,13 +465,13 @@ public class QrCodeServiceImpl extends BaseServiceImpl<QrCode, String> implement
 				action_info.setScene(scene);
 				qRCode.setAction_info(action_info);
 
-				log.info("腾讯服务器申请二维码请求参数,"+JSONObject.toJSONString(qRCode));
-				JSONObject jsonObject=  NewsUtil.ticket("33_L25vGSRRv1qkyx3G7oSOsXgZRUH7vlOCRRhhBFhwoj5Pc0oZ68h-ePev5V_ECO-2V08Xg1MRDOkBR9eRUJMd0BK7LEui7HJ4OtHqxeHvHnh3fZKnIGbhmB1_NegJ1KvN-jrWxYGG5CwfcWSSKFXjAIAUPH", qRCode);
+//				log.info("腾讯服务器申请二维码请求参数,"+JSONObject.toJSONString(qRCode));
+				JSONObject jsonObject=  NewsUtil.ticket("37_b5CT2IbSlhkQIuVko05H1iEpWCOcrpLnzWKWPKQ_kSVODivo5p1P1vnyxjCsujv8jBQLAj_JEWtt1BNOhT2xnURgn5WCERCYZOB4RFqQXpoRGlt6oF2ZOdpdzfNsysKBbfshcbKJzrefM4hIOGLdAJAASX", qRCode);
 				if(null != jsonObject){
 					qrcode.setTicket(jsonObject.getString("ticket"));//生成ticket
 					qrcode.setUrl(jsonObject.getString("url"));//生成URL
-					log.info("腾讯服务器申请二维码生成URL,"+qrcode.getUrl());
-					log.info("腾讯服务器申请二维码生成ticket,"+qrcode.getTicket());
+//					log.info("腾讯服务器申请二维码生成URL,"+qrcode.getUrl());
+//					log.info("腾讯服务器申请二维码生成ticket,"+qrcode.getTicket());
 					log.info("腾讯服务器申请二维码返回json,"+jsonObject.toString());
 					qrcode.setQrcodeTime(new Date());//生成时间
 					String file_path = "F:\\";
@@ -489,9 +485,9 @@ public class QrCodeServiceImpl extends BaseServiceImpl<QrCode, String> implement
 					}
 					fPath = fPath + str + ".jpg";
 					qrcode.setQrcodeUrl(fPath);
-					BarcodeFactory.encode(qrcode.getUrl(),file_path+"/images/favicon.png",file_path+qrcode.getQrcodeUrl(),150, 150, true);
+					BarcodeFactory.encode(qrcode.getUrl(),file_path+"/images/favicon.png",file_path+qrcode.getQrcodeUrl(),1920, 1920, true);
 					StringBuffer stf = new StringBuffer();
-					stf.append("insert into tb_qr_code(id,object_id,type,expire_seconds,qrcode_time,ticket,qrcode_url,url,parent_id) values('");
+					stf.append("insert into tb_qr_code(id,object_id,type,expire_seconds,qrcode_time,ticket,qrcode_url,url,parent_id,scene_id) values('");
 					stf.append(UUID.randomUUID()).append("','");
 					stf.append(qrcode.getObjectId()).append("','");
 					stf.append(qrcode.getType()).append("','");
@@ -499,9 +495,11 @@ public class QrCodeServiceImpl extends BaseServiceImpl<QrCode, String> implement
 					stf.append(qrcode.getTicket()).append("','");
 					stf.append(qrcode.getQrcodeUrl()).append("','");
 					stf.append(qrcode.getUrl()).append("','");
-					stf.append(qrcode.getParentId()).append("');");
+					stf.append(qrcode.getParentId()).append("','");
+					stf.append(qrcode.getSceneId()).append("');");
 					System.out.println(stf.toString());
 				}
+				sceneId++;
 			} catch (Exception e) {
 				e.printStackTrace();
 			}

+ 2 - 2
src/main/java/com/ssj/service/weixin/user/service/impl/UserServiceImpl.java

@@ -207,7 +207,7 @@ public class UserServiceImpl extends BaseServiceImpl<User, String> implements Us
 					map.put("unionid", user.getUnionid());
 					map.put("photo", StringUtil.isNotEmpty(user.getPhoto())?user.getPhoto():"");
                     //tokenManager.hset(key,map);
-					toOther(user);
+					//toOther(user);
 					return  map;
 				}
 			}
@@ -256,7 +256,7 @@ public class UserServiceImpl extends BaseServiceImpl<User, String> implements Us
 			map.put("unionid", user.getUnionid());
             map.put("photo", StringUtil.isNotEmpty(user.getPhoto())?user.getPhoto():"");
 		}
-		toOther(user);
+		//toOther(user);
 		return  map;
 	}
 

+ 7 - 7
src/main/java/com/ssj/weixin/api/reading/controller/ReadingController.java

@@ -887,16 +887,17 @@ public class ReadingController  extends BaseController{
 				responseEntity.failure(ResponseConstant.CODE_004, "会员卡为空");
 				return responseEntity;
 			}
-			String userId= tokenManager.getUserId(accessToken);
-			User user = userService.getById(userId);
+
 			LibReadVip vip=vipService.getById(libVip.getVipId());
 			if(vip==null){
-				if(!userId.equals(vip.getUserId())){
-					responseEntity.failure(ResponseConstant.CODE_000, "传入vipId错误,请检查!");
-					return responseEntity;
-				}
+				responseEntity.failure(ResponseConstant.CODE_000, "传入vipId错误,请检查!");
+				return responseEntity;
 			}
+
+			String userId= tokenManager.getUserId(accessToken);
+
 			if(StringUtil.isEmpty(vip.getUserId())){
+				User user = userService.getById(userId);
 				if(StringUtils.isEmpty(libVip.getImgUrl())){
 					libVip.setImgUrl(user.getPhoto());
 				}
@@ -923,7 +924,6 @@ public class ReadingController  extends BaseController{
 
 				vip.setUserId(userId);
 				vip.setActivateTime(new Date());
-				vip.setParentName(userService.getById(userId).getName());
 				//新卡
 				if(5==vip.getLevel() && StringUtils.isNotEmpty(libVip.getLibId())){
 					//插入该图书馆的服务

+ 4 - 2
src/main/java/com/ssj/weixin/interceptor/SetControlDataInterceptor.java

@@ -63,6 +63,8 @@ public class SetControlDataInterceptor extends HandlerInterceptorAdapter {
 	        needYueDuURLList.add("/weixin/card/consume.html");
 	        
 	    
+	        notCheckPhoneList.add("/weixin/book/scanQRMp3.html");
+	        notCheckPhoneList.add("/weixin/book/saveUrl");
 	        notCheckPhoneList.add("/weixin/mylib/bindingMobilePhone.html");
 	        notCheckPhoneList.add("/weixin/mylib/sendSms");
 	        notCheckPhoneList.add("/weixin/mylib/updateMobilePhone");
@@ -90,7 +92,7 @@ public class SetControlDataInterceptor extends HandlerInterceptorAdapter {
         User user = UserUtil.getUser(request);
         if(!notCheckPhoneList.contains(url)){
 			if(StringUtils.isEmpty(user.getMobile())){
-				String sysUrl="https://book.sharingschool.com";
+				String sysUrl="https://xt.sharingschool.com";
 				//String sysUrl= "http://localhost:8081/";
 				response.sendRedirect(sysUrl+"/weixin/mylib/bindingMobilePhone.html?redirectUrl="+(sysUrl+url));
 				return false;
@@ -120,7 +122,7 @@ public class SetControlDataInterceptor extends HandlerInterceptorAdapter {
         	tokenManager.createWxOpenId(openid, subscribe);
         }
         modelAndView.addObject("subscribe",subscribe);
-        modelAndView.addObject("sysUrl", "https://book.sharingschool.com");
+        modelAndView.addObject("sysUrl", "https://xt.sharingschool.com");
        // modelAndView.addObject("sysUrl", "http://127.0.0.1:8081");
         modelAndView.addObject("imgUrl", SystemResourceLocator.getValue("STATIC_FILE_URL"));
 

Diferenças do arquivo suprimidas por serem muito extensas
+ 1222 - 1437
src/main/java/com/ssj/weixin/library/controller/BookManagerController.java


+ 24 - 2
src/main/java/com/ssj/weixin/library/controller/LibBookController.java

@@ -7,6 +7,7 @@ import com.ssj.bean.common.files.domain.FileInfo;
 import com.ssj.bean.weixin.libmy.domain.*;
 import com.ssj.framework.basic.utils.DateHelper;
 import com.ssj.framework.core.common.controller.BaseController;
+import com.ssj.framework.core.security.manager.TokenManager;
 import com.ssj.framework.core.util.HttpRemote;
 import com.ssj.framework.core.util.PropertiesUtil;
 import com.ssj.framework.core.util.ResponseEntity;
@@ -17,6 +18,7 @@ import com.ssj.framework.weixin.util.WeixinUtil;
 import com.ssj.service.weixin.library.service.*;
 import com.ssj.weixin.util.UserUtil;
 import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -58,8 +60,9 @@ public class LibBookController extends BaseController {
 	
 	@Autowired
 	private IBookBaseService bookBaseService;
-	
-	
+
+	@Autowired
+	private TokenManager tokenManager;
 	
 	@RequestMapping("/initBookTags")
 	public String initBookTags(Model model){
@@ -118,6 +121,12 @@ public class LibBookController extends BaseController {
 	   	model.addAttribute("joinName", join.getLeagueName());
 		return "weixin/library/scanQRCode";
 	}
+
+	@RequestMapping("/scanQRMp3")
+	public String scanQRMp3(Model model){
+
+		return "weixin/library/scanQRMp3";
+	}
 	
 	@RequestMapping(value="/save",method=RequestMethod.POST)
 	@ResponseBody              
@@ -459,6 +468,19 @@ public class LibBookController extends BaseController {
 		}
 		return response;
 	}
+
+	@RequestMapping(value="/saveUrl",method=RequestMethod.POST)
+	@ResponseBody
+	public ResponseEntity saveUrl(HttpServletRequest request, Model model,String detailId){
+		ResponseEntity response = new ResponseEntity();
+		String saveUrl = tokenManager.getString("20200917mp3");
+		if(StringUtils.isBlank(saveUrl)){
+			tokenManager.setString("20200917mp3",detailId);
+		}else{
+			tokenManager.setString("20200917mp3",saveUrl+","+detailId);
+		}
+		return response;
+	}
 	
 	@RequestMapping(value="/print",method=RequestMethod.POST)
 	@ResponseBody

+ 78 - 313
src/main/java/com/ssj/weixin/library/controller/LibVipController.java

@@ -39,10 +39,7 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RequestMapping("/weixin/libVip")
 @Controller
@@ -109,327 +106,104 @@ public class LibVipController extends BaseController {
 			model.addAttribute("msgType", "您好!此会员卡不存在。");
 			return "weixin/library/bangding_infor";
 		}
-		User user = UserUtil.getUser(request);
-        //有服务就跳转到激活
+		//查看卡是否激活
+		if(Objects.isNull(vip.getUserId())){
+			model.addAttribute("msgType", "您好,请前往小程序激活!");
+			return "weixin/library/bangding_infor";
+		}
+        //无服务就跳转到激活
         LibVipService libVipService  = libVipServiceService.getVipIdService(id);
         if(libVipService==null){
-            model.addAttribute("msgType", "您好,请前往小程序激活!");
+            model.addAttribute("msgType", "您好,您的服务已经过期,请联系管理员!");
             return "weixin/library/bangding_infor";
         }
+		User user = UserUtil.getUser(request);
 		TbLibManager manager = managerService.findByUserIdAndLibIsNotNull(user.getId());
-		Date nowDate = new Date();
-		if(manager != null && vip.getUserId() ==null){ //管理员
-
-			if(manager.getType() == 5){
-				model.addAttribute("msgType", "尊敬的合伙人,您未拥有扫卡权限!");
-				return "weixin/library/bangding_infor";
-			}
-			if(libVipService!=null){
-				//跳转到激活
-				TbLibJoin tbLibJoin=joinService.getById(libVipService.getLibId());
-				String school =cnAreaService.getLocationArea(tbLibJoin.getLeagueLat(), tbLibJoin.getLeagueLng(), 4);
-				model.addAttribute("school", school);
-				model.addAttribute("tbLibJoin", tbLibJoin);
-				model.addAttribute("type", 0);//0代购后激活
-				model.addAttribute("user", user);
-				model.addAttribute("vipId", id);
-				model.addAttribute("grade", sortService.getParamValByCode("grade"));//年级
-				return "weixin/vip/activateCard";
-			}
-			model.addAttribute("vipId", id);
-			if(5==vip.getLevel()){
-				model.addAttribute("type", 2);//自己购卡,定位
-				return "weixin/vip/location";
-			}
-
-			model.addAttribute("type", 1);//自己购卡,定位
-			if(4==vip.getLevel()){
-				return "weixin/vip/lxLocation";
-			}
-			return "weixin/vip/location";
-
-
-
-		}else if (manager != null && !Strings.isNullOrEmpty(vip.getUserId())){
-
+		//管理员
+		if(Objects.nonNull(manager)){
 			if(manager.getType() == 5){
 				model.addAttribute("msgType", "尊敬的合伙人,您未拥有扫卡权限!");
 				return "weixin/library/bangding_infor";
 			}
+			//查看是否属于自己馆的卡
 			Integer ptCount =  libVipServiceService.getVipIdAndLibIdCount(id,manager.getLibId());
 			if(ptCount==0){
 				model.addAttribute("msgType", "图书馆管理员您好!此卡没有购买您图书馆的相关服务,无法进行操作");
 				return "weixin/library/bangding_infor";
-			}else{
-				//判断是否有购买普通会员卡服务
-				TbLibJoin tbLibJoin=joinService.getById(manager.getLibId());
-				Date start_jia_time =DateHelper.parseDate( tbLibJoin.getStartJiaTime()==null?"2018-01-15":tbLibJoin.getStartJiaTime(), "yyyy-MM-dd") ;
-				Date end_jia_time = DateHelper.parseDate(tbLibJoin.getEndJiaTime()==null?"2018-02-19":tbLibJoin.getEndJiaTime(), "yyyy-MM-dd") ;
-				if(nowDate.getTime()>start_jia_time.getTime() && nowDate.getTime()<end_jia_time.getTime()){ //在寒假范围内
-					//查询此卡是否有作业吧服务
-					Integer countVip =  libVipServiceService.getVipIdZXServiceCount(id,manager.getLibId());
-					if(countVip == 0 ){ //没有作业吧服务
-						//查询该卡是否有寒暑假
-						Integer mouthCount = libVipServiceService.getMouthServiceCount(id,manager.getLibId(),"S001","C003");
-						if(mouthCount==0){
-							Integer isOcbuy = libVipServiceService.getOcBuyServiceCount(id,manager.getLibId(),"S001","C001");
-							if(isOcbuy==0){
-								Integer jiaCount = libVipServiceService.findIsHaveJiaSer(id,manager.getLibId());
-								if(jiaCount == 0){
-									model.addAttribute("msgType", "图书馆管理员您好!此卡没有购买您图书馆的寒暑假假期服务,无法进行操作");
-									return "weixin/library/bangding_infor";
-								}
-							}
-
-						}
-					}
-				}else{
-					//不在寒暑假时间内 查询是否拥有非寒暑假服务
-					Integer jiaCount =  libVipServiceService.findJiaServiceByLib(id,manager.getLibId());
-					if(jiaCount == 0){
-						model.addAttribute("msgType", "图书馆管理员您好!此卡没有购买您图书馆的非假期相关服务,无法进行操作");
-						return "weixin/library/bangding_infor";
-					}
-				}
-				if(4==vip.getLevel() || libVipServiceService.isVipIdAndWeekService(vip.getId(),null)){
-					int dayWeek=DateHelper.getday(new Date());//判断是不是周六日
-					if(dayWeek>1&& dayWeek<6){
-						model.addAttribute("msgType", "图书馆管理员,您好。<br/>本卡仅限周末使用,不包含寒暑假,不承诺配阅读顾问;<br/>仅限与社区机构/学校进行图书馆共建合作。");
-						return "weixin/library/bangding_infor";
-					}
-				}
-				//看是否馆长
-				LibStaffing  libStaffing =  libStaffingService.findByUserIdAndLib(user.getId(),manager.getLibId());
-				List<Map<String, Object>> serviceList = libVipServiceService.findUserServiceList(id,manager.getLibId());
-				//本周借阅情况
-				Map<String, Object> weekReadInfo = subService.findWeekReadInfo(id);
-				if(libStaffing!=null && ("s_sd".equals(libStaffing.getType()) || "s_cd".equals(libStaffing.getType()))){
-					//馆长---消费情况
-					Map<String, Object> costInfo = libStaffingService.findUserCost(id,manager.getLibId());
-					// 到馆情况
-					Map<String, Object> comeLibInfo = subService.findComeLibInfo(id);
-					Integer countVip =  libVipServiceService.getVipIdZXServiceCount(id,manager.getLibId());
-					if(countVip == 0){
-						model.addAttribute("workInfo", null);
-						model.addAttribute("workSug", null);
-					}else{
-						Map<String, Object> workInfo = subService.findworkInfo(id,manager.getLibId());
-						Map<String, Object> workSug = subService.findWorkSug(id);
-						model.addAttribute("workInfo", workInfo);
-						model.addAttribute("workSug", workSug);
-					}
-					//作业反馈
-
-					comeLibInfo.put("sug", "及时与家长电话回访跟进");
-					model.addAttribute("serviceList", serviceList);
-					model.addAttribute("weekReadInfo", weekReadInfo);
-					model.addAttribute("costInfo", costInfo);
-					model.addAttribute("comeLibInfo", comeLibInfo);
-
-					model.addAttribute("vip", vip);
-					model.addAttribute("libtype", manager.getLibtype());
-					TbLibSubscribe sub = subService.findByVipIdAndStat(vip.getId(),"1");
-					if(sub != null ){
-						//离馆  签离
-						model.addAttribute("vip", vip);
-						model.addAttribute("subId", sub.getId());
-						Integer ptCount2 =  libVipServiceService.getVipIdPTServiceCount(id,manager.getLibId());
-						if(ptCount2 == 0){
-							model.addAttribute("islib", "1"); //不是图书馆服务,没代借
-						}else{
-							model.addAttribute("islib", "2"); //图书馆服务,有代借
-						}
-						model.addAttribute("siginout", "1"); //是否签离  1、是,2否
-					}else{
-						//确认到馆操作  签到
-						model.addAttribute("orderUser", vip);
-						model.addAttribute("subId", "");
-						model.addAttribute("siginout", "2"); //是否签离  1、是,2否
-						Integer ptCount2 =  libVipServiceService.getVipIdPTServiceCount(id,manager.getLibId());
-						if(ptCount2 == 0){
-							model.addAttribute("islib", "1"); //不是图书馆服务,没代借
-						}else{
-							model.addAttribute("islib", "2"); //图书馆服务,有代借
-						}
-					}
-					return "weixin/library/order/cdsign";
-				}else{
-					//用户侦测说明
-
-
-					TbTyZyb tyzyb = tyzybService.findByAnyCondition(vip.getUserId());
-					model.addAttribute("tyzyb", tyzyb);
-					model.addAttribute("serviceList", serviceList);
-					model.addAttribute("weekReadInfo", weekReadInfo);
-					model.addAttribute("vip", vip);
-					model.addAttribute("libtype", manager.getLibtype());
-					TbLibSubscribe sub = subService.findByVipIdAndStat(vip.getId(),"1");
-					if(sub != null ){
-						//离馆  签离
-						model.addAttribute("vip", vip);
-						model.addAttribute("subId", sub.getId());
-						Integer ptCount2 =  libVipServiceService.getVipIdPTServiceCount(id,manager.getLibId());
-						if(ptCount2 == 0){
-							model.addAttribute("islib", "1"); //不是图书馆服务,没代借
-						}else{
-							model.addAttribute("islib", "2"); //图书馆服务,有代借
-						}
-						model.addAttribute("siginout", "1"); //是否签离  1、是,2否
-					}else{
-						//确认到馆操作  签到
-						model.addAttribute("orderUser", vip);
-						model.addAttribute("subId", "");
-						model.addAttribute("siginout", "2"); //是否签离  1、是,2否
-						Integer ptCount2 =  libVipServiceService.getVipIdPTServiceCount(id,manager.getLibId());
-						if(ptCount2 == 0){
-							model.addAttribute("islib", "1"); //不是图书馆服务,没代借
-						}else{
-							model.addAttribute("islib", "2"); //图书馆服务,有代借
-						}
-					}
-
-					return "weixin/library/order/salessign";
-				}
-
-				//}
 			}
-		}
 
-		//这里判断是不是销售人员。。。
-		if(vip.getUserId() != null && !"".equals(vip.getUserId())){ //已绑定
-			if(user.getId().equals(vip.getUserId())){ //本人
-				LibVipService vipService=libVipServiceService.getVipIdService(id);
-				if(vipService != null){
-					TbLibJoin tbLibJoin = joinService.getById(vipService.getLibId());
-					Date start_jia_time =DateHelper.parseDate( tbLibJoin.getStartJiaTime()==null?"2018-01-15":tbLibJoin.getStartJiaTime(), "yyyy-MM-dd") ;
-					Date end_jia_time = DateHelper.parseDate(tbLibJoin.getEndJiaTime()==null?"2018-02-19":tbLibJoin.getEndJiaTime(), "yyyy-MM-dd") ;
-					if(nowDate.getTime()>start_jia_time.getTime() && nowDate.getTime()<end_jia_time.getTime()){ //在寒假范围内
-						//查询该馆是否有寒假卡
-						LibSalesPrice salesPrice = salesPriceService.findByLibIdAndSpeciesAndType(vipService.getLibId(), "S001", "C008");
-						if(salesPrice != null){ //设有寒暑假服务
-							Integer countVip =  libVipServiceService.getVipIdZXServiceCount(id,vipService.getLibId()); //是否有作业吧服务
-							if(countVip == 0){
-								Integer mouthCount = libVipServiceService.getMouthServiceCount(id,vipService.getLibId(),"S001","C003");//半年卡以及月卡不计寒暑假
-								if(mouthCount==0){
-									//查询是否是10月1号前买的年卡
-									Integer isOcbuy = libVipServiceService.getOcBuyServiceCount(id,vipService.getLibId(),"S001","C001");
-									if(isOcbuy == 0){
-										//查询该卡是否有寒暑假
-										Integer jiaCount = libVipServiceService.findIsHaveJiaSer(id,vipService.getLibId());
-										if(jiaCount == 0){
-											model.addAttribute("msgType", vip.getChildName()+"妈妈/爸爸,您好。<br/>现在是寒暑假假期时间,需要购买假期服务才能进行预约。");
-											return "weixin/library/bangding_infor";
-										}
-									}
-								}
-							}
-						}
-					}else{
-						//不在寒暑假时间内 查询是否拥有非寒暑假服务
-						Integer jiaCount =  libVipServiceService.findJiaServiceByLib(id,tbLibJoin.getId());
-						if(jiaCount == 0){
-							model.addAttribute("msgType", vip.getChildName()+"妈妈/爸爸,您好。<br/>现在不是寒暑假假期时间,需要购买非假期服务才能进行预约。");
-							return "weixin/library/bangding_infor";
-						}
-					}
-					if(4==vip.getLevel() || libVipServiceService.isVipIdAndWeekService(id,null)){
-						int dayWeek=DateHelper.getday(new Date());//判断是不是周六日
-						if(dayWeek>1&& dayWeek<6){
-							model.addAttribute("msgType", vip.getChildName()+"妈妈/爸爸,您好。<br/>本卡仅限周末使用,可免预约周末到馆外借图书,但因周末馆内场地有限,需提前预约确认能否周末到馆阅读。");
-							return "weixin/library/bangding_infor";
-						}
-					}
-					//查询是否已预约--已预约--跳预约详情页面--否跳预约页面
-					TbLibSubscribe sub = subService.findByVipIdAndStat(vip.getId(),"1");
-					if(sub != null && sub.getOrderTime() != null){
-						model.addAttribute("vip", vip);
-						model.addAttribute("sub",sub);
-						model.addAttribute("isOrder", "1"); //已预约
-						return "weixin/library/orderView";
-					}else{
-						List<Map<String, Object>> serviceList = libVipServiceService.findUserServiceList(id,vipService.getLibId());
-						//本周借阅情况
-						Map<String, Object> weekReadInfo = subService.findWeekReadInfo(id);
-						Integer countVip =  libVipServiceService.getVipIdZXServiceCount(id,vipService.getLibId());
-						if(countVip == 0){
-							model.addAttribute("workInfo", null);
-							model.addAttribute("workSug", null);
-						}else{
-							Map<String, Object> workInfo = subService.findworkInfo(id,vipService.getLibId());
-							Map<String, Object> workSug = subService.findWorkSug(id);
-							model.addAttribute("workInfo", workInfo);
-							model.addAttribute("workSug", workSug);
-						}
-						//作业反馈
-
-
-						//查询一个该馆的管理员
-						Map<String, Object> managerMap = subService.findOneManager(tbLibJoin.getId());
-
-						model.addAttribute("sub",new TbLibSubscribe());
-						model.addAttribute("vip", vip);
-						model.addAttribute("isOrder", "2"); //未预约
-						model.addAttribute("join", tbLibJoin);
-						model.addAttribute("managerMap", managerMap);
-						model.addAttribute("serviceList", serviceList); //未预约
-						model.addAttribute("weekReadInfo", weekReadInfo);
-						return "weixin/library/order/parentsign";
-					}
-				}else{
-					model.addAttribute("msgType", "尊敬的用户!您还没有购买图书馆的相关服务,无法进行操作!");
-					return "weixin/library/bangding_infor";
-				}
+			List<Map<String, Object>> serviceList = libVipServiceService.findUserServiceList(id,manager.getLibId());
+			//本周借阅情况
+			Map<String, Object> weekReadInfo = subService.findWeekReadInfo(id);
+			//用户侦测说明
+			TbTyZyb tyzyb = tyzybService.findByAnyCondition(vip.getUserId());
+			model.addAttribute("tyzyb", tyzyb);
+			model.addAttribute("serviceList", serviceList);
+			model.addAttribute("weekReadInfo", weekReadInfo);
+			model.addAttribute("vip", vip);
+			model.addAttribute("libtype", manager.getLibtype());
+			TbLibSubscribe sub = subService.findByVipIdAndStat(vip.getId(),"1");
+			if(sub != null ){
+				//离馆  签离
+				model.addAttribute("vip", vip);
+				model.addAttribute("subId", sub.getId());
+				model.addAttribute("siginout", "1");
 			}else{
-				//提示已绑定
-				model.addAttribute("msgType", "尊敬的用户!此卡已经绑定,如果有需要请联系图书馆管理员!");
-				return "weixin/library/bangding_infor";
+				//确认到馆操作  签到
+				model.addAttribute("orderUser", vip);
+				model.addAttribute("subId", "");
+				//是否签离  1、是,2否
+				model.addAttribute("siginout", "2");
 			}
-		}else{   // 绑定用户
-			//先判断改卡是否有服务,
-			//判断是否有服务
-			LibVipService vipser  = libVipServiceService.getVipIdService(id);
-			if(vipser!=null){
-				//跳转到激活
-				TbLibJoin tbLibJoin=joinService.getById(vipser.getLibId());
-				String school =cnAreaService.getLocationArea(tbLibJoin.getLeagueLat(), tbLibJoin.getLeagueLng(), 4);
-				model.addAttribute("school", school);
-				model.addAttribute("tbLibJoin", tbLibJoin);
-				model.addAttribute("type", 0);//0代购后激活
-				model.addAttribute("user", user);
-				model.addAttribute("vipId", id);
-				model.addAttribute("grade", sortService.getParamValByCode("grade"));//年级
-				return "weixin/vip/activateCard";
-			}
-			model.addAttribute("vipId", id);
-			if(5==vip.getLevel()){
-				model.addAttribute("type", 2);//自己购卡,定位
-				return "weixin/vip/location";
-			}
-
-
-			if(4==vip.getLevel()){
-				//用户自己扫卡支付联名卡
-				if(vip.getOrderUser() != null && DateHelper.daysOfTian(new Date(),vip.getOrderTime())< 2){
-					//跳过定位
-					LibStaffing  libStaffing2 =  libStaffingService.findByUserIdAndType(vip.getOrderUser(),"s_qd");
-					return "forward:/weixin/payment/lxVipBuy_"+libStaffing2.getLibId()+".html?vipId="+id+"&type=0";
-				}else{
-					model.addAttribute("type", 1);//自己购卡,定位
-					return "weixin/vip/lxLocation";
-				}
+			Integer ptCount2 =  libVipServiceService.getVipIdPTServiceCount(id,manager.getLibId());
+			model.addAttribute("islib", ptCount2 == 0?"1":"2");
+			//是否签离  1、是,2否
+			return "weixin/library/order/salessign";
 
+		}else{
+			//不是管理员,用户自己
+			if(!vip.getUserId().equals(user.getId())){
+				model.addAttribute("msgType", "您好,此卡已被其他人激活,请联系管理员!");
+				return "weixin/library/bangding_infor";
 			}
-			if(vip.getOrderUser() != null && DateHelper.daysOfTian(new Date(),vip.getOrderTime())< 2){
-				//跳过定位
-				LibStaffing  libStaffing3 =  libStaffingService.findByUserIdAndType(vip.getOrderUser(),"s_qd");
-				return "forward:/weixin/payment/vipCardSales_"+libStaffing3.getLibId()+".html?vipId="+id+"&salesId="+vip.getOrderUser()+"&type=0";
-			}else{
-				model.addAttribute("type", 1);//自己购卡,定位
-				return "weixin/vip/location";
+			//查询是否已预约--已预约--跳预约详情页面--否跳预约页面
+			TbLibSubscribe sub = subService.findByVipIdAndStat(vip.getId(),"1");
+			if(sub != null && sub.getOrderTime() != null){
+				model.addAttribute("vip", vip);
+				model.addAttribute("sub",sub);
+				model.addAttribute("isOrder", "1"); //已预约
+				return "weixin/library/orderView";
+			}else {
+				LibVipService vipService = libVipServiceService.getVipIdService(id);
+				List<Map<String, Object>> serviceList = libVipServiceService.findUserServiceList(id, vipService.getLibId());
+				//本周借阅情况
+				Map<String, Object> weekReadInfo = subService.findWeekReadInfo(id);
+				Integer countVip = libVipServiceService.getVipIdZXServiceCount(id, vipService.getLibId());
+				if (countVip == 0) {
+					model.addAttribute("workInfo", null);
+					model.addAttribute("workSug", null);
+				} else {
+					Map<String, Object> workInfo = subService.findworkInfo(id, vipService.getLibId());
+					Map<String, Object> workSug = subService.findWorkSug(id);
+					model.addAttribute("workInfo", workInfo);
+					model.addAttribute("workSug", workSug);
+				}
+				//作业反馈
+
+				TbLibJoin tbLibJoin = joinService.getById(vipService.getLibId());
+				//查询一个该馆的管理员
+				Map<String, Object> managerMap = subService.findOneManager(tbLibJoin.getId());
+
+				model.addAttribute("sub", new TbLibSubscribe());
+				model.addAttribute("vip", vip);
+				model.addAttribute("isOrder", "2");
+				model.addAttribute("join", tbLibJoin);
+				model.addAttribute("managerMap", managerMap);
+				model.addAttribute("serviceList", serviceList);
+				model.addAttribute("weekReadInfo", weekReadInfo);
+				return "weixin/library/order/parentsign";
 			}
-
 		}
-
 	}
 
 	/**
@@ -524,15 +298,6 @@ public class LibVipController extends BaseController {
 		TbLibSubscribe sub = new TbLibSubscribe();
 		if(subId != null && !"".equals(subId) && !"undefined".equals(subId)){
 			sub =  subService.getById(subId);
-
-			//签离需要老师编辑完成,即对应zuoybStudentPush的type需要为2或3
-//			ZuoybStudentPush zuoybStudentPush = zuoybStudentPushSerivce.findByVipIdAndDate(vipId, DateUtil.format_yyyyMMddHHmmss(sub.getCreateTime()));
-//			Integer type = zuoybStudentPush.getType();
-//			if (type != 2 && type != 3) {
-//				logger.info("老师编辑未完成,不可签离,zuoybStudentPush=" + zuoybStudentPush);
-//				response.failure("老师编辑未完成,不可签离");
-//				return response;
-//			}
 		}
 
 		//确认离馆操作

+ 17 - 2
src/main/java/com/ssj/weixin/util/MessageHandlerUtil.java

@@ -870,11 +870,26 @@ public class MessageHandlerUtil {
 					NewsUtil.send(tokenManager.getSSJAccessToken(), textCustom);
 
 					respXml = "success";
+				}else if("心动".equals(Content)){
+					StringBuffer buff = new StringBuffer();
+					buff.append("电影《怦然心动》\n\n");
+					buff.append("链接:https://pan.baidu.com/s/19Z8HIEREEhzwrumj2WTBIw\n");
+					buff.append("提取码:jzm2\n");
+					textMessage.setContent(buff.toString());
+					respXml = MessageUtil.messageToXml(textMessage);
+				}else if("私塾家微信红包".equals(Content)){
+					ImageMessage imageMessage = new ImageMessage();
+					imageMessage.setToUserName(fromUserName);
+					imageMessage.setFromUserName(toUserName);
+					imageMessage.setCreateTime(System.currentTimeMillis());
+					imageMessage.setMsgType(MessageUtil.REQ_MESSAGE_TYPE_IMAGE);
+					com.ssj.weixin.weixin.message.resp.Image image = new com.ssj.weixin.weixin.message.resp.Image();
+					image.setMediaId("09AKe-o4aGLVtw6WQqQbXRS0HbXQwLrhCEDCDcKCA0o");
+					imageMessage.setImage(image);
+					respXml = MessageUtil.messageToXml(imageMessage);
 				}else{
-
 					respXml = "success";
 				}
-
 				// 将消息对象转换成xmlc
 			}else{
 				textMessage.setContent(sb.toString());

+ 50 - 0
src/main/java/com/ssj/weixin/weixin/message/custom/ArticleNews.java

@@ -0,0 +1,50 @@
+package com.ssj.weixin.weixin.message.custom;
+
+/**
+ * @author sh
+ * @className ArticleNews
+ * @description TODO
+ * @date 2020/12/25
+ */
+public class ArticleNews {
+
+    private String title;
+
+    private String description;
+    private String picurl;
+
+    private String url;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getPicurl() {
+        return picurl;
+    }
+
+    public void setPicurl(String picurl) {
+        this.picurl = picurl;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+}

+ 23 - 0
src/main/java/com/ssj/weixin/weixin/message/custom/NewsCustom.java

@@ -0,0 +1,23 @@
+package com.ssj.weixin.weixin.message.custom;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author sh
+ * @className NewsCustom
+ * @description TODO
+ * @date 2020/12/25
+ */
+public class NewsCustom extends BaseCustom{
+
+    private Map<String,Object> news;
+
+    public Map<String, Object> getNews() {
+        return news;
+    }
+
+    public void setNews(Map<String, Object> news) {
+        this.news = news;
+    }
+}

+ 3 - 3
src/main/resources/static/story/css/explain.css

@@ -32,12 +32,12 @@ body, html {
 	z-index: 1000;
 }
 .section-li-one{
-	font-size: 1.2rem;
+	font-size: 1.1rem;
 	color: #fff;
 	/* margin: 0.4rem 0; */
 }
 .section-li-two{
-	font-size: 1.5rem;
+	font-size: 1.2rem;
 	color: #fff;
 	margin: 0.5rem 20%;
 	font-weight: bold;
@@ -108,7 +108,7 @@ body, html {
 	background: #F5F5F5;
 	font-size:  0.8rem;
 	outline: none;
-	width: 70%;
+	/*width: 70%;*/
 }
 .section-form-btn{
 	width:11rem;

+ 18 - 72
src/main/resources/templates/weixin/library/backcart.html

@@ -83,25 +83,20 @@
 				<input type="hidden" th:value="${vipId}" id="hidUserId"/>
 				<input type="hidden" th:value="${vipId}" id="vipId"/>
 				<ul class="cart_item" id="bookcar">
-					<li th:each="itemIdex:${bookList}">
-					 	<input type="hidden" name="bookId" th:value="${itemIdex.id}"/>
-					 	<input type="hidden" name="detailId" th:value="${itemIdex.detail_id}"/>
-						<a href="javascript:;" class="dc_flex" th:data-id="${itemIdex.id}">
-							<div class="pic"><img th:src="${imgUrl}+''+${itemIdex.local_image}"></div>
+					<li>
+					 	<input type="hidden" name="bookId" th:value="${bookDetailId}"/>
+					 	<input type="hidden" name="detailId" th:value="${detailId}"/>
+						<a href="javascript:;" class="dc_flex" th:data-id="${bookList.id}">
+							<div class="pic"><img th:src="${imgUrl}+''+${bookList.localImage}"></div>
 							
 							<div class="dc_hd">
 								<div class="dc_flex">
 									<div class="dc_hd">
-									<p class="name">[[${itemIdex.title }]]</p>
-									<p class="zz">作者:[[${itemIdex.author}]]</p>
+									<p class="name">[[${bookList.title }]]</p>
+									<p class="zz">作者:[[${bookList.author}]]</p>
 									</div>
 									 <div><span class="btn_delete" onclick="delData(this)">删除</span></div>
 								</div>
-								<div class="book_tag" th:if="${ not #lists.isEmpty(tags)}">
-									<span  th:each="item:${itemIdex.tags}" th:classappend="book_tag_color + ${itemStat.count}">
-											[[${item}]]
-									</span>
-								</div>
 							</div>
 						</a>
 					</li>
@@ -109,51 +104,6 @@
 			</div>
 		</div>
 	</div>
-	
-	<!--押金弹出框-->
-	<div id="" class="invite_dialog" style="display: none;">
-		<div class="mask"></div>
-		<div class="invite_popup" style="margin-top: -92.5px;">
-			<div class="tool_close"><a href="javascript:;"></a></div>
-			<div class="content">
-				<div class="title">请充值</div>
-				<div class="text">
-					<p>借书要先交40元押金和最低2元充值哦,2元/5日/册,最高只能一次借3本书,可扫码续借,逾期1元/日/册</p>
-				</div>
-			</div>
-			<a th:href="${sysUrl}+'/web/webManager/index'" class="btn foot_btn_close">去充值</a>
-		</div>
-	</div>
-	
-	<!--充值弹出框-->
-	<div id="" class="invite_dialog" style="display: none;">
-		<div class="mask"></div>
-		<div class="invite_popup" style="margin-top: -92.5px;">
-			<div class="tool_close"><a href="javascript:;"></a></div>
-			<div class="content">
-				<div class="title">请充值</div>
-				<div class="text">
-					<p>借书要先交40元押金和最低2元充值哦,2元/5日/册,最高只能一次借3本书,可扫码续借,逾期1元/日/册</p>
-				</div>
-			</div>
-			<a th:href="${sysUrl}+'/web/webManager/index'" class="btn foot_btn_close">去充值</a>
-		</div>
-	</div>
-	
-	<!--上限弹出框-->
-	<div id="bookOver" class="invite_dialog" style="display: none;">
-		<div class="mask"></div>
-		<div class="invite_popup" style="margin-top: -92.5px;">
-			<div class="tool_close"><a href="javascript:;"></a></div>
-			<div class="content">
-				<div class="title">已达可借上线</div>
-				<div class="text">
-					<p>亲,一次只能借三本书哦,看完再来吧</p>
-				</div>
-			</div>
-			<a href="###" class="btn foot_btn_close">确定</a>
-		</div>
-	</div>
 
 
 
@@ -165,22 +115,14 @@
 		<div class="pic"><img src="{{imgUrl}}{{d.local_image}}"></div>
 		<div class="dc_hd">
 			<div class="dc_flex">
-			<div class="dc_hd">
-			<p class="name">{{d.title }}</p>
-			<p class="zz">作者:{{d.author}}</p>
-			</div>
-<div><span class="btn_delete" onclick="delData(this)">删除</span></div>
-</div>
-{{# if(d.tags!=null && d.tags.length > 0){ }}
-			<div class="book_tag">
-				
-				{{# var bookTags = d.tags.toString();}}
-				{{#  var tagarr = bookTags.split(",");}}
-				{{# for(var i=0;i<tagarr.length;i++){}}
-						<span class="book_tag_color{{(i+1)}}">{{tagarr[i]}}</span>
-				{{#}}}
+				<div class="dc_hd">
+				<p class="name">{{d.title }}</p>
+				<p class="zz">作者:{{d.author}}</p>
+				</div>
+				<div>
+					<span class="btn_delete" onclick="delData(this)">删除</span>
+				</div>
 			</div>
-{{#}}}
 		</div>
 	</a>
 </li>
@@ -289,6 +231,10 @@
 		 			id+=",";
 		 		}
 		 	}
+		 	if(id==""){
+				$.toast("请扫描所还书籍进行还书!", "cancel");
+				return;
+			}
 		 	var did = "";
 		 	for(var i=0;i<detailId.length;i++){
 		 		did+=detailId[i].value;

+ 6 - 0
src/main/resources/templates/weixin/library/bookcase.html

@@ -71,6 +71,9 @@
 							<option   value="C11" th:selected="${C eq 'C11'}">C11</option>
 							<option   value="C12" th:selected="${C eq 'C12'}">C12</option>
 							<option   value="C13" th:selected="${C eq 'C13'}">C13</option>
+							<option   value="C14" th:selected="${C eq 'C14'}">C14</option>
+							<option   value="C15" th:selected="${C eq 'C15'}">C15</option>
+							<option   value="C16" th:selected="${C eq 'C16'}">C16</option>
 						</select>
 					</div>
 				</div>
@@ -91,6 +94,9 @@
 							<option   value="D11" th:selected="${D eq 'D11'}">D11</option>
 							<option   value="D12" th:selected="${D eq 'D12'}">D12</option>
 							<option   value="D13" th:selected="${D eq 'D13'}">D13</option>
+							<option   value="D14" th:selected="${D eq 'D14'}">D14</option>
+							<option   value="D15" th:selected="${D eq 'D15'}">D15</option>
+							<option   value="D16" th:selected="${D eq 'D16'}">D16</option>
 						</select>
 					</div>
 				</div>

+ 1 - 1
src/main/resources/templates/weixin/library/borrowManagercart.html

@@ -488,7 +488,7 @@ function delData(obj){
 															"id":id,
 															"money":$("#payMoney").val(),
 															"borrowUserId":$("#userId").val(),
-															"vipid":vipid
+															"vipId":vipid
 														},
 														success: function(data) {
 															$.hideLoading();

+ 48 - 145
src/main/resources/templates/weixin/library/borrowcart.html

@@ -87,25 +87,20 @@
 				<input type="hidden" name="userId" id="userId" th:value="${userId}"/>
 				<input type="hidden" name="isMe" th:value="${isMe}"/>
 				<ul class="cart_item" id="bookcar">
-					<li th:each="itemIdex:${bookList}">
-					 	<input type="hidden" name="bookId" th:value="${itemIdex.id}"/>
-					 	<input type="hidden" name="isbn13" th:value="${itemIdex.isbn13}"/>
-					 	
-						<a href="javascript:;" class="dc_flex" th:data-id="${itemIdex.id}">
-							<div class="pic"><img th:src="${imgUrl}+''+${itemIdex.local_image}"></div>
+					<li>
+						<input type="hidden" name="bookId" th:value="${bookDetailId}"/>
+						<input type="hidden" name="detailId" th:value="${bookDetailId}"/>
+						<a href="javascript:;" class="dc_flex" th:data-id="${bookList.id}">
+							<div class="pic"><img th:src="${imgUrl}+''+${bookList.localImage}"></div>
+
 							<div class="dc_hd">
 								<div class="dc_flex">
 									<div class="dc_hd">
-										<p class="name">[[${itemIdex.title }]]</p>
-										<p class="zz">作者:[[${itemIdex.author}]]</p>
+										<p class="name">[[${bookList.title }]]</p>
+										<p class="zz">作者:[[${bookList.author}]]</p>
 									</div>
 								     <div><span class="btn_delete" onclick="delData(this)">删除</span></div>
 								</div>
-								<div class="book_tag" th:if="${ not #lists.isEmpty(tags)}">
-									<span th:each="item:${itemIdex.tags}" th:classappend="book_tag_color+${itemStat.count}">
-											[[${item}]]
-									</span>
-								</div>
 							</div>
 						</a>
 					</li>
@@ -211,16 +206,6 @@
 			</div>
 <div><span class="btn_delete" onclick="delData(this)">删除</span></div>
 </div>
-{{# if(d.tags!=null && d.tags.length > 0){ }}
-			<div class="book_tag">
-				
-				{{# var bookTags = d.tags.toString();}}
-				{{#  var tagarr = bookTags.split(",");}}
-				{{# for(var i=0;i<tagarr.length;i++){}}
-						<span class="book_tag_color{{(i+1)}}">{{tagarr[i]}}</span>
-				{{#}}}
-			</div>
-{{#}}}
 		</div>
 	</a>
 </li>
@@ -387,141 +372,59 @@ function delData(obj){
  			}
  		});
  }
-		
-		
+
+
 		function submitFrom() {
-			var vipid = $("#vipid").val();
+			var vipId = $("#vipid").val();
 			var isvip = $("#isvip").val();
-			if(vipid == "" && isvip=="2"){
+			if (vipId == "" && isvip == "2") {
 				$("#dialog_yebz").show();
 				return;
 			}
 			var bookLeft = $("#hidLeft").val();
-			if(bookLeft < 0){
+			if (bookLeft < 0) {
 				$("#bookOver").show();
-				return ;
+				return;
 			}
 			$.showLoading("数据提交中,请稍后……!");
 			$("#invite_lq_submit").removeAttr("onclick");
 			//提交前先检查余额是否够
+
+			var bookId = document.getElementsByName("bookId");
+			var id = "";
+			for (var i = 0; i < bookId.length; i++) {
+				id += bookId[i].value;
+				if (i < bookId.length - 1) {
+					id += ",";
+				}
+			}
+
 			$.ajax({
-					type: "post",
-					url:"[[${sysUrl}]]/weixin/bkManager/checkCharge",
-					datatype: "json",
-					data:{
-						"ye_fee":$("#payMoney").val(),
-						"borrowUserId":$("#userId").val(),
-						"vipid":vipid
-					},
-					success: function(data) {
-						if(data.code == "999"){
-							var msgType = data.data.msgType;
-							 
-							if(msgType == "2"){  //首次借书
-								$.hideLoading();
-								$('.invite_dialog').hide();
-								$("#firstCharge").show();
-								$("#invite_lq_submit").attr("onclick","submitFrom()");
-								return ;
-							}else if(msgType == "3"){ //是会员或者余额足够
-								var bookId = document.getElementsByName("bookId");
-							 	var id ="";
-							 	for(var i=0;i<bookId.length;i++){
-							 		id+=bookId[i].value;
-							 		if(i<bookId.length-1){
-							 			id+=",";
-							 		}
-							 	}
-								$.ajax({
-									type: "post",
-									url:"[[${sysUrl}]]/weixin/bkManager/checkDrift",
-									datatype: "json",
-									data:{
-										"id":id,
-										"vipid":vipid
-									},
-									success: function(data) {
-										if(data.code == "999"){
-											 
-											var nextStep = data.data.nextType;
-											if(nextStep == "1"){
-												$('.invite_dialog').hide();
-											 	$.ajax({
-														type: "post",
-														url:"[[${sysUrl}]]/weixin/bkManager/save",
-														datatype: "json",
-														data:{
-															"id":id,
-															"money":$("#payMoney").val(),
-															"borrowUserId":$("#userId").val(),
-															"vipid":vipid
-														},
-														success: function(data) {
-															$.hideLoading();
-															if(data.code == "999"){
-																location.replace('[[${sysUrl}]]/weixin/bkManager/borrowSuccess_'+vipid+'.html');
-															    event.returnValue=false;
-															}
-															$("#invite_lq_submit").attr("onclick","submitFrom()");
-														},
-														fail: function(res) {
-															$.hideLoading();
-															$("#invite_lq_submit").attr("onclick","submitFrom()");
-														}
-													}) 
-											}else if (nextStep == "2"){
-												$.hideLoading();
-												 $.toast("图书原持有人不同意借出!","cancel");
-												 $("#invite_lq_submit").attr("onclick","submitFrom()");
-												 return ;
-											}else if (nextStep == "3"){
-												$.hideLoading();
-												 $.toast("图书原持有人仍未确认,请催促及时确认,以免失效!","cancel");
-												 $("#invite_lq_submit").attr("onclick","submitFrom()");
-												 return ;
-											}else{
-												$.hideLoading();
-												 $.toast("超出系统定义,请联系管理员!","cancel");
-												 $("#invite_lq_submit").attr("onclick","submitFrom()");
-												 return ;
-											}
-											
-										}else{
-											 $.hideLoading();
-											 $.toast("服务器异常,请稍后再试!","cancel");
-											 $("#invite_lq_submit").attr("onclick","submitFrom()");
-											 return ;
-										}
-									},
-									fail: function(res) {
-										 $.hideLoading();
-										$.toast("服务器异常,请稍后再试!","cancel");
-										$("#invite_lq_submit").attr("onclick","submitFrom()");
-										return ;
-									}
-								}) 
-							}else if(msgType == "4"){ //余额不够,需要充值
-								$.hideLoading();
-								$('.invite_dialog').hide();
-								$("#charge").show();
-								$("#invite_lq_submit").attr("onclick","submitFrom()");
-								return ;
-							}
-						}else{
-							$.hideLoading();
-							 $.toast("服务器异常,请稍后再试!","cancel");
-							 $("#invite_lq_submit").attr("onclick","submitFrom()");
-							 return ;
-						}
-					},
-					fail: function(res) {
-						$.hideLoading();
-						$.toast("服务器异常,请稍后再试!","cancel");
-						$("#invite_lq_submit").attr("onclick","submitFrom()");
-						return ;
+				type: "post",
+				url: "[[${sysUrl}]]/weixin/bkManager/save",
+				datatype: "json",
+				data: {
+					"id": id,
+					"money": $("#payMoney").val(),
+					"borrowUserId": $("#userId").val(),
+					"vipId": vipId
+				},
+				success: function (data) {
+					$.hideLoading();
+					if (data.code == "999") {
+						location.replace('[[${sysUrl}]]/weixin/bkManager/borrowSuccess_' + vipId + '.html');
+						event.returnValue = false;
+					}else{
+						$.toast(data.msg, "cancel");
 					}
-				}) 
-		 }
+					$("#invite_lq_submit").attr("onclick", "submitFrom()");
+				},
+				fail: function (res) {
+					$.hideLoading();
+					$("#invite_lq_submit").attr("onclick", "submitFrom()");
+				}
+			})
+		}
 		
 		
     </script>

+ 19 - 8
target/classes/templates/weixin/card/consume.html

@@ -1,10 +1,20 @@
 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
 <head>
-    <title>激活服务</title>
-<link href="style/jquery-weui.css" th:href="@{/static/style/jquery-weui.css}" rel="stylesheet"/>
+    <title>书本信息录入</title>
 <script th:include="weixin/common/includeCSS" th:remove="tag" ></script>
+<link href="weui/mui.picker.css" th:href="@{/static/weui/mui.picker.css?version=2.3.6}" rel="stylesheet"/>
+<link href="weui/mui.poppicker.css" th:href="@{/static/weui/mui.poppicker.css?version=2.3.6}" rel="stylesheet"/>
+<script src="js/mui/mui.min.js" th:src="@{/static/js/mui/mui.min.js}"></script>
+<script src="js/mui.picker.js" th:src="@{/static/js/mui/mui.poppicker.js}"></script>
+<script src="js/mui.poppicker.js" th:src="@{/static/js/mui/mui.picker.js}"></script>
+<script src="js/laytpl.js" th:src="@{/static/js/laytpl.js}"></script>
+<script src="js/city.data-3.js" th:src="@{/static/js/city.data-3.js}" charset="utf-8"></script>
+<link href="weui/mui.min.css" th:href="@{/static/weui/mui.min.css?version=2.3.6}" rel="stylesheet"/>
 <script src="js/jquery-weui.js" th:src="@{/static/js/jquery-weui.js}"></script>
+<link href="style/jquery-weui.css" th:href="@{/static/style/jquery-weui.css}" rel="stylesheet"/>
+<style type="text/css">
+</style>
 </head>
 <body class="bg_f2">
 	<div class="mui-content">
@@ -13,7 +23,7 @@
 				<img th:src="@{/static/images/logossj.jpg}" />
 				<p class="name">私塾家共享图书馆</p>
 			</div>
-			<a href="javascript:;" id="scanQRCode1" class="btn_order">扫一扫激活服务</a>
+			<a href="javascript:;" id="scanQRCode1" class="btn_order">扫一扫听力二维码</a>
 			</div>
 		</div>
 	
@@ -50,17 +60,19 @@ $(function() {
  										needResult: 1,
  										desc: 'scanQRCode desc',
  										success: function(res) { 
- 											var cardCode = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
+ 											// alert(JSON.stringify(res));
+ 											var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
  											$.ajax({
 													type: "post",
-													url:"[[${sysUrl}]]/weixin/card/saveService",
+													url:"[[${sysUrl}]]/weixin/book/saveUrl",
 													datatype: "json",
 													data:{
-														"cardCode":cardCode
+														"detailId":result
 													},
 													success: function(data) {
+														console.log(data);
 														if(data.code == "999"){
-															$.toast("激活服务成功", "ok");
+															$.toast("此二维码有效", "ok");
 														}else{
 															$.toast(data.msg, "cancel");
 														}
@@ -81,7 +93,6 @@ $(function() {
  			}
  		});
  }
-
 </script>
 </html>
 

+ 21 - 21
src/main/resources/templates/weixin/story/explainForm.html

@@ -1,10 +1,10 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
 	<head>
 		<meta charset="UTF-8">
 		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;">
-		<title>小塾学伴 · AI智慧教育系统</title>
-		<link rel="stylesheet" th:href="@{/static/story/css/explain.css}">
+		<title>小塾学伴,学习效果看得见</title>
+		<link rel="stylesheet" th:href="@{/static/story/css/explain.css?20210108}">
 	</head>
 	<body>
 		<div class="section">
@@ -13,33 +13,33 @@
 			</div>
 			
 			<div class="section-li">
-				<div id="" class="section-li-header">
-					<div id="" class="section-li-one">小塾学伴</div>
-					<div id="" class="section-li-two">AI智慧教育系统</div>
-					<div id="" class="section-li-three">
+				<div  class="section-li-header">
+					<div  class="section-li-one">小塾学伴</div>
+					<div  class="section-li-two">小学生定制化教学系统</div>
+					<div  class="section-li-three">
 						<img th:src="@{/static/story/img/form_bg.png}" >
 					</div>
 				</div>
 				
-				<div id="" class="section-form">
-					<div id="" class="section-form-item">
+				<div  class="section-form">
+					<div  class="section-form-item">
 						<img th:src="@{/static/story/img/ji_gou.png}" >
-						<span>机构</span>
-						<input type="text" name="libname" id="libname" placeholder="请输入机构名称"/>
+						<span>学校/机构</span>
+						<input type="text" name="libname" id="libname" placeholder="请输入学校/机构名称"/>
 					</div>
-					<div id="" class="section-form-item">
+					<div  class="section-form-item">
 						<img th:src="@{/static/story/img/name.png}" >
-						<span>姓名</span>
+						<span>    姓名</span>
 						<input type="text" name="username" id="username" placeholder="请输入您的姓名" />
 					</div>
-					<div id="" class="section-form-item">
+					<div  class="section-form-item">
 						<img th:src="@{/static/story/img/tell.png}" >
-						<span>电话</span>
+						<span>    电话</span>
 						<input type="number" name="phone" id="phone" placeholder="请输入您的电话" />
 					</div>
-					<div id="" class="section-form-item">
+					<div  class="section-form-item">
 						<img th:src="@{/static/story/img/addd.png}"  class="address-img">
-						<span>城市</span>
+						<span>    城市</span>
 						<input type="text" name="city" id="city" placeholder="请输入您的城市" />
 					</div>
 					<input id="lat" type="hidden"  value="">
@@ -48,10 +48,10 @@
 				</div>
 			</div>
 			
-			<div id="" class="showMedeol">
-				<div id="" class="show">
-					<div id="" class="model-title">提交成功</div>
-					<div id="" class="model-content">老师,你已成功登记,稍后会有专门负责的老师联系您,请保持电话畅通。</div>
+			<div  class="showMedeol">
+				<div  class="show">
+					<div  class="model-title">提交成功</div>
+					<div  class="model-content">老师,你已成功登记,稍后会有专门负责的老师联系您,请保持电话畅通。</div>
 				</div>
 				<img th:src="@{/static/story/img/close.png}" class="model-img">
 			</div>

+ 0 - 55
target/classes/META-INF/resources/swagger-ui.html

@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>私塾家API文档</title>
-    <link rel="icon" type="image/png" href="./favicon.ico" sizes="32x32"/>
-    <link href='webjars/springfox-swagger-ui/css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
-    <link href='webjars/springfox-swagger-ui/css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
-    <link href='webjars/springfox-swagger-ui/css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
-    <link href='webjars/springfox-swagger-ui/css/reset.css' media='print' rel='stylesheet' type='text/css'/>
-    <link href='webjars/springfox-swagger-ui/css/print.css' media='print' rel='stylesheet' type='text/css'/>
-
-    <script src='webjars/springfox-swagger-ui/lib/object-assign-pollyfill.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/jquery-1.8.0.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/jquery.slideto.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/jquery.wiggle.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/handlebars-4.0.5.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/lodash.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/backbone-min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/swagger-ui.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/jsoneditor.min.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/marked.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lib/swagger-oauth.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/springfox.js' type='text/javascript'></script>
-
-    <!--国际化操作:选择中文版 -->
-    <script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>
-    <script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>
-
-</head>
-
-<body class="swagger-section">
-<div id='header'>
-    <div class="swagger-ui-wrap">
-        <a id="logo" href="http://swagger.io">
-            <img class="logo__img" alt="swagger" height="30" width="30" src="./favicon.ico" />
-            <span class="logo__title">微信小程序接口公共api</span></a>
-        <form id='api_selector'>
-            <div class='input'>
-                <select id="select_baseUrl" name="select_baseUrl"></select>
-            </div>
-            <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
-            <div id='auth_container'></div>
-            <div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
-        </form>    
-    </div>
-</div>
-
-<div id="message-bar" class="swagger-ui-wrap" data-sw-translate> </div>
-<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
-</body>
-</html>

+ 0 - 57
target/classes/META-INF/resources/webjars/springfox-swagger-ui/lang/zh-cn.js

@@ -1,57 +0,0 @@
-'use strict';
-
-/* jshint quotmark: double */
-window.SwaggerTranslator.learn({
-    "Warning: Deprecated":"警告:已过时",
-    "Implementation Notes":"实现备注",
-    "Response Class":"响应类",
-    "Status":"状态",
-    "Parameters":"参数",
-    "Parameter":"参数",
-    "Value":"值",
-    "Description":"描述",
-    "Parameter Type":"参数类型",
-    "Data Type":"数据类型",
-    "Response Messages":"响应消息",
-    "HTTP Status Code":"HTTP状态码",
-    "Reason":"原因",
-    "Response Model":"响应模型",
-    "Request URL":"请求URL",
-    "Request Headers":"请求头",
-    "Response Body":"响应体",
-    "Response Code":"响应码",
-    "Response Headers":"响应头",
-    "Hide Response":"隐藏响应",
-    "Headers":"头",
-    "Try it out!":"试一下!",
-    "Show/Hide":"显示/隐藏",
-    "List Operations":"显示操作",
-    "Expand Operations":"展开操作",
-    "Raw":"原始",
-    "can't parse JSON.  Raw result":"无法解析JSON. 原始结果",
-    "Example Value":"示例",
-    "Click to set as parameter value":"点击设置参数",
-    "Model Schema":"模型架构",
-    "Model":"模型",
-    "apply":"应用",
-    "Username":"用户名",
-    "Password":"密码",
-    "Terms of service":"服务条款",
-    "Created by":"创建者",
-    "See more at":"查看更多:",
-    "Contact the developer":"联系开发者",
-    "api version":"api版本",
-    "Response Content Type":"响应Content Type",
-    "Parameter content type:":"参数类型:",
-    "fetching resource":"正在获取资源",
-    "fetching resource list":"正在获取资源列表",
-    "Explore":"浏览",
-    "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis",
-    "Can't read from server.  It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。",
-    "Please specify the protocol for":"请指定协议:",
-    "Can't read swagger JSON from":"无法读取swagger JSON于",
-    "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI",
-    "Unable to read api":"无法读取api",
-    "from path":"从路径",
-    "server returned":"服务器返回"
-});

+ 0 - 70
target/classes/application-common-dev.properties

@@ -1,70 +0,0 @@
-#\u5F00\u53D1\u73AF\u5883\u6253\u5305\u65B9\u5F0F-\u914D\u7F6E\uFF08\u9ED8\u8BA4\uFF09
-
-spring.datasource.url=jdbc:mysql://47.112.200.206:8066/aijia?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&rewriteBatchedStatements=true
-spring.datasource.username=root
-spring.datasource.password=ssj1QAZxsw2!@
-#spring.datasource.url=jdbc:mysql://120.79.215.176:8066/ssj?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
-#spring.datasource.username=ssj_user
-#spring.datasource.password=ssjUser!@123
-
-spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
-spring.datasource.initialSize=10
-spring.datasource.minIdle=10
-spring.datasource.maxActive=30
-spring.datasource.maxWait=60000
-spring.datasource.timeBetweenEvictionRunsMillis=60000
-spring.datasource.minEvictableIdleTimeMillis=30000
-spring.datasource.validationQuery=SELECT 1
-spring.datasource.testWhileIdle=true
-spring.datasource.testOnBorrow=false
-spring.datasource.testOnReturn=false
-spring.datasource.poolPreparedStatements=true
-spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
-spring.datasource.filters=stat,wall,slf4j
-spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
-
-
-config-redis.database=4
-spring.redis.database=0
-
-#spring.redis.host=120.79.157.115
-#spring.redis.port=6379
-spring.redis.password=dc1qazxsw2!@
-#spring.redis.pool.max-active=8
-#spring.redis.pool.max-wait=-1
-#spring.redis.pool.max-idle=8
-#spring.redis.pool.min-idle=0
-spring.redis.timeout=3000
-spring.redis.block-when-exhausted=true
-
-
-
-#spring.redis.cluster.nodes=120.79.157.115:6379
-spring.redis.cluster.nodes=47.106.111.166:6380,47.106.111.166:6381,47.106.111.166:6382,47.106.111.166:6383,47.106.111.166:6384,47.106.111.166:6385
-spring.redis.cluster.timeout=30
-
-spring.redis.cluster.pool.max-active=8
-spring.redis.cluster.pool.max-wait=-1
-spring.redis.cluster.pool.max-idle=8
-spring.redis.cluster.pool.min-idle=0
-
-
-spring.jmx.enabled=false
-
-spring.rabbitmq.host=192.168.1.153
-spring.rabbitmq.port=5672
-spring.rabbitmq.username=admin1
-spring.rabbitmq.password=admin1
-spring.rabbitmq.publisher-confirms=true  
-spring.rabbitmq.publisher-returns=true
-
-#/**\u6CE8\u610F\u8FD9\u91CC\u7684\u6CE8\u89E3\u662Fdubbo\u7684\u6CE8\u89E3\uFF0C\u8FD9\u91CC\u6CA1\u6709\u4F7F\u7528\u6CE8\u518C\u4E2D\u5FC3\uFF0C\u4E3A\u76F4\u8FDE\u65B9\u5F0F\uFF0C\u5404\u81EA\u672C\u5730\u5F00\u53D1\u53EF\u4EE5\u653E\u5F00 \uFF08dubbo://ip:\u670D\u52A1\u7AEF\u53E3\uFF09
-#dubbo.reference.url = dubbo://127.0.0.1:9394
-spring.thymeleaf.cache=false
-
-
-
-#spring.elasticsearch.cluster.host=47.112.253.242,47.112.250.240,47.112.232.110
-#spring.elasticsearch.cluster.host=119.23.8.52,120.79.157.115,120.79.229.124
-#mybatis热加载
-

+ 0 - 52
target/classes/application-common-prod.properties

@@ -1,52 +0,0 @@
-#\u6B63\u5F0F\u73AF\u5883\u6253\u5305\u65B9\u5F0F-\u914D\u7F6E
-spring.datasource.url=jdbc:mysql://172.18.30.187:8066/ssj?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
-spring.datasource.username=ssj_user
-spring.datasource.password=ssjUser!@123
-
-spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
-spring.datasource.initialSize=10
-spring.datasource.minIdle=10
-spring.datasource.maxActive=300
-spring.datasource.maxWait=60000
-spring.datasource.timeBetweenEvictionRunsMillis=60000
-spring.datasource.minEvictableIdleTimeMillis=30000
-spring.datasource.validationQuery=SELECT 1
-spring.datasource.testWhileIdle=true
-spring.datasource.testOnBorrow=false
-spring.datasource.testOnReturn=false
-spring.datasource.poolPreparedStatements=true
-spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
-spring.datasource.filters=stat,wall,slf4j
-spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
-
-spring.redis.password=zhidian@1QAZxsw2
-spring.redis.timeout=3000
-spring.redis.block-when-exhausted=true
-
-
-
-spring.redis.cluster.nodes=172.18.164.135:6380,172.18.164.135:6381,172.18.164.135:6382,172.18.164.135:6383,172.18.164.135:6384,172.18.164.135:6385
-spring.redis.cluster.timeout=30
-
-spring.redis.cluster.pool.max-active=80
-spring.redis.cluster.pool.max-wait=-1
-spring.redis.cluster.pool.max-idle=80
-spring.redis.cluster.pool.min-idle=10
-
-spring.jmx.enabled=false
-
-spring.rabbitmq.host=172.18.30.187
-spring.rabbitmq.port=5672
-spring.rabbitmq.username=guest
-spring.rabbitmq.password=guest
-spring.rabbitmq.publisher-confirms=true  
-spring.rabbitmq.publisher-returns=true
-
-
-spring.thymeleaf.cache=false
-#\u76D1\u63A7\u4E2D\u5FC3\u534F\u8BAE\uFF0C\u5982\u679C\u4E3Aprotocol="registry"\uFF0C\u8868\u793A\u4ECE\u6CE8\u518C\u4E2D\u5FC3\u53D1\u73B0\u76D1\u63A7\u4E2D\u5FC3\u5730\u5740\uFF0C\u5426\u5219\u76F4\u8FDE\u76D1\u63A7\u4E2D\u5FC3\u3002
-# http://39.108.210.183:8086/applications.html
-# \u4EE5\u4E0B\u914D\u7F6E\u4E3A\u4E24\u9009\u4E00
-# dubbo.monitor.address=172.18.30.187:7070
-# dubbo.monitor.protocol=registry
-

+ 0 - 24
target/classes/application-common.properties

@@ -1,24 +0,0 @@
-#ȫ�ֹ�������
-server.tomcat.uri-encoding=utf-8
-
-logging.level.root=INFO
-logging.config=classpath:logback.xml
-
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-
-spring.jpa.database = MYSQL
-spring.jpa.hibernate.ddl-auto=none
-spring.jpa.show-sql=true     
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
-spring.jpa.hibernate.implicit_naming_strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
-spring.jpa.hibernate.physical_naming_strategy=com.ssj.framework.spring.jpa.PhysicalNamingStrategyImpl
-spring.jpa.open-in-view=true
-session.expire=1800
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-spring.servlet.multipart.maxFileSize=200MB
-spring.servlet.multipart.maxRequestSize=5000MB
-spring.servlet.multipart.enabled=false 
-
-spring.thymeleaf.cache=false
-spring.thymeleaf.prefix=classpath:/templates/

+ 0 - 15
target/classes/application.properties

@@ -1,15 +0,0 @@
-spring.application.name=ssj-weixin
-server.port=8080
-logger.level=info
-
-spring.profiles.active=common,common-dev
-
-spring.mvc.static-path-pattern=/static/**  
-
-spring.thymeleaf.prefix=classpath:/templates/
-spring.thymeleaf.suffix=.html
-spring.thymeleaf.mode=HTML5
-spring.thymeleaf.encoding=UTF-8
-spring.thymeleaf.servlet.content-type=text/html
-spring.thymeleaf.cash=false
-debug=true

BIN
target/classes/com/ssj/WeixinApp.class


BIN
target/classes/com/ssj/alipay/utils/AlipayClientFactory.class


BIN
target/classes/com/ssj/alipay/utils/AlipayOrderHelper.class


BIN
target/classes/com/ssj/alipay/utils/AlipayPayConfig.class


BIN
target/classes/com/ssj/api/weixin/util/AesException.class


BIN
target/classes/com/ssj/api/weixin/util/ByteGroup.class


BIN
target/classes/com/ssj/api/weixin/util/PKCS7Encoder.class


BIN
target/classes/com/ssj/api/weixin/util/SHA1.class


BIN
target/classes/com/ssj/bean/award/dto/ActivityDrawDto.class


BIN
target/classes/com/ssj/bean/award/dto/ActivityInfoDto.class


BIN
target/classes/com/ssj/bean/award/dto/MaterialInfoDto.class


BIN
target/classes/com/ssj/bean/award/dto/MaterialListDto.class


BIN
target/classes/com/ssj/bean/award/dto/MyAwardListDto.class


BIN
target/classes/com/ssj/bean/award/dto/SncodeInfoDto.class


BIN
target/classes/com/ssj/bean/award/dto/VipIntegralDto.class


BIN
target/classes/com/ssj/bean/award/vo/ActivityDrawShareVO.class


BIN
target/classes/com/ssj/bean/award/vo/MaterialExchangeSaveVO.class


BIN
target/classes/com/ssj/bean/award/vo/UrlShareVO.class


BIN
target/classes/com/ssj/bean/award/vo/VipBaseRequestVO.class


BIN
target/classes/com/ssj/bean/award/vo/VipIntegralRequestVO.class


BIN
target/classes/com/ssj/bean/common/files/domain/FileInfo.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/BaseEntity.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/BasePageRequest.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/BaseRequest.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/BaseResponse.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/PersistentEntity.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/Response$Meta.class


BIN
target/classes/com/ssj/bean/common/framework/core/domain/Response.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/ConchDerver.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/ConchDerverUseRecord.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/ConchSystemDerver.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/HomeworkRanking.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/HomeworkRecord.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/IntegralDetail.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/SconOtaManager.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/SconPadInfo.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/SconStudentTermtainData.class


BIN
target/classes/com/ssj/bean/conch/conch/domain/SmarttimePicture.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/BriefHomeworkPictureDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerSpaceDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerStyleDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/ExerciseQuestionAnswerValueDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/HomeworkCheckStatusDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/HomeworkRecordDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/KmtExerciseQuestionProblemDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/KmtQuestionDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/OpenTestDto$Contents.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/OpenTestDto.class


BIN
target/classes/com/ssj/bean/conch/conch/dto/ProblemDetailDto.class


BIN
target/classes/com/ssj/bean/conch/curator/dto/ClassStudentDetailDto.class


BIN
target/classes/com/ssj/bean/conch/curator/dto/CuratorTeacherListDto.class


BIN
target/classes/com/ssj/bean/conch/curator/dto/TeacherDetailClassListDto.class


BIN
target/classes/com/ssj/bean/course/domain/CourseDetailFeedbackLib.class


BIN
target/classes/com/ssj/bean/course/domain/CourseFeedbackFile.class


BIN
target/classes/com/ssj/bean/course/domain/CourseLearn.class


BIN
target/classes/com/ssj/bean/course/domain/CourseReadHis.class


BIN
target/classes/com/ssj/bean/course/domain/CourseScanHis.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeries.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesDetail.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesDetailFeedback.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesDetailFile.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesJoin.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesOrder.class


BIN
target/classes/com/ssj/bean/course/domain/CourseSeriesSetting.class


BIN
target/classes/com/ssj/bean/curator/TbLibBindAudit.class


BIN
target/classes/com/ssj/bean/curator/TbVacationLimit.class


BIN
target/classes/com/ssj/bean/es/domain/EsDataRecode.class


BIN
target/classes/com/ssj/bean/kmt/arrange/dto/DutyTemplate.class


BIN
target/classes/com/ssj/bean/kmt/arrange/dto/DutyTimeVO.class


BIN
target/classes/com/ssj/bean/kmt/arrange/dto/TeacherArrangeDayVO.class


BIN
target/classes/com/ssj/bean/kmt/arrange/dto/TeacherArrangeVO.class


BIN
target/classes/com/ssj/bean/kmt/arrange/dto/TeacherNextArrangeVO.class


BIN
target/classes/com/ssj/bean/kmt/arrange/vo/DutyRequestVO.class


+ 0 - 0
target/classes/com/ssj/bean/kmt/arrange/vo/DutySysRequestVO.class


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff