├── .gitattributes ├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── smallschool │ │ ├── SmallschoolApplication.java │ │ ├── controller │ │ ├── CartController.java │ │ ├── ServiceController.java │ │ ├── SnackController.java │ │ ├── SnackOrderController.java │ │ ├── UserController.java │ │ └── login │ │ │ ├── LoginHandlerInterceptor.java │ │ │ ├── Logincontroller.java │ │ │ └── config.java │ │ ├── entity │ │ ├── CartEntity.java │ │ ├── DeliverEntity.java │ │ ├── ServiceCategoryEntity.java │ │ ├── ServiceEntity.java │ │ ├── ServiceOrderEntity.java │ │ ├── SnackEntity.java │ │ ├── SnackOrderEntity.java │ │ └── UserEntity.java │ │ └── service │ │ ├── CartRepository.java │ │ ├── DeliverRepository.java │ │ ├── ServiceCategoryRepository.java │ │ ├── ServiceOrderRepository.java │ │ ├── ServiceRepository.java │ │ ├── SnackOrderRepository.java │ │ ├── SnackRepository.java │ │ └── UserRepository.java └── resources │ ├── application.yml │ ├── static │ ├── css │ │ ├── buy-success.css │ │ ├── common.css │ │ ├── deliver.css │ │ ├── detail.css │ │ ├── index.css │ │ ├── list.css │ │ ├── load.css │ │ ├── login.css │ │ ├── mall.css │ │ ├── my-deliver.css │ │ ├── myinfo.css │ │ ├── order.css │ │ ├── payment.css │ │ ├── shopcart.css │ │ ├── ticket.css │ │ ├── weui.css │ │ ├── weui2-bak.css │ │ └── weui2.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── icon │ │ ├── 11.png │ │ ├── back.png │ │ ├── buy-loading.gif │ │ ├── icon_nav_article.png │ │ ├── icon_nav_button.png │ │ ├── icon_nav_cell.png │ │ ├── icon_nav_msg.png │ │ ├── level-0.png │ │ ├── net-loading.gif │ │ ├── notice.png │ │ └── subtract.png │ ├── images │ │ ├── avatar.jpg │ │ ├── back.svg │ │ ├── bhc.jpg │ │ ├── d-1.jpg │ │ ├── d-2.jpg │ │ ├── d-3.jpg │ │ ├── dbt1.jpg │ │ ├── dbt2.jpg │ │ ├── dbt3.jpg │ │ ├── dbtnt.jpg │ │ ├── ddppt.jpg │ │ ├── default_btn@3.png │ │ ├── default_btn@3x.png │ │ ├── default_icon_eye@3x.png │ │ ├── default_icon_password@3x.png │ │ ├── default_icon_qq@3x.png │ │ ├── default_icon_tel@3x.png │ │ ├── default_icon_wechat@3x.png │ │ ├── fbm.jpg │ │ ├── gender.png │ │ ├── hj.jpg │ │ ├── home01.jpg │ │ ├── home02.jpg │ │ ├── home03.jpg │ │ ├── home04.jpg │ │ ├── home05.jpg │ │ ├── hsnr.jpg │ │ ├── hsnrm.jpg │ │ ├── imgs │ │ │ ├── angongda.jpg │ │ │ ├── aoliao.jpg │ │ │ ├── bangdayin.jpg │ │ │ ├── call2.gif │ │ │ ├── chepiao.jpg │ │ │ ├── dabaitu.jpg │ │ │ ├── dadapaopaotang.jpg │ │ │ ├── ems.jpg │ │ │ ├── flower.gif │ │ │ ├── heniunai.jpg │ │ │ ├── hotkid.jpg │ │ │ ├── index_menu.gif │ │ │ ├── jidingchaofan.jpg │ │ │ ├── look.gif │ │ │ ├── luchunchun.jpg │ │ │ ├── order_detials_bg.png │ │ │ ├── shuizhuniurou.jpg │ │ │ ├── shunfeng.jpg │ │ │ ├── wangzainiunai.jpg │ │ │ ├── xiaowaidaigou.jpg │ │ │ ├── yatudou.jpg │ │ │ ├── yuantong.jpg │ │ │ ├── zhenzhibang.jpg │ │ │ ├── zhongtong.jpg │ │ │ ├── zhupafan.jpg │ │ │ └── zuche.jpg │ │ ├── logo.jpg │ │ ├── lt.jpg │ │ ├── nn.jpg │ │ ├── phsp.jpg │ │ ├── swiper-1.jpg │ │ ├── swiper-2.jpg │ │ ├── swiper-3.jpg │ │ ├── tb.jpg │ │ ├── tg.jpg │ │ ├── tls.jpg │ │ ├── tx.jpg │ │ ├── user.png │ │ ├── wl.jpg │ │ ├── wznn.jpg │ │ ├── yl.jpg │ │ ├── ytd.jpg │ │ ├── zm.jpg │ │ └── zzbbbt.jpg │ ├── js │ │ ├── bootstrap.min.js │ │ ├── buy-success.js │ │ ├── deliver.js │ │ ├── detail.js │ │ ├── example.js │ │ ├── index.js │ │ ├── jquery.min.js │ │ ├── lib │ │ │ ├── parabola.js │ │ │ ├── picker.js │ │ │ ├── serverUrl.js │ │ │ ├── swipe.js │ │ │ └── zepto.min.js │ │ ├── list.js │ │ ├── load.js │ │ ├── login.js │ │ ├── mall.js │ │ ├── my-deliver.js │ │ ├── myinfo.js │ │ ├── npm.js │ │ ├── order.js │ │ ├── payment.js │ │ └── shopcart.js │ ├── smallschool.sql │ └── style │ │ └── weui.css │ └── templates │ ├── addAddress.html │ ├── addService.html │ ├── buy-success.html │ ├── deliver.html │ ├── errorpage.html │ ├── fbm.html │ ├── index.html │ ├── index.js │ ├── list.html │ ├── load1.html │ ├── load2.html │ ├── login.html │ ├── lt.html │ ├── my-deliver.html │ ├── myinfo.html │ ├── nn.html │ ├── payment.html │ ├── phsp.html │ ├── register.html │ ├── service_detail.html │ ├── service_list.html │ ├── service_order.html │ ├── shopcart.html │ ├── snack_detail.html │ ├── snack_list.html │ ├── snack_order.html │ ├── test.html │ ├── test │ ├── 1.jpg │ ├── add.html │ ├── img │ │ └── zm.jpg │ ├── parabola.html │ ├── parabola.js │ ├── test-2.html │ ├── test.html │ └── zepto.min.js │ ├── ticket.html │ ├── updateAddress.html │ └── yl.html └── test └── java └── com └── smallschool └── SmallschoolApplicationTests.java /.gitattributes: -------------------------------------------------------------------------------- 1 | *.java linguist-language=java 2 | *.js linguist-language=javascript 3 | *.html linguist-language=html 4 | *.css linguist-language=java 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.1.1.RELEASE 9 | 10 | 11 | com.school 12 | smallschool 13 | 0.0.1-SNAPSHOT 14 | smallschool 15 | Demo project for Spring Boot 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter-data-jpa 25 | 26 | 27 | org.springframework.boot 28 | spring-boot-starter-web 29 | 30 | 31 | 32 | mysql 33 | mysql-connector-java 34 | 35 | 36 | org.springframework.boot 37 | spring-boot-starter-test 38 | test 39 | 40 | 41 | org.springframework.boot 42 | spring-boot-starter-jdbc 43 | 44 | 45 | 46 | org.springframework.boot 47 | spring-boot-starter-data-jpa 48 | 49 | 50 | org.springframework.boot 51 | spring-boot-starter-thymeleaf 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | org.springframework.boot 61 | spring-boot-maven-plugin 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/SmallschoolApplication.java: -------------------------------------------------------------------------------- 1 | package com.smallschool; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 6 | import org.springframework.boot.web.servlet.ServletComponentScan; 7 | 8 | //@ServletComponentScan 9 | @SpringBootApplication 10 | 11 | //@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 12 | public class SmallschoolApplication { 13 | 14 | public static void main(String[] args) { 15 | SpringApplication.run(SmallschoolApplication.class, args); 16 | } 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/CartController.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.controller; 2 | 3 | import com.smallschool.entity.CartEntity; 4 | import com.smallschool.entity.SnackEntity; 5 | import com.smallschool.service.CartRepository; 6 | import com.smallschool.service.SnackRepository; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Controller; 9 | import org.springframework.web.bind.annotation.PathVariable; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RequestParam; 12 | import org.springframework.web.bind.annotation.ResponseBody; 13 | 14 | import java.text.SimpleDateFormat; 15 | import java.util.Date; 16 | 17 | /* 18 | * 实现商品购物车的添加和删除功能 19 | * */ 20 | @Controller 21 | @RequestMapping("/cart") 22 | public class CartController { 23 | @Autowired 24 | CartRepository cartRepository; 25 | @Autowired 26 | SnackRepository snackRepository; 27 | 28 | @RequestMapping("/addCart") 29 | @ResponseBody 30 | public void addCart(@RequestParam(value = "snackId",defaultValue = "") String snackId){ 31 | 32 | int snack_id =Integer.parseInt(snackId); 33 | CartEntity cartEntity=cartRepository.findBySnackId(snack_id); 34 | if (cartEntity != null){ 35 | int snackNum =cartEntity.getSnackNumber(); 36 | cartEntity.setSnackNumber(snackNum+1); 37 | cartRepository.save(cartEntity); 38 | }else { 39 | // Long cartId = Long.parseLong((new Date()).toLocaleString()); 40 | 41 | Date date =new Date(); 42 | SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss"); 43 | String dates =sdf.format(date); 44 | // System.out.println("dates:"+dates); 45 | Long cartId =Long.parseLong(dates); 46 | 47 | // System.out.println("cartId:"+cartId); 48 | assert false; 49 | cartEntity =new CartEntity(); 50 | cartEntity.setCartId(cartId); 51 | cartEntity.setSnackId(snack_id); 52 | SnackEntity snackEntity =snackRepository.findById(snack_id).orElse(null); 53 | cartEntity.setSnackName(snackEntity.getSnackName()); 54 | cartEntity.setSnackPrice(snackEntity.getSnackPrice()); 55 | cartEntity.setSnackNumber(1); 56 | System.out.println(cartEntity.toString()); 57 | cartRepository.save(cartEntity); 58 | } 59 | System.out.println("add success"); 60 | } 61 | 62 | @RequestMapping("/subCart") 63 | @ResponseBody 64 | public void subCart(@RequestParam(value = "snackId",defaultValue = "") String snackId){ 65 | 66 | int snack_id =Integer.parseInt(snackId); 67 | CartEntity cartEntity=cartRepository.findBySnackId(snack_id); 68 | if (cartEntity != null){ 69 | int snackNum =cartEntity.getSnackNumber(); 70 | if (snackNum > 1) { 71 | cartEntity.setSnackNumber(snackNum - 1); 72 | cartRepository.save(cartEntity); 73 | }else if (snackNum ==1){ 74 | cartRepository.delete(cartEntity); 75 | } 76 | } 77 | /*else { 78 | // Long cartId = Long.parseLong((new Date()).toLocaleString()); 79 | 80 | Date date =new Date(); 81 | SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss"); 82 | String dates =sdf.format(date); 83 | // System.out.println("dates:"+dates); 84 | Long cartId =Long.parseLong(dates); 85 | 86 | // System.out.println("cartId:"+cartId); 87 | assert false; 88 | cartEntity =new CartEntity(); 89 | cartEntity.setCartId(cartId); 90 | cartEntity.setSnackId(snack_id); 91 | SnackEntity snackEntity =snackRepository.findById(snack_id).orElse(null); 92 | cartEntity.setSnackName(snackEntity.getSnackName()); 93 | cartEntity.setSnackPrice(snackEntity.getSnackPrice()); 94 | cartEntity.setSnackNumber(1); 95 | System.out.println(cartEntity.toString()); 96 | cartRepository.save(cartEntity); 97 | }*/ 98 | System.out.println("reduce success"); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/SnackController.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.controller; 2 | 3 | import com.smallschool.entity.SnackEntity; 4 | import com.smallschool.entity.UserEntity; 5 | import com.smallschool.service.SnackOrderRepository; 6 | import com.smallschool.service.SnackRepository; 7 | import com.smallschool.service.UserRepository; 8 | import org.apache.tomcat.util.codec.binary.Base64; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Controller; 11 | import org.springframework.web.bind.annotation.PathVariable; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | 14 | 15 | import javax.servlet.http.HttpSession; 16 | import java.util.List; 17 | import java.util.Map; 18 | 19 | @Controller 20 | @RequestMapping("/snack") 21 | public class SnackController { 22 | 23 | 24 | @Autowired 25 | private SnackRepository snackRepository; 26 | 27 | @Autowired 28 | private SnackOrderRepository snackOrderRepository; 29 | 30 | @Autowired 31 | private UserRepository userRepository; 32 | 33 | /* 34 | * 转入index主页 35 | * */ 36 | @RequestMapping({"/","/index"}) 37 | public String main(Map map, HttpSession httpSession){ 38 | 39 | Object userEntity =httpSession.getAttribute("user"); 40 | // System.out.println(userEntity.toString()); 41 | UserEntity user = (UserEntity)userEntity; 42 | map.put("user",user); 43 | 44 | return "index"; 45 | } 46 | 47 | /* 48 | * 重定向:转入服务详情 49 | * */ 50 | @RequestMapping("/toService") 51 | public String toService(){ 52 | return "redirect:/service/service"; 53 | } 54 | 55 | /* 56 | * 跳转到 零食详情页面 (页面未完成) 57 | * */ 58 | @RequestMapping(value = "/list") 59 | public String getSnackList(Map map){ 60 | 61 | List list = snackRepository.findAll(); 62 | map.put("list", list); 63 | for (Object s:list) { 64 | System.out.println(s.toString()); 65 | } 66 | return "list"; 67 | } 68 | 69 | @RequestMapping("/toSnackOrder") 70 | public String getSnackOrderList(Map map){ 71 | 72 | List order_list = snackOrderRepository.findAll(); 73 | map.put("order_list",order_list); 74 | return "shopcart"; 75 | } 76 | 77 | @RequestMapping("/snackList/{category}") 78 | public String snackList(Map map, @PathVariable("category") int category){ 79 | List snack_list = snackRepository.findBySnackCategory(category); 80 | Base64 encoder = new Base64(); 81 | for (SnackEntity snack:snack_list) { 82 | String pic ="data:image/jpeg;base64,"+encoder.encodeBase64String(snack.getSnackPic()); 83 | snack.setPicString(pic); 84 | } 85 | map.put("snack_list",snack_list); 86 | return "snack_list"; 87 | } 88 | 89 | @RequestMapping("/snackDetail/{snackId}") 90 | public String snackDetail(@PathVariable("snackId") int snackId,Map map){ 91 | //int snack_id = Integer.parseInt(snackId); 92 | SnackEntity snack = snackRepository.findById(snackId).orElse(null); 93 | Base64 encoder = new Base64(); 94 | String pic ="data:image/jpeg;base64,"+encoder.encodeBase64String(snack.getSnackPic()); 95 | snack.setPicString(pic); 96 | System.out.println(snack.toString()); 97 | map.put("snack_details",snack); 98 | return "snack_detail"; 99 | } 100 | 101 | 102 | /** 103 | * @param map 104 | * @return 跳转进入购物车 105 | */ 106 | @RequestMapping("/shopcart") 107 | public String shopCart(Map map){ 108 | 109 | List user_list = userRepository.findAll(); 110 | map.put("user_list",user_list); 111 | 112 | return "shopcart"; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.controller; 2 | 3 | import com.smallschool.entity.DeliverEntity; 4 | import com.smallschool.entity.UserEntity; 5 | import com.smallschool.service.DeliverRepository; 6 | import com.smallschool.service.UserRepository; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.HttpRequest; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.ui.Model; 11 | import org.springframework.web.bind.annotation.PathVariable; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.RequestParam; 14 | 15 | import javax.servlet.http.HttpServlet; 16 | import javax.servlet.http.HttpServletRequest; 17 | import javax.servlet.http.HttpSession; 18 | import java.text.SimpleDateFormat; 19 | import java.util.ArrayList; 20 | import java.util.Date; 21 | import java.util.List; 22 | import java.util.Map; 23 | 24 | @Controller 25 | @RequestMapping("/user") 26 | public class UserController { 27 | 28 | @Autowired 29 | private UserRepository userRepository; 30 | @Autowired 31 | private DeliverRepository deliverRepository; 32 | 33 | /* 34 | * 获取用户信息- 35 | * */ 36 | @RequestMapping("/info") 37 | public String getUser(Map map, Integer id, HttpServletRequest request){ 38 | id = 1; 39 | UserEntity userEntity =userRepository.findById(id).orElse(null); 40 | List list = new ArrayList<>(); 41 | list.add(userEntity); 42 | map.put("user_list",list); 43 | 44 | UserEntity user =(UserEntity)request.getSession().getAttribute("user"); 45 | map.put("user",user); 46 | System.out.println(user); 47 | return "myinfo"; 48 | } 49 | 50 | /* 51 | * 地址管理 52 | * */ 53 | @RequestMapping("/addressMng") 54 | public String toManageAddress(Map map, HttpServletRequest request){ 55 | UserEntity user = (UserEntity)request.getSession().getAttribute("user"); 56 | String phone =user.getPhone(); 57 | 58 | 59 | List deliver_list = deliverRepository.findByUserPhone(phone); 60 | 61 | map.put("deliver_list",deliver_list); 62 | return "my-deliver"; 63 | } 64 | 65 | @RequestMapping("/toAddAddress") 66 | public String toAddress(){ 67 | return "addAddress"; 68 | } 69 | 70 | @RequestMapping("/addAddress") 71 | public String addAddress(@RequestParam("recipients") String recipients, 72 | @RequestParam("recPhone") String recPhone, 73 | @RequestParam("recGender") String recGender, 74 | @RequestParam("address") String address, 75 | HttpServletRequest request){ 76 | 77 | UserEntity user = (UserEntity)request.getSession().getAttribute("user"); 78 | String phone =user.getPhone(); 79 | DeliverEntity deliverEntity =new DeliverEntity(); 80 | SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss"); 81 | String dates =sdf.format(new Date()); 82 | deliverEntity.setDeliverId(dates); 83 | deliverEntity.setUserPhone(phone); 84 | deliverEntity.setAddress(address); 85 | deliverEntity.setName(recipients); 86 | deliverEntity.setGender(recGender); 87 | deliverEntity.setPhone(recPhone); 88 | 89 | deliverRepository.save(deliverEntity); 90 | 91 | return "redirect:/user/addressMng"; 92 | } 93 | @RequestMapping("/toUpdate/{deliverId}") 94 | public String toUpdate(@PathVariable("deliverId") String deliverId, Map map){ 95 | DeliverEntity deliverEntity = deliverRepository.findById(deliverId).orElse(null); 96 | if (deliverEntity == null){ 97 | return "errorpage"; 98 | } 99 | map.put("deliverEntity",deliverEntity); 100 | return "updateAddress"; 101 | } 102 | @RequestMapping("/update/{deliverId}") 103 | public String addressUpdate(@PathVariable("deliverId") String deliverId, 104 | @RequestParam("recipients") String recipients, 105 | @RequestParam("recPhone") String recPhone, 106 | @RequestParam("recGender") String recGender, 107 | @RequestParam("address") String address){ 108 | DeliverEntity deliverEntity =deliverRepository.findById(deliverId).orElse(null); 109 | SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmss"); 110 | String dates =sdf.format(new Date()); 111 | deliverEntity.setAddress(address); 112 | deliverEntity.setName(recipients); 113 | deliverEntity.setGender(recGender); 114 | deliverEntity.setPhone(recPhone); 115 | deliverRepository.save(deliverEntity); 116 | 117 | return "redirect:/user/addressMng"; 118 | } 119 | 120 | @RequestMapping("/coupon") 121 | public String coupon(Map map){ 122 | 123 | return "ticket"; 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/login/LoginHandlerInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.controller.login; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | import org.springframework.web.servlet.ModelAndView; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | public class LoginHandlerInterceptor implements HandlerInterceptor { 10 | @Override 11 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 12 | Object user = request.getSession().getAttribute("user"); 13 | if (user == null) 14 | {//未登录 15 | request.setAttribute("msg","请先登录"); 16 | //请求转发 17 | request.getRequestDispatcher("/login").forward(request,response); 18 | return false; 19 | } 20 | //已登录 21 | else return true; 22 | 23 | } 24 | //登录检查 25 | 26 | 27 | @Override 28 | public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { 29 | 30 | } 31 | 32 | @Override 33 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/login/Logincontroller.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.controller.login; 2 | 3 | 4 | import com.smallschool.entity.UserEntity; 5 | import com.smallschool.service.UserRepository; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.web.bind.annotation.GetMapping; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RequestParam; 11 | 12 | import javax.servlet.http.HttpSession; 13 | import java.util.Map; 14 | 15 | 16 | @Controller 17 | //@RequestMapping("/login") 18 | public class Logincontroller { 19 | 20 | @Autowired 21 | private UserRepository userRepository; 22 | 23 | @RequestMapping(value = "/login") 24 | public String login(@RequestParam(value = "phone",defaultValue = "") String phone, @RequestParam(value = "password",defaultValue = "") String password, Map map, HttpSession session) 25 | { 26 | if (phone.equals("")&&password.equals("")){ 27 | return "login"; 28 | }else{ 29 | 30 | UserEntity user= userRepository.findByPhone(phone); 31 | 32 | if (user ==null){ 33 | map.put("msg","该用户不存在"); 34 | return "login"; 35 | }else if (password.equals(user.getPassword())){ 36 | session.setAttribute("user",user); 37 | return "redirect:/snack/index"; 38 | } 39 | else 40 | { 41 | map.put("msg","密码错误"); 42 | return "login"; 43 | } 44 | } 45 | } 46 | //退出登录 47 | @GetMapping("/logout") 48 | public String logout(HttpSession session) { 49 | // 移除session 50 | session.removeAttribute("user"); 51 | return "redirect:/snack/index"; 52 | } 53 | 54 | /* 55 | * 跳转注册 56 | * */ 57 | @RequestMapping("/register") 58 | public String register(){ 59 | 60 | return "register"; 61 | } 62 | 63 | /* 64 | * 保存用户 65 | * */ 66 | @RequestMapping("/saveUser") 67 | public String saveUser(@RequestParam("name") String name, 68 | @RequestParam("phone") String phone, 69 | @RequestParam("password") String password, 70 | @RequestParam("gender") String gender, 71 | @RequestParam("college") String college, 72 | @RequestParam("major") String major, 73 | HttpSession session){ 74 | 75 | UserEntity userEntity =new UserEntity(); 76 | userEntity.setName(name); 77 | userEntity.setPhone(phone); 78 | userEntity.setPassword(password); 79 | userEntity.setGender(gender); 80 | userEntity.setCollege(college); 81 | userEntity.setMajor(major); 82 | 83 | userRepository.save(userEntity); 84 | session.setAttribute("user",userEntity); 85 | return "redirect:/snack/index"; 86 | } 87 | 88 | } 89 | 90 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/controller/login/config.java: -------------------------------------------------------------------------------- 1 | //拦截器配置 2 | package com.smallschool.controller.login; 3 | 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 8 | 9 | //@Configuration,标明了该类是一个配置类并且会将该类作为一个SpringBean添加到IOC容器内 10 | @Configuration 11 | public class config extends WebMvcConfigurerAdapter { 12 | @Bean 13 | public WebMvcConfigurerAdapter WebMvcAutoConfigurationAdapter() 14 | { 15 | WebMvcConfigurerAdapter adapter=new WebMvcConfigurerAdapter(){ 16 | //注册拦截器 17 | @Override 18 | public void addInterceptors(InterceptorRegistry registry) { 19 | registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/snackOrder/toShopCart","/user/info","/service/toOrder").excludePathPatterns("login.html","/","/login","/login"); 20 | } 21 | }; 22 | 23 | return adapter ; 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/CartEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.*; 4 | 5 | @Entity 6 | @Table(name = "app_scl_shopping_cart") 7 | public class CartEntity { 8 | 9 | @Id 10 | private Long cartId; 11 | 12 | 13 | private int snackId; 14 | private String snackName; 15 | private Float snackPrice; 16 | private int snackNumber; 17 | 18 | public CartEntity() { 19 | } 20 | 21 | public CartEntity(int snackId, String snackName, Float snackPrice, int snackNumber) { 22 | this.snackId = snackId; 23 | this.snackName = snackName; 24 | this.snackPrice = snackPrice; 25 | this.snackNumber = snackNumber; 26 | } 27 | 28 | public Long getCartId() { 29 | return cartId; 30 | } 31 | 32 | public void setCartId(Long cartId) { 33 | this.cartId = cartId; 34 | } 35 | 36 | public int getSnackId() { 37 | return snackId; 38 | } 39 | 40 | public void setSnackId(int snackId) { 41 | this.snackId = snackId; 42 | } 43 | 44 | public String getSnackName() { 45 | return snackName; 46 | } 47 | 48 | public void setSnackName(String snackName) { 49 | this.snackName = snackName; 50 | } 51 | 52 | public Float getSnackPrice() { 53 | return snackPrice; 54 | } 55 | 56 | public void setSnackPrice(Float snackPrice) { 57 | this.snackPrice = snackPrice; 58 | } 59 | 60 | public int getSnackNumber() { 61 | return snackNumber; 62 | } 63 | 64 | public void setSnackNumber(int snackNumber) { 65 | this.snackNumber = snackNumber; 66 | } 67 | 68 | @Override 69 | public String toString() { 70 | return "CartEntity{" + 71 | "cartId=" + cartId + 72 | ", snackId=" + snackId + 73 | ", snackName='" + snackName + '\'' + 74 | ", snackPrice=" + snackPrice + 75 | ", snackNumber=" + snackNumber + 76 | '}'; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/DeliverEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.Id; 5 | import javax.persistence.Table; 6 | 7 | @Entity 8 | @Table(name = "app_scl_deliver") 9 | public class DeliverEntity { 10 | 11 | @Id 12 | private String deliverId; 13 | 14 | private String userPhone; 15 | 16 | private String name; 17 | 18 | private String gender; 19 | 20 | private String phone; 21 | 22 | private String address; 23 | 24 | public DeliverEntity() { 25 | } 26 | 27 | public DeliverEntity(String deliverId, String userPhone, String name, String gender, String phone, String address) { 28 | this.deliverId = deliverId; 29 | this.userPhone = userPhone; 30 | this.name = name; 31 | this.gender = gender; 32 | this.phone = phone; 33 | this.address = address; 34 | } 35 | 36 | public String getDeliverId() { 37 | return deliverId; 38 | } 39 | 40 | public void setDeliverId(String deliverId) { 41 | this.deliverId = deliverId; 42 | } 43 | 44 | public String getUserPhone() { 45 | return userPhone; 46 | } 47 | 48 | public void setUserPhone(String userPhone) { 49 | this.userPhone = userPhone; 50 | } 51 | 52 | public String getName() { 53 | return name; 54 | } 55 | 56 | public void setName(String name) { 57 | this.name = name; 58 | } 59 | 60 | public String getGender() { 61 | return gender; 62 | } 63 | 64 | public void setGender(String gender) { 65 | this.gender = gender; 66 | } 67 | 68 | public String getPhone() { 69 | return phone; 70 | } 71 | 72 | public void setPhone(String phone) { 73 | this.phone = phone; 74 | } 75 | 76 | public String getAddress() { 77 | return address; 78 | } 79 | 80 | public void setAddress(String address) { 81 | this.address = address; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/ServiceCategoryEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | 4 | import javax.persistence.Column; 5 | import javax.persistence.Entity; 6 | import javax.persistence.Id; 7 | import javax.persistence.Table; 8 | 9 | @Entity 10 | @Table(name = "app_scl_service_category") 11 | public class ServiceCategoryEntity { 12 | 13 | @Id 14 | @Column(name = "service_category_id") 15 | private int serviceCategoryId; 16 | 17 | @Column(name = "service_category") 18 | private String serviceCategory; 19 | 20 | public ServiceCategoryEntity() { 21 | } 22 | 23 | public ServiceCategoryEntity(int serviceCategoryId, String serviceCategory) { 24 | this.serviceCategoryId = serviceCategoryId; 25 | this.serviceCategory = serviceCategory; 26 | } 27 | 28 | public int getServiceCategoryId() { 29 | return serviceCategoryId; 30 | } 31 | 32 | public void setServiceCategoryId(int serviceCategoryId) { 33 | this.serviceCategoryId = serviceCategoryId; 34 | } 35 | 36 | public String getServiceCategory() { 37 | return serviceCategory; 38 | } 39 | 40 | public void setServiceCategory(String serviceCategory) { 41 | this.serviceCategory = serviceCategory; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/ServiceEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.Id; 5 | import javax.persistence.Table; 6 | import java.util.Date; 7 | 8 | @Entity 9 | @Table(name = "app_scl_services") 10 | public class ServiceEntity { 11 | 12 | @Id 13 | private Long serviceId; 14 | 15 | private String serviceName; 16 | 17 | private int serviceCategory; 18 | 19 | private String serviceContent; 20 | 21 | private float serviceFee; 22 | 23 | private int serviceStatus; 24 | 25 | private Date serviceStime; 26 | 27 | private Date serviceEtime; 28 | 29 | 30 | public ServiceEntity() { 31 | } 32 | 33 | public ServiceEntity(Long serviceId, String serviceName, int serviceCategory, String serviceContent, float serviceFee, int serviceStatus, Date serviceStime, Date serviceEtime) { 34 | this.serviceId = serviceId; 35 | this.serviceName = serviceName; 36 | this.serviceCategory = serviceCategory; 37 | this.serviceContent = serviceContent; 38 | this.serviceFee = serviceFee; 39 | this.serviceStatus = serviceStatus; 40 | this.serviceStime = serviceStime; 41 | this.serviceEtime = serviceEtime; 42 | } 43 | 44 | public Long getServiceId() { 45 | return serviceId; 46 | } 47 | 48 | public void setServiceId(Long serviceId) { 49 | this.serviceId = serviceId; 50 | } 51 | 52 | public String getServiceName() { 53 | return serviceName; 54 | } 55 | 56 | public void setServiceName(String serviceName) { 57 | this.serviceName = serviceName; 58 | } 59 | 60 | public int getServiceCategory() { 61 | return serviceCategory; 62 | } 63 | 64 | public void setServiceCategory(int serviceCategory) { 65 | this.serviceCategory = serviceCategory; 66 | } 67 | 68 | public String getServiceContent() { 69 | return serviceContent; 70 | } 71 | 72 | public void setServiceContent(String serviceContent) { 73 | this.serviceContent = serviceContent; 74 | } 75 | 76 | public float getServiceFee() { 77 | return serviceFee; 78 | } 79 | 80 | public void setServiceFee(float serviceFee) { 81 | this.serviceFee = serviceFee; 82 | } 83 | 84 | public int getServiceStatus() { 85 | return serviceStatus; 86 | } 87 | 88 | public void setServiceStatus(int serviceStatus) { 89 | this.serviceStatus = serviceStatus; 90 | } 91 | 92 | public Date getServiceStime() { 93 | return serviceStime; 94 | } 95 | 96 | public void setServiceStime(Date serviceStime) { 97 | this.serviceStime = serviceStime; 98 | } 99 | 100 | public Date getServiceEtime() { 101 | return serviceEtime; 102 | } 103 | 104 | public void setServiceEtime(Date serviceEtime) { 105 | this.serviceEtime = serviceEtime; 106 | } 107 | 108 | @Override 109 | public String toString() { 110 | return "ServiceEntity{" + 111 | "serviceId=" + serviceId + 112 | ", serviceName='" + serviceName + '\'' + 113 | ", serviceCategory=" + serviceCategory + 114 | ", serviceContent='" + serviceContent + '\'' + 115 | ", serviceFee=" + serviceFee + 116 | ", serviceStatus=" + serviceStatus + 117 | ", serviceStime=" + serviceStime + 118 | ", serviceEtime=" + serviceEtime + 119 | '}'; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/ServiceOrderEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.Id; 6 | import javax.persistence.Table; 7 | import java.util.Date; 8 | 9 | @Entity 10 | @Table(name = "app_scl_service_order") 11 | public class ServiceOrderEntity { 12 | 13 | @Id 14 | @Column(name = "order_service_id") 15 | private String orderServiceId; 16 | 17 | @Column(name="service_id") 18 | private Long serviceId; 19 | 20 | @Column(name = "service_content") 21 | private String serviceContent; 22 | 23 | @Column(name = "order_service_fee") 24 | private float orderServiceFee; 25 | 26 | 27 | @Column(name = "order_platform_fee") 28 | private String orderPlatformFee; 29 | 30 | 31 | @Column(name = "order_service_score") 32 | private String orderServiceScore; 33 | 34 | @Column(name = "order_service_category") 35 | private int orderServiceCategory; 36 | 37 | @Column(name = "order_service_status") 38 | private String orderServiceStatus; 39 | 40 | 41 | @Column(name = "order_service_stime") 42 | private Date orderServiceStime; 43 | 44 | @Column(name = "order_service_etime") 45 | private Date orderServiceEtime; 46 | 47 | public ServiceOrderEntity() { 48 | } 49 | 50 | 51 | public ServiceOrderEntity(String orderServiceId, Long serviceId, String serviceContent, float orderServiceFee, String orderPlatformFee, String orderServiceScore, String orderServiceStatus, Date orderServiceStime, Date orderServiceEtime) { 52 | this.orderServiceId = orderServiceId; 53 | this.serviceId = serviceId; 54 | this.serviceContent = serviceContent; 55 | this.orderServiceFee = orderServiceFee; 56 | this.orderPlatformFee = orderPlatformFee; 57 | this.orderServiceScore = orderServiceScore; 58 | this.orderServiceStatus = orderServiceStatus; 59 | this.orderServiceStime = orderServiceStime; 60 | this.orderServiceEtime = orderServiceEtime; 61 | } 62 | 63 | public String getOrderServiceId() { 64 | return orderServiceId; 65 | } 66 | 67 | public void setOrderServiceId(String orderServiceId) { 68 | this.orderServiceId = orderServiceId; 69 | } 70 | 71 | public Long getServiceId() { 72 | return serviceId; 73 | } 74 | 75 | public int getOrderServiceCategory() { 76 | return orderServiceCategory; 77 | } 78 | 79 | public void setOrderServiceCategory(int orderServiceCategory) { 80 | this.orderServiceCategory = orderServiceCategory; 81 | } 82 | 83 | public String getServiceContent() { 84 | return serviceContent; 85 | } 86 | 87 | public void setServiceContent(String serviceContent) { 88 | this.serviceContent = serviceContent; 89 | } 90 | 91 | public void setServiceId(Long serviceId) { 92 | this.serviceId = serviceId; 93 | } 94 | 95 | public float getOrderServiceFee() { 96 | return orderServiceFee; 97 | } 98 | 99 | public void setOrderServiceFee(float orderServiceFee) { 100 | this.orderServiceFee = orderServiceFee; 101 | } 102 | 103 | public String getOrderPlatformFee() { 104 | return orderPlatformFee; 105 | } 106 | 107 | public void setOrderPlatformFee(String orderPlatformFee) { 108 | this.orderPlatformFee = orderPlatformFee; 109 | } 110 | 111 | public String getOrderServiceScore() { 112 | return orderServiceScore; 113 | } 114 | 115 | public void setOrderServiceScore(String orderServiceScore) { 116 | this.orderServiceScore = orderServiceScore; 117 | } 118 | 119 | public String getOrderServiceStatus() { 120 | return orderServiceStatus; 121 | } 122 | 123 | public void setOrderServiceStatus(String orderServiceStatus) { 124 | this.orderServiceStatus = orderServiceStatus; 125 | } 126 | 127 | public Date getOrderServiceStime() { 128 | return orderServiceStime; 129 | } 130 | 131 | public void setOrderServiceStime(Date orderServiceStime) { 132 | this.orderServiceStime = orderServiceStime; 133 | } 134 | 135 | public Date getOrderServiceEtime() { 136 | return orderServiceEtime; 137 | } 138 | 139 | public void setOrderServiceEtime(Date orderServiceEtime) { 140 | this.orderServiceEtime = orderServiceEtime; 141 | } 142 | 143 | @Override 144 | public String toString() { 145 | return "ServiceOrderEntity{" + 146 | "orderServiceId='" + orderServiceId + '\'' + 147 | ", serviceId=" + serviceId + 148 | ", serviceContent='" + serviceContent + '\'' + 149 | ", orderServiceFee='" + orderServiceFee + '\'' + 150 | ", orderPlatformFee='" + orderPlatformFee + '\'' + 151 | ", orderServiceScore='" + orderServiceScore + '\'' + 152 | ", orderServiceStatus='" + orderServiceStatus + '\'' + 153 | ", orderServiceStime=" + orderServiceStime + 154 | ", orderServiceEtime=" + orderServiceEtime + 155 | '}'; 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/SnackEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.*; 4 | import java.sql.Blob; 5 | 6 | @Entity 7 | @Table(name = "app_scl_snacks") 8 | public class SnackEntity { 9 | 10 | @Id 11 | @GeneratedValue(strategy = GenerationType.AUTO) 12 | private int snackId; 13 | 14 | private String snackName; 15 | private Float snackPrice; 16 | private int snackCategory; 17 | private String snackInfo; 18 | private int snackBalance; 19 | 20 | private byte[] snackPic; 21 | 22 | @Transient 23 | private String picString; 24 | 25 | public SnackEntity() { 26 | } 27 | 28 | public SnackEntity(String snackName, Float snackPrice, int snackCategory, String snackInfo, int snackBalance,byte[] snackPic) { 29 | this.snackName = snackName; 30 | this.snackPrice = snackPrice; 31 | this.snackCategory = snackCategory; 32 | this.snackInfo = snackInfo; 33 | this.snackBalance = snackBalance; 34 | this.snackPic = snackPic; 35 | } 36 | 37 | public int getSnackId() { 38 | return snackId; 39 | } 40 | 41 | public void setSnackId(int snackId) { 42 | this.snackId = snackId; 43 | } 44 | 45 | public String getSnackName() { 46 | return snackName; 47 | } 48 | 49 | public void setSnackName(String snackName) { 50 | this.snackName = snackName; 51 | } 52 | 53 | public Float getSnackPrice() { 54 | return snackPrice; 55 | } 56 | 57 | public void setSnackPrice(Float snackPrice) { 58 | this.snackPrice = snackPrice; 59 | } 60 | 61 | public int getSnackCategory() { 62 | return snackCategory; 63 | } 64 | 65 | public void setSnackCategory(int snackCategory) { 66 | this.snackCategory = snackCategory; 67 | } 68 | 69 | public String getSnackInfo() { 70 | return snackInfo; 71 | } 72 | 73 | public void setSnackInfo(String snackInfo) { 74 | this.snackInfo = snackInfo; 75 | } 76 | 77 | public int getSnackBalance() { 78 | return snackBalance; 79 | } 80 | 81 | public void setSnackBalance(int snackBalance) { 82 | this.snackBalance = snackBalance; 83 | } 84 | 85 | public byte[] getSnackPic() { 86 | return snackPic; 87 | } 88 | 89 | public void setSnackPic(byte[] snackPic) { 90 | this.snackPic = snackPic; 91 | } 92 | 93 | public String getPicString() { 94 | return picString; 95 | } 96 | 97 | public void setPicString(String picString) { 98 | this.picString = picString; 99 | } 100 | 101 | @Override 102 | public String toString() { 103 | return "SnackEntity{" + 104 | "snackId=" + snackId + 105 | ", snackName='" + snackName + '\'' + 106 | ", snackPrice=" + snackPrice + 107 | ", snackCategory=" + snackCategory + 108 | ", snackInfo='" + snackInfo + '\'' + 109 | ", snackBalance=" + snackBalance + 110 | ", snackPic=" + snackPic + 111 | '}'; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/SnackOrderEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.Id; 5 | import javax.persistence.Table; 6 | import java.util.Date; 7 | 8 | @Entity 9 | @Table(name = "app_scl_snack_order") 10 | public class SnackOrderEntity { 11 | 12 | @Id 13 | private String orderSnackId; 14 | 15 | private int userId; 16 | 17 | private int snackId; 18 | 19 | private String name; 20 | 21 | private String phone; 22 | 23 | private Date orderTime; 24 | 25 | private String address; 26 | 27 | private String deliverTime; 28 | 29 | private float totalCost; 30 | 31 | private String note; 32 | 33 | public SnackOrderEntity() { 34 | } 35 | 36 | public SnackOrderEntity(String orderSnackId, int userId, int snackId, String name, String phone, Date orderTime, String address,String deliverTime, float totalCost) { 37 | this.orderSnackId = orderSnackId; 38 | this.userId = userId; 39 | this.snackId = snackId; 40 | this.name = name; 41 | this.phone = phone; 42 | this.orderTime = orderTime; 43 | this.address = address; 44 | this.deliverTime = deliverTime; 45 | this.totalCost = totalCost; 46 | } 47 | 48 | public String getDeliverTime() { 49 | return deliverTime; 50 | } 51 | 52 | public void setDeliverTime(String deliverTime) { 53 | this.deliverTime = deliverTime; 54 | } 55 | 56 | public String getOrderSnackId() { 57 | return orderSnackId; 58 | } 59 | 60 | public void setOrderSnackId(String orderSnackId) { 61 | this.orderSnackId = orderSnackId; 62 | } 63 | 64 | public int getUserId() { 65 | return userId; 66 | } 67 | 68 | public void setUserId(int userId) { 69 | this.userId = userId; 70 | } 71 | 72 | public int getSnackId() { 73 | return snackId; 74 | } 75 | 76 | public void setSnackId(int snackId) { 77 | this.snackId = snackId; 78 | } 79 | 80 | public String getName() { 81 | return name; 82 | } 83 | 84 | public void setName(String name) { 85 | this.name = name; 86 | } 87 | 88 | public String getPhone() { 89 | return phone; 90 | } 91 | 92 | public void setPhone(String phone) { 93 | this.phone = phone; 94 | } 95 | 96 | public Date getOrderTime() { 97 | return orderTime; 98 | } 99 | 100 | public void setOrderTime(Date orderTime) { 101 | this.orderTime = orderTime; 102 | } 103 | 104 | public String getAddress() { 105 | return address; 106 | } 107 | 108 | public void setAddress(String address) { 109 | this.address = address; 110 | } 111 | 112 | public float getTotalCost() { 113 | return totalCost; 114 | } 115 | 116 | public void setTotalCost(float totalCost) { 117 | this.totalCost = totalCost; 118 | } 119 | 120 | public String getNote() { 121 | return note; 122 | } 123 | 124 | public void setNote(String note) { 125 | this.note = note; 126 | } 127 | 128 | @Override 129 | public String toString() { 130 | return "SnackOrderEntity{" + 131 | "orderSnackId='" + orderSnackId + '\'' + 132 | ", userId=" + userId + 133 | ", snackId=" + snackId + 134 | ", name='" + name + '\'' + 135 | ", phone='" + phone + '\'' + 136 | ", orderTime=" + orderTime + 137 | ", address='" + address + '\'' + 138 | ", totalCost=" + totalCost + 139 | '}'; 140 | } 141 | } 142 | 143 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/entity/UserEntity.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.entity; 2 | 3 | import javax.persistence.*; 4 | 5 | @Entity 6 | @Table(name="app_scl_user_info") 7 | public class UserEntity { 8 | 9 | @Id 10 | @GeneratedValue(strategy = GenerationType.AUTO) 11 | private int userId; 12 | 13 | @Column(name = "phone",nullable = false) 14 | private String phone; 15 | @Column(name = "password",nullable = false) 16 | private String password; 17 | @Column(name = "name",nullable = false) 18 | private String name; 19 | @Column(name="gender",nullable = false) 20 | private String gender; 21 | @Column(name = "college",nullable = false) 22 | private String college; 23 | @Column(name = "major",nullable = false) 24 | private String major; 25 | @Column(name = "location") 26 | private String address; 27 | 28 | 29 | public UserEntity() { 30 | } 31 | 32 | public UserEntity(String phone, String password, String name, String gender, String college, String major, String address) { 33 | this.phone = phone; 34 | this.password = password; 35 | this.name = name; 36 | this.gender = gender; 37 | this.college = college; 38 | this.major = major; 39 | this.address = address; 40 | 41 | } 42 | 43 | public int getUserId() { 44 | return userId; 45 | } 46 | 47 | public void setUserId(int userId) { 48 | this.userId = userId; 49 | } 50 | 51 | public String getPhone() { 52 | return phone; 53 | } 54 | 55 | public void setPhone(String phone) { 56 | this.phone = phone; 57 | } 58 | 59 | public String getPassword() { 60 | return password; 61 | } 62 | 63 | public void setPassword(String password) { 64 | this.password = password; 65 | } 66 | 67 | public String getName() { 68 | return name; 69 | } 70 | 71 | public void setName(String name) { 72 | this.name = name; 73 | } 74 | 75 | public String getGender() { 76 | return gender; 77 | } 78 | 79 | public void setGender(String gender) { 80 | this.gender = gender; 81 | } 82 | 83 | public String getCollege() { 84 | return college; 85 | } 86 | 87 | public void setCollege(String college) { 88 | this.college = college; 89 | } 90 | 91 | public String getMajor() { 92 | return major; 93 | } 94 | 95 | public void setMajor(String major) { 96 | this.major = major; 97 | } 98 | 99 | public String getAddress() { 100 | return address; 101 | } 102 | 103 | public void setAddress(String address) { 104 | this.address = address; 105 | } 106 | 107 | 108 | 109 | @Override 110 | public String toString() { 111 | return "UserEntity{" + 112 | "userId=" + userId + 113 | ", phone='" + phone + '\'' + 114 | ", password='" + password + '\'' + 115 | ", name='" + name + '\'' + 116 | ", gender='" + gender + '\'' + 117 | ", college='" + college + '\'' + 118 | ", major='" + major + '\'' + 119 | ", address='" + address + '\'' + 120 | '}'; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/CartRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | import com.smallschool.entity.CartEntity; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface CartRepository extends JpaRepository { 7 | CartEntity findBySnackId(int snackId); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/DeliverRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | import com.smallschool.entity.DeliverEntity; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.List; 7 | 8 | public interface DeliverRepository extends JpaRepository { 9 | List findByUserPhone(String userPhone); 10 | List findByName(String name); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/ServiceCategoryRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | import com.smallschool.entity.ServiceCategoryEntity; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ServiceCategoryRepository extends JpaRepository { 7 | ServiceCategoryEntity findByServiceCategory(String serviceCategory); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/ServiceOrderRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | 4 | import com.smallschool.entity.ServiceOrderEntity; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | 8 | 9 | public interface ServiceOrderRepository extends JpaRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/ServiceRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | import com.smallschool.entity.ServiceEntity; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.List; 7 | 8 | 9 | public interface ServiceRepository extends JpaRepository { 10 | public List findByServiceName(String serviceName); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/SnackOrderRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | 4 | import com.smallschool.entity.SnackOrderEntity; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | 8 | public interface SnackOrderRepository extends JpaRepository { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/SnackRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | 4 | import com.smallschool.entity.SnackEntity; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import java.util.List; 8 | 9 | public interface SnackRepository extends JpaRepository { 10 | List findBySnackCategory(int category); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/smallschool/service/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.smallschool.service; 2 | 3 | import com.smallschool.entity.UserEntity; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface UserRepository extends JpaRepository { 7 | UserEntity findByName(String name); 8 | UserEntity findByPhone(String phone); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | datasource: 5 | driver-class-name: com.mysql.jdbc.Driver 6 | url: jdbc:mysql://127.0.0.1:3306/smallschool?characterEncoding=utf8&useSSL=false 7 | username: root 8 | password: 123456 9 | jpa: 10 | generate-ddl: false 11 | hibernate: 12 | ddl-auto: update 13 | show-sql: true 14 | thymeleaf: 15 | prefix: classpath:/templates/ 16 | suffix: .html 17 | mode: HTML5 18 | servlet: 19 | content-type: text/html 20 | cache: false 21 | encoding: UTF-8 22 | resources: 23 | static-locations: classpath:/static/ -------------------------------------------------------------------------------- /src/main/resources/static/css/buy-success.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | position:relative; 6 | background: #F0EFF5; 7 | } 8 | ul, li { 9 | list-style: none; 10 | } 11 | a { 12 | text-decoration: none; 13 | } 14 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 15 | margin: 0; 16 | padding: 0; 17 | } 18 | .weui_icon_success:before { 19 | font-size: 78px; 20 | color: #FF6303; 21 | } 22 | .weui_msg .weui_msg_title { 23 | margin-bottom: 16px; 24 | font-size: 28px; 25 | color: #D54C25; 26 | text-indent: 15px; 27 | /*text-align: center;*/ 28 | } 29 | .weui_msg .weui_text_area .weui_msg_desc { 30 | /*text-indent: -15px;*/ 31 | font-size: 18px; 32 | } 33 | .weui_msg .weui_text_area .order { 34 | margin-bottom: 18px; 35 | } 36 | /*.weui_msg .weui_text_area .delivery {*/ 37 | /*font-size: 16px;*/ 38 | /*}*/ 39 | /*.weui_msg .weui_text_area .hint {*/ 40 | /*font-size: 16px;*/ 41 | /*}*/ -------------------------------------------------------------------------------- /src/main/resources/static/css/common.css: -------------------------------------------------------------------------------- 1 | .net-loading { 2 | height: 85px; 3 | width: 75px; 4 | border-radius: 4px; 5 | position: fixed; 6 | top: 50%; 7 | left: 50%; 8 | margin-top: -42px; 9 | margin-left: -37px; 10 | background: #3F3F3F; 11 | display: none; 12 | } 13 | .net-loading .loading-icon { 14 | height: 40px; 15 | width: 40px; 16 | margin: 0 auto; 17 | margin-top: 10px; 18 | background: url('../icon/net-loading.gif') no-repeat top center; 19 | background-size: contain; 20 | } 21 | .net-loading .txt { 22 | height: 20px; 23 | font-size: 16px; 24 | text-align: center; 25 | line-height: 20px; 26 | color: #ffffff; 27 | margin-top: 10px; 28 | display: block; 29 | } 30 | 31 | .buy-loading { 32 | height: 42px; 33 | width: 42px; 34 | position: fixed; 35 | top: 50%; 36 | left: 50%; 37 | margin-top: -21px; 38 | margin-left: -21px; 39 | background: url('../icon/buy-loading.gif') no-repeat top center; 40 | background-size: contain; 41 | display: none; 42 | } 43 | 44 | /* 错误提示框 */ 45 | .err-hints { 46 | font-family: '黑体', '微软雅黑'; 47 | padding: 1px 4px; 48 | font-size: 16px; 49 | color: #6E5336; 50 | letter-spacing: 1px; 51 | border-radius: 5px; 52 | background: #FFEBBB; 53 | border: solid 1px #BEA383; 54 | position:fixed; 55 | margin:0 auto; 56 | bottom:150px; 57 | left:40%; 58 | display: none; 59 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | position:relative; 6 | background: #F0EFF5; 7 | } 8 | ul, li { 9 | list-style: none; 10 | } 11 | a { 12 | text-decoration: none; 13 | } 14 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 15 | margin: 0; 16 | padding: 0; 17 | } 18 | .header .slide { 19 | height: 160px; 20 | } 21 | .header .slide .dot span{ 22 | background: #ffffff; 23 | } 24 | .header .slide .dot .cur{ 25 | background-color:#FF5A1E; 26 | border: 1px solid #FF5A1E; 27 | } 28 | .header .notify { 29 | height: 38px; 30 | background: #FFFFFF; 31 | border-top: solid 1px #A9A9A9; 32 | border-bottom: solid 1px #A9A9A9; 33 | } 34 | .header .notify .icon { 35 | height: 28px; 36 | width: 38px; 37 | float: left; 38 | border-right: solid 1px #A9A9A9; 39 | font-size: 24px; 40 | line-height: 28px; 41 | margin: 5px 0; 42 | padding-left: 12px; 43 | color:#FF6600; 44 | -webkit-transition: font-size 0.25s ease-out 0s; 45 | -moz-transition: font-size 0.25s ease-out 0s; 46 | transition: font-size 0.25s ease-out 0s; 47 | } 48 | .header .notify .notify-text { 49 | height: 38px; 50 | line-height: 38px; 51 | color: black; 52 | font-size: 16px; 53 | text-indent: 10px; 54 | } 55 | .header .notify .notify-text .txt { 56 | text-align: left; 57 | } 58 | .content { 59 | margin-top: 10px; 60 | background: #ffffff; 61 | } 62 | .content .bd { 63 | padding: 0 2px; 64 | /*margin-left: 5px;*/ 65 | } 66 | .content .bd .row { 67 | margin-left: 0; 68 | } 69 | .content .bd .row .col-33 { 70 | width: 32%; 71 | margin-left: 1%; 72 | } 73 | .content figure { 74 | display: block; 75 | border: solid 1px #EFEFEF; 76 | position: relative; 77 | } 78 | .content figure a { 79 | display: block; 80 | height: 105px; 81 | } 82 | .content figure a img { 83 | height: 100%; 84 | width: 100%; 85 | vertical-align: middle; 86 | } 87 | .content figure figcaption { 88 | /*background: darkblue;*/ 89 | } 90 | .content figure figcaption .title { 91 | height: 24px; 92 | font-size: 20px; 93 | color: #333; 94 | font-weight: normal; 95 | letter-spacing: 1px; 96 | text-indent: 5px; 97 | display: block; 98 | } 99 | .content figure figcaption .desc { 100 | height: 16px; 101 | font-size:15px; 102 | font-style: normal; 103 | margin-top: 4px; 104 | margin-left: 8px; 105 | display: block; 106 | /*background: gold;*/ 107 | } 108 | .content figure figcaption .info { 109 | height: 30px; 110 | margin-top: 7px; 111 | position: relative; 112 | } 113 | .content figure figcaption .info .price { 114 | height: 20px; 115 | font-size: 16px; 116 | line-height: 20px; 117 | color: #EF4F4F; 118 | display: block; 119 | float: left; 120 | padding: 0 5px; 121 | margin-top: 7px; 122 | 123 | 124 | } 125 | .content figure figcaption .info .price strong { 126 | padding-top: 6px; 127 | font-size: 18px; 128 | font-weight: normal; 129 | } 130 | .content figure figcaption .info .buy { 131 | height: 30px; 132 | float: right; 133 | position: absolute; 134 | bottom: 0; 135 | right: 5px; 136 | } 137 | .content figure figcaption .info .buy .count { 138 | height: 30px; 139 | font-size: 24px; 140 | color: #3B3B3B; 141 | line-height: 10px; 142 | padding: 0 2px; 143 | display: none; 144 | } 145 | .content figure figcaption .info .buy .icon { 146 | height: 30px; 147 | line-height: 30px; 148 | font-size: 26px; 149 | display: inline-block; 150 | } 151 | .content figure figcaption .info .buy .add { 152 | color:#EF4F4F; 153 | } 154 | .content figure figcaption .info .buy .sub { 155 | color:#cccccc; 156 | display: none; 157 | } 158 | .content figure figcaption .tag { 159 | color: #FFF; 160 | font-size: 12px; 161 | padding: 1px; 162 | position: absolute; 163 | top: 0; 164 | left: 0; 165 | background: #FF6600; 166 | } 167 | 168 | .into { 169 | margin-top: 60px; 170 | margin-bottom: 70px; 171 | } 172 | .footer .weui_tabbar .weui_tabbar_item .icon { 173 | display: block; 174 | height: 100px; 175 | width: 100%; 176 | font-size: 26px; 177 | line-height: 25px; 178 | } 179 | .shop-cart { 180 | height: 76px; 181 | width: 70px; 182 | margin: 0 auto; 183 | position:fixed; 184 | left:0; 185 | right: 0; 186 | bottom: 0; 187 | /*background: darkcyan;*/ 188 | } 189 | 190 | .shop-cart .cart { 191 | height: 65px; 192 | width: 65px; 193 | margin: 0 auto; 194 | display: block; 195 | border-top: solid 1px #cccccc; 196 | border-top-left-radius: 50%; 197 | border-top-right-radius: 50%; 198 | background: #F7F7FA; 199 | } 200 | .shop-cart .cart .c-icon { 201 | height: 53px; 202 | width: 53px; 203 | margin: 0 auto; 204 | margin-top: 5px; 205 | border-radius: 50%; 206 | background: #FF5A1E; 207 | } 208 | .shop-cart .cart .c-icon .icon { 209 | height: 40px; 210 | width: 100%; 211 | font-size: 36px; 212 | color: #ffffff; 213 | display: block; 214 | text-align: center; 215 | } 216 | .shop-cart .cart .c-txt { 217 | height: 22px; 218 | width: 100%; 219 | line-height: 25px; 220 | color: #9E9E9F; 221 | font-size: 15px; 222 | display: block; 223 | text-align: center; 224 | } 225 | .total-price { 226 | padding: 0 3px; 227 | position: fixed; 228 | line-height: 20px; 229 | left:50%; 230 | bottom: 64px; 231 | color: #FF6600; 232 | margin-left: 22px; 233 | border: solid 1px #FF6600; 234 | border-radius: 5px; 235 | background: #ffffff; 236 | text-align: center; 237 | display: none; 238 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/list.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | background: #F0EFF5; 6 | } 7 | ul, li { 8 | list-style: none; 9 | } 10 | a { 11 | text-decoration: none; 12 | } 13 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 14 | margin: 0; 15 | padding: 0; 16 | } 17 | header .weui-header { 18 | background: #ffffff; 19 | border-bottom: solid 1px #cccccc; 20 | } 21 | .main { 22 | background: #ffffff; 23 | } 24 | .main .list .item { 25 | height: 120px; 26 | border-bottom: solid 1px #cccccc; 27 | } 28 | .main .list .item .pic { 29 | height: 95px; 30 | width: 95px; 31 | border: solid 1px #cccccc; 32 | float: left; 33 | margin-top: 11px; 34 | margin-left: 10px; 35 | } 36 | .main .list .item .pic img { 37 | height: 95px; 38 | width: 95px; 39 | } 40 | .main .list .item .detail { 41 | height: 97px; 42 | width: 97px; 43 | margin-top: 11px; 44 | margin-left: 5px; 45 | float: left; 46 | } 47 | .main .list .item .detail .title { 48 | height: 30px; 49 | font-size: 18px; 50 | line-height: 30px; 51 | color: #3B3B3B; 52 | font-weight: normal; 53 | display: block; 54 | } 55 | .main .list .item .detail .desc { 56 | height: 25px; 57 | line-height: 25px; 58 | font-size: 14px; 59 | font-style: normal; 60 | color: #8c8c8c; 61 | display: block; 62 | } 63 | .main .list .item .detail .price { 64 | height: 30px; 65 | color: #FF6600; 66 | font-size: 14px; 67 | line-height: 30px; 68 | margin-top: 12px; 69 | } 70 | .main .list .item .detail .price strong { 71 | font-size: 18px; 72 | } 73 | .main .list .item .num { 74 | height: 20px; 75 | float: right; 76 | margin-top: 90px; 77 | margin-right: 15px; 78 | display: block; 79 | font-size: 18px; 80 | color: #8c8c8c; 81 | line-height: 20px; 82 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/load.css: -------------------------------------------------------------------------------- 1 | .load .item { 2 | height: 90px; 3 | position: relative; 4 | border-bottom: solid 1px #F5F5F5; 5 | } 6 | .load .item .pic { 7 | height: 90px; 8 | width: 40%; 9 | display: block; 10 | float: left; 11 | } 12 | .load .item .pic img { 13 | height: 90px; 14 | width: 100%; 15 | } 16 | .load .item .detail { 17 | width: 60%; 18 | height: 90px; 19 | float: left; 20 | } 21 | .load .item .detail .title { 22 | height: 25px; 23 | font-size: 20px; 24 | color: #5B5B5B; 25 | display: block; 26 | font-weight: normal; 27 | line-height: 30px; 28 | margin-left: 10px; 29 | /*background: darkolivegreen;*/ 30 | } 31 | .load .item .detail .desc { 32 | height: 25px; 33 | font-size: 14px; 34 | line-height: 30px; 35 | font-style: normal; 36 | margin-left: 10px; 37 | color: #989898; 38 | display: block; 39 | } 40 | .load .item .detail .info { 41 | width: 100%; 42 | height: 40px; 43 | margin-left: 10px; 44 | position: relative; 45 | } 46 | 47 | .load .item .detail .info .price { 48 | height: 40px; 49 | line-height: 50px; 50 | font-size: 14px; 51 | color: #FF5A1E; 52 | display: block; 53 | float: left; 54 | } 55 | .load .item .detail .info .price strong { 56 | font-size: 24px; 57 | } 58 | .load .item .detail .info .buy { 59 | height: 40px; 60 | position: absolute; 61 | bottom: 0; 62 | right: 15px; 63 | } 64 | .load .item .detail .info .buy .icon { 65 | height: 40px; 66 | display: block; 67 | float: right; 68 | line-height: 30px; 69 | font-size: 28px; 70 | } 71 | .load .item .detail .info .buy .count { 72 | height: 40px; 73 | display: block; 74 | float: right; 75 | font-size: 22px; 76 | line-height: 30px; 77 | color: #8b7f0f; 78 | padding: 0 4px; 79 | } 80 | .load .item .detail .info .buy .sub { 81 | color: #cccccc; 82 | } 83 | .load .item .detail .info .buy .add { 84 | color: #FF5A1E; 85 | margin-right: 8px; 86 | } 87 | .load .item .tag { 88 | color: #FFF; 89 | font-size: 12px; 90 | padding: 1px; 91 | position: absolute; 92 | top: 0; 93 | left: 0; 94 | background: #FF6600; 95 | } 96 | /*.load .item .detail .info .count { 97 | display: block; 98 | float: right; 99 | font-size: 24px; 100 | } 101 | .load .item .detail .info .icon { 102 | display: block; 103 | float: right; 104 | font-size: 24px; 105 | margin-right: 20px; 106 | } 107 | .load .item .detail .info .sub { 108 | 109 | } 110 | .load .item .detail .info .add { 111 | 112 | }*/ 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /src/main/resources/static/css/login.css: -------------------------------------------------------------------------------- 1 | * { 2 | padding: 0; 3 | margin: 0; 4 | } 5 | 6 | .main { 7 | width: 100%; 8 | margin: 0 auto; 9 | } 10 | 11 | .back { 12 | width: 0.1rem; 13 | } 14 | 15 | .main_top { 16 | width: 100%; 17 | height: 1.3rem; 18 | display: flex; 19 | align-items: center; 20 | justify-content: space-between; 21 | color: #ffffff; 22 | background: #3884dd; 23 | font-size: 0.5rem; 24 | } 25 | 26 | .main_top .main_top_size { 27 | width: .8rem; 28 | height: .8rem; 29 | background: url('../images/back.svg') no-repeat; 30 | background-size: 100%; 31 | margin-left: 0.2rem; 32 | } 33 | 34 | .main_top .main_top_registered { 35 | font-size: 0.5rem; 36 | margin-right: 0.3rem; 37 | } 38 | 39 | /*logo部分*/ 40 | 41 | .main .logo { 42 | /*width: 10rem;*/ 43 | width: 400px; 44 | /*height: 5rem;*/ 45 | height: 200px; 46 | 47 | } 48 | 49 | .main .logo img { 50 | width: 40%; 51 | margin: 0.6rem auto; 52 | display: block; 53 | } 54 | 55 | .main .mobile { 56 | width: 10rem; 57 | height: 20rem; 58 | } 59 | 60 | .main .mobile .center { 61 | width: 8rem; 62 | height: 30rem; 63 | margin-left: 1rem; 64 | overflow: hidden; 65 | } 66 | 67 | .main .mobile .center input { 68 | width: 6rem; 69 | height: 0.7rem; 70 | border: none; 71 | margin-left: -0.2rem; 72 | } 73 | 74 | input::-webkit-input-placeholder { 75 | color: #d0d0d6; 76 | } 77 | 78 | input::-moz-placeholder { 79 | /* Mozilla Firefox 19+ */ 80 | color: #d0d0d6; 81 | } 82 | 83 | input:-moz-placeholder { 84 | /* Mozilla Firefox 4 to 18 */ 85 | color: #d0d0d6; 86 | } 87 | 88 | input:-ms-input-placeholder { 89 | /* Internet Explorer 10-11 */ 90 | color: #d0d0d6; 91 | } 92 | 93 | .main .mobile .center .gen { 94 | background-repeat: no-repeat; 95 | background-size: 0.7rem; 96 | padding-left: 1rem; 97 | border-bottom: 1px solid #dee0e2; 98 | width: 8rem; 99 | height: 1rem; 100 | font-size: large; 101 | } 102 | 103 | .main .mobile .center .icon { 104 | background-image: url('../images/default_icon_tel@3x.png'); 105 | } 106 | .main .mobile .center .gender { 107 | background-image: url('../images/gender.png'); 108 | } 109 | .main .mobile .center .user { 110 | background-image: url('../images/user.png'); 111 | } 112 | 113 | .main .mobile .center .password { 114 | margin-top: 0.5rem; 115 | background-image: url('../images/default_icon_password@3x.png'); 116 | } 117 | 118 | .main .mobile .center .eyes { 119 | display: inline-block; 120 | width: 0.8rem; 121 | height: 0.8rem; 122 | background-image: url('../images/default_icon_eye@3x.png'); 123 | background-repeat: no-repeat; 124 | background-size: 0.6rem; 125 | vertical-align: top; 126 | } 127 | 128 | .main .mobile .center .sub { 129 | width: 8rem; 130 | height: 1rem; 131 | display: block; 132 | background-image: url('../images/default_btn@3x.png'); 133 | background-repeat: no-repeat; 134 | background-size: 8rem 1rem; 135 | margin-top: 0.5rem; 136 | } 137 | 138 | .main .mobile .center .forgot { 139 | padding-top: 0.5rem; 140 | text-align: right; 141 | } 142 | 143 | #btn { 144 | width: 8rem; 145 | height: 1rem; 146 | background: none; 147 | color: white; 148 | font-size: 16px; 149 | } 150 | 151 | .share { 152 | margin-top: 2rem; 153 | display: flex; 154 | justify-content: space-evenly; 155 | align-items: center; 156 | } 157 | 158 | .share .left { 159 | width: 2.5rem; 160 | height: 0.05rem; 161 | background: -webkit-gradient(linear, 0% 0%, 100% 0%, from(rgba(255, 255, 255, 0)), to(rgba(183, 186, 188, 1))); 162 | } 163 | 164 | .share .text { 165 | color: #b7babc; 166 | font-size: 0.1rem; 167 | } 168 | 169 | .share .right { 170 | width: 2.5rem; 171 | height: 0.05rem; 172 | background: -webkit-gradient(linear, 0% 0%, 100% 0%, from(rgba(183, 186, 188, 1)), to(rgba(255, 255, 255, 0))); 173 | } 174 | 175 | footer { 176 | clear: both; 177 | } 178 | 179 | .share-icon { 180 | clear: both; 181 | display: flex; 182 | justify-content: space-evenly; 183 | align-items: center; 184 | height: 2rem; 185 | } 186 | 187 | .qq { 188 | width: 1rem; 189 | height: 1rem; 190 | background-image: url("../images/default_icon_qq@3x.png"); 191 | background-repeat: no-repeat; 192 | background-size: 100%; 193 | } 194 | 195 | .weixin { 196 | width: 1rem; 197 | height: 1rem; 198 | background-image: url("../images/default_icon_wechat@3x.png"); 199 | background-repeat: no-repeat; 200 | background-size: 100%; 201 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/mall.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | background: #ffffff; 6 | } 7 | ul, li { 8 | list-style: none; 9 | } 10 | a { 11 | text-decoration: none; 12 | } 13 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 14 | margin: 0; 15 | padding: 0; 16 | } 17 | .header { 18 | height: 39px; 19 | line-height: 39px; 20 | font-size: 24px; 21 | text-indent: 10px; 22 | color: #FF713D; 23 | border-bottom: solid 1px #cccccc; 24 | background: #FFFFFF; 25 | } 26 | .addservice{ 27 | color: #FF5E23; 28 | font-size: 50px; 29 | float: right; 30 | margin-right: 10px; 31 | } 32 | .main { 33 | /*min-height:600px;*/ 34 | /*background: #ffffff;*/ 35 | } 36 | .main .nav { 37 | /*height: 500px;*/ 38 | width: 20%; 39 | float: left; 40 | } 41 | .main .nav .type { 42 | height: 50px; 43 | font-size: 14px; 44 | color: #464546; 45 | letter-spacing: 1px; 46 | line-height: 50px; 47 | text-align: center; 48 | display: block; 49 | width: 100%; 50 | background: #F0EFF4; 51 | } 52 | .main .nav .active { 53 | color: #FF5E23; 54 | background: #FFFFFF; 55 | } 56 | .main .content { 57 | height: 330px; 58 | width: 80%; 59 | float: right; 60 | border-left: solid 1px #F0EFF4; 61 | margin-left: -1px; 62 | } 63 | .footer .weui_tabbar .weui_tabbar_item .icon { 64 | display: block; 65 | height: 100px; 66 | width: 100%; 67 | font-size: 26px; 68 | line-height: 25px; 69 | } 70 | .shop-cart { 71 | height: 76px; 72 | width: 70px; 73 | margin: 0 auto; 74 | position:fixed; 75 | left:0; 76 | right: 0; 77 | bottom: 0; 78 | /*background: darkcyan;*/ 79 | } 80 | 81 | .shop-cart .cart { 82 | height: 65px; 83 | width: 65px; 84 | margin: 0 auto; 85 | display: block; 86 | border-top: solid 1px #cccccc; 87 | border-top-left-radius: 50%; 88 | border-top-right-radius: 50%; 89 | background: #F7F7FA; 90 | } 91 | .shop-cart .cart .c-icon { 92 | height: 53px; 93 | width: 53px; 94 | margin: 0 auto; 95 | margin-top: 5px; 96 | border-radius: 50%; 97 | background: #FF5A1E; 98 | } 99 | .shop-cart .cart .c-icon .icon { 100 | height: 40px; 101 | width: 100%; 102 | font-size: 36px; 103 | color: #ffffff; 104 | display: block; 105 | text-align: center; 106 | } 107 | .shop-cart .cart .c-txt { 108 | height: 22px; 109 | width: 100%; 110 | line-height: 25px; 111 | color: #9E9E9F; 112 | font-size: 15px; 113 | display: block; 114 | text-align: center; 115 | } 116 | .total-price { 117 | padding: 0 3px; 118 | position: fixed; 119 | line-height: 20px; 120 | left:50%; 121 | bottom: 64px; 122 | color: #FF6600; 123 | margin-left: 22px; 124 | border: solid 1px #FF6600; 125 | border-radius: 5px; 126 | background: #ffffff; 127 | text-align: center; 128 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/my-deliver.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | position:relative; 6 | background: #F0EFF5; 7 | } 8 | ul, li { 9 | list-style: none; 10 | } 11 | a { 12 | text-decoration: none; 13 | } 14 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 15 | margin: 0; 16 | padding: 0; 17 | } 18 | 19 | 20 | .header a { 21 | color: #ef4f4f; 22 | } 23 | .main { 24 | height: 100%; 25 | } 26 | .main .home-delivery { 27 | /*height: 100px;*/ 28 | } 29 | .main .home-delivery .now-location { 30 | height: 50px; 31 | border-bottom: solid 1px #cccccc; 32 | background: #ffffff; 33 | } 34 | .main .home-delivery .now-location .txt { 35 | height: 50px; 36 | line-height: 50px; 37 | text-indent: 10px; 38 | font-size: 18px; 39 | color: #333; 40 | display: block; 41 | float: left; 42 | } 43 | .main .home-delivery .now-location .icon { 44 | height: 50px; 45 | display: block; 46 | line-height: 50px; 47 | font-size: 22px; 48 | margin-right: 25px; 49 | float: right; 50 | color: #FF6600; 51 | } 52 | .main .home-delivery .address-list { 53 | background: #ffffff; 54 | } 55 | .main .home-delivery .address-list .item { 56 | height: 160px; 57 | position: relative; 58 | } 59 | .main .home-delivery .address-list .item .activate { 60 | height: 160px; 61 | width: 5px; 62 | position: absolute; 63 | top: 0; 64 | left: 0; 65 | background: #FF6600; 66 | } 67 | .main .home-delivery .address-list .item .a-main { 68 | height: 160px; 69 | margin-left: 14px; 70 | margin-right: 10px; 71 | border-bottom: solid 1px #cccccc; 72 | 73 | } 74 | .main .home-delivery .address-list .item .a-left { 75 | height: 165px; 76 | width: 80%; 77 | float: left; 78 | } 79 | .main .home-delivery .address-list .item .a-left .a-top { 80 | height: 28px; 81 | margin-left: 10px; 82 | font-size: 20px; 83 | color: #8c8c8c; 84 | line-height: 30px; 85 | } 86 | .main .home-delivery .address-list .item .a-left .a-top .name { 87 | height: 28px; 88 | display: block; 89 | float: left; 90 | } 91 | .main .home-delivery .address-list .item .a-left .a-top .sex { 92 | height: 28px; 93 | display: block; 94 | float: left; 95 | } 96 | .main .home-delivery .address-list .item .a-left .a-top .phone { 97 | height: 28px; 98 | display: block; 99 | float: left; 100 | padding-left: 8px; 101 | } 102 | .main .home-delivery .address-list .item .a-left .bottom { 103 | height: 37px; 104 | margin-left: 10px; 105 | } 106 | .main .home-delivery .address-list .item .a-left .bottom .tag { 107 | /*height: 20px;*/ 108 | font-size: 18px; 109 | padding: 0 4px; 110 | color: #ffffff; 111 | background: darkorange; 112 | border-radius: 2px; 113 | margin-top: 5px; 114 | display: block; 115 | float: left; 116 | } 117 | .main .home-delivery .address-list .item .a-left .bottom .addr { 118 | height: 37px; 119 | font-size: 20px; 120 | line-height: 37px; 121 | color: #333; 122 | text-indent: 6px; 123 | display: block; 124 | float: left; 125 | } 126 | .main .home-delivery .address-list .item .a-right { 127 | height: 120px; 128 | width: 19%; 129 | float: right; 130 | margin-top: 7px; 131 | border-left: solid 1px #cccccc; 132 | /*text-align: center;*/ 133 | line-height: 52px; 134 | text-indent: 18px; 135 | } 136 | .main .home-delivery .address-list .item .a-right .icon { 137 | font-size: 22px; 138 | /*color: #8c8c8c;*/ 139 | } 140 | 141 | .footer { 142 | height: 50px; 143 | width: 100%; 144 | background: #EF4F4F; 145 | position: fixed; 146 | left: 0; 147 | bottom: 0; 148 | } 149 | .footer .txt { 150 | height: 50px; 151 | width: 100%; 152 | font-size: 18px; 153 | color: #ffffff; 154 | line-height: 50px; 155 | text-align: center; 156 | display: block; 157 | } 158 | .deliver-add{ 159 | float: right; 160 | color: orangered; 161 | size: A3; 162 | margin-right: 20px; 163 | } 164 | 165 | .form-add{ 166 | margin-top: 50px; 167 | margin-left: 50px; 168 | font-size: large; 169 | 170 | } 171 | -------------------------------------------------------------------------------- /src/main/resources/static/css/order.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | position:relative; 6 | background: #F0EFF5; 7 | } 8 | ul, li { 9 | list-style: none; 10 | } 11 | a { 12 | text-decoration: none; 13 | color: #6E6E6E; 14 | } 15 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 16 | margin: 0; 17 | padding: 0; 18 | } 19 | header .weui-header { 20 | background: #ffffff; 21 | border-bottom: solid 1px #cccccc; 22 | } 23 | .main { 24 | margin-bottom: 70px; 25 | } 26 | .main .order { 27 | margin-bottom: 10px; 28 | background: #ffffff; 29 | } 30 | /* 订单失效 */ 31 | .main .invalid { 32 | color: #C8C8C8; 33 | } 34 | /* 订单正常 */ 35 | .main .normal { 36 | color: #6E6E6E; 37 | } 38 | .main .order .order-warp { 39 | margin: 0 8px; 40 | height: 152px; 41 | 42 | } 43 | .main .order .info { 44 | height: 35px; 45 | font-size: 14px; 46 | line-height: 35px; 47 | padding: 0 3px; 48 | } 49 | .main .order .info .date { 50 | float: left; 51 | } 52 | .main .order .info .date .icon { 53 | height: 35px; 54 | font-size: 20px; 55 | line-height: 34px; 56 | } 57 | .main .order .info .date .detail { 58 | margin-left: 2px; 59 | } 60 | .main .order .info .num { 61 | font-size: 12px; 62 | float: right; 63 | } 64 | .main .order .info .num-normal { 65 | color: #AAAAAA; 66 | } 67 | 68 | .main .order .info .num em { 69 | font-style: normal; 70 | } 71 | .main .order .weui_panel_access { 72 | height: 80px; 73 | display: block; 74 | border-bottom: solid 1px #EFEFEF; 75 | border-top: solid 1px #EFEFEF; 76 | padding: 0 3px; 77 | } 78 | .main .order .weui_panel_access:active { 79 | color: #6E6E6E; 80 | background-color: #ECECEC; 81 | } 82 | .main .order .weui_panel_access .weui_panel_ft { 83 | height: 40px; 84 | font-size: 15px; 85 | padding-bottom: 0; 86 | padding-left: 0; 87 | } 88 | .main .order .weui_panel_access .schedule .flow { 89 | height: 32px; 90 | float: left; 91 | } 92 | .main .order .weui_panel_access .schedule .flow .icons { 93 | height: 16px; 94 | } 95 | .main .order .weui_panel_access .schedule .start .icons { 96 | margin-left: 15px; 97 | } 98 | .main .order .weui_panel_access .schedule .flow .icons .s-icon { 99 | height: 15px; 100 | color: #C8C8C8; 101 | line-height: 10px; 102 | font-size: 16px; 103 | display: block; 104 | float: left; 105 | } 106 | .main .order .weui_panel_access .schedule .flow .icons .s-icon-l { 107 | margin-left: 2px; 108 | } 109 | .main .order .weui_panel_access .schedule .flow .icons .bg-icon { 110 | height: 8px; 111 | width: 8px; 112 | display: block; 113 | float: left; 114 | margin-top: 5px; 115 | border-radius: 50px; 116 | margin-left: 3px; 117 | margin-right: 3px; 118 | } 119 | .main .order .weui_panel_access .schedule .flow .icons .bg-icon-invalid { 120 | background: #C8C8C8; 121 | } 122 | .main .order .weui_panel_access .schedule .flow .icons .bg-icon-normal { 123 | background: #FF6C04; 124 | } 125 | .main .order .weui_panel_access .schedule .flow .status { 126 | font-size: 9px; 127 | display: block; 128 | height: 10px; 129 | padding-left: 2px; 130 | text-align: center; 131 | } 132 | .main .order .weui_panel_access .schedule .flow .s-normal { 133 | color: #FF6C04; 134 | } 135 | .main .order .weui_panel_access .schedule .end .status { 136 | width: 40px; 137 | } 138 | .main .order .buy-info { 139 | height: 32px; 140 | padding: 0 3px; 141 | } 142 | .main .order .buy-info .price { 143 | display: block; 144 | height: 32px; 145 | line-height: 32px; 146 | float: left; 147 | font-size: 18px; 148 | } 149 | .main .order .buy-info .comment { 150 | display: block; 151 | margin-top: 5px; 152 | height: 20px; 153 | line-height: 20px; 154 | float: right; 155 | margin-right: 5px; 156 | padding: 0 5px; 157 | border-radius: 5px; 158 | } 159 | .main .order .buy-info .comment-invalid { 160 | border: solid 1px #B9B9B9; 161 | background: #C8C8C8; 162 | color: #ffffff; 163 | } 164 | .main .order .buy-info .comment-normal { 165 | border: solid 1px #FF8153; 166 | color: #FF8153; 167 | } 168 | .footer .weui_tabbar .weui_tabbar_item { 169 | color: #00AAEF; 170 | } 171 | .footer .weui_tabbar .weui_tabbar_item .icon { 172 | display: block; 173 | height: 100px; 174 | width: 100%; 175 | font-size: 26px; 176 | line-height: 25px; 177 | } 178 | .shop-cart { 179 | height: 76px; 180 | width: 70px; 181 | margin: 0 auto; 182 | position:fixed; 183 | left:0; 184 | right: 0; 185 | bottom: 0; 186 | /*background: darkcyan;*/ 187 | } 188 | 189 | .shop-cart .cart { 190 | height: 65px; 191 | width: 65px; 192 | margin: 0 auto; 193 | display: block; 194 | border-top: solid 1px #cccccc; 195 | border-top-left-radius: 50%; 196 | border-top-right-radius: 50%; 197 | background: #F7F7FA; 198 | } 199 | .shop-cart .cart .c-icon { 200 | height: 53px; 201 | width: 53px; 202 | margin: 0 auto; 203 | margin-top: 5px; 204 | border-radius: 50%; 205 | background: #FF5A1E; 206 | } 207 | .shop-cart .cart .c-icon .icon { 208 | height: 40px; 209 | width: 100%; 210 | font-size: 36px; 211 | color: #ffffff; 212 | display: block; 213 | text-align: center; 214 | } 215 | .shop-cart .cart .c-txt { 216 | height: 22px; 217 | width: 100%; 218 | line-height: 25px; 219 | color: #9E9E9F; 220 | font-size: 15px; 221 | display: block; 222 | text-align: center; 223 | } 224 | .total-price { 225 | /*height: 20px;*/ 226 | padding: 0 3px; 227 | position: absolute; 228 | line-height: 20px; 229 | left:180px; 230 | bottom: 64px; 231 | color: #FF6600; 232 | border: solid 1px #FF6600; 233 | border-radius: 5px; 234 | background: #ffffff; 235 | text-align: center; 236 | } 237 | 238 | -------------------------------------------------------------------------------- /src/main/resources/static/css/ticket.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 12px; 3 | color: #969696; 4 | font-family: Helvetica,Droidsansfallback; 5 | background: #F0EFF5; 6 | } 7 | ul, li { 8 | list-style: none; 9 | } 10 | a { 11 | text-decoration: none; 12 | } 13 | body, h1, h2, h3, h4, h5, h6, p, div, ul, li, a, button, section, figure, figcaption { 14 | margin: 0; 15 | padding: 0; 16 | } 17 | header .weui-header { 18 | background: #ffffff; 19 | border-bottom: solid 1px #cccccc; 20 | } 21 | .weui_cells_radio .weui_check + .weui_icon_checked:before { 22 | content: '\EA01'; 23 | font-size: 22px; 24 | color: #cccccc; 25 | } 26 | .weui_cells_radio .weui_check:checked + .weui_icon_checked:before { 27 | content: '\EA06'; 28 | font-size: 22px; 29 | } 30 | .main .weui_cells { 31 | background: #F0EFF5; 32 | margin-top: 0; 33 | } 34 | .main .weui_cells:before { 35 | border-top: none; 36 | } 37 | .main .weui_cells:after { 38 | border-bottom: none; 39 | } 40 | 41 | .main .item { 42 | height: 120px; 43 | margin-top: 10px; 44 | background: #ffffff; 45 | } 46 | .main .list .item .weui_cell { 47 | padding: 0; 48 | } 49 | .main .item .weui_cell_ft { 50 | margin-top: 35px; 51 | } 52 | .main .list .item label { 53 | display: block; 54 | } 55 | .main .list .item .title { 56 | height: 35px; 57 | line-height: 35px; 58 | text-align: center; 59 | color: #ffffff; 60 | font-size: 18px; 61 | 62 | } 63 | .main .list .item .radio { 64 | height: 25px; 65 | width: 25px; 66 | float: left; 67 | margin-top: 20px; 68 | margin-left: 10px; 69 | } 70 | /*.main .list .item .info {*/ 71 | /*height: 60px;*/ 72 | /*!*width: 100%;*!*/ 73 | /*float: left;*/ 74 | /*display: block;*/ 75 | /*background: darkgreen;*/ 76 | /*}*/ 77 | .main .list .item .price { 78 | height: 55px; 79 | float: left; 80 | } 81 | .main .list .item .price .p-icon { 82 | height: 55px; 83 | line-height: 90px; 84 | font-size: 18px; 85 | display: block; 86 | float: left; 87 | } 88 | .main .list .item .price .anmout { 89 | height: 55px; 90 | font-size: 40px; 91 | line-height: 65px; 92 | display: block; 93 | float: left; 94 | } 95 | .main .list .item .rule { 96 | height: 55px; 97 | line-height: 60px; 98 | float: right; 99 | padding: 0 8px; 100 | margin-right: 8px; 101 | color: #333; 102 | /*background: darkgreen;*/ 103 | } 104 | .main .list .item .validity { 105 | height: 30px; 106 | font-size: 14px; 107 | line-height: 30px; 108 | text-indent: 10px; 109 | /*background: salmon;*/ 110 | clear: both; 111 | border-top: dashed 1px #F0EFF5;; 112 | } 113 | 114 | 115 | .main .list .item .invalid { 116 | background: #8c8c8c; 117 | } 118 | .main .list .item .normal { 119 | background: darkcyan; 120 | } 121 | 122 | .main .list .item .p-invalid { 123 | color: #8c8c8c;; 124 | } 125 | .main .list .item .p-normal { 126 | color: #FF6600; 127 | } 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/main/resources/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/icon/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/11.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/back.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/buy-loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/buy-loading.gif -------------------------------------------------------------------------------- /src/main/resources/static/icon/icon_nav_article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/icon_nav_article.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/icon_nav_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/icon_nav_button.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/icon_nav_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/icon_nav_cell.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/icon_nav_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/icon_nav_msg.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/level-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/level-0.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/net-loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/net-loading.gif -------------------------------------------------------------------------------- /src/main/resources/static/icon/notice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/notice.png -------------------------------------------------------------------------------- /src/main/resources/static/icon/subtract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/icon/subtract.png -------------------------------------------------------------------------------- /src/main/resources/static/images/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/avatar.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/back.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/images/bhc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/bhc.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/d-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/d-1.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/d-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/d-2.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/d-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/d-3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/dbt1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/dbt1.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/dbt2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/dbt2.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/dbt3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/dbt3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/dbtnt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/dbtnt.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/ddppt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/ddppt.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/default_btn@3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_btn@3.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_btn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_btn@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_icon_eye@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_icon_eye@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_icon_password@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_icon_password@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_icon_qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_icon_qq@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_icon_tel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_icon_tel@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/default_icon_wechat@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/default_icon_wechat@3x.png -------------------------------------------------------------------------------- /src/main/resources/static/images/fbm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/fbm.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/gender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/gender.png -------------------------------------------------------------------------------- /src/main/resources/static/images/hj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/hj.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/home01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/home01.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/home02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/home02.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/home03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/home03.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/home04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/home04.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/home05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/home05.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/hsnr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/hsnr.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/hsnrm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/hsnrm.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/angongda.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/angongda.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/aoliao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/aoliao.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/bangdayin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/bangdayin.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/call2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/call2.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/chepiao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/chepiao.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/dabaitu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/dabaitu.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/dadapaopaotang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/dadapaopaotang.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/ems.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/ems.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/flower.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/heniunai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/heniunai.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/hotkid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/hotkid.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/index_menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/index_menu.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/jidingchaofan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/jidingchaofan.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/look.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/look.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/luchunchun.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/luchunchun.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/order_detials_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/order_detials_bg.png -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/shuizhuniurou.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/shuizhuniurou.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/shunfeng.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/shunfeng.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/wangzainiunai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/wangzainiunai.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/xiaowaidaigou.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/xiaowaidaigou.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/yatudou.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/yatudou.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/yuantong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/yuantong.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/zhenzhibang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/zhenzhibang.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/zhongtong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/zhongtong.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/zhupafan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/zhupafan.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/imgs/zuche.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/imgs/zuche.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/logo.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/lt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/lt.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/nn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/nn.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/phsp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/phsp.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/swiper-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/swiper-1.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/swiper-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/swiper-2.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/swiper-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/swiper-3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/tb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/tb.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/tg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/tg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/tls.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/tls.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/tx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/tx.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/user.png -------------------------------------------------------------------------------- /src/main/resources/static/images/wl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/wl.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/wznn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/wznn.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/yl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/yl.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/ytd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/ytd.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/zm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/zm.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/zzbbbt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/static/images/zzbbbt.jpg -------------------------------------------------------------------------------- /src/main/resources/static/js/buy-success.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | }); 4 | -------------------------------------------------------------------------------- /src/main/resources/static/js/deliver.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by 光灿 on 2016/6/20. 3 | * http://www.freejs.net/article_tabbiaoqian_29.html 4 | */ 5 | $(function () { 6 | //$('section').hide(); 7 | //$(".weui_navbar .weui_navbar_item:first").addClass("tab-red").show(); 8 | //$("section:first").show(); 9 | //$(".weui_navbar_item").click(function() { 10 | // $(".weui_navbar_item").removeClass("tab-red"); 11 | // $(this).addClass("tab-red"); 12 | // $("section").hide(); 13 | // var activeTab = $(this).find("a").attr("href"); 14 | // if(activeTab == '#since') { 15 | // $('.footer').hide(); 16 | // }else { 17 | // $('.footer').show(); 18 | // } 19 | // $(activeTab).fadeIn(); 20 | // return false; 21 | //}); 22 | }); 23 | -------------------------------------------------------------------------------- /src/main/resources/static/js/detail.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(function () { 5 | $('#slideshow').swipeSlide({ 6 | autoSwipe: true,//自动切换默认是 7 | speed: 3000,//速度默认4000 8 | continuousScroll: true,//默认否 9 | transitionType: 'cubic-bezier(0.22, 0.69, 0.72, 0.88)',//过渡动画linear/ease/ease-in/ease-out/ease-in-out/cubic-bezier 10 | lazyLoad: true,//懒加载默认否 11 | firstCallback: function (i, sum, me) { 12 | me.find('.dot').children().first().addClass('cur'); 13 | }, 14 | callback: function (i, sum, me) { 15 | me.find('.dot').children().eq(i).addClass('cur').siblings().removeClass('cur'); 16 | } 17 | }); 18 | 19 | // 增加事件 20 | $(".add").click(function () { 21 | var obj = $(this); 22 | var num = parseInt(obj.prev('.count').text()); 23 | if (num >= 999) { // 最多支持购买999个 24 | $.alert("商品不能超过999个","提示"); 25 | return; 26 | } 27 | addCount(obj); 28 | addTotalCount(obj); 29 | 30 | addTotalPrice(obj); 31 | }); 32 | // 减少事件 33 | $(".sub").click(function () { 34 | var obj = $(this); 35 | 36 | var numObj = obj.siblings('.count'); 37 | var num = parseInt(numObj.text()); 38 | if (num<=1) { 39 | $.alert("至少得购买一个","提示"); 40 | return; 41 | } 42 | 43 | subCount(obj); 44 | subTotalCount(obj); 45 | 46 | subTotalPrice(obj); 47 | }) 48 | // 添加数量 49 | function addCount(obj) { 50 | var numObj = obj.siblings('.count'); 51 | var num = parseInt(numObj.text()); 52 | num += 1; 53 | numObj.text(num); 54 | }; 55 | // 增加总个数 56 | function addTotalCount(obj) { 57 | var totalNum = parseInt($('#count').text().trim()); 58 | var num = totalNum % 9; 59 | if(!num) { 60 | totalNum += 2 61 | } else { 62 | totalNum += 1; 63 | } 64 | $('#count').text(totalNum); 65 | } 66 | // 添加商品金额 67 | function addTotalPrice(obj) { 68 | var totalPrice = parseFloat($('#amount').text().trim()); 69 | var singlePrice = parseFloat($('#single').text().trim()); 70 | totalPrice += singlePrice; 71 | $('#amount').text(totalPrice.toFixed(1)); 72 | } 73 | // 减少数量 74 | function subCount(obj) { 75 | var numObj = obj.siblings('.count'); 76 | var num = parseInt(numObj.text()); 77 | num -= 1; 78 | numObj.text(num); 79 | }; 80 | // 减少总个数 81 | function subTotalCount(obj) { 82 | var totalNum = parseInt($('#count').text().trim()); 83 | var num = totalNum % 9; 84 | if(!num) { 85 | totalNum -= 2 86 | } else { 87 | totalNum -= 1; 88 | } 89 | $('#count').text(totalNum); 90 | } 91 | // 添加商品金额 92 | function subTotalPrice(obj) { 93 | var totalPrice = parseFloat($('#amount').text().trim()); 94 | var singlePrice = parseFloat($('#single').text().trim()); 95 | totalPrice -= singlePrice; 96 | $('#amount').text(totalPrice.toFixed(1)); 97 | } 98 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(function () { 5 | 6 | $('.sub').hide(); 7 | $('.count').hide(); 8 | 9 | var $totalPrice = $(".total-price").children("strong").text(); 10 | if($totalPrice!="" && $totalPrice!="0") { 11 | $(".total-price").show(); 12 | }else { 13 | $(".total-price").hide(); 14 | } 15 | 16 | $('#slideshow').swipeSlide({ 17 | autoSwipe: true,//自动切换默认是 18 | speed: 3000,//速度默认4000 19 | continuousScroll: true,//默认否 20 | transitionType: 'cubic-bezier(0.22, 0.69, 0.72, 0.88)',//过渡动画linear/ease/ease-in/ease-out/ease-in-out/cubic-bezier 21 | lazyLoad: true,//懒加载默认否 22 | firstCallback: function (i, sum, me) { 23 | me.find('.dot').children().first().addClass('cur'); 24 | }, 25 | callback: function (i, sum, me) { 26 | me.find('.dot').children().eq(i).addClass('cur').siblings().removeClass('cur'); 27 | } 28 | }); 29 | $('#notify-txt').swipeSlide({ 30 | autoSwipe: true,//自动切换默认是 31 | speed: 5000,//速度默认4000 32 | continuousScroll: true,//默认否 33 | transitionType: 'ease-in' 34 | }); 35 | 36 | // 购买 37 | $(".add").click(function (event) { 38 | event.preventDefault(); 39 | var $add = $(this); 40 | 41 | addCount($add); 42 | 43 | if($(".total-price").hide()) { 44 | $(".total-price").show(); 45 | addPrice($add); 46 | }else { 47 | addPrice($add); 48 | } 49 | 50 | var imgSrc = $add.parents(".item").children('.pic').children('img').attr('src'); 51 | var imgObj = $('').appendTo("body").css({ 52 | "width": "30px", 53 | "height": "30px", 54 | "border-radius": "50px", 55 | "position": "absolute", 56 | "top": toInteger($add.offset().top) + toInteger($add.css("width"))/2-15, 57 | "left": toInteger($add.offset().left)+ toInteger($add.css("height"))/2-15, 58 | }); 59 | var bool = new Parabola({ 60 | el: imgObj, 61 | callback: function () { 62 | 63 | }, 64 | stepCallback: function (x, y) { 65 | } 66 | }); 67 | // 设置配置参数 68 | bool.setOptions({ 69 | targetEl: $("#cart"), 70 | curvature: 0.01, 71 | duration: 600 72 | }); 73 | // 开始运动 74 | bool.start(); 75 | }); 76 | // 减少操作 77 | $(".sub").click(function () { 78 | var $sub = $(this); 79 | subCount($sub); 80 | subPrice($sub); 81 | }); 82 | 83 | 84 | //jsonp模式:进入该页,请求数据 85 | $.ajax({ 86 | type: 'get', 87 | async: false, 88 | url: server_url + 'v1/index', 89 | contentType: 'application/json', 90 | dataType: "jsonp", 91 | jsonp: "callback", 92 | jsonpCallback: "handler", 93 | success: function(data, status, xhr) { 94 | console.log(data); 95 | console.log(status); 96 | console.log(xhr); 97 | }, 98 | error: function(xhr, errorType, error) { 99 | console.log(error); 100 | }, 101 | }); 102 | }); 103 | 104 | // 添加数量 105 | function addCount(obj) { 106 | obj.siblings('.sub').show(); 107 | obj.prev('.count').show(); 108 | var count = parseInt(obj.prev().text()); 109 | count += 1; 110 | obj.prev().text(count); 111 | obj.parent().siblings(".price").css({ 112 | "font-size":"14px", 113 | "color":"white", 114 | "position":"absolute", 115 | "bottom":"82px", 116 | "left":"0", 117 | "border-radius":"6px", 118 | "background":"#EF4F4F" 119 | }).children('strong').css("font-size","14px"); 120 | } 121 | // 减少数量 122 | function subCount(obj) { 123 | var count = parseInt(obj.next().text()); 124 | count -= 1; 125 | if(count == 0) { 126 | obj.hide(); 127 | obj.siblings('.count').hide(); 128 | obj.parent().siblings(".price").removeAttr('style').children('strong').removeAttr('style'); 129 | } 130 | obj.next().text(count); 131 | } 132 | 133 | // 添加金额 134 | function addPrice(obj) { 135 | var price = parseFloat(obj.parent().siblings(".price").children("strong").text()); 136 | var totalPrice = parseFloat($(".total-price").children("strong").text()); 137 | totalPrice += price; 138 | $(".total-price").children("strong").text(totalPrice.toFixed(1)); 139 | } 140 | // 减少金额 141 | function subPrice(obj) { 142 | var price = parseFloat(obj.parent().siblings(".price").children("strong").text()); 143 | var totalPrice = parseFloat($(".total-price").children("strong").text()); 144 | totalPrice -= price; 145 | if (totalPrice == 0) { 146 | $(".total-price").hide(); 147 | } 148 | $(".total-price").children("strong").text(totalPrice.toFixed(1)); 149 | } 150 | 151 | 152 | // 转换成Int类型 153 | function toInteger(text){ 154 | text = parseInt(text); 155 | return isFinite(text) ? text : 0; 156 | } 157 | 158 | 159 | function handler(data) { 160 | console.log(data.data.totalPirce); 161 | } -------------------------------------------------------------------------------- /src/main/resources/static/js/lib/parabola.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 实现抛物线函数 Parabola 3 | * 切记既然是抛物线运动,那么运动的元素需要绝对定位 4 | * 具体了解抛物线 可以看张鑫旭的文章 5 | * http://www.zhangxinxu.com/wordpress/2013/12/javascript-js-%E5%85%83%E7%B4%A0-%E6%8A%9B%E7%89%A9%E7%BA%BF-%E8%BF%90%E5%8A%A8-%E5%8A%A8%E7%94%BB/ 6 | */ 7 | var Parabola = function(opts){ 8 | this.init(opts); 9 | }; 10 | Parabola.prototype = { 11 | constructor: Parabola, 12 | /* 13 | * @fileoverview 页面初始化 14 | * @param opts {Object} 配置参数 15 | */ 16 | init: function(opts){ 17 | this.opts = $.extend(defaultConfig, opts || {}); 18 | // 如果没有运动的元素 直接return 19 | if(!this.opts.el) { 20 | return; 21 | } 22 | // 取元素 及 left top 23 | this.$el = $(this.opts.el); 24 | this.$elLeft = this._toInteger(this.$el.css("left")); 25 | this.$elTop = this._toInteger(this.$el.css("top")); 26 | //this.$elLeft = this._toInteger(this.$el.offset().left); 27 | //this.$elTop = this._toInteger(this.$el.offset().top); 28 | // 计算x轴,y轴的偏移量 29 | if(this.opts.targetEl) { 30 | //this.diffX = this._toInteger($(this.opts.targetEl).css("left")) - this.$elLeft; 31 | //this.diffY = this._toInteger($(this.opts.targetEl).css("top")) - this.$elTop; 32 | 33 | this.diffX = this._toInteger($(this.opts.targetEl).offset().left) - this.$elLeft + this._toInteger($(this.opts.targetEl).css("width"))/2 - this._toInteger(this.$el.css("width"))/2; 34 | this.diffY = this._toInteger($(this.opts.targetEl).offset().top) - this.$elTop + this._toInteger($(this.opts.targetEl).css("height"))/2 - this._toInteger(this.$el.css("height"))/2; 35 | }else { 36 | this.diffX = this.opts.offset[0]; 37 | this.diffY = this.opts.offset[1]; 38 | } 39 | // 运动时间 40 | this.duration = this.opts.duration; 41 | // 抛物线曲率 42 | this.curvature = this.opts.curvature; 43 | // 计时器 44 | this.timerId = null; 45 | /* 46 | * 根据两点坐标以及曲率确定运动曲线函数(也就是确定a, b的值) 47 | * 公式: y = a*x*x + b*x + c; 48 | * 因为经过(0, 0), 因此c = 0 49 | * 于是: 50 | * y = a * x*x + b*x; 51 | * y1 = a * x1*x1 + b*x1; 52 | * y2 = a * x2*x2 + b*x2; 53 | * 利用第二个坐标: 54 | * b = (y2 - a*x2*x2) / x2 55 | */ 56 | this.b = (this.diffY - this.curvature * this.diffX * this.diffX) / this.diffX; 57 | 58 | // 是否自动运动 59 | if(this.opts.autostart) { 60 | this.start(); 61 | } 62 | }, 63 | /* 64 | * @fileoverview 开始 65 | */ 66 | start: function(){ 67 | // 开始运动 68 | var self = this; 69 | // 设置起始时间 和 结束时间 70 | this.begin = (new Date()).getTime(); 71 | this.end = this.begin + this.duration; 72 | 73 | // 如果目标的距离为0的话 就什么不做 74 | if(this.diffX === 0 && this.diffY === 0) { 75 | return; 76 | } 77 | if(!!this.timerId) { 78 | clearInterval(this.timerId); 79 | this.stop(); 80 | } 81 | // 每帧(对于大部分显示屏)大约16~17毫秒。默认大小是166.67。也就是默认10px/ms 82 | this.timerId = setInterval(function(){ 83 | var t = (new Date()).getTime(); 84 | self.step(t); 85 | },16); 86 | return this; 87 | }, 88 | /* 89 | * @fileoverview 执行每一步 90 | * @param {string} t 时间 91 | */ 92 | step: function(t){ 93 | var opts = this.opts; 94 | var x, 95 | y; 96 | // 如果当前运行的时间大于结束的时间 97 | if(t > this.end) { 98 | // 运行结束 99 | x = this.diffX; 100 | y = this.diffY; 101 | this.move(x,y); 102 | this.stop(); 103 | this.$el.remove() // 放入后销毁 104 | // 结束后 回调 105 | if(typeof opts.callback === 'function') { 106 | opts.callback.call(this); 107 | } 108 | }else { 109 | // 每一步x轴的位置 110 | x = this.diffX * ((t - this.begin) / this.duration); 111 | // 每一步y轴的位置 y = a * x *x + b*x + c; c = 0 112 | y = this.curvature * x * x + this.b * x; 113 | // 移动 114 | this.move(x,y); 115 | if(typeof opts.stepCallback === 'function') { 116 | opts.stepCallback.call(this,x,y); 117 | } 118 | } 119 | return this; 120 | }, 121 | /* 122 | * @fileoverview 给元素定位 123 | * @param {x,y} x,y坐标 124 | * @return this 125 | */ 126 | move: function(x,y) { 127 | this.$el.css({ 128 | "position":'absolute', 129 | "left": this.$elLeft + x + 'px', 130 | "top": this.$elTop + y + 'px' 131 | }); 132 | return this; 133 | }, 134 | /* 135 | * 获取配置项 136 | * @param {object} options配置参数 137 | * @return {object} 返回配置参数项 138 | */ 139 | getOptions: function(options){ 140 | if(typeof options !== "object") { 141 | options = {}; 142 | } 143 | options = $.extend(defaultConfig, options || {}); 144 | return options; 145 | }, 146 | /* 147 | * 设置options 148 | * @param options 149 | */ 150 | setOptions: function(options) { 151 | this.reset(); 152 | if(typeof options !== 'object') { 153 | options = {}; 154 | } 155 | options = $.extend(this.opts,options); 156 | this.init(options); 157 | return this; 158 | }, 159 | /* 160 | * 重置 161 | */ 162 | reset: function(x,y) { 163 | this.stop(); 164 | x = x ? x : 0; 165 | y = y ? y : 0; 166 | this.move(x,y); 167 | return this; 168 | }, 169 | /* 170 | * 停止 171 | */ 172 | stop: function(){ 173 | if(!!this.timerId){ 174 | clearInterval(this.timerId); 175 | } 176 | return this; 177 | }, 178 | /* 179 | * 变成整数 180 | * isFinite() 函数用于检查其参数是否是无穷大。 181 | */ 182 | _toInteger: function(text){ 183 | text = parseInt(text); 184 | return isFinite(text) ? text : 0; 185 | } 186 | 187 | }; 188 | var defaultConfig = { 189 | //需要运动的元素 {object | string} 190 | el: null, 191 | 192 | // 运动的元素在 X轴,Y轴的偏移位置 193 | offset: [0,0], 194 | 195 | // 终点元素 196 | targetEl: null, 197 | 198 | // 运动时间,默认为500毫秒 199 | duration: 500, 200 | 201 | // 抛物线曲率,就是弯曲的程度,越接近于0越像直线,默认0.001 202 | curvature: 0.01, 203 | 204 | // 运动后执行的回调函数 205 | callback: null, 206 | 207 | // 是否自动开始运动,默认为false 208 | autostart: false, 209 | 210 | // 运动过程中执行的回调函数,this指向该对象,接受x,y参数,分别表示X,Y轴的偏移位置。 211 | stepCallback: null, 212 | 213 | destory: null 214 | }; -------------------------------------------------------------------------------- /src/main/resources/static/js/lib/serverUrl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/30. 3 | */ 4 | var server_url = 'http://122.9.35.24/moblie/'; 5 | 6 | //jsonp模式:进入该页,请求数据 7 | //$.ajax({ 8 | // type: 'get', 9 | // async: false, 10 | // url: server_url + 'v1/index', 11 | // contentType: 'application/json', 12 | // headers: { 13 | // 'Authorization':'Basic xxxxxxxxxxxxx', 14 | // 'X_CSRF_TOKEN':'xxxxxxxxxxxxxxxxxxxx', 15 | // 'Content-Type':'application/json' 16 | // }, 17 | // dataType: "jsonp", 18 | // jsonp: "callback", 19 | // jsonpCallback: "handler", 20 | // beforeSend: function(xhr, settings) { 21 | // console.log('beforeSend==> xhr'+xhr + 'settings'+settings); 22 | // }, 23 | // success: function(xhr, status, data) { 24 | // console.log('success==> xhr'+xhr + 'status'+status + 'data'+data); 25 | // }, 26 | // error: function(xhr, errorType, error) { 27 | // console.log('error==> xhr'+xhr + 'errorType'+errorType + 'error'+error); 28 | // }, 29 | // complete: function(xhr, status) { 30 | // console.log('complete==> xhr'+xhr + 'status'+status); 31 | // } 32 | //}) -------------------------------------------------------------------------------- /src/main/resources/static/js/lib/swipe.js: -------------------------------------------------------------------------------- 1 | !function(a,b){"use strict";function h(a,b,c){b.css({"-webkit-transition":"all "+c+"s "+a.opts.transitionType,transition:"all "+c+"s "+a.opts.transitionType})}function i(a,b,c){var d=a.opts.axisX?c+"px,0,0":"0,"+c+"px,0";b.css({"-webkit-transform":"translate3d("+d+")",transform:"translate3d("+d+")"})}function j(a,c){var d=a.opts.ul.children(),e=d.eq(c).find("[data-src]");e&&e.each(function(){var c=b(this);c.is("img")?(c.attr("src",c.data("src")),c.removeAttr("data-src")):(c.css({"background-image":"url("+c.data("src")+")"}),c.removeAttr("data-src"))})}function k(a){e.touch&&!a.touches&&(a.touches=a.originalEvent.touches)}function l(a,b){b.isScrolling=void 0,b._moveDistance=b._moveDistanceIE=0,b._startX=e.touch?a.touches[0].pageX:a.pageX||a.clientX,b._startY=e.touch?a.touches[0].pageY:a.pageY||a.clientY}function m(a,b){b.opts.autoSwipe&&p(b),b.allowSlideClick=!1,b._curX=e.touch?a.touches[0].pageX:a.pageX||a.clientX,b._curY=e.touch?a.touches[0].pageY:a.pageY||a.clientY,b._moveX=b._curX-b._startX,b._moveY=b._curY-b._startY,"undefined"==typeof b.isScrolling&&(b.isScrolling=b.opts.axisX?!!(Math.abs(b._moveX)>=Math.abs(b._moveY)):!!(Math.abs(b._moveY)>=Math.abs(b._moveX))),b.isScrolling&&(a.preventDefault?a.preventDefault():a.returnValue=!1,h(b,b.opts.ul,0),b._moveDistance=b._moveDistanceIE=b.opts.axisX?b._moveX:b._moveY),b.opts.continuousScroll||(0==b._index&&b._moveDistance>0||b._index+1>=b._liLength&&b._moveDistance<0)&&(b._moveDistance=0),i(b,b.opts.ul,-(b._slideDistance*b._index-b._moveDistance))}function n(a){a.isScrolling||o(a),(c.ie10||c.ie11)&&(Math.abs(a._moveDistanceIE)<5&&(a.allowSlideClick=!0),setTimeout(function(){a.allowSlideClick=!0},100)),Math.abs(a._moveDistance)<=a._distance?q(a,"",".3"):a._moveDistance>a._distance?q(a,"prev",".3"):Math.abs(a._moveDistance)>a._distance&&q(a,"next",".3"),a._moveDistance=a._moveDistanceIE=0}function o(a){a.opts.autoSwipe&&(p(a),a.autoSlide=setInterval(function(){q(a,"next",".3")},a.opts.speed))}function p(a){clearInterval(a.autoSlide)}function q(a,b,c){"number"==typeof b?(a._index=b,a.opts.lazyLoad&&(a.opts.continuousScroll?(j(a,a._index),j(a,a._index+1),j(a,a._index+2)):(j(a,a._index-1),j(a,a._index),j(a,a._index+1)))):"next"==b?(a._index++,a.opts.lazyLoad&&(a.opts.continuousScroll?(j(a,a._index+2),a._index+1==a._liLength?j(a,1):a._index==a._liLength&&j(a,0)):j(a,a._index+1))):"prev"==b&&(a._index--,a.opts.lazyLoad&&(a.opts.continuousScroll?(j(a,a._index),0==a._index?j(a,a._liLength):a._index<0&&j(a,a._liLength-1)):j(a,a._index-1))),a.opts.continuousScroll?a._index>=a._liLength?(r(a,c),a._index=0,setTimeout(function(){r(a,0)},300)):a._index<0?(r(a,c),a._index=a._liLength-1,setTimeout(function(){r(a,0)},300)):r(a,c):(a._index>=a._liLength?a._index=0:a._index<0&&(a._index=a._liLength-1),r(a,c)),""!==arguments[1]&&a.opts.callback(a._index,a._liLength,a.$el)}function r(a,b){h(a,a.opts.ul,b),i(a,a.opts.ul,-a._index*a._slideDistance)}var f,g,c={ie10:a.navigator.msPointerEnabled,ie11:a.navigator.pointerEnabled},d=["touchstart","touchmove","touchend"],e={touch:a.Modernizr&&Modernizr.touch===!0||function(){return!!("ontouchstart"in a||a.DocumentTouch&&document instanceof DocumentTouch)}()};c.ie10&&(d=["MSPointerDown","MSPointerMove","MSPointerUp"]),c.ie11&&(d=["pointerdown","pointermove","pointerup"]),f={touchStart:d[0],touchMove:d[1],touchEnd:d[2]},b.fn.swipeSlide=function(a){var b=[];return this.each(function(c,d){b.push(new g(d,a))}),b},g=function(a,c){var d=this;d.$el=b(a),d._distance=50,d.allowSlideClick=!0,d.init(c)},g.prototype.init=function(d){function p(){var c,a=e.opts.ul.children();e._slideDistance=e.opts.axisX?e.opts.ul.width():e.opts.ul.height(),h(e,e.opts.ul,0),i(e,e.opts.ul,-e._slideDistance*e._index),h(e,a,0),c=e.opts.continuousScroll?-1:0,a.each(function(a){i(e,b(this),e._slideDistance*(a+c))})}var g,e=this;return e.opts=b.extend({},{ul:e.$el.children("ul"),li:e.$el.children().children("li"),index:0,continuousScroll:!1,autoSwipe:!0,speed:4e3,axisX:!0,transitionType:"ease",lazyLoad:!1,firstCallback:function(){},callback:function(){}},d),e._index=e.opts.index,e._liLength=e.opts.li.length,e.isScrolling,e.opts.firstCallback(e._index,e._liLength,e.$el),e._liLength<=1?(e.opts.lazyLoad&&j(e,0),!1):(e.opts.continuousScroll&&e.opts.ul.prepend(e.opts.li.last().clone()).append(e.opts.li.first().clone()),e.opts.lazyLoad&&(j(e,e._index),e.opts.continuousScroll?(j(e,e._index+1),j(e,e._index+2),0==e._index?j(e,e._liLength):e._index+1==e._liLength&&j(e,1)):0==e._index?j(e,e._index+1):e._index+1==e._liLength?j(e,e._index-1):(j(e,e._index+1),j(e,e._index-1))),p(),(c.ie10||c.ie11)&&(g="",g=e.opts.axisX?"pan-y":"none",e.$el.css({"-ms-touch-action":g,"touch-action":g}),e.$el.on("click",function(){return e.allowSlideClick})),o(e),e.$el.on(f.touchStart,function(a){k(a),l(a,e)}),e.$el.on(f.touchMove,function(a){k(a),m(a,e)}),e.$el.on(f.touchEnd,function(){n(e)}),e.opts.ul.on("webkitTransitionEnd MSTransitionEnd transitionend",function(){o(e)}),b(a).on("onorientationchange"in a?"orientationchange":"resize",function(){clearTimeout(e.timer),e.timer=setTimeout(p,150)}),void 0)},g.prototype.goTo=function(a){var b=this;q(b,a,".3")}}(window,window.Zepto||window.jQuery); -------------------------------------------------------------------------------- /src/main/resources/static/js/list.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(document).ready(function () { 5 | 6 | 7 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/load.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/login.js: -------------------------------------------------------------------------------- 1 | !function(){ 2 | var a="@charset \"utf-8\";html{color:#000;background:#fff;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html *{outline:0;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{font-family:sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:500}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}q:before,q:after{content:''}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}a:hover{text-decoration:underline}ins,a{text-decoration:none}",b=document.createElement("style");if(document.getElementsByTagName("head")[0].appendChild(b),b.styleSheet)b.styleSheet.disabled||(b.styleSheet.cssText=a);else try{b.innerHTML=a}catch(c){b.innerText=a}}(); 3 | !function(a,b){ 4 | function c(){ 5 | var b=f.getBoundingClientRect().width;b/i>540&&(b=540*i); 6 | var c=b/10; 7 | f.style.fontSize=c+"px",k.rem=a.rem=c 8 | }var d,e=a.document,f=e.documentElement,g=e.querySelector('meta[name="viewport"]'),h=e.querySelector('meta[name="flexible"]'),i=0,j=0,k=b.flexible||(b.flexible={});if(g){console.warn("用户名或密码错误");var l=g.getAttribute("content").match(/initial\-scale=([\d\.]+)/);l&&(j=parseFloat(l[1]),i=parseInt(1/j))}else if(h){var m=h.getAttribute("content");if(m){var n=m.match(/initial\-dpr=([\d\.]+)/),o=m.match(/maximum\-dpr=([\d\.]+)/);n&&(i=parseFloat(n[1]),j=parseFloat((1/i).toFixed(2))),o&&(i=parseFloat(o[1]),j=parseFloat((1/i).toFixed(2)))}}if(!i&&!j){var p=(a.navigator.appVersion.match(/android/gi),a.navigator.appVersion.match(/iphone/gi)),q=a.devicePixelRatio;i=p?q>=3&&(!i||i>=3)?3:q>=2&&(!i||i>=2)?2:1:1,j=1/i}if(f.setAttribute("data-dpr",i),!g)if(g=e.createElement("meta"),g.setAttribute("name","viewport"),g.setAttribute("content","initial-scale="+j+", maximum-scale="+j+", minimum-scale="+j+", user-scalable=no"),f.firstElementChild)f.firstElementChild.appendChild(g);else{var r=e.createElement("div");r.appendChild(g),e.write(r.innerHTML)}a.addEventListener("resize",function(){clearTimeout(d),d=setTimeout(c,300)},!1),a.addEventListener("pageshow",function(a){a.persisted&&(clearTimeout(d),d=setTimeout(c,300))},!1),"complete"===e.readyState?e.body.style.fontSize=12*i+"px":e.addEventListener("DOMContentLoaded",function(){e.body.style.fontSize=12*i+"px"},!1),c(),k.dpr=a.dpr=i,k.refreshRem=c,k.rem2px=function(a){var b=parseFloat(a)*this.rem;return"string"==typeof a&&a.match(/rem$/)&&(b+="px"),b},k.px2rem=function(a){var b=parseFloat(a)/this.rem;return"string"==typeof a&&a.match(/px$/)&&(b+="rem"),b}}(window,window.lib||(window.lib={})); -------------------------------------------------------------------------------- /src/main/resources/static/js/mall.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(document).ready(function () { 5 | $("#main").load("load1.html"); 6 | $("#btn1").click(function () { 7 | $("#main").load("load1.html", function (response, status, xhr) { 8 | // alert(response+" "+status+" "+xhr); 9 | }); 10 | }); 11 | $("#btn2").click(function () { 12 | $("#main").load("load2.html", function (response, status, xhr) { 13 | // alert(response+" "+status+" "+xhr); 14 | }); 15 | }); 16 | 17 | var $totalPrice = $(".total-price").children("strong").text(); 18 | if($totalPrice!="" && $totalPrice!="0") { 19 | $(".total-price").show(); 20 | }else { 21 | $(".total-price").hide(); 22 | } 23 | 24 | 25 | 26 | $(".type").click(function() { 27 | var $type = $(this); 28 | var ac = $type.siblings(".active").removeClass("active"); 29 | $type.addClass("active"); 30 | }); 31 | 32 | 33 | 34 | 35 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/my-deliver.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by 光灿 on 2016/6/20. 3 | */ 4 | $(function () { 5 | 6 | }); 7 | -------------------------------------------------------------------------------- /src/main/resources/static/js/myinfo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(function(){ 5 | //var $totalPrice = $(".total-price").children("strong").text(); 6 | //if($totalPrice!="" && $totalPrice!="0") { 7 | // $(".total-price").show(); 8 | //}else { 9 | // $(".total-price").hide(); 10 | //} 11 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /src/main/resources/static/js/order.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(function () { 5 | var $totalPrice = $(".total-price").children("strong").text(); 6 | if($totalPrice!="" && $totalPrice!="0") { 7 | $(".total-price").show(); 8 | }else { 9 | $(".total-price").hide(); 10 | } 11 | }); -------------------------------------------------------------------------------- /src/main/resources/static/js/payment.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by cheng on 2016/6/15. 3 | */ 4 | $(function(){ 5 | $(".weui_textarea").on("input paste" , function(){ 6 | var num_left=60-$(this).val().length; 7 | if(num_left<0){ 8 | $("#textarea_num").text("超过"+(-num_left)+"字"); 9 | $("#textarea_num").css("color","#E44443"); 10 | }else{ 11 | $("#textarea_num").text("剩余"+(num_left)+"字"); 12 | $("#textarea_num").css("color","#999999"); 13 | } 14 | }); 15 | $(".more-pay").hide(); 16 | $("#more").click(function(){ 17 | $(".more-pay").fadeToggle('fast'); 18 | var isHas = $(this).hasClass('more'); 19 | if (isHas) { 20 | $(this).removeClass('more'); 21 | } else { 22 | $(this).addClass('more'); 23 | } 24 | }); 25 | 26 | $('#back').click(function(){ 27 | $.modal({ 28 | //title: "支付方式", 29 | text: "你真的不要下单尝尝吗?", 30 | buttons: [ 31 | { text: "我在想想", onClick: function(){}}, 32 | { text: "不再考虑了", onClick: function(){ 33 | window.location.href="shopcart.html"; 34 | }}, 35 | ] 36 | }); 37 | }); 38 | 39 | 40 | }); -------------------------------------------------------------------------------- /src/main/resources/templates/addAddress.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 新增地址 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 新增地址: 24 | 25 |
26 | 27 |
28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
52 |
53 |
54 | 55 | 56 |
57 |
58 | 59 |
60 | 61 |
62 |
63 | 64 | 93 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /src/main/resources/templates/addService.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 新增服务 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |
43 | 44 |
45 |
46 |
47 | 48 |
49 | 类别: 50 | 53 |
54 |
55 | 56 | 57 |
58 |
59 | 60 | 61 |
62 | 63 | 64 |
65 |
66 | 67 | 68 |
69 |
70 | 71 |
72 |
73 | 76 | 77 |
78 | 79 | 82 | 83 | 112 | 113 | 121 | 总价:¥0 122 | 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /src/main/resources/templates/buy-success.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 首页 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 |
20 |

服务

21 |
22 |
23 |
24 |
25 |
26 |

下单成功!

27 |

您的订单号:2245587

28 |

将于明日配送10:30 - 18:30 安排配送

29 |

请保持电话畅通

30 |
31 |
32 |

33 | 查看订单 34 |

35 |
36 |
37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/resources/templates/deliver.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 送货地址 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 |
送货上门
20 | 21 |
22 |
23 |
24 | 25 |
26 | 27 |
28 |
29 | 定位到当前位置 30 | 31 |
32 | 54 |
55 |
56 |
57 |
当前城市:
58 |
59 | 60 | 雨山区 61 |
62 |
63 |
64 |
    65 |
  • 66 | 67 |
    安徽工业大学(东校区)
    68 |
  • 69 |
70 | 94 |
95 |
96 |
97 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /src/main/resources/templates/errorpage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

出错了~~~

20 | 21 | 50 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/main/resources/templates/list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 商品列表 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 | 16 |
17 |

现购商品

18 |
19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | 28 |
29 |
30 | 大白兔 31 | 0.5元/颗 32 |
33 | ¥0.5 34 |
35 |
36 | x1 37 |
38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 | 冰红茶 46 | 3.0元/瓶 47 |
48 | ¥3.0 49 |
50 |
51 | x1 52 |
53 |
54 |
55 |
56 |
57 | 58 |
59 |
60 | 卫龙 61 | 1.5元/袋 62 |
63 | ¥1.5 64 |
65 |
66 | x1 67 |
68 |
69 |
70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/main/resources/templates/load2.html: -------------------------------------------------------------------------------- 1 |
2 | load2 3 |
4 | -------------------------------------------------------------------------------- /src/main/resources/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 小校园 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 登录 19 | 20 | 注册 21 | 22 |
23 |
24 | 25 | 28 | 29 | 30 |
31 |
32 |
33 | 34 |
35 | 36 |
37 |
38 | 39 | 40 |
41 |

42 |

忘记密码

43 |
44 | 45 | 46 | 47 |
48 | 49 |
50 |
51 | 52 |
53 |
54 | 59 | 63 |
64 | 65 | 66 | -------------------------------------------------------------------------------- /src/main/resources/templates/my-deliver.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 送货地址 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 地址管理: 17 | + 18 |
19 | 20 | 48 | 49 | 78 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /src/main/resources/templates/register.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 小校园 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 注册 18 |
19 |
20 | 21 | 24 | 25 |
26 |
27 |
28 |
29 | 30 |
31 |
32 | 姓名: 33 |
34 |
35 | 先生 38 | 女士 41 |
42 |
43 | 学院: 44 |
45 |
46 | 专业: 47 |
48 |
49 | 手机号: 50 |
51 |
52 | 密码: 53 |
54 |
55 | 确认密码: 56 |
57 |
58 | 59 |
60 |
61 |
62 |
63 |
64 | 65 | 68 | 69 | -------------------------------------------------------------------------------- /src/main/resources/templates/service_detail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 服务详情 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |
25 | 26 |
27 |

服务详情

28 |
29 | 30 |
31 |
32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
62 | 63 | 64 |
65 | 66 | 67 | 96 | 97 | 105 | 总价:¥0 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 127 | -------------------------------------------------------------------------------- /src/main/resources/templates/service_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 服务 6 | 7 | 8 | 13 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 欢迎光临! 30 | + 31 |
32 |
33 | 42 |
43 |
44 |
45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
服务类型服务内容小费
63 | 64 | 65 |
66 |
67 | 96 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /src/main/resources/templates/shopcart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 购物车 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 |
20 |

购物车

21 | 24 |
25 |
26 |
27 |
28 | 42 |
43 | 44 | 45 |
46 |
47 | 48 |
49 |
50 |
51 | 57 |
58 |
59 |
60 | 61 | 62 | 63 |
64 |
65 | 大白兔 66 | 0.5元/颗 67 |
68 | ¥0.5 69 |
70 |
71 |
72 |
73 |
74 | 75 | 1 76 | 77 |
78 |
79 |
80 |
81 | 82 | 83 |
84 | 0.0元, 85 | 运费0元 86 |
87 | 88 |
89 |
90 |
91 |
92 |
93 | 100 |
101 | 102 | 103 |
104 |
105 | 合计:0 106 |
107 | 不含运费 108 |
109 |
110 |
111 | 112 | 113 | 114 | 115 |
116 | 117 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /src/main/resources/templates/snack_detail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 详情 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 |
23 |
24 |
25 |
26 |
27 | 28 |
29 | 月售112个 30 | 31 |
32 |
33 |
34 | 35 | 36 |
37 |
38 | 39 |
40 | 6 41 | ¥0.5 42 |
43 | 44 | 1 45 | 46 |
47 |
48 |
49 |
50 | 51 |
52 |

商品评价

53 |
54 | 好评度100% 55 | 2人评价 56 |
57 |
58 |
59 |
60 | 186****6683 61 | level 62 | 2018.12.25 11:28 63 |
64 |
65 |
66 | 好评,比想象中的好吃! 67 |
68 |
69 |
70 |
71 |
72 |
73 | 186****6683 74 | level 75 | 2018.12.28 21:28 76 |
77 |
78 |
79 | 好评,比想象中的好吃! 80 |
81 |
82 | 回复:谢谢支持! 83 |
84 |
85 |
86 |
查看全部评论
87 |
88 | 89 |
90 |
91 |
0.5
92 |
93 |
94 | 1 95 | 96 |
97 | 98 | 满20元送一个 99 |
100 |
101 |
102 | 103 | 收藏 104 |
105 | 106 |
107 |
108 |
109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /src/main/resources/templates/snack_order.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 订单 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 28 | 29 | 30 |
31 |
32 |
33 | 34 |
35 |

订单列表

36 |
37 | 38 |
39 |
40 |
41 |
42 | 43 | 44 | 45 | 46 | 47 |
商品订单服务订单
48 |
49 | 98 | 99 | 128 | 129 | 137 | 总价:¥0 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /src/main/resources/templates/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 列表 6 | 7 | 8 | 9 | 10 | 44 | 45 | 46 | 47 |
48 | 49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /src/main/resources/templates/test/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/templates/test/1.jpg -------------------------------------------------------------------------------- /src/main/resources/templates/test/add.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 加入 6 | 7 | 8 | 83 | 84 | 85 |
86 |
87 | 88 |
89 |
描述
90 | 91 |
92 |
93 |
94 | 95 |
96 |
描述
97 | 98 |
99 |
100 |
101 | 102 |
103 |
描述
104 | 105 |
106 |
107 | 108 |
109 |
110 | 111 |
112 | 重置 113 | 开始运动 114 | 停止运动 115 | 设置配置参数 116 |
162 | 163 | -------------------------------------------------------------------------------- /src/main/resources/templates/test/img/zm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niujunbo119/smallschool/6eeda5f6bd13c711a095284f89f3ddc6f622d993/src/main/resources/templates/test/img/zm.jpg -------------------------------------------------------------------------------- /src/main/resources/templates/test/parabola.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 12 | 13 | 14 | 20 |
21 |
22 | 23 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /src/main/resources/templates/test/parabola.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 实现抛物线函数 Parabola 3 | * 切记既然是抛物线运动,那么运动的元素需要绝对定位 4 | * 具体了解抛物线 可以看张鑫旭的文章 5 | * http://www.zhangxinxu.com/wordpress/2013/12/javascript-js-%E5%85%83%E7%B4%A0-%E6%8A%9B%E7%89%A9%E7%BA%BF-%E8%BF%90%E5%8A%A8-%E5%8A%A8%E7%94%BB/ 6 | */ 7 | var Parabola = function(opts){ 8 | this.init(opts); 9 | }; 10 | Parabola.prototype = { 11 | constructor: Parabola, 12 | /* 13 | * @fileoverview 页面初始化 14 | * @param opts {Object} 配置参数 15 | */ 16 | init: function(opts){ 17 | this.opts = $.extend(defaultConfig, opts || {}); 18 | // 如果没有运动的元素 直接return 19 | if(!this.opts.el) { 20 | return; 21 | } 22 | // 取元素 及 left top 23 | this.$el = $(this.opts.el); 24 | this.$elLeft = this._toInteger(this.$el.css("left")); 25 | this.$elTop = this._toInteger(this.$el.css("top")); 26 | // 计算x轴,y轴的偏移量 27 | if(this.opts.targetEl) { 28 | this.diffX = this._toInteger($(this.opts.targetEl).css("left")) - this.$elLeft; 29 | this.diffY = this._toInteger($(this.opts.targetEl).css("top")) - this.$elTop; 30 | }else { 31 | this.diffX = this.opts.offset[0]; 32 | this.diffY = this.opts.offset[1]; 33 | } 34 | // 运动时间 35 | this.duration = this.opts.duration; 36 | // 抛物线曲率 37 | this.curvature = this.opts.curvature; 38 | 39 | // 计时器 40 | this.timerId = null; 41 | /* 42 | * 根据两点坐标以及曲率确定运动曲线函数(也就是确定a, b的值) 43 | * 公式: y = a*x*x + b*x + c; 44 | * 因为经过(0, 0), 因此c = 0 45 | * 于是: 46 | * y = a * x*x + b*x; 47 | * y1 = a * x1*x1 + b*x1; 48 | * y2 = a * x2*x2 + b*x2; 49 | * 利用第二个坐标: 50 | * b = (y2 - a*x2*x2) / x2 51 | */ 52 | this.b = (this.diffY - this.curvature * this.diffX * this.diffX) / this.diffX; 53 | 54 | // 是否自动运动 55 | if(this.opts.autostart) { 56 | this.start(); 57 | } 58 | }, 59 | /* 60 | * @fileoverview 开始 61 | */ 62 | start: function(){ 63 | // 开始运动 64 | var self = this; 65 | // 设置起始时间 和 结束时间 66 | this.begin = (new Date()).getTime(); 67 | this.end = this.begin + this.duration; 68 | 69 | // 如果目标的距离为0的话 就什么不做 70 | if(this.diffX === 0 && this.diffY === 0) { 71 | return; 72 | } 73 | if(!!this.timerId) { 74 | clearInterval(this.timerId); 75 | this.stop(); 76 | } 77 | // 每帧(对于大部分显示屏)大约16~17毫秒。默认大小是166.67。也就是默认10px/ms 78 | this.timerId = setInterval(function(){ 79 | var t = (new Date()).getTime(); 80 | self.step(t); 81 | },16); 82 | return this; 83 | }, 84 | /* 85 | * @fileoverview 执行每一步 86 | * @param {string} t 时间 87 | */ 88 | step: function(t){ 89 | var opts = this.opts; 90 | var x, 91 | y; 92 | // 如果当前运行的时间大于结束的时间 93 | if(t > this.end) { 94 | // 运行结束 95 | x = this.diffX; 96 | y = this.diffY; 97 | this.move(x,y); 98 | this.stop(); 99 | // 结束后 回调 100 | if(typeof opts.callback === 'function') { 101 | opts.callback.call(this); 102 | } 103 | }else { 104 | // 每一步x轴的位置 105 | x = this.diffX * ((t - this.begin) / this.duration); 106 | // 每一步y轴的位置 y = a * x *x + b*x + c; c = 0 107 | y = this.curvature * x * x + this.b * x; 108 | // 移动 109 | this.move(x,y); 110 | if(typeof opts.stepCallback === 'function') { 111 | opts.stepCallback.call(this,x,y); 112 | } 113 | } 114 | return this; 115 | }, 116 | /* 117 | * @fileoverview 给元素定位 118 | * @param {x,y} x,y坐标 119 | * @return this 120 | */ 121 | move: function(x,y) { 122 | this.$el.css({ 123 | "position":'absolute', 124 | "left": this.$elLeft + x + 'px', 125 | "top": this.$elTop + y + 'px' 126 | }); 127 | return this; 128 | }, 129 | /* 130 | * 获取配置项 131 | * @param {object} options配置参数 132 | * @return {object} 返回配置参数项 133 | */ 134 | getOptions: function(options){ 135 | if(typeof options !== "object") { 136 | options = {}; 137 | } 138 | options = $.extend(defaultConfig, options || {}); 139 | return options; 140 | }, 141 | /* 142 | * 设置options 143 | * @param options 144 | */ 145 | setOptions: function(options) { 146 | this.reset(); 147 | if(typeof options !== 'object') { 148 | options = {}; 149 | } 150 | options = $.extend(this.opts,options); 151 | this.init(options); 152 | return this; 153 | }, 154 | /* 155 | * 重置 156 | */ 157 | reset: function(x,y) { 158 | this.stop(); 159 | x = x ? x : 0; 160 | y = y ? y : 0; 161 | this.move(x,y); 162 | return this; 163 | }, 164 | /* 165 | * 停止 166 | */ 167 | stop: function(){ 168 | if(!!this.timerId){ 169 | clearInterval(this.timerId); 170 | } 171 | return this; 172 | }, 173 | /* 174 | * 变成整数 175 | * isFinite() 函数用于检查其参数是否是无穷大。 176 | */ 177 | _toInteger: function(text){ 178 | text = parseInt(text); 179 | return isFinite(text) ? text : 0; 180 | } 181 | }; 182 | var defaultConfig = { 183 | //需要运动的元素 {object | string} 184 | el: null, 185 | 186 | // 运动的元素在 X轴,Y轴的偏移位置 187 | offset: [0,0], 188 | 189 | // 终点元素 190 | targetEl: null, 191 | 192 | // 运动时间,默认为500毫秒 193 | duration: 500, 194 | 195 | // 抛物线曲率,就是弯曲的程度,越接近于0越像直线,默认0.001 196 | curvature: 0.01, 197 | 198 | // 运动后执行的回调函数 199 | callback: null, 200 | 201 | // 是否自动开始运动,默认为false 202 | autostart: false, 203 | 204 | // 运动过程中执行的回调函数,this指向该对象,接受x,y参数,分别表示X,Y轴的偏移位置。 205 | stepCallback: null 206 | }; 207 | 208 | 209 | window.location.href="su" -------------------------------------------------------------------------------- /src/main/resources/templates/test/test-2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Title 7 | 155 | 156 | 157 |
158 | 159 | -------------------------------------------------------------------------------- /src/main/resources/templates/test/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 列表 6 | 7 | 8 | 9 | 10 | 11 | 52 | 53 | 54 | 55 |
56 |
btn1
57 |
58 |
btn2
59 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /src/main/resources/templates/ticket.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 服务 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 | 16 |
17 |

选择优惠券

18 |
19 | 确认 20 |
21 |
22 |
23 | 24 |
25 |
    26 |
  • 27 | 44 |
  • 45 |
  • 46 | 63 |
  • 64 |
  • 65 | 82 |
  • 83 |
84 |
85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /src/main/resources/templates/updateAddress.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 编辑地址 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 编辑地址: 24 | 25 |
26 | 27 |
28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
52 |
53 |
54 | 55 | 56 |
57 |
58 | 59 |
60 | 61 |
62 |
63 | 64 | 93 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /src/test/java/com/smallschool/SmallschoolApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.smallschool; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SmallschoolApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | --------------------------------------------------------------------------------