Yansen 2 yıl önce
ebeveyn
işleme
e2699bc8f3

BIN
db/ybai.db Dosyayı Görüntüle


+ 203
- 0
src/main/java/com/yunzhi/inte/common/StringUtils.java Dosyayı Görüntüle

@@ -0,0 +1,203 @@
1
+package com.yunzhi.inte.common;
2
+
3
+import java.io.UnsupportedEncodingException;
4
+import java.net.URLDecoder;
5
+import java.net.URLEncoder;
6
+import java.util.*;
7
+import java.util.regex.Matcher;
8
+import java.util.regex.Pattern;
9
+
10
+public class StringUtils {
11
+    private static Pattern humpPattern = Pattern.compile("[A-Z]");
12
+
13
+    public static boolean isEmpty(String str) {
14
+        return null == str || "".equals(str.trim()) || "null".equals(str) || "undefined".equals(str);
15
+    }
16
+
17
+    public static String trim(String src, String...st) {
18
+        if (null == src) return src;
19
+        if (null == st || st.length == 0) return src.trim();
20
+
21
+        String start = st[0];
22
+        if (!src.startsWith(start)) {
23
+            return src;
24
+        }
25
+
26
+        return src.substring(start.length());
27
+    }
28
+
29
+    public static String trimEnd(String src, String str) {
30
+        if (null == src || null == str) {
31
+            return src;
32
+        }
33
+
34
+        if (src.endsWith(str)) {
35
+            return src.substring(0, src.length() - str.length());
36
+        }
37
+
38
+        return src;
39
+    }
40
+
41
+    public static String ifNull(String src, String defaultVal) {
42
+        return isEmpty(src) ? defaultVal : src;
43
+    }
44
+
45
+    public static String random(int length) {
46
+        String str="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
47
+        Random random = new Random();
48
+        StringBuffer sb = new StringBuffer();
49
+        for(int i=0;i<length;i++){
50
+            int number=random.nextInt(62);
51
+            sb.append(str.charAt(number));
52
+        }
53
+        return sb.toString();
54
+    }
55
+
56
+    public static String urlEncode(String str) {
57
+        if (isEmpty(str)) return str;
58
+
59
+        try {
60
+            return URLEncoder.encode(str, "UTF-8");
61
+        } catch (UnsupportedEncodingException e) {
62
+            e.printStackTrace();
63
+            return str;
64
+        }
65
+    }
66
+
67
+    public static String urlDecode(String str) {
68
+        if (isEmpty(str)) return str;
69
+
70
+        try {
71
+            return URLDecoder.decode(str, "UTF-8");
72
+        } catch (UnsupportedEncodingException e) {
73
+            e.printStackTrace();
74
+            return str;
75
+        }
76
+    }
77
+
78
+    public static String encodeURIComponent(String str) {
79
+        String result = urlEncode(str);
80
+
81
+        return result.replaceAll("\\+", "%20")
82
+                .replaceAll("\\%21", "!")
83
+                .replaceAll("\\%27", "'")
84
+                .replaceAll("\\%28", "(")
85
+                .replaceAll("\\%29", ")")
86
+                .replaceAll("\\%7E", "~");
87
+    }
88
+
89
+    public static String humpToLine(String str) {
90
+        if (null == str || "".equals(str)) return "";
91
+
92
+        Matcher matcher = humpPattern.matcher(str);
93
+        StringBuffer sb = new StringBuffer();
94
+        while (matcher.find()) {
95
+            matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
96
+        }
97
+        matcher.appendTail(sb);
98
+        return sb.toString();
99
+    }
100
+
101
+    public static String strToUnicode(String str) {
102
+        char[] chars = str.toCharArray();
103
+        String returnStr = "";
104
+        for (int i = 0; i < chars.length; i++) {
105
+            returnStr += "\\u" + Integer.toString(chars[i], 16);
106
+        }
107
+        return returnStr;
108
+    }
109
+
110
+    public static String repeat(String src, int len) {
111
+        if (null == src) {
112
+            return null;
113
+        }
114
+
115
+        if (len <= 0) {
116
+            return src;
117
+        }
118
+
119
+        String res = "";
120
+        for (int i = 0; i < len; i ++) {
121
+            res += src;
122
+        }
123
+
124
+        return res;
125
+    }
126
+
127
+    public static String lpad(String src, String padStr, int len) {
128
+        if (null == src) {
129
+            return null;
130
+        }
131
+
132
+        if (len <= 0 || src.length() >= len) {
133
+            return src;
134
+        }
135
+
136
+        if (null == padStr) {
137
+            padStr = "";
138
+        }
139
+
140
+        int padLen = len - src.length();
141
+        String prefix = repeat(padStr, padLen);
142
+        prefix = prefix.substring(0, padLen);
143
+        return prefix + src;
144
+    }
145
+
146
+    /**
147
+     * 解析 QueryString
148
+     * @param queryStr
149
+     * @return
150
+     */
151
+    public static Map<String, String> parseQueryString(String queryStr) {
152
+        if (isEmpty(queryStr)) {
153
+            return null;
154
+        }
155
+        Map<String, String> result = new HashMap<String, String>();
156
+
157
+        String[] fields = queryStr.split("&");
158
+        for (String field : fields) {
159
+            String[] pairs = field.split("=");
160
+            if (2 != pairs.length) {
161
+                continue;
162
+            }
163
+
164
+            try {
165
+                String key = URLDecoder.decode(pairs[0].trim(), "UTF-8");
166
+                String val = URLDecoder.decode(pairs[1].trim(), "UTF-8");
167
+
168
+                result.put(key, val);
169
+            } catch (UnsupportedEncodingException e) {
170
+                e.printStackTrace();
171
+            }
172
+        }
173
+
174
+        return result;
175
+    }
176
+
177
+    /**
178
+     * Map 转 QueryString
179
+     * @param params
180
+     * @return
181
+     */
182
+    public static String buildQueryString(Map<String, Object> params) {
183
+        if (null == params) {
184
+            return null;
185
+        }
186
+
187
+        List<String> lst = new ArrayList<>();
188
+        for (Map.Entry<String, Object> entry : params.entrySet()) {
189
+            String key = StringUtils.urlEncode(entry.getKey());
190
+            Object o = entry.getValue();
191
+            if (null == o) {
192
+                continue;
193
+            }
194
+            String val = o.toString();
195
+            if (StringUtils.isEmpty(val)) {
196
+                continue;
197
+            }
198
+            String queryStr = key + "=" + StringUtils.urlEncode(val);
199
+            lst.add(queryStr);
200
+        }
201
+        return String.join("&", lst);
202
+    }
203
+}

+ 11
- 4
src/main/java/com/yunzhi/inte/controller/DishesController.java Dosyayı Görüntüle

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.yunzhi.inte.common.BaseController;
7 7
 import com.yunzhi.inte.common.ResponseBean;
8 8
 import java.util.List;
9
+
10
+import com.yunzhi.inte.common.StringUtils;
9 11
 import io.swagger.annotations.Api;
10 12
 import io.swagger.annotations.ApiOperation;
11 13
 import io.swagger.annotations.ApiParam;
@@ -49,12 +51,15 @@ public class DishesController extends BaseController {
49 51
     @ApiOperation("分页查询")
50 52
     @GetMapping("/dishes")
51 53
     public ResponseBean list(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52
-                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception {
54
+                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
55
+                             @ApiParam("名称") @RequestParam(value ="name", required = false) String name) throws Exception {
53 56
 
54 57
         IPage<Dishes> pg = new Page<>(pageNum, pageSize);
55
-        // QueryWrapper<Dishes> queryWrapper = new QueryWrapper<>();
56
-        // queryWrapper.orderByDesc("create_date");
57
-        IPage<Dishes> result = dishesService.page(pg);
58
+        QueryWrapper<Dishes> queryWrapper = new QueryWrapper<>();
59
+        queryWrapper.like(!StringUtils.isEmpty(name), "name", name);
60
+        queryWrapper.eq("status", 1);
61
+        queryWrapper.orderByDesc("id");
62
+        IPage<Dishes> result = dishesService.page(pg, queryWrapper);
58 63
 
59 64
         return ResponseBean.success(result);
60 65
     }
@@ -68,6 +73,7 @@ public class DishesController extends BaseController {
68 73
     @ApiOperation("新增数据")
69 74
     @PostMapping("/dishes")
70 75
     public ResponseBean add(Dishes dishes) throws Exception {
76
+        dishes.setStatus(1);
71 77
         dishesService.save(dishes);
72 78
         return ResponseBean.success(dishes);
73 79
     }
@@ -81,6 +87,7 @@ public class DishesController extends BaseController {
81 87
     @ApiOperation("更新数据")
82 88
     @PutMapping("/dishes/{id}")
83 89
     public ResponseBean edit(Dishes dishes) throws Exception {
90
+        dishes.setStatus(1);
84 91
         dishesService.updateById(dishes);
85 92
         return ResponseBean.success(dishes);
86 93
     }

+ 11
- 6
src/main/java/com/yunzhi/inte/controller/PackageController.java Dosyayı Görüntüle

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.yunzhi.inte.common.BaseController;
7 7
 import com.yunzhi.inte.common.ResponseBean;
8 8
 import java.util.List;
9
+
10
+import com.yunzhi.inte.common.StringUtils;
9 11
 import io.swagger.annotations.Api;
10 12
 import io.swagger.annotations.ApiOperation;
11 13
 import io.swagger.annotations.ApiParam;
@@ -49,12 +51,15 @@ public class PackageController extends BaseController {
49 51
     @ApiOperation("分页查询")
50 52
     @GetMapping("/package")
51 53
     public ResponseBean list(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52
-                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception {
54
+                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
55
+                             @ApiParam("套餐名称") @RequestParam(value ="name", required = false) String name) throws Exception {
53 56
 
54 57
         IPage<Package> pg = new Page<>(pageNum, pageSize);
55
-        // QueryWrapper<Package> queryWrapper = new QueryWrapper<>();
56
-        // queryWrapper.orderByDesc("create_date");
57
-        IPage<Package> result = packageService.page(pg);
58
+        QueryWrapper<Package> queryWrapper = new QueryWrapper<>();
59
+        queryWrapper.like(!StringUtils.isEmpty(name), "name", name);
60
+        queryWrapper.eq("status", 1);
61
+        queryWrapper.orderByDesc("id");
62
+        IPage<Package> result = packageService.page(pg, queryWrapper);
58 63
 
59 64
         return ResponseBean.success(result);
60 65
     }
@@ -67,7 +72,7 @@ public class PackageController extends BaseController {
67 72
      */
68 73
     @ApiOperation("新增数据")
69 74
     @PostMapping("/package")
70
-    public ResponseBean add(Package pkg) throws Exception {
75
+    public ResponseBean add(@ApiParam("对象实体") @RequestBody Package pkg) throws Exception {
71 76
         packageService.save(pkg);
72 77
         return ResponseBean.success(pkg);
73 78
     }
@@ -80,7 +85,7 @@ public class PackageController extends BaseController {
80 85
      */
81 86
     @ApiOperation("更新数据")
82 87
     @PutMapping("/package/{id}")
83
-    public ResponseBean edit(Package pkg) throws Exception {
88
+    public ResponseBean edit(@ApiParam("对象实体") @RequestBody Package pkg) throws Exception {
84 89
         packageService.updateById(pkg);
85 90
         return ResponseBean.success(pkg);
86 91
     }

+ 37
- 12
src/main/java/com/yunzhi/inte/controller/PackageDetailController.java Dosyayı Görüntüle

@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.yunzhi.inte.common.BaseController;
7 7
 import com.yunzhi.inte.common.ResponseBean;
8 8
 import java.util.List;
9
+
10
+import com.yunzhi.inte.entity.Dishes;
11
+import com.yunzhi.inte.service.DishesService;
9 12
 import io.swagger.annotations.Api;
10 13
 import io.swagger.annotations.ApiOperation;
11 14
 import io.swagger.annotations.ApiParam;
@@ -27,6 +30,9 @@ public class PackageDetailController extends BaseController {
27 30
     @Autowired
28 31
     private PackageDetailService packageDetailService;
29 32
 
33
+    @Autowired
34
+    private DishesService dishesService;
35
+
30 36
     /**
31 37
      * 通过ID查询单条数据
32 38
      *
@@ -49,12 +55,11 @@ public class PackageDetailController extends BaseController {
49 55
     @ApiOperation("分页查询")
50 56
     @GetMapping("/packageDetail")
51 57
     public ResponseBean list(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52
-                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception {
58
+                             @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
59
+                             @ApiParam("套餐ID") @RequestParam(value ="packageId") Integer packageId) throws Exception {
53 60
 
54
-        IPage<PackageDetail> pg = new Page<>(pageNum, pageSize);
55
-        // QueryWrapper<PackageDetail> queryWrapper = new QueryWrapper<>();
56
-        // queryWrapper.orderByDesc("create_date");
57
-        IPage<PackageDetail> result = packageDetailService.page(pg);
61
+        IPage<Dishes> pg = new Page<>(pageNum, pageSize);
62
+        IPage<Dishes> result = packageDetailService.getPageByPackage(pg, packageId);
58 63
 
59 64
         return ResponseBean.success(result);
60 65
     }
@@ -67,9 +72,22 @@ public class PackageDetailController extends BaseController {
67 72
      */
68 73
     @ApiOperation("新增数据")
69 74
     @PostMapping("/packageDetail")
70
-    public ResponseBean add(PackageDetail packageDetail) throws Exception {
75
+    public ResponseBean add(@ApiParam("实例对象") @RequestBody PackageDetail packageDetail) throws Exception {
76
+
77
+        QueryWrapper<PackageDetail> queryWrapper = new QueryWrapper<>();
78
+        queryWrapper.eq("package_id", packageDetail.getPackageId());
79
+        queryWrapper.eq("dish_id", packageDetail.getDishId());
80
+
81
+        int total = packageDetailService.count(queryWrapper);
82
+        if (total > 0) {
83
+            return ResponseBean.error("当前菜肴已存在");
84
+        }
85
+
71 86
         packageDetailService.save(packageDetail);
72
-        return ResponseBean.success(packageDetail);
87
+
88
+        Dishes dishes = dishesService.getById(packageDetail.getDishId());
89
+
90
+        return ResponseBean.success(dishes);
73 91
     }
74 92
 
75 93
     /**
@@ -80,7 +98,7 @@ public class PackageDetailController extends BaseController {
80 98
      */
81 99
     @ApiOperation("更新数据")
82 100
     @PutMapping("/packageDetail/{id}")
83
-    public ResponseBean edit(PackageDetail packageDetail) throws Exception {
101
+    public ResponseBean edit(@ApiParam("实例对象") @RequestBody PackageDetail packageDetail) throws Exception {
84 102
         packageDetailService.updateById(packageDetail);
85 103
         return ResponseBean.success(packageDetail);
86 104
     }
@@ -88,13 +106,20 @@ public class PackageDetailController extends BaseController {
88 106
     /**
89 107
      * 通过主键删除数据
90 108
      *
91
-     * @param id 主键
109
+     * @param packageId 套餐ID
110
+     * @param dishId 菜肴ID
92 111
      * @return 是否成功
93 112
      */
94 113
     @ApiOperation("通过主键删除数据")
95
-    @DeleteMapping("/packageDetail/{id}")
96
-    public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id){
97
-        packageDetailService.removeLogicById(id);
114
+    @DeleteMapping("/packageDetail")
115
+    public ResponseBean deleteById(@ApiParam("套餐ID") @RequestParam Integer packageId,
116
+                                   @ApiParam("菜肴ID") @RequestParam Integer dishId){
117
+
118
+        QueryWrapper<PackageDetail> queryWrapper = new QueryWrapper<>();
119
+        queryWrapper.eq("package_id", packageId);
120
+        queryWrapper.eq("dish_id", dishId);
121
+
122
+        packageDetailService.remove(queryWrapper);
98 123
         return ResponseBean.success("success");
99 124
     }
100 125
 }

+ 1
- 1
src/main/java/com/yunzhi/inte/entity/Package.java Dosyayı Görüntüle

@@ -24,7 +24,7 @@ import lombok.experimental.Accessors;
24 24
 public class Package implements Serializable,Cloneable{
25 25
     /** 套餐ID */
26 26
     @ApiModelProperty(name = "套餐ID",notes = "")
27
-    @TableId(value = "id", type = IdType.INPUT)
27
+    @TableId(value = "id", type = IdType.AUTO)
28 28
     private Integer id ;
29 29
     /** 套餐名称 */
30 30
     @ApiModelProperty(name = "套餐名称",notes = "")

+ 1
- 1
src/main/java/com/yunzhi/inte/entity/PackageDetail.java Dosyayı Görüntüle

@@ -24,7 +24,7 @@ import lombok.experimental.Accessors;
24 24
 public class PackageDetail implements Serializable,Cloneable{
25 25
     /** 序号 */
26 26
     @ApiModelProperty(name = "序号",notes = "")
27
-    @TableId(value = "id", type = IdType.INPUT)
27
+    @TableId(value = "id", type = IdType.AUTO)
28 28
     private Integer id ;
29 29
     /** 套餐ID */
30 30
     @ApiModelProperty(name = "套餐ID",notes = "")

+ 3
- 0
src/main/java/com/yunzhi/inte/mapper/PackageDetailMapper.java Dosyayı Görüntüle

@@ -1,6 +1,8 @@
1 1
 package com.yunzhi.inte.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.yunzhi.inte.entity.Dishes;
4 6
 import org.apache.ibatis.annotations.Mapper;
5 7
 import org.apache.ibatis.annotations.Param;
6 8
 import com.yunzhi.inte.entity.PackageDetail;
@@ -13,4 +15,5 @@ import com.yunzhi.inte.entity.PackageDetail;
13 15
 @Mapper
14 16
 public interface PackageDetailMapper  extends BaseMapper<PackageDetail>{
15 17
 
18
+    IPage<Dishes> getPageByPackage(IPage<Dishes> pg, @Param("packageId") Integer packageId);
16 19
 }

+ 3
- 0
src/main/java/com/yunzhi/inte/service/PackageDetailService.java Dosyayı Görüntüle

@@ -1,6 +1,8 @@
1 1
 package com.yunzhi.inte.service;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3 4
 import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.yunzhi.inte.entity.Dishes;
4 6
 import com.yunzhi.inte.entity.PackageDetail;
5 7
 
6 8
 /**
@@ -10,4 +12,5 @@ import com.yunzhi.inte.entity.PackageDetail;
10 12
  */
11 13
 public interface PackageDetailService extends IBaseService<PackageDetail> {
12 14
 
15
+    IPage<Dishes> getPageByPackage(IPage<Dishes> pg, Integer packageId);
13 16
 }

+ 5
- 5
src/main/java/com/yunzhi/inte/service/impl/BaseServiceImpl.java Dosyayı Görüntüle

@@ -16,7 +16,7 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
16 16
 
17 17
         TableInfo tableInfo = SqlHelper.table(currentModelClass());
18 18
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<>();
19
-        updateWrapper.set("state", -1)
19
+        updateWrapper.set("status", -1)
20 20
                 .eq(tableInfo.getKeyColumn(), id);
21 21
 
22 22
         return update(updateWrapper);
@@ -26,7 +26,7 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
26 26
     public int countBy(String column, Object value, boolean notDelete) {
27 27
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
28 28
         queryWrapper.eq(column, value);
29
-        queryWrapper.gt(notDelete, "state", -1);
29
+        queryWrapper.gt(notDelete, "status", -1);
30 30
 
31 31
         return count(queryWrapper);
32 32
     }
@@ -36,7 +36,7 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
36 36
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
37 37
         queryWrapper.eq(column, value);
38 38
         queryWrapper.ne(col, val);
39
-        queryWrapper.gt(notDelete, "state", -1);
39
+        queryWrapper.gt(notDelete, "status", -1);
40 40
         queryWrapper.last("limit 1");
41 41
 
42 42
         return getOne(queryWrapper);
@@ -46,8 +46,8 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
46 46
     public T getExistBy(String column, Object value, boolean normal, boolean notDelete) {
47 47
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
48 48
         queryWrapper.eq(column, value);
49
-        queryWrapper.eq(normal, "state", 1);
50
-        queryWrapper.gt(notDelete, "state", -1);
49
+        queryWrapper.eq(normal, "status", 1);
50
+        queryWrapper.gt(notDelete, "status", -1);
51 51
         queryWrapper.last("limit 1");
52 52
         return getOne(queryWrapper);
53 53
     }

+ 6
- 0
src/main/java/com/yunzhi/inte/service/impl/PackageDetailServiceImpl.java Dosyayı Görüntüle

@@ -1,5 +1,7 @@
1 1
 package com.yunzhi.inte.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.inte.entity.Dishes;
3 5
 import org.springframework.beans.factory.annotation.Autowired;
4 6
 import org.springframework.stereotype.Service;
5 7
 import com.yunzhi.inte.entity.PackageDetail;
@@ -13,4 +15,8 @@ import com.yunzhi.inte.service.PackageDetailService;
13 15
 @Service
14 16
 public class PackageDetailServiceImpl extends BaseServiceImpl<PackageDetailMapper, PackageDetail> implements PackageDetailService {
15 17
 
18
+    @Override
19
+    public IPage<Dishes> getPageByPackage(IPage<Dishes> pg, Integer packageId) {
20
+        return baseMapper.getPageByPackage(pg, packageId);
21
+    }
16 22
 }

+ 11
- 0
src/main/resources/mapper/PackageDetailMapper.xml Dosyayı Görüntüle

@@ -3,4 +3,15 @@
3 3
 
4 4
 <mapper namespace="com.yunzhi.inte.mapper.PackageDetailMapper">
5 5
 
6
+    <select id="getPageByPackage" resultType="com.yunzhi.inte.entity.Dishes">
7
+        SELECT
8
+            t.*
9
+        FROM
10
+            dishes t
11
+                INNER JOIN package_detail s ON t.id = s.dish_id
12
+        WHERE
13
+            s.package_id = #{packageId}
14
+        ORDER BY
15
+            t.id
16
+    </select>
6 17
 </mapper>