فهرست منبع

1、优化订单填报功能
2、优化后端校验

binguoc 4 سال پیش
والد
کامیت
30be3c5c0b

+ 18 - 0
pom.xml

@@ -201,6 +201,24 @@
         </dependency>
 
 
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter-test</artifactId>
+            <version>3.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13</version>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
 

+ 1 - 0
src/main/java/com/chuanghai/repair/RepairsApplication.java

@@ -13,6 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @SpringBootApplication
 @EnableScheduling //设置定时任务
 @EnableCaching
+@MapperScan("com.chuanghai.repair.mapper")//扫描mapper文件夹
 public class RepairsApplication {
 
     public static void main(String[] args) {

+ 5 - 0
src/main/java/com/chuanghai/repair/config/WeixiaoConfig.java

@@ -44,4 +44,9 @@ public class WeixiaoConfig {
      * 微校通知发起单位
      */
     private String sender;
+
+    /**
+     * 服务器url
+     */
+    private String serverUrl;
 }

+ 2 - 8
src/main/java/com/chuanghai/repair/controller/AutoSendOrderCentroller.java

@@ -52,8 +52,7 @@ public class AutoSendOrderCentroller implements ApplicationListener<ContextRefre
 
     @Override
     public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
-        String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobalA(weixiaoConfig.getAppKey(),weixiaoConfig.getAppSecret(),weixiaoConfig.getOcode());
-       // String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobal();
+        String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobalA(weixiaoConfig.getAppKey(),weixiaoConfig.getAppSecret(),weixiaoConfig.getOcode(),weixiaoConfig.getServerUrl());
         CacheManagerImpl cacheManagerImpl = new CacheManagerImpl();
         CacheListener cacheListener = new CacheListener(cacheManagerImpl);
         cacheManagerImpl.putCache("cache_token", accessTokenGlobal, 2*3610 * 1000L); //access_token 在2*3600*1000L 过期
@@ -67,8 +66,7 @@ public class AutoSendOrderCentroller implements ApplicationListener<ContextRefre
      */
     @Scheduled(cron = "0 0/30 * * * ?") //    0 0/30 * * * ?    30分钟调用一次
     public void autoQueryOrder(){
-        String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobalA(weixiaoConfig.getAppKey(),weixiaoConfig.getAppSecret(),weixiaoConfig.getOcode());
-       // String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobal();
+        String accessTokenGlobal = new CreateTokenUtil().getAccessTokenGlobalA(weixiaoConfig.getAppKey(),weixiaoConfig.getAppSecret(),weixiaoConfig.getOcode(),weixiaoConfig.getServerUrl());
         CacheManagerImpl cacheManagerImpl = new CacheManagerImpl();
         CacheListener cacheListener = new CacheListener(cacheManagerImpl);
         cacheManagerImpl.putCache("cache_token", accessTokenGlobal, 2*3610 * 1000L); //access_token 在2*3600*1000L 过期
@@ -84,10 +82,6 @@ public class AutoSendOrderCentroller implements ApplicationListener<ContextRefre
 
             String idList = orderList.stream().filter(e -> e.getRepairsStudent() != null)
                     .map(e -> e.getRepairsStudent().getStudentId()).collect(Collectors.toSet()).toString();
-
-           // String title = "寝室维修通知";
-           // String content = "同学你好,你的寝室报修单已被维修师傅接单,维修师傅将于半小时后上门维修;请合理安排时间,谢谢合作。";
-           // String sender = "寝室管理办公室";
             String access_token = new CacheManagerImpl().getCacheByKey("cache_token").getDatas().toString();
 
             Map<String, String> param = new HashMap<>();

+ 7 - 12
src/main/java/com/chuanghai/repair/controller/OrderController.java

@@ -336,7 +336,6 @@ public class OrderController {
      * 获取请求头中的access_token解码的到card_number学生ID,将获取的订单信息新增到订单表中
      *
      * @param request
-     * @param orderType
      * @param orderExpectedTime
      * @param faultId
      * @param otherPhone
@@ -348,7 +347,6 @@ public class OrderController {
     @ApiOperation("学生:订单填报")
     @PostMapping(value = "/insertOrder")
     public ReturnValueUtil insertOrder(HttpServletRequest request,
-                                       @ApiParam(name = "故障类型", required = true) String orderType,
                                        @ApiParam(name = "维修期望时间", required = true) String orderExpectedTime,
                                        @ApiParam(name = "故障类型ID", required = true) Integer faultId,
                                        @ApiParam(name = "备选电话", required = true) String otherPhone,
@@ -376,14 +374,13 @@ public class OrderController {
             String orderId = "D";
             orderId += String.valueOf(ts);
             RepairsWork repairsWork = null;
-            RepairsOrder repairsOrder = new RepairsOrder();
-            RepairsFault repairsFault = new RepairsFault(faultId, null, null, null, orderType);
+            RepairsFault repairsFault = new RepairsFault(faultId, null, null, null,null);
             //获取原始图片的拓展名
             String fileNameSaveUrl = "";
             String type = "";
-            repairsOrder = new RepairsOrder(orderId, null, orderNote, orderExpectedTime,
+            RepairsOrder repairsOrder = new RepairsOrder(orderId, null, orderNote, orderExpectedTime,
                     null, date, null, "0", null, "0",
-                    null, repairsStudent, repairsWork, repairsFault, orderType);
+                    null, repairsStudent, repairsWork, repairsFault);
             if(file == null){
                 repairsOrderService.insertOrder(repairsOrder);
                 flag = Boolean.TRUE;
@@ -397,11 +394,9 @@ public class OrderController {
                     //图片在数据库保存的名称
                     fileNameSaveUrl += fileNameUrl;
                     fileNameUrl = fileNameUrl.substring(0, fileNameUrl.lastIndexOf(";"));
-
                     //保存图片的路径(这是存在我项目中的images下了,你们可以设置路径)
                     String filePath = imgConfig.getSaveLocation();
-                    //生成新文件名字
-                    // 封装上传文件位置的全路径
+                    //生成新文件名字 封装上传文件位置的全路径
                     File targetFile = new File(filePath, fileNameUrl);
                     //把本地文件上传到封装上传文件位置的全路径
                     imageFile.transferTo(targetFile);
@@ -443,7 +438,7 @@ public class OrderController {
             if (!orderId.equals("")) {
                 RepairsOrder repairsOrder = new RepairsOrder(orderId, null, null, null,
                         null, null, null, "3", null,
-                        null, null, null, repairsWork, null, null);
+                        null, null, null, repairsWork, null);
                 ArrayList<RepairsOrder> orderArrayList = new ArrayList<>();
                 orderArrayList.add(repairsOrder);
                 repairsOrderService.updateOrderStatus(orderArrayList);
@@ -473,7 +468,7 @@ public class OrderController {
                 RepairsWork repairsWork = new RepairsWork();
                 RepairsOrder repairsOrder = new RepairsOrder(orderId, null, null, null,
                         null, null, null, "0", null,
-                        null, null, null, repairsWork, null, null);
+                        null, null, null, repairsWork, null);
                 ArrayList<RepairsOrder> orderArrayList = new ArrayList<>();
                 orderArrayList.add(repairsOrder);
                 repairsOrderService.updateOrderStatus(orderArrayList);
@@ -509,7 +504,7 @@ public class OrderController {
                 Date completeTimeDate = sdf.parse(completeTime);
                 RepairsOrder repairsOrder = new RepairsOrder(orderId, null, null, null,
                         completeTimeDate, null, null, "2", null,
-                        null, null, null, repairsWork, null, null);
+                        null, null, null, repairsWork, null);
                 ArrayList<RepairsOrder> orderArrayList = new ArrayList<>();
                 orderArrayList.add(repairsOrder);
                 repairsOrderService.updateOrderStatus(orderArrayList);

+ 1 - 0
src/main/java/com/chuanghai/repair/entity/RepairsAdmin.java

@@ -53,6 +53,7 @@ public class RepairsAdmin {
      * 状态 1(启用) 0(未启用)
      */
     @ApiModelProperty(value = "状态 1(启用) 0(未启用)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "admin_status")
     private String adminStatus;
 

+ 4 - 1
src/main/java/com/chuanghai/repair/entity/RepairsFault.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
 import javax.persistence.*;
+import javax.validation.constraints.Pattern;
 
 @NoArgsConstructor
 @AllArgsConstructor
@@ -38,14 +39,16 @@ public class RepairsFault {
      * 故障类型状态 1(启用)0(停用)
      */
     @ApiModelProperty(value = "故障状态 1(启用)0(停用)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "fault_status")
     private String faultStatus;
 
 
     /**
-     * 故障类型状态 1(启用)0(停用
+     * 故障类型 0(水电工)1(空调工)2(木工
      */
     @ApiModelProperty(value = "故障类型 0(水电工)1(空调工)2(木工)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "fault_type")
     private String faultType;
 

+ 2 - 0
src/main/java/com/chuanghai/repair/entity/RepairsNotice.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
 import javax.persistence.*;
+import javax.validation.constraints.Pattern;
 
 @NoArgsConstructor
 @AllArgsConstructor
@@ -38,6 +39,7 @@ public class RepairsNotice {
      * 公告状态 0(删除)1(启用)
      */
     @ApiModelProperty(value = "公告状态 0(删除)1(启用)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "notice_status")
     private String noticeStatus;
 

+ 3 - 8
src/main/java/com/chuanghai/repair/entity/RepairsOrder.java

@@ -6,6 +6,7 @@ import lombok.*;
 import java.math.BigDecimal;
 import java.util.Date;
 import javax.persistence.*;
+import javax.validation.constraints.Pattern;
 
 @NoArgsConstructor
 @AllArgsConstructor
@@ -68,6 +69,7 @@ public class RepairsOrder {
      * 订单状态 0(待接单)1(已接单)2(维修完成)3(退单)
      */
     @ApiModelProperty(value = "订单状态 0(新订单)1(待接单)2(已接单)3(维修完成)4(退单)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "order_status")
     private String orderStatus;
 
@@ -82,6 +84,7 @@ public class RepairsOrder {
      * 支付状态 0(未支付)1(已支付)
      */
     @ApiModelProperty(value = "支付状态 0(未支付)1(已支付)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "order_price_status")
     private String orderPriceStatus;
 
@@ -112,12 +115,4 @@ public class RepairsOrder {
      */
      private RepairsFault repairsFault;
 
-
-
-    /**
-     * 订单类型
-     */
-    @ApiModelProperty(value = "订单类型")
-    @Column(name = "order_type")
-    private String orderType;
 }

+ 5 - 0
src/main/java/com/chuanghai/repair/entity/RepairsStudent.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
 import javax.persistence.*;
+import javax.validation.constraints.Pattern;
 
 @NoArgsConstructor
 @AllArgsConstructor
@@ -31,6 +32,7 @@ public class RepairsStudent {
      * 学生性别
      */
     @ApiModelProperty(value = "学生性别 0(男) 1(女)")//  grade
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "student_sex")
     private String studentSex;
 
@@ -66,6 +68,7 @@ public class RepairsStudent {
      * 学生校区0(黄家湖校区)1(靖安校区)
      */
     @ApiModelProperty(value ="学生校区0(黄家湖校区)1(靖安校区)" ) //key:campus,value:
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "student_campus")
     private String studentCampus;
 
@@ -81,6 +84,7 @@ public class RepairsStudent {
      * 学生状态 0(未毕业)1(已毕业)
      */
     @ApiModelProperty(value = "学生状态 0(未毕业)1(已毕业)")
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "student_status")
     private String studentStatus;
 
@@ -96,6 +100,7 @@ public class RepairsStudent {
      * 学生信息更新的状态值   0 (未更新) 1(已更新)
      */
     @ApiModelProperty(value ="学生信息更新的状态值" )
+    @Pattern(regexp = "\\d{1}",message = "必须为数字,并且长度为1")
     @Column(name = "student_update_status")
     private String studentUpdateStatus;
 }

+ 3 - 0
src/main/java/com/chuanghai/repair/entity/RepairsWork.java

@@ -52,6 +52,7 @@ public class RepairsWork {
      * 状态 1(在岗)0(离岗)2(离职)
      */
     @ApiModelProperty(value = "状态 1(在岗)0(离岗)2(离职)")
+    @Pattern(regexp = "",message = "必须为数字,并且长度为1")
     @Column(name = "work_status")
     private String workStatus;
 
@@ -59,6 +60,7 @@ public class RepairsWork {
      * 工人类型 0(水电工)1(木工)
      */
     @ApiModelProperty(value ="维修工人类型 0(水电工)1(空调工)2(木工)" )
+    @Pattern(regexp = "\\d{2}",message = "必须为数字,并且长度为1")
     @Column(name = "work_type")
     private String workType;
 
@@ -66,6 +68,7 @@ public class RepairsWork {
     /**
      * 工人服务校区0(南校区)1(北校区)
      */
+    @Pattern(regexp = "\\^[01]$\\ ",message = "必须为数字,并且长度为1")
     @ApiModelProperty(value ="工人服务校区0(黄家湖校区)1(靖安校区)" )
     @Column(name = "work_campus")
     private String workCampus;

+ 1 - 0
src/main/java/com/chuanghai/repair/mapper/RepairsWorkMapper.java

@@ -1,5 +1,6 @@
 package com.chuanghai.repair.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.chuanghai.repair.entity.RepairsWork;
 import org.apache.ibatis.annotations.Mapper;
 

+ 4 - 3
src/main/java/com/chuanghai/repair/utils/CreateTokenUtil.java

@@ -40,6 +40,7 @@ public class CreateTokenUtil {
     private static String app_key;
     private static String app_secret;
     private static String ocode;
+    private static String serverUrl;
 
     /**
      * 数据加密生成token
@@ -95,10 +96,9 @@ public class CreateTokenUtil {
      */
     public static String getAccessToken(String wxcode) {
         String access_token = "";
-
         try {
             String grant_type = "authorization_code";
-            String redirect_uri = "http://binguo.vaiwan.com/login/getAccessToken";
+            String redirect_uri = serverUrl+"/login/getAccessToken";
             String url = "https://open.wecard.qq.com/connect/oauth2/token"; //用于用户 获取基础的access_token
             MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
             param.add("wxcode", wxcode);
@@ -134,10 +134,11 @@ public class CreateTokenUtil {
      */
 
 
-public String getAccessTokenGlobalA(String appKey, String appSecret, String oCode){
+public String getAccessTokenGlobalA(String appKey, String appSecret, String oCode, String url){
     app_key = appKey;
     app_secret = appSecret;
     ocode = oCode;
+    serverUrl = url;
 
     String accessTokenGlobal = getAccessTokenGlobal();
 

+ 2 - 0
src/main/resources/application.yml

@@ -40,6 +40,8 @@ weixiao:
   app_key: EE28EE2C93296F4E
   app_secret: 5071958561AA629530AAA31503088330
   ocode: 1015730314
+  serverUrl: http://10.244.137.3:8084
+# serverUrl: http://binguo.vaiwan.com
   title: 寝室维修通知
   content: 同学你好,你的寝室报修单已被维修师傅接单,维修师傅将于半小时后上门维修;请合理安排时间,谢谢合作。
   sender: 寝室管理办公室

+ 2 - 14
src/main/resources/mapper/RepairsOrderMapper.xml

@@ -15,7 +15,6 @@
         <result column="order_status" property="orderStatus" jdbcType="VARCHAR"/>
         <result column="order_price" property="orderPrice" jdbcType="DECIMAL"/>
         <result column="order_price_status" property="orderPriceStatus" jdbcType="VARCHAR"/>
-
         <result column="order_back" property="orderBack" jdbcType="VARCHAR"/>
     </resultMap>
 
@@ -32,7 +31,6 @@
         <result column="order_price" property="orderPrice" jdbcType="DECIMAL"/>
         <result column="order_price_status" property="orderPriceStatus" jdbcType="VARCHAR"/>
         <result column="order_back" property="orderBack" jdbcType="VARCHAR"/>
-        <result column="order_type" property="orderType" jdbcType="VARCHAR"/>
 <!--        订单与学生之间是  N:1 关系-->
         <association  property="repairsStudent"  javaType="com.chuanghai.repair.entity.RepairsStudent">
             <id column="student_id" property="studentId"></id>
@@ -155,22 +153,12 @@
 <!--    订单填报-->
     <insert id="insertOrder" parameterType="com.chuanghai.repair.entity.RepairsOrder">
         insert into repairs_order (order_id,order_images,order_note,order_expected_time,order_status,order_price,
-                                    order_price_status,student_id,order_commit_time,order_type,fault_id)
+                                    order_price_status,student_id,order_commit_time,fault_id)
         values(#{orderId},#{orderImages},#{orderNote},#{orderExpectedTime},#{orderStatus},
-             #{orderPrice},#{orderPriceStatus},#{repairsStudent.studentId},#{orderCommitTime},#{orderType},#{repairsFault.faultId});
+             #{orderPrice},#{orderPriceStatus},#{repairsStudent.studentId},#{orderCommitTime},#{repairsFault.faultId});
     </insert>
 
 
-<!--    查询各个校区、类型的订单  木工  水电工  空调工-->
-    <select id="queryOrderByType" parameterType="java.lang.String" resultType="java.lang.String" >
-
-
-        select od.order_id from repairs_order od ,repairs_student st
-        where od.student_id = st.student_id
-        and od.order_type =#{orderType}
-        and od.order_status = 0
-        and st.student_campus = #{campus}
-    </select>
 
 <!--    订单修改状态  已接单 已完成 退单  拒绝状态-->
     <update id="updateOrderStatus" parameterType="java.util.List" >

+ 9 - 0
src/test/java/com/chuanghai/RepairsApplicationTests.java

@@ -1,7 +1,16 @@
 package com.chuanghai;
 
+import com.chuanghai.repair.RepairsApplication;
+import com.chuanghai.repair.entity.RepairsWork;
+import com.chuanghai.repair.mapper.RepairsWorkMapper;
 import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
 
 @SpringBootTest
 class RepairsApplicationTests {