From 1a14a43d746034ee60c663e52e0e58480f84d168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Mon, 15 Nov 2021 07:44:26 +0000 Subject: [PATCH 01/43] =?UTF-8?q?!1=20=E5=90=8E=E7=AB=AF:=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=80=9A=E8=BF=87=E7=B1=BB=E5=88=AB=E5=92=8C=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E8=AF=8D=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20*=20=E6=B7=BB=E5=8A=A0=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=E5=92=8C=E5=85=B3=E9=94=AE=E8=AF=8D=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=95=86=E5=93=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/shop/controller/GoodsController.java | 13 +++++++++++++ .../src/main/java/com/shop/mapper/GoodsMapper.java | 8 ++++++++ .../main/java/com/shop/service/GoodsService.java | 1 + .../src/main/resources/mapping/GoodsMapper.xml | 5 +++++ 4 files changed, 27 insertions(+) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 04da698..0b0942d 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -240,6 +240,19 @@ public class GoodsController { return jsonObject; } + //通过类别和关键词查询商品 + @RequestMapping(value = "/searchGoodsByClassAndKeyName") + public Object searchGoodsByClassAndKeyName(HttpServletRequest request, HttpServletResponse response){ + int goods_class = Integer.getInteger(request.getParameter("goods_class")); + String key_name = request.getParameter("key_name"); + JSONObject jsonObject = new JSONObject(); + List goodsList =goodsService.searchGoodsByClassAndKeyName(goods_class,key_name); + message = "success"; + jsonObject.put("goods",goodsList); + jsonObject.put("message",message); + return jsonObject; + } + //修改商品库存 @RequestMapping(value = "/updateGoodStock") public Object updateGoodStock(HttpServletRequest request, HttpServletResponse response){ diff --git a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java index cb7ddcd..f777990 100644 --- a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java @@ -91,4 +91,12 @@ public interface GoodsMapper { */ int updateGoodStock(int item_id,int new_stock); + /** + * 通过类别和关键词查询商品 + * @param goods_class + * @param key_name + * @return + */ + List searchGoodsByClassAndKeyName(int goods_class,String key_name); + } diff --git a/back-end_code/src/main/java/com/shop/service/GoodsService.java b/back-end_code/src/main/java/com/shop/service/GoodsService.java index 3b9a608..dabb988 100644 --- a/back-end_code/src/main/java/com/shop/service/GoodsService.java +++ b/back-end_code/src/main/java/com/shop/service/GoodsService.java @@ -44,4 +44,5 @@ public class GoodsService { // return goodsMapper.updateGoodStock(item_id,new_stock); // } public int updateGoodStock(int item_id,int new_stock){return goodsMapper.updateGoodStock(item_id,new_stock);} + public List searchGoodsByClassAndKeyName(int goods_class,String key_name){return searchGoodsByClassAndKeyName(goods_class,key_name);} } diff --git a/back-end_code/src/main/resources/mapping/GoodsMapper.xml b/back-end_code/src/main/resources/mapping/GoodsMapper.xml index 5709cc0..d557517 100644 --- a/back-end_code/src/main/resources/mapping/GoodsMapper.xml +++ b/back-end_code/src/main/resources/mapping/GoodsMapper.xml @@ -149,4 +149,9 @@ select * from goods where goodsName like '%${key_name}%' + + + \ No newline at end of file -- Gitee From fc201bc795a852faf1093111d7d1bdbe130e9863 Mon Sep 17 00:00:00 2001 From: WenZongX <2937021973@qq.com> Date: Tue, 16 Nov 2021 11:17:47 +0800 Subject: [PATCH 02/43] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=94=E5=9B=9Emessa?= =?UTF-8?q?ge=E7=9A=84bug=20=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E6=84=8F?= =?UTF-8?q?=E5=90=91=E4=B9=B0=E5=AE=B6=E5=B0=B1=E4=BF=AE=E6=94=B9=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E9=80=BB=E8=BE=91bug=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=84=8F=E5=90=91=E4=B9=B0=E5=AE=B6=E6=9C=AA?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B9=B0=E5=AE=B6=E7=94=A8=E6=88=B7=E5=90=8D?= =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E6=84=8F=E5=90=91?= =?UTF-8?q?=E4=B9=B0=E5=AE=B6=E6=9C=AA=E4=BC=A0=E6=94=B6=E8=B4=A7=E4=BA=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=80=8C=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=89=A7=E8=A1=8Cbug=20=E4=BF=AE=E5=A4=8D=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=8A=B6=E6=80=81=E5=8F=82=E6=95=B0=E5=90=8D?= =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D=E5=90=8C=E6=84=8F=E6=84=8F=E5=90=91?= =?UTF-8?q?=E4=B9=B0=E5=AE=B6=E6=93=8D=E4=BD=9Cbug(=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E5=95=86=E5=93=81=E8=AE=A2=E5=8D=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/ClassController.java | 7 ++- .../com/shop/controller/GOController.java | 11 ++-- .../com/shop/controller/GoodsController.java | 58 +++++++++++++------ .../com/shop/controller/OrderController.java | 44 ++++++++------ .../com/shop/controller/UserController.java | 9 ++- .../java/com/shop/mapper/GoodsMapper.java | 4 +- .../java/com/shop/service/GoodsService.java | 6 +- .../java/com/shop/service/OrderService.java | 25 +++----- .../main/resources/mapping/GoodsMapper.xml | 21 +++++-- .../main/resources/mapping/OrderMapper.xml | 6 ++ 10 files changed, 119 insertions(+), 72 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/ClassController.java b/back-end_code/src/main/java/com/shop/controller/ClassController.java index acfe5fe..c833e57 100644 --- a/back-end_code/src/main/java/com/shop/controller/ClassController.java +++ b/back-end_code/src/main/java/com/shop/controller/ClassController.java @@ -16,14 +16,13 @@ import java.util.List; @RequestMapping("/class") public class ClassController { - private String message = "error"; - @Autowired private ClassService ClassService; //添加类别 @RequestMapping(value = "/addClass") public Object addClass(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String class_name = request.getParameter("class_name"); int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); JSONObject jsonObject = new JSONObject(); @@ -40,6 +39,7 @@ public class ClassController { //查询父类别 @RequestMapping(value = "/searchParentClass") public Object searchParentClass(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; JSONObject jsonObject = new JSONObject(); List classList = ClassService.searchParentClass(); if(classList != null){ @@ -55,6 +55,7 @@ public class ClassController { //根据parentClass_id查询子类别 @RequestMapping(value = "/searchChildClass") public Object searchChildClass(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); JSONObject jsonObject = new JSONObject(); List classList = ClassService.searchChildClass(parentClass_id); @@ -71,6 +72,7 @@ public class ClassController { //根据classId删除Class @RequestMapping(value = "/deleteClassByItemId") public Object deleteClassByItemId(HttpServletRequest request, HttpServletResponse response) { + String message = "error"; int class_id = Integer.parseInt(request.getParameter("class_id")); JSONObject jsonObject = new JSONObject(); int result = ClassService.deleteClassByItemId(class_id); @@ -84,6 +86,7 @@ public class ClassController { //根据classId修改Class @RequestMapping(value = "/updateClass") public Object updateClass(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; JSONObject jsonObject = new JSONObject(); int class_id = Integer.parseInt(request.getParameter("class_id")); String class_name = request.getParameter("class_name"); diff --git a/back-end_code/src/main/java/com/shop/controller/GOController.java b/back-end_code/src/main/java/com/shop/controller/GOController.java index de5ba9f..ffb45d1 100644 --- a/back-end_code/src/main/java/com/shop/controller/GOController.java +++ b/back-end_code/src/main/java/com/shop/controller/GOController.java @@ -20,20 +20,19 @@ import javax.servlet.http.HttpServletResponse; @RequestMapping("/go") public class GOController { - private String message = "error"; - @Autowired private GOService GOService; @RequestMapping(value = "/addGO") public Object addGO(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); int result = GOService.addGO(item_id,order_id); if(result>=1){ message = "success"; - } else{ + }else { message = "error"; } jsonObject.put("message",message); @@ -41,6 +40,7 @@ public class GOController { } @RequestMapping(value = "/searchGOByItemId") public Object searchGOByItemId(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); // int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); @@ -48,7 +48,7 @@ public class GOController { if(go != null){ message = "success"; jsonObject.put("GO",go); - } else{ + }else { message = "error"; } jsonObject.put("message",message); @@ -57,6 +57,7 @@ public class GOController { //@RequestMapping(value = "/searchGOByItemId") public Object searchGOByOrderId(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; // int item_id = Integer.parseInt(request.getParameter("item_id")); int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); @@ -64,7 +65,7 @@ public class GOController { if(go != null){ message = "success"; jsonObject.put("GO",go); - } else{ + }else { message = "error"; } jsonObject.put("message",message); diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 0b0942d..c2d4866 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -25,7 +25,6 @@ import java.util.List; @RequestMapping("/goods") public class GoodsController { - private String message = "error"; @Autowired private GoodsService goodsService; @@ -42,6 +41,7 @@ public class GoodsController { //向Goods表中添加商品 @RequestMapping(value = "/addGoods") public Object addGoods(HttpServletRequest request, HttpServletResponse response) { + String message = "error"; String goods_name = request.getParameter("goods_name"); String seller_username = "admin"; int goods_stock = Integer.parseInt(request.getParameter("goods_stock")); @@ -74,6 +74,7 @@ public class GoodsController { //买家在goods表中查询goods详细信息 @RequestMapping(value = "/searchGoods") public Object searchGoods(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); Goods good = goodsService.searchGoods(item_id); @@ -91,11 +92,12 @@ public class GoodsController { //修改商品状态 @RequestMapping(value = "/updateGoodsState") public Object updateGoodsState(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); int item_id = Integer.parseInt(request.getParameter("item_id")); - int newstate = Integer.parseInt(request.getParameter("newstate")); + int new_state = Integer.parseInt(request.getParameter("new_state")); JSONObject jsonObject = new JSONObject(); - int result = goodsService.updateGoodsState(seller_username,item_id, newstate); + int result = goodsService.updateGoodsState(seller_username,item_id, new_state); if (result >= 1) { message = "success"; }else { @@ -105,9 +107,10 @@ public class GoodsController { return jsonObject; } - //在goods表中查找所有正在出售的商品。 + //在goods表中查找所有正在出售的商品 @RequestMapping(value = "/searchSellingGoods") public Object searchSellingGoods(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; JSONObject jsonObject = new JSONObject(); List goods= goodsService.searchSellingGoods(); message = "success"; @@ -119,6 +122,7 @@ public class GoodsController { //在goods表中查找所有正在出售的商品。 @RequestMapping(value = "/searchWelcomeGoods") public Object searchWelcomeGoods(){ + String message = "error"; JSONObject jsonObject = new JSONObject(); List goods = goodsService.searchWelcomeGoods(); List stringList = orderService.searchSellingGoodsBuyerRealname(); @@ -132,6 +136,7 @@ public class GoodsController { //在goods表中查询所有商品 @RequestMapping(value = "/searchHistoryGoods") public Object searchHistoryGoods(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); JSONObject jsonObject = new JSONObject(); List goodsList = goodsService.searchHistoryGoods(seller_username); @@ -166,6 +171,7 @@ public class GoodsController { //修改商品信息 @RequestMapping(value = "/updateGoods") public Object updateGoods(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); String goods_name = request.getParameter("goods_name"); String seller_username = "admin"; @@ -176,12 +182,20 @@ public class GoodsController { int goods_class = Integer.parseInt(request.getParameter("goods_class")); float goods_price = Float.parseFloat(request.getParameter("goods_price")); JSONObject jsonObject = new JSONObject(); - Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); - int result = goodsService.updateGoods(newgoods); - if (result >= 1) { - message = "success"; - }else { - message = "error"; + if (goods_name.length() >= 2 && goods_name.length() <= 20 && + goods_stock >= 0 && + goods_img.length() <= 2000 && + goods_discribe.length() >= 2 && goods_discribe.length() <= 2000 && + goods_price >= 0 && + goods_class >= 0 + ){ + Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); + int result = goodsService.updateGoods(newgoods); + if (result >= 1) { + message = "success"; + }else { + message = "error"; + } } jsonObject.put("message",message); return jsonObject; @@ -190,6 +204,7 @@ public class GoodsController { //查看冻结商品 @RequestMapping(value = "/searchFreezingGoods") public Object searchFreezingGoods(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); JSONObject jsonObject = new JSONObject(); List goodsList = goodsService.searchFreezingGoods(seller_username); @@ -219,7 +234,9 @@ public class GoodsController { //通过类别查询商品 @RequestMapping(value = "/searchGoodsByClass") public Object searchGoodsByClass(HttpServletRequest request, HttpServletResponse response){ - int goods_class = Integer.getInteger(request.getParameter("goods_class")); + String message = "error"; + int goods_class = Integer.parseInt(request.getParameter("goods_class")); + System.out.println(goods_class); JSONObject jsonObject = new JSONObject(); List goodsList =goodsService.searchGoodsByClass(goods_class); message = "success"; @@ -231,6 +248,7 @@ public class GoodsController { //通过关键词查询商品 @RequestMapping(value = "/searchGoodsByKeyName") public Object searchGoodsByKeyName(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String key_name = request.getParameter("key_name"); JSONObject jsonObject = new JSONObject(); List goodsList =goodsService.searchGoodsByKeyName(key_name); @@ -243,10 +261,11 @@ public class GoodsController { //通过类别和关键词查询商品 @RequestMapping(value = "/searchGoodsByClassAndKeyName") public Object searchGoodsByClassAndKeyName(HttpServletRequest request, HttpServletResponse response){ - int goods_class = Integer.getInteger(request.getParameter("goods_class")); + String message = "error"; + int goods_class = Integer.parseInt(request.getParameter("goods_class")); String key_name = request.getParameter("key_name"); JSONObject jsonObject = new JSONObject(); - List goodsList =goodsService.searchGoodsByClassAndKeyName(goods_class,key_name); + List goodsList = goodsService.searchGoodsByClassAndKeyName(goods_class,key_name); message = "success"; jsonObject.put("goods",goodsList); jsonObject.put("message",message); @@ -256,18 +275,21 @@ public class GoodsController { //修改商品库存 @RequestMapping(value = "/updateGoodStock") public Object updateGoodStock(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); int new_stock = Integer.parseInt(request.getParameter("new_stock")); Goods good = goodsService.searchGoods(item_id); + JSONObject jsonObject = new JSONObject(); + System.out.println(message); if (new_stock > 0 ){ goodsService.updateGoodsState(good.getSeller_username(),item_id,1); - }else if (new_stock <= 0){ + message = "success"; + goodsService.updateGoodStock(item_id,new_stock); + }else if (new_stock == 0){ goodsService.updateGoodsState(good.getSeller_username(),item_id,3); + message = "success"; + goodsService.updateGoodStock(item_id,new_stock); } - goodsService.updateGoodStock(item_id,new_stock); - JSONObject jsonObject = new JSONObject(); - goodsService.updateGoodStock(item_id,new_stock); - message = "success"; jsonObject.put("message",message); return jsonObject; } diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 38740cd..9bc488b 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -25,8 +25,6 @@ import java.util.List; @RequestMapping("/order") public class OrderController { - private String message = "error"; - @Autowired private UserService userService; @@ -42,6 +40,7 @@ public class OrderController { //查看商品意向购买买家 @RequestMapping(value = "/searchBuyerlist") public Object searchBuyerlist(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); @@ -55,11 +54,12 @@ public class OrderController { //查看商品意向购买买家名 @RequestMapping(value = "/searchSellingGoodsBuyerRealname") public Object searchSellingGoodsBuyerRealname(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); List stringList = orderService.searchSellingGoodsBuyerRealname(); message = "success"; - jsonObject.put("stringList",stringList); + jsonObject.put("strings",stringList); jsonObject.put("message",message); return jsonObject; } @@ -67,6 +67,7 @@ public class OrderController { //查看交易中的某商品对应的订单信息 @RequestMapping(value = "/searchFreezeGoodsBuyer") public Object searchFreezeGoodsBuyer(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); @@ -84,19 +85,21 @@ public class OrderController { //查看已完成交易商品的历史意向买家 @RequestMapping(value = "/searchHistoryGoodsUnFinishedOrder") public Object searchHistoryGoodsUnFinishedOrder(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); List orderList = orderService.searchHistoryGoodsUnFinishedOrder(seller_username,item_id); message = "success"; jsonObject.put("message",message); - jsonObject.put("orderList",orderList); + jsonObject.put("orders",orderList); return jsonObject; } //同意意向买家 @RequestMapping(value = "/agreeOrderwanted") public Object agreeOrderwanted(HttpServletRequest request, HttpServletResponse response) { + String message = "error"; String seller_username = request.getParameter("seller_username"); int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); @@ -118,11 +121,12 @@ public class OrderController { //完成交易(下架) @RequestMapping(value = "/finishOrder") public Object finishOrder(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); - int item_id = Integer.parseInt(request.getParameter("item_id")); + int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); String finish_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - int result = orderService.finishOrder(seller_username,item_id,finish_time); + int result = orderService.finishOrder(seller_username,order_id,finish_time); if (result >=1){ message = "success"; }else { @@ -135,11 +139,12 @@ public class OrderController { //取消交易(恢复) @RequestMapping(value = "/cancelOrder") public Object cancelOrder(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String seller_username = request.getParameter("seller_username"); - int item_id = Integer.parseInt(request.getParameter("item_id")); + int order_id = Integer.parseInt(request.getParameter("order_id")); JSONObject jsonObject = new JSONObject(); - goService.deleteGOByItemId(item_id); - int result = orderService.cancelOrder(seller_username,item_id); + goService.deleteGOByOrderId(order_id); + int result = orderService.cancelOrder(seller_username,order_id); if (result >=1){ message = "success"; }else { @@ -153,6 +158,7 @@ public class OrderController { //意向购买者下单 @RequestMapping(value = "/addToOrderWanted") public Object addToOrderWanted(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); Goods good = goodsService.searchGoods(item_id); String seller_username = good.getSeller_username(); @@ -161,10 +167,16 @@ public class OrderController { String buyer_realname = request.getParameter("buyer_realname"); String buyer_phonenumber = request.getParameter("buyer_phonenumber"); String buyer_address = request.getParameter("buyer_address"); -// String buyer_realname = user.getRealname(); -// String buyer_phonenumber = user.getPhonenumber(); -// String buyer_address = user.getAddress(); - int buy_sum = Integer.getInteger(request.getParameter("buy_sum")); + if (buyer_realname == null){ + buyer_realname = user.getRealname(); + } + if (buyer_phonenumber == null){ + buyer_phonenumber = user.getPhonenumber(); + } + if (buyer_address == null){ + buyer_address = user.getAddress(); + } + int buy_sum = Integer.parseInt(request.getParameter("buy_sum")); String create_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); JSONObject jsonObject = new JSONObject(); Order order = new Order(item_id,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,5,create_time); @@ -175,15 +187,15 @@ public class OrderController { }else { message = "error"; } - } jsonObject.put("message",message); return jsonObject; } //根据用户名查看历史购买记录 - @RequestMapping("/searchFinishOrderByBuyerName") + @RequestMapping("/searchFinishOrderByBuyerUserName") public Object searchFinishOrderByBuyerName(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String buyer_username = request.getParameter("buyer_username"); JSONObject jsonObject = new JSONObject(); List orderList = orderService.searchFinishOrderByBuyerName(buyer_username); @@ -192,6 +204,4 @@ public class OrderController { jsonObject.put("message",message); return jsonObject; } - - } diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 2a240a8..aa12079 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -26,8 +26,6 @@ import java.util.Map; @CrossOrigin public class UserController { - private String message = "error"; - @Autowired private UserService userService; @Autowired @@ -36,6 +34,7 @@ public class UserController { //登录验证账号密码 @RequestMapping(value = "/login") public Object loginByPassword(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String username = request.getParameter("username"); String password = request.getParameter("password"); JSONObject jsonObject = new JSONObject(); @@ -58,6 +57,7 @@ public class UserController { //获取用户信息 @RequestMapping(value = "/getUserInfo") public Object getUserInfo(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String username = request.getParameter("username"); JSONObject jsonObject = new JSONObject(); User user = userService.getUserInfo(username); @@ -68,6 +68,7 @@ public class UserController { //修改密码 @RequestMapping(value = "/updatePassword") public Object updatePasswordByUsername(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String username = request.getParameter("username"); String oldPassword = request.getParameter("oldPassword"); String newPassword = request.getParameter("newPassword"); @@ -90,6 +91,7 @@ public class UserController { @UserLoginToken @RequestMapping("/getMessage") public Object getMessage(){ + String message = "error"; message = "success"; JSONObject jsonObject = new JSONObject(); jsonObject.put("message",message); @@ -99,6 +101,7 @@ public class UserController { //用户注册 @RequestMapping(value = "/registerUser") public Object registerUser(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String username = request.getParameter("username"); String password = request.getParameter("password"); String nickname = request.getParameter("nickname"); @@ -120,6 +123,7 @@ public class UserController { //用户修改个人信息 @RequestMapping(value = "/updateUser") public Object updateUser(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; String username = request.getParameter("username"); String nickname = request.getParameter("nickname"); String realname = request.getParameter("realname"); @@ -139,6 +143,7 @@ public class UserController { //卖家查看买家信息 @RequestMapping(value = "/searchAllUser") public Object searchAllUser(HttpServletRequest request, HttpServletResponse response){ + String message = "error"; JSONObject jsonObject = new JSONObject(); List UserList = userService.searchAllUser(); message = "success"; diff --git a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java index f777990..e550cfc 100644 --- a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java @@ -25,10 +25,10 @@ public interface GoodsMapper { * 根据item_id(商品ID),newstate(商品状态)向Goods表中更新商品状态信息 * @param seller_username * @param item_id - * @param newstate + * @param new_state * @return */ - int updateGoodsState(String seller_username,int item_id,int newstate); + int updateGoodsState(String seller_username,int item_id,int new_state); /** *根据username查找此用户是否有正在出售的商品 diff --git a/back-end_code/src/main/java/com/shop/service/GoodsService.java b/back-end_code/src/main/java/com/shop/service/GoodsService.java index dabb988..f74aed6 100644 --- a/back-end_code/src/main/java/com/shop/service/GoodsService.java +++ b/back-end_code/src/main/java/com/shop/service/GoodsService.java @@ -16,9 +16,7 @@ public class GoodsService { return goodsMapper.addGoods(Goods); } public Goods searchGoods(int item_id){ return goodsMapper.searchGoods(item_id); } - public int updateGoodsState(String seller_username,int item_id,int newstate){ - return goodsMapper.updateGoodsState(seller_username,item_id, newstate); - } + public int updateGoodsState(String seller_username,int item_id,int new_state){return goodsMapper.updateGoodsState(seller_username,item_id, new_state);} public List searchSellingGoods(){return goodsMapper.searchSellingGoods();}//一页8条 public List searchFreezingGoods(String seller_username){return goodsMapper.searchFreezingGoods(seller_username);}//一页10条 public List searchHistoryGoods(String seller_username){ return goodsMapper.searchHistoryGoods(seller_username);}//一页10条 @@ -44,5 +42,5 @@ public class GoodsService { // return goodsMapper.updateGoodStock(item_id,new_stock); // } public int updateGoodStock(int item_id,int new_stock){return goodsMapper.updateGoodStock(item_id,new_stock);} - public List searchGoodsByClassAndKeyName(int goods_class,String key_name){return searchGoodsByClassAndKeyName(goods_class,key_name);} + public List searchGoodsByClassAndKeyName(int goods_class,String key_name){return goodsMapper.searchGoodsByClassAndKeyName(goods_class,key_name);} } diff --git a/back-end_code/src/main/java/com/shop/service/OrderService.java b/back-end_code/src/main/java/com/shop/service/OrderService.java index 05d4212..240f5bc 100644 --- a/back-end_code/src/main/java/com/shop/service/OrderService.java +++ b/back-end_code/src/main/java/com/shop/service/OrderService.java @@ -45,8 +45,12 @@ public class OrderService { public Order agreeOrderwanted(String seller_username,int order_id){ int result = orderMapper.agreeOrderwanted(seller_username,order_id); Order order = orderMapper.searchOrderByOrderId(seller_username,order_id); - orderMapper.updateOtherOrders(seller_username,order.getItem_id()); - goodsMapper.updateGoodsState(seller_username,order.getItem_id(),2); + Goods good = goodsMapper.searchGoods(order.getItem_id()); + int new_stock = good.getGoods_stock()-order.getBuy_sum(); + goodsMapper.updateGoodStock(order.getItem_id(),new_stock); + if (new_stock == 0){ + goodsMapper.updateGoodsState(order.getSeller_username(),order.getItem_id(),3); + } return order; } public List searchSellingGoodsBuyerRealname(){ @@ -61,11 +65,7 @@ public class OrderService { public List searchHistoryGoodsUnFinishedOrder(String seller_username,int item_id){ return orderMapper.searchHistoryGoodsUnFinishedOrder(seller_username,item_id); } - public int finishOrder(String seller_username,int item_id,String finish_time){ - int result = orderMapper.finishOrder(seller_username,item_id,finish_time); - goodsMapper.updateGoodsState(seller_username,item_id,3); - return result; - } + public int finishOrder(String seller_username,int item_id,String finish_time){ return orderMapper.finishOrder(seller_username,item_id,finish_time); } public Order searchOrderByOrderId(String seller_username,int order_id){return orderMapper.searchOrderByOrderId(seller_username,order_id);} public List searchFinishOrder(String seller_username,int page){return orderMapper.searchFinishOrder(seller_username,page);} public List searchDealingOrder(String seller_username,int page){return orderMapper.searchDealingOrder(seller_username,page);} @@ -80,15 +80,6 @@ public class OrderService { } return result; } - public int addToOrderWanted(Order order){ - Goods good = goodsMapper.searchGoods(order.getItem_id()); - int new_stock = good.getGoods_stock()-order.getBuy_sum(); - goodsMapper.updateGoodStock(order.getItem_id(),new_stock); - if (new_stock == 0){ - goodsMapper.updateGoodsState(order.getSeller_username(),order.getItem_id(),3); - } - int result = orderMapper.addToOrderWanted(order); - return result; - } + public int addToOrderWanted(Order order){return orderMapper.addToOrderWanted(order); } public List searchFinishOrderByBuyerName(String buyer_username){return orderMapper.searchFinishOrderByBuyerName(buyer_username);} } diff --git a/back-end_code/src/main/resources/mapping/GoodsMapper.xml b/back-end_code/src/main/resources/mapping/GoodsMapper.xml index d557517..1096c23 100644 --- a/back-end_code/src/main/resources/mapping/GoodsMapper.xml +++ b/back-end_code/src/main/resources/mapping/GoodsMapper.xml @@ -107,8 +107,8 @@ update goods - - goodsState = #{newstate,jdbcType=INTEGER}, + + goodsState = #{new_state,jdbcType=INTEGER}, where itemId = #{item_id,jdbcType=INTEGER} @@ -141,17 +141,28 @@ + + + update goods + + + goodsStock = #{new_stock,jdbcType=INTEGER}, + + + where itemId = #{item_id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/back-end_code/src/main/resources/mapping/OrderMapper.xml b/back-end_code/src/main/resources/mapping/OrderMapper.xml index 2534599..238afb9 100644 --- a/back-end_code/src/main/resources/mapping/OrderMapper.xml +++ b/back-end_code/src/main/resources/mapping/OrderMapper.xml @@ -81,6 +81,9 @@ sellerUsername, + + buyerUsername, + buyerRealname, @@ -108,6 +111,9 @@ #{seller_username,jdbcType=VARCHAR}, + + #{buyer_username,jdbcType=VARCHAR}, + #{buyer_realname,jdbcType=VARCHAR}, -- Gitee From 73b3b42aa224cd19aaef353ecab1dd22b4a19f29 Mon Sep 17 00:00:00 2001 From: WenZongX <2937021973@qq.com> Date: Tue, 16 Nov 2021 11:20:44 +0800 Subject: [PATCH 03/43] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\345\217\243\346\226\207\346\241\243.pdf" | Bin 158632 -> 252916 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git "a/\346\216\245\345\217\243\346\226\207\346\241\243.pdf" "b/\346\216\245\345\217\243\346\226\207\346\241\243.pdf" index a85856fab8b0b3efc6aa51fb96dc4d7b84ee3773..7c382e7a6747c7bc70e9001f748d8c5ea98e7c93 100644 GIT binary patch literal 252916 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 oe*D)jzx`3){QVz({OOOs{_~f6-#Pc)ci*3x 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

tc@1j6u*ZxiDB%9|)+U{TEv$ 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 Z;F4S*7vwW^M*v%dCYHQhs;aL3ZUEWNH2VMm -- Gitee From e4262b141606b1a16c143462628a25508dc6552f Mon Sep 17 00:00:00 2001 From: WenZongX <2937021973@qq.com> Date: Mon, 22 Nov 2021 15:31:42 +0800 Subject: [PATCH 04/43] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=8F=A3=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=BF=9B=E8=A1=8C=E6=A0=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\345\217\243\346\226\207\346\241\243.pdf" | Bin 252916 -> 534103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git "a/\346\216\245\345\217\243\346\226\207\346\241\243.pdf" "b/\346\216\245\345\217\243\346\226\207\346\241\243.pdf" index 7c382e7a6747c7bc70e9001f748d8c5ea98e7c93..0c35d559f8fc3aa8d5baf6f876c51c316cd17ef9 100644 GIT binary patch literal 534103 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�Ay$1Z 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 z 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 i{g?BwU;px(Z-4cR@BhsgUXZssA6~aR(j% -- Gitee From c279acf15dc2657140f9c03d16705cb48063f397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Wed, 24 Nov 2021 01:41:59 +0000 Subject: [PATCH 05/43] =?UTF-8?q?!6=20=E4=BF=AE=E5=A4=8D=E7=BC=BA=E9=99=B7?= =?UTF-8?q?=20*=20=E5=88=A0=E9=99=A4=E6=B5=8B=E8=AF=95=20*=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=B5=8B=E8=AF=95=20*=20=E5=9C=A8Goods=E7=B1=BB?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=80=BB=E9=87=91=E9=A2=9D?= =?UTF-8?q?float=E7=B1=BB=E5=9E=8B=20*=20=E3=80=82=E3=80=82=20*=20add=20ba?= =?UTF-8?q?ck-end=5Fcode/src/Test.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/OrderController.java | 7 +++++- .../src/main/java/com/shop/entity/Order.java | 22 +++++++++++++++++++ .../main/resources/mapping/OrderMapper.xml | 7 ++++++ .../shop/service/ServiceApplicationTests.java | 13 ----------- 4 files changed, 35 insertions(+), 14 deletions(-) delete mode 100644 back-end_code/src/test/java/com/shop/service/ServiceApplicationTests.java diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 9bc488b..56e074f 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -177,9 +177,14 @@ public class OrderController { buyer_address = user.getAddress(); } int buy_sum = Integer.parseInt(request.getParameter("buy_sum")); + float buy_amount; + if (buy_sum*good.getGoods_price() == Float.parseFloat(request.getParameter("buy_amount"))){ + buy_amount = Float.parseFloat(request.getParameter("buy_amount")); + }else + buy_amount = buy_sum*good.getGoods_price(); String create_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); JSONObject jsonObject = new JSONObject(); - Order order = new Order(item_id,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,5,create_time); + Order order = new Order(item_id,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,buy_amount,5,create_time); if (buyer_phonenumber.length() == 11 && buyer_address.length() >= 2 && buyer_address.length() <= 100 && good.getGoods_stock() >= buy_sum){ int result = orderService.addToOrderWanted(order); if (result >=1){ diff --git a/back-end_code/src/main/java/com/shop/entity/Order.java b/back-end_code/src/main/java/com/shop/entity/Order.java index 8536312..e8384ac 100644 --- a/back-end_code/src/main/java/com/shop/entity/Order.java +++ b/back-end_code/src/main/java/com/shop/entity/Order.java @@ -9,6 +9,7 @@ public class Order { private String buyer_phonenumber; private String buyer_address; private int buy_sum; + private float buy_amount; private int state;//int,1表示进行中,2表示交易成功,3表示买家退款,4表示卖家关闭交易,5表示申请中 private String create_time; private String finish_time; @@ -17,6 +18,27 @@ public class Order { super(); } + public float getBuy_amount() { + return buy_amount; + } + + public void setBuy_amount(float buy_amount) { + this.buy_amount = buy_amount; + } + + public Order(int item_id, String seller_username, String buyer_username, String buyer_realname, String buyer_phonenumber, String buyer_address, int buy_sum, float buy_amount, int state, String create_time) { + this.item_id = item_id; + this.seller_username = seller_username; + this.buyer_username = buyer_username; + this.buyer_realname = buyer_realname; + this.buyer_phonenumber = buyer_phonenumber; + this.buyer_address = buyer_address; + this.buy_sum = buy_sum; + this.buy_amount = buy_amount; + this.state = state; + this.create_time = create_time; + } + public Order(int order_id, int item_id, String seller_username, String buyer_username, String buyer_realname, String buyer_phonenumber, String buyer_address, int buy_sum, int state, String create_time, String finish_time) { this.order_id = order_id; this.item_id = item_id; diff --git a/back-end_code/src/main/resources/mapping/OrderMapper.xml b/back-end_code/src/main/resources/mapping/OrderMapper.xml index 238afb9..2c5140e 100644 --- a/back-end_code/src/main/resources/mapping/OrderMapper.xml +++ b/back-end_code/src/main/resources/mapping/OrderMapper.xml @@ -10,6 +10,7 @@ + @@ -96,6 +97,9 @@ buySum, + + buyAmount, + state, @@ -126,6 +130,9 @@ #{buy_sum ,jdbcType=INTEGER}, + + #{buy_amount ,jdbcType=REAL}, + #{state ,jdbcType=INTEGER}, diff --git a/back-end_code/src/test/java/com/shop/service/ServiceApplicationTests.java b/back-end_code/src/test/java/com/shop/service/ServiceApplicationTests.java deleted file mode 100644 index ac56d4a..0000000 --- a/back-end_code/src/test/java/com/shop/service/ServiceApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.shop.service; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ServiceApplicationTests { - - @Test - void contextLoads() { - } - -} -- Gitee From cfe98370b1aaed13f551a4adc6ead826e0f502de Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 27 Nov 2021 14:37:15 +0800 Subject: [PATCH 06/43] =?UTF-8?q?=E5=B0=86=E7=B1=BBclass=E6=94=B9=E6=88=90?= =?UTF-8?q?category?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ontroller.java => CategoryController.java} | 73 +++++++++---------- .../main/java/com/shop/entity/Category.java | 40 ++++++++++ .../src/main/java/com/shop/entity/Class.java | 49 ------------- .../{ClassMapper.java => CategoryMapper.java} | 31 ++++---- .../com/shop/service/CategoryService.java | 20 +++++ .../java/com/shop/service/ClassService.java | 22 ------ .../main/resources/mapping/CategoryMapper.xml | 63 ++++++++++++++++ .../main/resources/mapping/ClassMapper.xml | 63 ---------------- 8 files changed, 174 insertions(+), 187 deletions(-) rename back-end_code/src/main/java/com/shop/controller/{ClassController.java => CategoryController.java} (41%) create mode 100644 back-end_code/src/main/java/com/shop/entity/Category.java delete mode 100644 back-end_code/src/main/java/com/shop/entity/Class.java rename back-end_code/src/main/java/com/shop/mapper/{ClassMapper.java => CategoryMapper.java} (34%) create mode 100644 back-end_code/src/main/java/com/shop/service/CategoryService.java delete mode 100644 back-end_code/src/main/java/com/shop/service/ClassService.java create mode 100644 back-end_code/src/main/resources/mapping/CategoryMapper.xml delete mode 100644 back-end_code/src/main/resources/mapping/ClassMapper.xml diff --git a/back-end_code/src/main/java/com/shop/controller/ClassController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java similarity index 41% rename from back-end_code/src/main/java/com/shop/controller/ClassController.java rename to back-end_code/src/main/java/com/shop/controller/CategoryController.java index c833e57..9bf433f 100644 --- a/back-end_code/src/main/java/com/shop/controller/ClassController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -1,11 +1,10 @@ package com.shop.controller; -import com.shop.entity.Class; -import com.shop.service.ClassService; +import com.shop.entity.Category; +import com.shop.service.CategoryService; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -13,20 +12,20 @@ import java.util.List; @RestController -@RequestMapping("/class") -public class ClassController { +@RequestMapping("/category") +public class CategoryController { @Autowired - private ClassService ClassService; + private CategoryService CategoryService; //添加类别 - @RequestMapping(value = "/addClass") - public Object addClass(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/addCategory") + public Object addCategory(@RequestBody Category category){ String message = "error"; - String class_name = request.getParameter("class_name"); - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); + String category_name = category.getCategory_name(); + int parentCategory_id = category.getParentCategory_id(); JSONObject jsonObject = new JSONObject(); - int result = ClassService.addClass(class_name,parentClass_id); + int result = CategoryService.addCategory(category_name,parentCategory_id); if(result>=1){ message = "success"; } else{ @@ -37,14 +36,14 @@ public class ClassController { } //查询父类别 - @RequestMapping(value = "/searchParentClass") - public Object searchParentClass(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchParentCategory") + public Object searchParentCategory(){ String message = "error"; JSONObject jsonObject = new JSONObject(); - List classList = ClassService.searchParentClass(); - if(classList != null){ + List categoryList = CategoryService.searchParentCategory(); + if(categoryList != null){ message = "success"; - jsonObject.put("classs",classList); + jsonObject.put("categorys", categoryList); } else{ message = "error"; } @@ -52,16 +51,16 @@ public class ClassController { return jsonObject; } - //根据parentClass_id查询子类别 - @RequestMapping(value = "/searchChildClass") - public Object searchChildClass(HttpServletRequest request, HttpServletResponse response){ + //根据parentCategory_id查询子类别 + @GetMapping(value = "/searchChildCategory") + public Object searchChildCategory(HttpServletRequest request, HttpServletResponse response){ String message = "error"; - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); + int parentCategory_id = Integer.parseInt(request.getParameter("parentCategory_id")); JSONObject jsonObject = new JSONObject(); - List classList = ClassService.searchChildClass(parentClass_id); - if(classList != null){ + List categoryList = CategoryService.searchChildCategory(parentCategory_id); + if(categoryList != null){ message = "success"; - jsonObject.put("classs",classList); + jsonObject.put("categorys", categoryList); } else{ message = "error"; } @@ -69,13 +68,13 @@ public class ClassController { return jsonObject; } - //根据classId删除Class - @RequestMapping(value = "/deleteClassByItemId") - public Object deleteClassByItemId(HttpServletRequest request, HttpServletResponse response) { + //根据categoryId删除Category + @DeleteMapping(value = "/deleteCategoryByItemId") + public Object deleteCategoryByItemId(HttpServletRequest request, HttpServletResponse response) { String message = "error"; - int class_id = Integer.parseInt(request.getParameter("class_id")); + int category_id = Integer.parseInt(request.getParameter("category_id")); JSONObject jsonObject = new JSONObject(); - int result = ClassService.deleteClassByItemId(class_id); + int result = CategoryService.deleteCategoryByItemId(category_id); if (result >= 1){ message = "success"; } @@ -83,16 +82,16 @@ public class ClassController { return jsonObject; } - //根据classId修改Class - @RequestMapping(value = "/updateClass") - public Object updateClass(HttpServletRequest request, HttpServletResponse response){ + //根据categoryId修改Category + @PutMapping(value = "/updateCategory") + public Object updateCategory(HttpServletRequest request, HttpServletResponse response){ String message = "error"; JSONObject jsonObject = new JSONObject(); - int class_id = Integer.parseInt(request.getParameter("class_id")); - String class_name = request.getParameter("class_name"); - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); - Class Class = new Class(class_id,class_name,parentClass_id); - int result = ClassService.updateClass(Class); + int category_id = Integer.parseInt(request.getParameter("category_id")); + String category_name = request.getParameter("category_name"); + int parentCategory_id = Integer.parseInt(request.getParameter("parentCategory_id")); + Category Category = new Category(category_id,category_name,parentCategory_id); + int result = CategoryService.updateCategory(Category); if (result >= 1){ message = "success"; } diff --git a/back-end_code/src/main/java/com/shop/entity/Category.java b/back-end_code/src/main/java/com/shop/entity/Category.java new file mode 100644 index 0000000..304d0f2 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/entity/Category.java @@ -0,0 +1,40 @@ +package com.shop.entity; + +public class Category { + private int category_id; + private String category_name; + private int parentCategory_id; + + public int getCategory_id() { + return category_id; + } + + public void setCategory_id(int category_id) { + this.category_id = category_id; + } + + public String getCategory_name() { + return category_name; + } + + public void setCategory_name(String category_name) { + this.category_name = category_name; + } + + public int getParentCategory_id() { + return parentCategory_id; + } + + public void setParentCategory_id(int parentCategory_id) { + this.parentCategory_id = parentCategory_id; + } + + public Category() { + } + + public Category(int category_id, String category_name, int parentCategory_id) { + this.category_id = category_id; + this.category_name = category_name; + this.parentCategory_id = parentCategory_id; + } +} diff --git a/back-end_code/src/main/java/com/shop/entity/Class.java b/back-end_code/src/main/java/com/shop/entity/Class.java deleted file mode 100644 index 5667578..0000000 --- a/back-end_code/src/main/java/com/shop/entity/Class.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.shop.entity; - -public class Class { - private int class_id; - private String class_name; - private int parentClass_id; - - @Override - public String toString() { - return "Class{" + - "class_id=" + class_id + - ", class_name='" + class_name + '\'' + - ", parentClass_id=" + parentClass_id + - '}'; - } - - public int getClass_id() { - return class_id; - } - - public void setClass_id(int class_id) { - this.class_id = class_id; - } - - public String getClass_name() { - return class_name; - } - - public void setClass_name(String class_name) { - this.class_name = class_name; - } - - public int getParentClass_id() { - return parentClass_id; - } - - public void setParentClass_id(int parentClass_id) { - this.parentClass_id = parentClass_id; - } - - public Class(int class_id, String class_name, int parentClass_id) { - this.class_id = class_id; - this.class_name = class_name; - this.parentClass_id = parentClass_id; - } - - public Class() { - } -} diff --git a/back-end_code/src/main/java/com/shop/mapper/ClassMapper.java b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java similarity index 34% rename from back-end_code/src/main/java/com/shop/mapper/ClassMapper.java rename to back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java index adc8403..8e9b7d2 100644 --- a/back-end_code/src/main/java/com/shop/mapper/ClassMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java @@ -1,45 +1,44 @@ package com.shop.mapper; -import com.shop.entity.Class; -import com.shop.entity.GO; +import com.shop.entity.Category; import org.springframework.stereotype.Repository; import java.util.List; @Repository -public interface ClassMapper { +public interface CategoryMapper { /** * 添加类别 - * @param class_name - * @param parentClass_id + * @param category_name + * @param parentCategory_id * @return */ - int addClass(String class_name,int parentClass_id); + int addCategory(String category_name,int parentCategory_id); /** * 查询父类别 * @return */ - List searchParentClass(); + List searchParentCategory(); /** - * 根据parentClass_id查询子类别 - * @param parentClass_id + * 根据parentCategory_id查询子类别 + * @param parentCategory_id * @return */ - List searchChildClass(int parentClass_id); + List searchChildCategory(int parentCategory_id); /** - * 根据classId删除Class - * @param class_id + * 根据categoryId删除Category + * @param category_id * @return */ - int deleteClassByItemId(int class_id); + int deleteCategoryByItemId(int category_id); /** - * 根据classId修改Class - * @param Class + * 根据categoryId修改Category + * @param Category * @return */ - int updateClass(Class Class); + int updateCategory(Category Category); } diff --git a/back-end_code/src/main/java/com/shop/service/CategoryService.java b/back-end_code/src/main/java/com/shop/service/CategoryService.java new file mode 100644 index 0000000..034d8d1 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/service/CategoryService.java @@ -0,0 +1,20 @@ +package com.shop.service; + +import com.shop.entity.Category; +import com.shop.mapper.CategoryMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CategoryService { + @Autowired + private CategoryMapper categoryMapper; + + public int addCategory(String category_name,int parentCategory_id){return categoryMapper.addCategory(category_name,parentCategory_id);} + public List searchParentCategory(){return categoryMapper.searchParentCategory();} + public List searchChildCategory(int parentCategory_id){return categoryMapper.searchChildCategory(parentCategory_id);} + public int deleteCategoryByItemId(int category_id){return categoryMapper.deleteCategoryByItemId(category_id);} + public int updateCategory(Category category){return categoryMapper.updateCategory(category);} +} diff --git a/back-end_code/src/main/java/com/shop/service/ClassService.java b/back-end_code/src/main/java/com/shop/service/ClassService.java deleted file mode 100644 index ee1994f..0000000 --- a/back-end_code/src/main/java/com/shop/service/ClassService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.shop.service; - -import com.shop.entity.Class; -import com.shop.entity.GO; -import com.shop.mapper.ClassMapper; -import com.shop.mapper.GOMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class ClassService { - @Autowired - private ClassMapper classMapper; - - public int addClass(String class_name,int parentClass_id){return classMapper.addClass(class_name,parentClass_id);} - public List searchParentClass(){return classMapper.searchParentClass();} - public List searchChildClass(int parentClass_id){return classMapper.searchChildClass(parentClass_id);} - public int deleteClassByItemId(int class_id){return classMapper.deleteClassByItemId(class_id);} - public int updateClass(Class Class){return classMapper.updateClass(Class);} -} diff --git a/back-end_code/src/main/resources/mapping/CategoryMapper.xml b/back-end_code/src/main/resources/mapping/CategoryMapper.xml new file mode 100644 index 0000000..9d0e15f --- /dev/null +++ b/back-end_code/src/main/resources/mapping/CategoryMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + insert into category + + + + categoryName, + + + parentCategoryId, + + + + + + + #{category_name,jdbcType=VARCHAR}, + + + #{parentCategory_id,jdbcType=INTEGER}, + + + + + + + + + + + + + delete from category where categoryId = #{category_id} + + + + + update category + + + categoryName = #{category_name,jdbcType=VARCHAR}, + + + parentCategoryId = #{parentCategory_id,jdbcType=INTEGER}, + + + where categoryId = #{category_id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/back-end_code/src/main/resources/mapping/ClassMapper.xml b/back-end_code/src/main/resources/mapping/ClassMapper.xml deleted file mode 100644 index d216f90..0000000 --- a/back-end_code/src/main/resources/mapping/ClassMapper.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - insert into class - - - - className, - - - parentClassId, - - - - - - - #{class_name,jdbcType=VARCHAR}, - - - #{parentClass_id,jdbcType=INTEGER}, - - - - - - - - - - - - - delete from class where classId = #{class_id} - - - - - update class - - - className = #{class_name,jdbcType=VARCHAR}, - - - parentClassId = #{parentClass_id,jdbcType=INTEGER}, - - - where classId = #{class_id,jdbcType=INTEGER} - - - \ No newline at end of file -- Gitee From 4e14170a99514af59861358ac004022fee35799c Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 30 Nov 2021 20:58:55 +0800 Subject: [PATCH 07/43] =?UTF-8?q?1.=E5=B0=86category=E7=9A=84controller?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=88=90post,put,get=E7=AD=89=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=202.=E6=AF=8F=E4=B8=AA=E6=8E=A5=E5=8F=A3=E9=83=BD?= =?UTF-8?q?=E9=80=9A=E8=BF=87postman=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/controller/CategoryController.java | 21 +++++++++++-------- .../main/java/com/shop/entity/Category.java | 9 ++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/CategoryController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java index 9bf433f..44ed071 100644 --- a/back-end_code/src/main/java/com/shop/controller/CategoryController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -53,14 +53,13 @@ public class CategoryController { //根据parentCategory_id查询子类别 @GetMapping(value = "/searchChildCategory") - public Object searchChildCategory(HttpServletRequest request, HttpServletResponse response){ + public Object searchChildCategory(@RequestParam (defaultValue = "1") Integer parentCategory_id){ String message = "error"; - int parentCategory_id = Integer.parseInt(request.getParameter("parentCategory_id")); JSONObject jsonObject = new JSONObject(); List categoryList = CategoryService.searchChildCategory(parentCategory_id); if(categoryList != null){ message = "success"; - jsonObject.put("categorys", categoryList); + jsonObject.put("categories", categoryList); } else{ message = "error"; } @@ -70,13 +69,14 @@ public class CategoryController { //根据categoryId删除Category @DeleteMapping(value = "/deleteCategoryByItemId") - public Object deleteCategoryByItemId(HttpServletRequest request, HttpServletResponse response) { + public Object deleteCategoryByItemId(@RequestParam(defaultValue = "1") Integer category_id) { String message = "error"; - int category_id = Integer.parseInt(request.getParameter("category_id")); JSONObject jsonObject = new JSONObject(); int result = CategoryService.deleteCategoryByItemId(category_id); if (result >= 1){ message = "success"; + }else { + message = "error"; } jsonObject.put("message",message); return jsonObject; @@ -84,16 +84,19 @@ public class CategoryController { //根据categoryId修改Category @PutMapping(value = "/updateCategory") - public Object updateCategory(HttpServletRequest request, HttpServletResponse response){ + public Object updateCategory(@RequestBody Category category){ String message = "error"; JSONObject jsonObject = new JSONObject(); - int category_id = Integer.parseInt(request.getParameter("category_id")); - String category_name = request.getParameter("category_name"); - int parentCategory_id = Integer.parseInt(request.getParameter("parentCategory_id")); + int category_id = category.getCategory_id(); + String category_name = category.getCategory_name(); + int parentCategory_id = category.getParentCategory_id(); Category Category = new Category(category_id,category_name,parentCategory_id); + System.out.println(Category); int result = CategoryService.updateCategory(Category); if (result >= 1){ message = "success"; + }else { + message = "error"; } jsonObject.put("message",message); return jsonObject; diff --git a/back-end_code/src/main/java/com/shop/entity/Category.java b/back-end_code/src/main/java/com/shop/entity/Category.java index 304d0f2..d6002b7 100644 --- a/back-end_code/src/main/java/com/shop/entity/Category.java +++ b/back-end_code/src/main/java/com/shop/entity/Category.java @@ -37,4 +37,13 @@ public class Category { this.category_name = category_name; this.parentCategory_id = parentCategory_id; } + + @Override + public String toString() { + return "Category{" + + "category_id=" + category_id + + ", category_name='" + category_name + '\'' + + ", parentCategory_id=" + parentCategory_id + + '}'; + } } -- Gitee From 360932140819b17da39cfbbcefad6924c9a2e70b Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 30 Nov 2021 21:04:11 +0800 Subject: [PATCH 08/43] =?UTF-8?q?=E5=B0=86goods=E4=B8=AD=E5=90=AB=E6=9C=89?= =?UTF-8?q?class=E7=9A=84=E5=9C=B0=E6=96=B9=E6=94=B9=E6=88=90category?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/entity/Goods.java | 18 +++++++-------- .../java/com/shop/mapper/GoodsMapper.java | 8 +++---- .../java/com/shop/service/GoodsService.java | 4 ++-- .../main/resources/mapping/GoodsMapper.xml | 22 +++++++++---------- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/entity/Goods.java b/back-end_code/src/main/java/com/shop/entity/Goods.java index 2d47148..ccbf9b9 100644 --- a/back-end_code/src/main/java/com/shop/entity/Goods.java +++ b/back-end_code/src/main/java/com/shop/entity/Goods.java @@ -7,7 +7,7 @@ public class Goods { private int goods_stock; private String goods_img; private String goods_discribe; - private int goods_class; + private int goods_category; private float goods_price; private int goods_state;//int型 1表示在售,2表示冻结,3表示下架 @@ -24,14 +24,14 @@ public class Goods { this.goods_price = goods_price; } - public Goods(int item_id, String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_class, float goods_price) { + public Goods(int item_id, String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_category, float goods_price) { this.item_id = item_id; this.goods_name = goods_name; this.seller_username = seller_username; this.goods_stock = goods_stock; this.goods_img = goods_img; this.goods_discribe = goods_discribe; - this.goods_class = goods_class; + this.goods_category = goods_category; this.goods_price = goods_price; } @@ -119,22 +119,22 @@ public class Goods { this.goods_state = goods_state; } - public Goods(String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_class, float goods_price) { + public Goods(String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_category, float goods_price) { this.goods_name = goods_name; this.seller_username = seller_username; this.goods_stock = goods_stock; this.goods_img = goods_img; this.goods_discribe = goods_discribe; - this.goods_class = goods_class; + this.goods_category = goods_category; this.goods_price = goods_price; } public int getGoods_class() { - return goods_class; + return goods_category; } - public void setGoods_class(int goods_class) { - this.goods_class = goods_class; + public void setGoods_class(int goods_category) { + this.goods_category = goods_category; } @Override @@ -146,7 +146,7 @@ public class Goods { ", goods_stock=" + goods_stock + ", goods_img='" + goods_img + '\'' + ", goods_discribe='" + goods_discribe + '\'' + - ", goods_class=" + goods_class + + ", goods_category=" + goods_category + ", goods_price=" + goods_price + ", goods_state=" + goods_state + '}'; diff --git a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java index e550cfc..e9b44ed 100644 --- a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java @@ -71,10 +71,10 @@ public interface GoodsMapper { /** * 通过类别查询商品 - * @param goods_class + * @param goods_category * @return */ - List searchGoodsByClass(int goods_class); + List searchGoodsByCategory(int goods_category); /** * 通过类别查询商品 @@ -93,10 +93,10 @@ public interface GoodsMapper { /** * 通过类别和关键词查询商品 - * @param goods_class + * @param goods_category * @param key_name * @return */ - List searchGoodsByClassAndKeyName(int goods_class,String key_name); + List searchGoodsByCategoryAndKeyName(int goods_category,String key_name); } diff --git a/back-end_code/src/main/java/com/shop/service/GoodsService.java b/back-end_code/src/main/java/com/shop/service/GoodsService.java index f74aed6..55962b5 100644 --- a/back-end_code/src/main/java/com/shop/service/GoodsService.java +++ b/back-end_code/src/main/java/com/shop/service/GoodsService.java @@ -29,7 +29,7 @@ public class GoodsService { return true; } } - public List searchGoodsByClass(int goods_class){return goodsMapper.searchGoodsByClass(goods_class);} + public List searchGoodsByCategory(int goods_category){return goodsMapper.searchGoodsByCategory(goods_category);} public List searchGoodsByKeyName(String key_name){return goodsMapper.searchGoodsByKeyName(key_name);} // public int reduceGoodStock(int item_id,int reduce_sum){ // Goods good = goodsMapper.searchGoods(item_id); @@ -42,5 +42,5 @@ public class GoodsService { // return goodsMapper.updateGoodStock(item_id,new_stock); // } public int updateGoodStock(int item_id,int new_stock){return goodsMapper.updateGoodStock(item_id,new_stock);} - public List searchGoodsByClassAndKeyName(int goods_class,String key_name){return goodsMapper.searchGoodsByClassAndKeyName(goods_class,key_name);} + public List searchGoodsByCategoryAndKeyName(int goods_category,String key_name){return goodsMapper.searchGoodsByCategoryAndKeyName(goods_category,key_name);} } diff --git a/back-end_code/src/main/resources/mapping/GoodsMapper.xml b/back-end_code/src/main/resources/mapping/GoodsMapper.xml index 1096c23..1e45344 100644 --- a/back-end_code/src/main/resources/mapping/GoodsMapper.xml +++ b/back-end_code/src/main/resources/mapping/GoodsMapper.xml @@ -8,7 +8,7 @@ - + @@ -33,8 +33,8 @@ goodsDiscribe, - - goodsClass, + + goodsCategory, goodsPrice, @@ -59,8 +59,8 @@ #{goods_discribe,jdbcType=VARCHAR}, - - #{goods_class,jdbcType=VARCHAR}, + + #{goods_category,jdbcType=VARCHAR}, #{goods_price,jdbcType=REAL}, @@ -93,8 +93,8 @@ goodsDiscribe = #{goods_discribe,jdbcType=VARCHAR}, - - goodsClass = #{goods_class,jdbcType=INTEGER}, + + goodsCategory = #{goods_category,jdbcType=INTEGER}, goodsPrice = #{goods_price,jdbcType=REAL}, @@ -140,8 +140,8 @@ - + select * from goods where goodsCategory = #{goods_category} and goodsState = 1 @@ -150,8 +150,8 @@ - + select * from goods where goodsName like '%${key_name}%' and goodsCategory = #{goods_category} and goodsState = 1 -- Gitee From b90aab18af9e45c6a1fc692194a3e2b91711caf8 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 30 Nov 2021 21:05:17 +0800 Subject: [PATCH 09/43] =?UTF-8?q?=E5=B0=86goods=E4=B8=AD=E5=90=AB=E6=9C=89?= =?UTF-8?q?class=E7=9A=84=E5=9C=B0=E6=96=B9=E6=94=B9=E6=88=90category?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/GoodsController.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index c2d4866..210b2ab 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -49,16 +49,16 @@ public class GoodsController { String goods_img = request.getParameter("goods_img"); String goods_discribe = request.getParameter("goods_discribe"); float goods_price = Float.parseFloat(request.getParameter("goods_price")); - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && goods_stock >= 0 && goods_img.length() <= 2000 && goods_discribe.length() >= 2 && goods_discribe.length() <= 2000 && goods_price >= 0 && - goods_class >= 0 + goods_category >= 0 ){ - Goods goods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); + Goods goods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); int result = goodsService.addGoods( goods); if (result >= 1) { message = "success"; @@ -179,7 +179,7 @@ public class GoodsController { // String goods_img = uploadImageService.uploadQNImg((FileInputStream) file.getInputStream(), StringUtil.getRandomImgName(file.getOriginalFilename())); String goods_img = request.getParameter("goods_img"); String goods_discribe = request.getParameter("goods_discribe"); - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); float goods_price = Float.parseFloat(request.getParameter("goods_price")); JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && @@ -187,9 +187,9 @@ public class GoodsController { goods_img.length() <= 2000 && goods_discribe.length() >= 2 && goods_discribe.length() <= 2000 && goods_price >= 0 && - goods_class >= 0 + goods_category >= 0 ){ - Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); + Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); int result = goodsService.updateGoods(newgoods); if (result >= 1) { message = "success"; @@ -232,13 +232,13 @@ public class GoodsController { } //通过类别查询商品 - @RequestMapping(value = "/searchGoodsByClass") - public Object searchGoodsByClass(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/searchGoodsByCategory") + public Object searchGoodsByCategory(HttpServletRequest request, HttpServletResponse response){ String message = "error"; - int goods_class = Integer.parseInt(request.getParameter("goods_class")); - System.out.println(goods_class); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); + System.out.println(goods_category); JSONObject jsonObject = new JSONObject(); - List goodsList =goodsService.searchGoodsByClass(goods_class); + List goodsList =goodsService.searchGoodsByCategory(goods_category); message = "success"; jsonObject.put("goods",goodsList); jsonObject.put("message",message); @@ -259,13 +259,13 @@ public class GoodsController { } //通过类别和关键词查询商品 - @RequestMapping(value = "/searchGoodsByClassAndKeyName") - public Object searchGoodsByClassAndKeyName(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/searchGoodsByCategoryAndKeyName") + public Object searchGoodsByCategoryAndKeyName(HttpServletRequest request, HttpServletResponse response){ String message = "error"; - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); String key_name = request.getParameter("key_name"); JSONObject jsonObject = new JSONObject(); - List goodsList = goodsService.searchGoodsByClassAndKeyName(goods_class,key_name); + List goodsList = goodsService.searchGoodsByCategoryAndKeyName(goods_category,key_name); message = "success"; jsonObject.put("goods",goodsList); jsonObject.put("message",message); -- Gitee From 081cdf764b58c8a0a2f855e170a722e6411b3698 Mon Sep 17 00:00:00 2001 From: Souldays Date: Fri, 3 Dec 2021 05:12:38 +0000 Subject: [PATCH 10/43] =?UTF-8?q?!7=20=E8=A7=84=E8=8C=83=E6=96=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3&class=E6=94=B9=E6=88=90category=20*=20=E5=B0=86goodma?= =?UTF-8?q?p=E4=B8=AD=E5=90=AB=E6=9C=89class=E7=9A=84=E5=9C=B0=E6=96=B9?= =?UTF-8?q?=E6=94=B9=E6=88=90category=20*=20=E5=B0=86goods=E7=B1=BB?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E6=89=80=E5=B1=9E=E6=8E=A5=E5=8F=A3=E4=B8=AD?= =?UTF-8?q?=E5=90=AB=E6=9C=89class=E7=9A=84=E5=9C=B0=E6=96=B9=E6=94=B9?= =?UTF-8?q?=E6=88=90category=20*=201.=E5=B0=86category=E7=9A=84controller?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=88=90post,put,get=E7=AD=89=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=20*=20=E5=B0=86=E7=B1=BBclass=E6=94=B9=E6=88=90catego?= =?UTF-8?q?ry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ontroller.java => CategoryController.java} | 76 ++++++++++--------- .../com/shop/controller/GoodsController.java | 30 ++++---- .../main/java/com/shop/entity/Category.java | 49 ++++++++++++ .../src/main/java/com/shop/entity/Class.java | 49 ------------ .../src/main/java/com/shop/entity/Goods.java | 18 ++--- .../{ClassMapper.java => CategoryMapper.java} | 31 ++++---- .../java/com/shop/mapper/GoodsMapper.java | 8 +- .../com/shop/service/CategoryService.java | 20 +++++ .../java/com/shop/service/ClassService.java | 22 ------ .../java/com/shop/service/GoodsService.java | 4 +- .../main/resources/mapping/CategoryMapper.xml | 63 +++++++++++++++ .../main/resources/mapping/ClassMapper.xml | 63 --------------- .../main/resources/mapping/GoodsMapper.xml | 22 +++--- 13 files changed, 227 insertions(+), 228 deletions(-) rename back-end_code/src/main/java/com/shop/controller/{ClassController.java => CategoryController.java} (41%) create mode 100644 back-end_code/src/main/java/com/shop/entity/Category.java delete mode 100644 back-end_code/src/main/java/com/shop/entity/Class.java rename back-end_code/src/main/java/com/shop/mapper/{ClassMapper.java => CategoryMapper.java} (34%) create mode 100644 back-end_code/src/main/java/com/shop/service/CategoryService.java delete mode 100644 back-end_code/src/main/java/com/shop/service/ClassService.java create mode 100644 back-end_code/src/main/resources/mapping/CategoryMapper.xml delete mode 100644 back-end_code/src/main/resources/mapping/ClassMapper.xml diff --git a/back-end_code/src/main/java/com/shop/controller/ClassController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java similarity index 41% rename from back-end_code/src/main/java/com/shop/controller/ClassController.java rename to back-end_code/src/main/java/com/shop/controller/CategoryController.java index c833e57..44ed071 100644 --- a/back-end_code/src/main/java/com/shop/controller/ClassController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -1,11 +1,10 @@ package com.shop.controller; -import com.shop.entity.Class; -import com.shop.service.ClassService; +import com.shop.entity.Category; +import com.shop.service.CategoryService; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -13,20 +12,20 @@ import java.util.List; @RestController -@RequestMapping("/class") -public class ClassController { +@RequestMapping("/category") +public class CategoryController { @Autowired - private ClassService ClassService; + private CategoryService CategoryService; //添加类别 - @RequestMapping(value = "/addClass") - public Object addClass(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/addCategory") + public Object addCategory(@RequestBody Category category){ String message = "error"; - String class_name = request.getParameter("class_name"); - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); + String category_name = category.getCategory_name(); + int parentCategory_id = category.getParentCategory_id(); JSONObject jsonObject = new JSONObject(); - int result = ClassService.addClass(class_name,parentClass_id); + int result = CategoryService.addCategory(category_name,parentCategory_id); if(result>=1){ message = "success"; } else{ @@ -37,14 +36,14 @@ public class ClassController { } //查询父类别 - @RequestMapping(value = "/searchParentClass") - public Object searchParentClass(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchParentCategory") + public Object searchParentCategory(){ String message = "error"; JSONObject jsonObject = new JSONObject(); - List classList = ClassService.searchParentClass(); - if(classList != null){ + List categoryList = CategoryService.searchParentCategory(); + if(categoryList != null){ message = "success"; - jsonObject.put("classs",classList); + jsonObject.put("categorys", categoryList); } else{ message = "error"; } @@ -52,16 +51,15 @@ public class ClassController { return jsonObject; } - //根据parentClass_id查询子类别 - @RequestMapping(value = "/searchChildClass") - public Object searchChildClass(HttpServletRequest request, HttpServletResponse response){ + //根据parentCategory_id查询子类别 + @GetMapping(value = "/searchChildCategory") + public Object searchChildCategory(@RequestParam (defaultValue = "1") Integer parentCategory_id){ String message = "error"; - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); JSONObject jsonObject = new JSONObject(); - List classList = ClassService.searchChildClass(parentClass_id); - if(classList != null){ + List categoryList = CategoryService.searchChildCategory(parentCategory_id); + if(categoryList != null){ message = "success"; - jsonObject.put("classs",classList); + jsonObject.put("categories", categoryList); } else{ message = "error"; } @@ -69,32 +67,36 @@ public class ClassController { return jsonObject; } - //根据classId删除Class - @RequestMapping(value = "/deleteClassByItemId") - public Object deleteClassByItemId(HttpServletRequest request, HttpServletResponse response) { + //根据categoryId删除Category + @DeleteMapping(value = "/deleteCategoryByItemId") + public Object deleteCategoryByItemId(@RequestParam(defaultValue = "1") Integer category_id) { String message = "error"; - int class_id = Integer.parseInt(request.getParameter("class_id")); JSONObject jsonObject = new JSONObject(); - int result = ClassService.deleteClassByItemId(class_id); + int result = CategoryService.deleteCategoryByItemId(category_id); if (result >= 1){ message = "success"; + }else { + message = "error"; } jsonObject.put("message",message); return jsonObject; } - //根据classId修改Class - @RequestMapping(value = "/updateClass") - public Object updateClass(HttpServletRequest request, HttpServletResponse response){ + //根据categoryId修改Category + @PutMapping(value = "/updateCategory") + public Object updateCategory(@RequestBody Category category){ String message = "error"; JSONObject jsonObject = new JSONObject(); - int class_id = Integer.parseInt(request.getParameter("class_id")); - String class_name = request.getParameter("class_name"); - int parentClass_id = Integer.parseInt(request.getParameter("parentClass_id")); - Class Class = new Class(class_id,class_name,parentClass_id); - int result = ClassService.updateClass(Class); + int category_id = category.getCategory_id(); + String category_name = category.getCategory_name(); + int parentCategory_id = category.getParentCategory_id(); + Category Category = new Category(category_id,category_name,parentCategory_id); + System.out.println(Category); + int result = CategoryService.updateCategory(Category); if (result >= 1){ message = "success"; + }else { + message = "error"; } jsonObject.put("message",message); return jsonObject; diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index c2d4866..210b2ab 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -49,16 +49,16 @@ public class GoodsController { String goods_img = request.getParameter("goods_img"); String goods_discribe = request.getParameter("goods_discribe"); float goods_price = Float.parseFloat(request.getParameter("goods_price")); - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && goods_stock >= 0 && goods_img.length() <= 2000 && goods_discribe.length() >= 2 && goods_discribe.length() <= 2000 && goods_price >= 0 && - goods_class >= 0 + goods_category >= 0 ){ - Goods goods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); + Goods goods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); int result = goodsService.addGoods( goods); if (result >= 1) { message = "success"; @@ -179,7 +179,7 @@ public class GoodsController { // String goods_img = uploadImageService.uploadQNImg((FileInputStream) file.getInputStream(), StringUtil.getRandomImgName(file.getOriginalFilename())); String goods_img = request.getParameter("goods_img"); String goods_discribe = request.getParameter("goods_discribe"); - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); float goods_price = Float.parseFloat(request.getParameter("goods_price")); JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && @@ -187,9 +187,9 @@ public class GoodsController { goods_img.length() <= 2000 && goods_discribe.length() >= 2 && goods_discribe.length() <= 2000 && goods_price >= 0 && - goods_class >= 0 + goods_category >= 0 ){ - Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_class,goods_price); + Goods newgoods = new Goods(item_id,goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); int result = goodsService.updateGoods(newgoods); if (result >= 1) { message = "success"; @@ -232,13 +232,13 @@ public class GoodsController { } //通过类别查询商品 - @RequestMapping(value = "/searchGoodsByClass") - public Object searchGoodsByClass(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/searchGoodsByCategory") + public Object searchGoodsByCategory(HttpServletRequest request, HttpServletResponse response){ String message = "error"; - int goods_class = Integer.parseInt(request.getParameter("goods_class")); - System.out.println(goods_class); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); + System.out.println(goods_category); JSONObject jsonObject = new JSONObject(); - List goodsList =goodsService.searchGoodsByClass(goods_class); + List goodsList =goodsService.searchGoodsByCategory(goods_category); message = "success"; jsonObject.put("goods",goodsList); jsonObject.put("message",message); @@ -259,13 +259,13 @@ public class GoodsController { } //通过类别和关键词查询商品 - @RequestMapping(value = "/searchGoodsByClassAndKeyName") - public Object searchGoodsByClassAndKeyName(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/searchGoodsByCategoryAndKeyName") + public Object searchGoodsByCategoryAndKeyName(HttpServletRequest request, HttpServletResponse response){ String message = "error"; - int goods_class = Integer.parseInt(request.getParameter("goods_class")); + int goods_category = Integer.parseInt(request.getParameter("goods_category")); String key_name = request.getParameter("key_name"); JSONObject jsonObject = new JSONObject(); - List goodsList = goodsService.searchGoodsByClassAndKeyName(goods_class,key_name); + List goodsList = goodsService.searchGoodsByCategoryAndKeyName(goods_category,key_name); message = "success"; jsonObject.put("goods",goodsList); jsonObject.put("message",message); diff --git a/back-end_code/src/main/java/com/shop/entity/Category.java b/back-end_code/src/main/java/com/shop/entity/Category.java new file mode 100644 index 0000000..d6002b7 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/entity/Category.java @@ -0,0 +1,49 @@ +package com.shop.entity; + +public class Category { + private int category_id; + private String category_name; + private int parentCategory_id; + + public int getCategory_id() { + return category_id; + } + + public void setCategory_id(int category_id) { + this.category_id = category_id; + } + + public String getCategory_name() { + return category_name; + } + + public void setCategory_name(String category_name) { + this.category_name = category_name; + } + + public int getParentCategory_id() { + return parentCategory_id; + } + + public void setParentCategory_id(int parentCategory_id) { + this.parentCategory_id = parentCategory_id; + } + + public Category() { + } + + public Category(int category_id, String category_name, int parentCategory_id) { + this.category_id = category_id; + this.category_name = category_name; + this.parentCategory_id = parentCategory_id; + } + + @Override + public String toString() { + return "Category{" + + "category_id=" + category_id + + ", category_name='" + category_name + '\'' + + ", parentCategory_id=" + parentCategory_id + + '}'; + } +} diff --git a/back-end_code/src/main/java/com/shop/entity/Class.java b/back-end_code/src/main/java/com/shop/entity/Class.java deleted file mode 100644 index 5667578..0000000 --- a/back-end_code/src/main/java/com/shop/entity/Class.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.shop.entity; - -public class Class { - private int class_id; - private String class_name; - private int parentClass_id; - - @Override - public String toString() { - return "Class{" + - "class_id=" + class_id + - ", class_name='" + class_name + '\'' + - ", parentClass_id=" + parentClass_id + - '}'; - } - - public int getClass_id() { - return class_id; - } - - public void setClass_id(int class_id) { - this.class_id = class_id; - } - - public String getClass_name() { - return class_name; - } - - public void setClass_name(String class_name) { - this.class_name = class_name; - } - - public int getParentClass_id() { - return parentClass_id; - } - - public void setParentClass_id(int parentClass_id) { - this.parentClass_id = parentClass_id; - } - - public Class(int class_id, String class_name, int parentClass_id) { - this.class_id = class_id; - this.class_name = class_name; - this.parentClass_id = parentClass_id; - } - - public Class() { - } -} diff --git a/back-end_code/src/main/java/com/shop/entity/Goods.java b/back-end_code/src/main/java/com/shop/entity/Goods.java index 2d47148..ccbf9b9 100644 --- a/back-end_code/src/main/java/com/shop/entity/Goods.java +++ b/back-end_code/src/main/java/com/shop/entity/Goods.java @@ -7,7 +7,7 @@ public class Goods { private int goods_stock; private String goods_img; private String goods_discribe; - private int goods_class; + private int goods_category; private float goods_price; private int goods_state;//int型 1表示在售,2表示冻结,3表示下架 @@ -24,14 +24,14 @@ public class Goods { this.goods_price = goods_price; } - public Goods(int item_id, String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_class, float goods_price) { + public Goods(int item_id, String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_category, float goods_price) { this.item_id = item_id; this.goods_name = goods_name; this.seller_username = seller_username; this.goods_stock = goods_stock; this.goods_img = goods_img; this.goods_discribe = goods_discribe; - this.goods_class = goods_class; + this.goods_category = goods_category; this.goods_price = goods_price; } @@ -119,22 +119,22 @@ public class Goods { this.goods_state = goods_state; } - public Goods(String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_class, float goods_price) { + public Goods(String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_category, float goods_price) { this.goods_name = goods_name; this.seller_username = seller_username; this.goods_stock = goods_stock; this.goods_img = goods_img; this.goods_discribe = goods_discribe; - this.goods_class = goods_class; + this.goods_category = goods_category; this.goods_price = goods_price; } public int getGoods_class() { - return goods_class; + return goods_category; } - public void setGoods_class(int goods_class) { - this.goods_class = goods_class; + public void setGoods_class(int goods_category) { + this.goods_category = goods_category; } @Override @@ -146,7 +146,7 @@ public class Goods { ", goods_stock=" + goods_stock + ", goods_img='" + goods_img + '\'' + ", goods_discribe='" + goods_discribe + '\'' + - ", goods_class=" + goods_class + + ", goods_category=" + goods_category + ", goods_price=" + goods_price + ", goods_state=" + goods_state + '}'; diff --git a/back-end_code/src/main/java/com/shop/mapper/ClassMapper.java b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java similarity index 34% rename from back-end_code/src/main/java/com/shop/mapper/ClassMapper.java rename to back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java index adc8403..8e9b7d2 100644 --- a/back-end_code/src/main/java/com/shop/mapper/ClassMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java @@ -1,45 +1,44 @@ package com.shop.mapper; -import com.shop.entity.Class; -import com.shop.entity.GO; +import com.shop.entity.Category; import org.springframework.stereotype.Repository; import java.util.List; @Repository -public interface ClassMapper { +public interface CategoryMapper { /** * 添加类别 - * @param class_name - * @param parentClass_id + * @param category_name + * @param parentCategory_id * @return */ - int addClass(String class_name,int parentClass_id); + int addCategory(String category_name,int parentCategory_id); /** * 查询父类别 * @return */ - List searchParentClass(); + List searchParentCategory(); /** - * 根据parentClass_id查询子类别 - * @param parentClass_id + * 根据parentCategory_id查询子类别 + * @param parentCategory_id * @return */ - List searchChildClass(int parentClass_id); + List searchChildCategory(int parentCategory_id); /** - * 根据classId删除Class - * @param class_id + * 根据categoryId删除Category + * @param category_id * @return */ - int deleteClassByItemId(int class_id); + int deleteCategoryByItemId(int category_id); /** - * 根据classId修改Class - * @param Class + * 根据categoryId修改Category + * @param Category * @return */ - int updateClass(Class Class); + int updateCategory(Category Category); } diff --git a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java index e550cfc..e9b44ed 100644 --- a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java @@ -71,10 +71,10 @@ public interface GoodsMapper { /** * 通过类别查询商品 - * @param goods_class + * @param goods_category * @return */ - List searchGoodsByClass(int goods_class); + List searchGoodsByCategory(int goods_category); /** * 通过类别查询商品 @@ -93,10 +93,10 @@ public interface GoodsMapper { /** * 通过类别和关键词查询商品 - * @param goods_class + * @param goods_category * @param key_name * @return */ - List searchGoodsByClassAndKeyName(int goods_class,String key_name); + List searchGoodsByCategoryAndKeyName(int goods_category,String key_name); } diff --git a/back-end_code/src/main/java/com/shop/service/CategoryService.java b/back-end_code/src/main/java/com/shop/service/CategoryService.java new file mode 100644 index 0000000..034d8d1 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/service/CategoryService.java @@ -0,0 +1,20 @@ +package com.shop.service; + +import com.shop.entity.Category; +import com.shop.mapper.CategoryMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CategoryService { + @Autowired + private CategoryMapper categoryMapper; + + public int addCategory(String category_name,int parentCategory_id){return categoryMapper.addCategory(category_name,parentCategory_id);} + public List searchParentCategory(){return categoryMapper.searchParentCategory();} + public List searchChildCategory(int parentCategory_id){return categoryMapper.searchChildCategory(parentCategory_id);} + public int deleteCategoryByItemId(int category_id){return categoryMapper.deleteCategoryByItemId(category_id);} + public int updateCategory(Category category){return categoryMapper.updateCategory(category);} +} diff --git a/back-end_code/src/main/java/com/shop/service/ClassService.java b/back-end_code/src/main/java/com/shop/service/ClassService.java deleted file mode 100644 index ee1994f..0000000 --- a/back-end_code/src/main/java/com/shop/service/ClassService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.shop.service; - -import com.shop.entity.Class; -import com.shop.entity.GO; -import com.shop.mapper.ClassMapper; -import com.shop.mapper.GOMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class ClassService { - @Autowired - private ClassMapper classMapper; - - public int addClass(String class_name,int parentClass_id){return classMapper.addClass(class_name,parentClass_id);} - public List searchParentClass(){return classMapper.searchParentClass();} - public List searchChildClass(int parentClass_id){return classMapper.searchChildClass(parentClass_id);} - public int deleteClassByItemId(int class_id){return classMapper.deleteClassByItemId(class_id);} - public int updateClass(Class Class){return classMapper.updateClass(Class);} -} diff --git a/back-end_code/src/main/java/com/shop/service/GoodsService.java b/back-end_code/src/main/java/com/shop/service/GoodsService.java index f74aed6..55962b5 100644 --- a/back-end_code/src/main/java/com/shop/service/GoodsService.java +++ b/back-end_code/src/main/java/com/shop/service/GoodsService.java @@ -29,7 +29,7 @@ public class GoodsService { return true; } } - public List searchGoodsByClass(int goods_class){return goodsMapper.searchGoodsByClass(goods_class);} + public List searchGoodsByCategory(int goods_category){return goodsMapper.searchGoodsByCategory(goods_category);} public List searchGoodsByKeyName(String key_name){return goodsMapper.searchGoodsByKeyName(key_name);} // public int reduceGoodStock(int item_id,int reduce_sum){ // Goods good = goodsMapper.searchGoods(item_id); @@ -42,5 +42,5 @@ public class GoodsService { // return goodsMapper.updateGoodStock(item_id,new_stock); // } public int updateGoodStock(int item_id,int new_stock){return goodsMapper.updateGoodStock(item_id,new_stock);} - public List searchGoodsByClassAndKeyName(int goods_class,String key_name){return goodsMapper.searchGoodsByClassAndKeyName(goods_class,key_name);} + public List searchGoodsByCategoryAndKeyName(int goods_category,String key_name){return goodsMapper.searchGoodsByCategoryAndKeyName(goods_category,key_name);} } diff --git a/back-end_code/src/main/resources/mapping/CategoryMapper.xml b/back-end_code/src/main/resources/mapping/CategoryMapper.xml new file mode 100644 index 0000000..9d0e15f --- /dev/null +++ b/back-end_code/src/main/resources/mapping/CategoryMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + insert into category + + + + categoryName, + + + parentCategoryId, + + + + + + + #{category_name,jdbcType=VARCHAR}, + + + #{parentCategory_id,jdbcType=INTEGER}, + + + + + + + + + + + + + delete from category where categoryId = #{category_id} + + + + + update category + + + categoryName = #{category_name,jdbcType=VARCHAR}, + + + parentCategoryId = #{parentCategory_id,jdbcType=INTEGER}, + + + where categoryId = #{category_id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/back-end_code/src/main/resources/mapping/ClassMapper.xml b/back-end_code/src/main/resources/mapping/ClassMapper.xml deleted file mode 100644 index d216f90..0000000 --- a/back-end_code/src/main/resources/mapping/ClassMapper.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - insert into class - - - - className, - - - parentClassId, - - - - - - - #{class_name,jdbcType=VARCHAR}, - - - #{parentClass_id,jdbcType=INTEGER}, - - - - - - - - - - - - - delete from class where classId = #{class_id} - - - - - update class - - - className = #{class_name,jdbcType=VARCHAR}, - - - parentClassId = #{parentClass_id,jdbcType=INTEGER}, - - - where classId = #{class_id,jdbcType=INTEGER} - - - \ No newline at end of file diff --git a/back-end_code/src/main/resources/mapping/GoodsMapper.xml b/back-end_code/src/main/resources/mapping/GoodsMapper.xml index 1096c23..1e45344 100644 --- a/back-end_code/src/main/resources/mapping/GoodsMapper.xml +++ b/back-end_code/src/main/resources/mapping/GoodsMapper.xml @@ -8,7 +8,7 @@ - + @@ -33,8 +33,8 @@ goodsDiscribe, - - goodsClass, + + goodsCategory, goodsPrice, @@ -59,8 +59,8 @@ #{goods_discribe,jdbcType=VARCHAR}, - - #{goods_class,jdbcType=VARCHAR}, + + #{goods_category,jdbcType=VARCHAR}, #{goods_price,jdbcType=REAL}, @@ -93,8 +93,8 @@ goodsDiscribe = #{goods_discribe,jdbcType=VARCHAR}, - - goodsClass = #{goods_class,jdbcType=INTEGER}, + + goodsCategory = #{goods_category,jdbcType=INTEGER}, goodsPrice = #{goods_price,jdbcType=REAL}, @@ -140,8 +140,8 @@ - + select * from goods where goodsCategory = #{goods_category} and goodsState = 1 @@ -150,8 +150,8 @@ - + select * from goods where goodsName like '%${key_name}%' and goodsCategory = #{goods_category} and goodsState = 1 -- Gitee From f861b341ed5e2d2074a9056245ee6eab738b78b3 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 3 Dec 2021 19:17:46 +0800 Subject: [PATCH 11/43] =?UTF-8?q?1.UserService=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD=E6=95=B0=E6=8D=AE=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=202.UserController=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/UserController.java | 19 ++++++++++++++ .../java/com/shop/service/UserService.java | 25 ++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index aa12079..fc2388b 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -115,6 +115,25 @@ public class UserController { int result = userService.registerUser(User); if (result >= 1){ message = "success"; + }else if (result==-1){ + message = "用户名长度错误"; + }else if (result==-2){ + message = "用户名重复"; + } + else if (result==-3){ + message = "用户名包含非数字或字母"; + } + else if (result==-4){ + message = "密码长度错误"; + } + else if (result==-5){ + message = "真实姓名长度过长"; + } + else if (result==-6){ + message = "电话号码格式不对"; + } + else if (result==-7){ + message = "地址过长"; } jsonObject.put("message",message); return jsonObject; diff --git a/back-end_code/src/main/java/com/shop/service/UserService.java b/back-end_code/src/main/java/com/shop/service/UserService.java index d661dfd..1e9b2af 100644 --- a/back-end_code/src/main/java/com/shop/service/UserService.java +++ b/back-end_code/src/main/java/com/shop/service/UserService.java @@ -15,7 +15,30 @@ public class UserService { public User login(String username, String password){ return userMapper.login(username,password); } public User getUserInfo(String username){ return userMapper.getUserInfo(username); } public int updatePassword(String username,String newPassword){ return userMapper.updatePassword(username,newPassword); } - public int registerUser(User User){return userMapper.registerUser(User);} + public int registerUser(User user){ + String username=user.getUserName(); + String password=user.getPassword(); + String realName=user.getRealname(); + String phoneNumber=user.getPhonenumber(); + String address=user.getAddress(); + final String STR_ENG_PATTERN="^[a-z0-9A-Z]+$"; + if(username.length()>11||username.length()<3){ + return -1;//用户名长度错误 + }else if(userMapper.getUserInfo(username)!=null){ + return -2;//用户名重复 + }else if(!username.matches(STR_ENG_PATTERN)){ + return -3;//用户名包含非数字或字母 + }else if(password.length()<7||password.length()>15){ + return -4;//密码长度错误 + }else if(realName.length()>10){ + return -5;//真实姓名长度过长 + }else if(phoneNumber.length()!=11||phoneNumber.matches("^[0-9]+$")){ + return -6;//电话号码格式不对 + }else if(address.length()>50){ + return -7;//地址过长 + } + return userMapper.registerUser(user); + } public int updateUser(User User){return userMapper.updateUser(User);} public List searchAllUser(){return userMapper.searchAllUser();} } -- Gitee From 1b3504ed1b5db204c9fea966f701a752c81271f7 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 3 Dec 2021 19:23:38 +0800 Subject: [PATCH 12/43] =?UTF-8?q?=E7=94=B5=E8=AF=9D=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=9C=89=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back-end_code/src/main/java/com/shop/service/UserService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back-end_code/src/main/java/com/shop/service/UserService.java b/back-end_code/src/main/java/com/shop/service/UserService.java index 1e9b2af..202e42f 100644 --- a/back-end_code/src/main/java/com/shop/service/UserService.java +++ b/back-end_code/src/main/java/com/shop/service/UserService.java @@ -32,7 +32,7 @@ public class UserService { return -4;//密码长度错误 }else if(realName.length()>10){ return -5;//真实姓名长度过长 - }else if(phoneNumber.length()!=11||phoneNumber.matches("^[0-9]+$")){ + }else if(phoneNumber.length()!=11||!phoneNumber.matches("^[0-9]+$")){ return -6;//电话号码格式不对 }else if(address.length()>50){ return -7;//地址过长 -- Gitee From 98b121c16593d21879c5b93f58eb19967fa7ac20 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 3 Dec 2021 19:25:34 +0800 Subject: [PATCH 13/43] =?UTF-8?q?1.postman=E6=B5=8B=E8=AF=95=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=8E=A5=E5=8F=A3=202.=E7=94=B5=E8=AF=9D=E5=8F=B7?= =?UTF-8?q?=E7=A0=81=E6=A0=A1=E9=AA=8C=E6=9C=89=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D,=E5=85=B6=E4=BB=96=E6=97=A0=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back-end_code/src/main/java/com/shop/service/UserService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back-end_code/src/main/java/com/shop/service/UserService.java b/back-end_code/src/main/java/com/shop/service/UserService.java index 202e42f..1982763 100644 --- a/back-end_code/src/main/java/com/shop/service/UserService.java +++ b/back-end_code/src/main/java/com/shop/service/UserService.java @@ -33,7 +33,7 @@ public class UserService { }else if(realName.length()>10){ return -5;//真实姓名长度过长 }else if(phoneNumber.length()!=11||!phoneNumber.matches("^[0-9]+$")){ - return -6;//电话号码格式不对 + return -6;//电话号码格式错误 }else if(address.length()>50){ return -7;//地址过长 } -- Gitee From 89e4ebad16fc5c3a4f9b8ef01586d3fbbda2436c Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 3 Dec 2021 19:55:52 +0800 Subject: [PATCH 14/43] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0info=E5=B1=9E=E6=80=A7=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=9D=A5=E4=BF=9D=E5=AD=98=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/shop/controller/UserController.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index fc2388b..d8f0610 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -102,6 +102,7 @@ public class UserController { @RequestMapping(value = "/registerUser") public Object registerUser(HttpServletRequest request, HttpServletResponse response){ String message = "error"; + String info="注册成功"; String username = request.getParameter("username"); String password = request.getParameter("password"); String nickname = request.getParameter("nickname"); @@ -116,26 +117,27 @@ public class UserController { if (result >= 1){ message = "success"; }else if (result==-1){ - message = "用户名长度错误"; + info = "用户名长度错误"; }else if (result==-2){ - message = "用户名重复"; + info = "用户名重复"; } else if (result==-3){ - message = "用户名包含非数字或字母"; + info = "用户名包含非数字或字母"; } else if (result==-4){ - message = "密码长度错误"; + info = "密码长度错误"; } else if (result==-5){ - message = "真实姓名长度过长"; + info = "真实姓名长度过长"; } else if (result==-6){ - message = "电话号码格式不对"; + info = "电话号码格式不对"; } else if (result==-7){ - message = "地址过长"; + info = "地址过长"; } jsonObject.put("message",message); + jsonObject.put("info",info); return jsonObject; } -- Gitee From 87f790ba91954942da81fbef13c906e571ea2ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Sun, 5 Dec 2021 05:46:31 +0000 Subject: [PATCH 15/43] =?UTF-8?q?!8=20=E4=BF=AE=E5=A4=8Dbug&=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=20*=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=B0=83=E8=AF=95=E8=AF=AD=E5=8F=A5=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=B0=86=E5=95=86=E5=93=81=E6=95=B0=E9=87=8F=E4=B8=BA0?= =?UTF-8?q?=E8=80=8C=E5=95=86=E5=93=81=E4=B8=8D=E4=B8=8B=E6=9E=B6=E7=9A=84?= =?UTF-8?q?bug=20=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=BF=87=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=88=B6=E7=B1=BB=E6=9F=A5=E8=AF=A2=E7=9A=84bug=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=80=9A=E8=BF=87=E7=B1=BB=E5=88=AB=E5=92=8C=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E8=AF=8D=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=88=B6=E7=B1=BB=E6=9F=A5=E8=AF=A2=E7=9A=84?= =?UTF-8?q?bug=20=E5=88=A0=E9=99=A4Good=E7=B1=BB=E4=B8=AD=E5=85=B3?= =?UTF-8?q?=E4=BA=8Eclass(category=E7=9A=84=E5=89=8D=E8=BA=AB)=E7=9A=84?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=20=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=BA=E6=9C=89=E7=9B=B8=E5=BA=94=E5=A4=84?= =?UTF-8?q?=E7=90=86=E7=9A=84bug=20*=20=E4=BF=9D=E5=AD=98=E5=95=86?= =?UTF-8?q?=E5=93=81=E4=BF=A1=E6=81=AF=E8=87=B3=E8=AE=A2=E5=8D=95=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/controller/CategoryController.java | 2 +- .../com/shop/controller/GoodsController.java | 44 +- .../com/shop/controller/OrderController.java | 10 +- .../com/shop/controller/UserController.java | 10 +- .../src/main/java/com/shop/entity/Goods.java | 15 +- .../src/main/java/com/shop/entity/Order.java | 58 + .../java/com/shop/service/GoodsService.java | 41 +- .../main/resources/mapping/OrderMapper.xml | 28 + ...45\345\217\243\346\226\207\346\241\243.md" | 1532 +++++++++++++++++ 9 files changed, 1702 insertions(+), 38 deletions(-) create mode 100644 "\346\216\245\345\217\243\346\226\207\346\241\243.md" diff --git a/back-end_code/src/main/java/com/shop/controller/CategoryController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java index 44ed071..bad8c58 100644 --- a/back-end_code/src/main/java/com/shop/controller/CategoryController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -69,7 +69,7 @@ public class CategoryController { //根据categoryId删除Category @DeleteMapping(value = "/deleteCategoryByItemId") - public Object deleteCategoryByItemId(@RequestParam(defaultValue = "1") Integer category_id) { + public Object deleteCategoryByItemId(@RequestParam Integer category_id) { String message = "error"; JSONObject jsonObject = new JSONObject(); int result = CategoryService.deleteCategoryByItemId(category_id); diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 210b2ab..f8e8e92 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -63,7 +63,6 @@ public class GoodsController { if (result >= 1) { message = "success"; }else { - System.out.println("aa"); message = "error"; } } @@ -78,7 +77,6 @@ public class GoodsController { int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); Goods good = goodsService.searchGoods(item_id); - System.out.println(good.getGoods_price()); if (good != null){ message = "success"; jsonObject.put("good",good); @@ -133,34 +131,34 @@ public class GoodsController { return jsonObject; } - //在goods表中查询所有商品 + //在goods表中查询历史商品 @RequestMapping(value = "/searchHistoryGoods") public Object searchHistoryGoods(HttpServletRequest request, HttpServletResponse response){ String message = "error"; String seller_username = request.getParameter("seller_username"); JSONObject jsonObject = new JSONObject(); List goodsList = goodsService.searchHistoryGoods(seller_username); - List list = new ArrayList(); - for (int i=0;i < goodsList.size();i++){ - Goods good = (Goods) goodsList.get(i); - GO go = goService.searchGOByItemId(good.getItem_id()); - Order order = orderService.searchOrderByOrderId(seller_username, go.getOrder_id()); - Order_Goods order_goods = new Order_Goods( - order.getOrder_id(), - order.getBuyer_realname(), - order.getBuyer_phonenumber(), - order.getBuyer_address(), - order.getFinish_time(), - good.getItem_id(), - good.getGoods_name(), - good.getGoods_price(), - good.getGoods_img(), - good.getGoods_discribe()); - list.add(order_goods); - } +// List list = new ArrayList(); +// for (int i=0;i < goodsList.size();i++){ +// Goods good = (Goods) goodsList.get(i); +// GO go = goService.searchGOByItemId(good.getItem_id()); +// Order order = orderService.searchOrderByOrderId(seller_username, go.getOrder_id()); +// Order_Goods order_goods = new Order_Goods( +// order.getOrder_id(), +// order.getBuyer_realname(), +// order.getBuyer_phonenumber(), +// order.getBuyer_address(), +// order.getFinish_time(), +// good.getItem_id(), +// good.getGoods_name(), +// good.getGoods_price(), +// good.getGoods_img(), +// good.getGoods_discribe()); +// list.add(order_goods); +// } message = "success"; jsonObject.put("message",message); - jsonObject.put("list",list); + jsonObject.put("goods",goodsList); return jsonObject; } @@ -236,7 +234,7 @@ public class GoodsController { public Object searchGoodsByCategory(HttpServletRequest request, HttpServletResponse response){ String message = "error"; int goods_category = Integer.parseInt(request.getParameter("goods_category")); - System.out.println(goods_category); +// System.out.println(goods_category); JSONObject jsonObject = new JSONObject(); List goodsList =goodsService.searchGoodsByCategory(goods_category); message = "success"; diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 56e074f..05afba3 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -38,8 +38,8 @@ public class OrderController { private GOService goService; //查看商品意向购买买家 - @RequestMapping(value = "/searchBuyerlist") - public Object searchBuyerlist(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/searchWantBuyerlistByItemId") + public Object searchWantBuyerlistByItemId(HttpServletRequest request, HttpServletResponse response){ String message = "error"; String seller_username = request.getParameter("seller_username"); int item_id = Integer.parseInt(request.getParameter("item_id")); @@ -161,6 +161,10 @@ public class OrderController { String message = "error"; int item_id = Integer.parseInt(request.getParameter("item_id")); Goods good = goodsService.searchGoods(item_id); + String goods_name = good.getGoods_name(); + String goods_img = good.getGoods_img(); + String goods_discribe = good.getGoods_discribe(); + float goods_price = good.getGoods_price(); String seller_username = good.getSeller_username(); String buyer_username = request.getParameter("buyer_username"); User user = userService.getUserInfo(buyer_username); @@ -184,7 +188,7 @@ public class OrderController { buy_amount = buy_sum*good.getGoods_price(); String create_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); JSONObject jsonObject = new JSONObject(); - Order order = new Order(item_id,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,buy_amount,5,create_time); + Order order = new Order(item_id,goods_name,goods_img,goods_discribe,goods_price,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,buy_amount,5,create_time); if (buyer_phonenumber.length() == 11 && buyer_address.length() >= 2 && buyer_address.length() <= 100 && good.getGoods_stock() >= buy_sum){ int result = orderService.addToOrderWanted(order); if (result >=1){ diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index aa12079..a931ae9 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -61,7 +61,13 @@ public class UserController { String username = request.getParameter("username"); JSONObject jsonObject = new JSONObject(); User user = userService.getUserInfo(username); - jsonObject.put("user",user); + if (user != null){ + message = "success"; + jsonObject.put("user",user); + }else{ + message = "error"; + } + jsonObject.put("message",message); return jsonObject; } @@ -115,6 +121,8 @@ public class UserController { int result = userService.registerUser(User); if (result >= 1){ message = "success"; + }else { + message = "error"; } jsonObject.put("message",message); return jsonObject; diff --git a/back-end_code/src/main/java/com/shop/entity/Goods.java b/back-end_code/src/main/java/com/shop/entity/Goods.java index ccbf9b9..a79dcc8 100644 --- a/back-end_code/src/main/java/com/shop/entity/Goods.java +++ b/back-end_code/src/main/java/com/shop/entity/Goods.java @@ -24,6 +24,14 @@ public class Goods { this.goods_price = goods_price; } + public int getGoods_category() { + return goods_category; + } + + public void setGoods_category(int goods_category) { + this.goods_category = goods_category; + } + public Goods(int item_id, String goods_name, String seller_username, int goods_stock, String goods_img, String goods_discribe, int goods_category, float goods_price) { this.item_id = item_id; this.goods_name = goods_name; @@ -129,13 +137,6 @@ public class Goods { this.goods_price = goods_price; } - public int getGoods_class() { - return goods_category; - } - - public void setGoods_class(int goods_category) { - this.goods_category = goods_category; - } @Override public String toString() { diff --git a/back-end_code/src/main/java/com/shop/entity/Order.java b/back-end_code/src/main/java/com/shop/entity/Order.java index e8384ac..6b7e05a 100644 --- a/back-end_code/src/main/java/com/shop/entity/Order.java +++ b/back-end_code/src/main/java/com/shop/entity/Order.java @@ -3,6 +3,10 @@ package com.shop.entity; public class Order { private int order_id; private int item_id; + private String goods_name; + private String goods_img; + private String goods_discribe; + private float goods_price; private String seller_username; private String buyer_username; private String buyer_realname; @@ -18,6 +22,55 @@ public class Order { super(); } + public Order(int item_id, String goods_name, String goods_img, String goods_discribe, float goods_price, String seller_username, String buyer_username, String buyer_realname, String buyer_phonenumber, String buyer_address, int buy_sum, float buy_amount, int state, String create_time) { + this.item_id = item_id; + this.goods_name = goods_name; + this.goods_img = goods_img; + this.goods_discribe = goods_discribe; + this.goods_price = goods_price; + this.seller_username = seller_username; + this.buyer_username = buyer_username; + this.buyer_realname = buyer_realname; + this.buyer_phonenumber = buyer_phonenumber; + this.buyer_address = buyer_address; + this.buy_sum = buy_sum; + this.buy_amount = buy_amount; + this.state = state; + this.create_time = create_time; + } + + public String getGoods_name() { + return goods_name; + } + + public void setGoods_name(String goods_name) { + this.goods_name = goods_name; + } + + public String getGoods_img() { + return goods_img; + } + + public void setGoods_img(String goods_img) { + this.goods_img = goods_img; + } + + public String getGoods_discribe() { + return goods_discribe; + } + + public void setGoods_discribe(String goods_discribe) { + this.goods_discribe = goods_discribe; + } + + public float getGoods_price() { + return goods_price; + } + + public void setGoods_price(float goods_price) { + this.goods_price = goods_price; + } + public float getBuy_amount() { return buy_amount; } @@ -172,12 +225,17 @@ public class Order { return "Order{" + "order_id=" + order_id + ", item_id=" + item_id + + ", goods_name='" + goods_name + '\'' + + ", goods_img='" + goods_img + '\'' + + ", goods_discribe='" + goods_discribe + '\'' + + ", goods_price=" + goods_price + ", seller_username='" + seller_username + '\'' + ", buyer_username='" + buyer_username + '\'' + ", buyer_realname='" + buyer_realname + '\'' + ", buyer_phonenumber='" + buyer_phonenumber + '\'' + ", buyer_address='" + buyer_address + '\'' + ", buy_sum=" + buy_sum + + ", buy_amount=" + buy_amount + ", state=" + state + ", create_time='" + create_time + '\'' + ", finish_time='" + finish_time + '\'' + diff --git a/back-end_code/src/main/java/com/shop/service/GoodsService.java b/back-end_code/src/main/java/com/shop/service/GoodsService.java index 55962b5..f56b6df 100644 --- a/back-end_code/src/main/java/com/shop/service/GoodsService.java +++ b/back-end_code/src/main/java/com/shop/service/GoodsService.java @@ -1,16 +1,21 @@ package com.shop.service; +import com.shop.entity.Category; import com.shop.entity.Goods; +import com.shop.mapper.CategoryMapper; import com.shop.mapper.GoodsMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service public class GoodsService { @Autowired private GoodsMapper goodsMapper; + @Autowired + private CategoryMapper categoryMapper; public int addGoods(Goods Goods){ return goodsMapper.addGoods(Goods); @@ -20,7 +25,13 @@ public class GoodsService { public List searchSellingGoods(){return goodsMapper.searchSellingGoods();}//一页8条 public List searchFreezingGoods(String seller_username){return goodsMapper.searchFreezingGoods(seller_username);}//一页10条 public List searchHistoryGoods(String seller_username){ return goodsMapper.searchHistoryGoods(seller_username);}//一页10条 - public int updateGoods(Goods newgoods){ return goodsMapper.updateGoods(newgoods);} + public int updateGoods(Goods newgoods){ + if (newgoods.getGoods_stock() == 0){ + goodsMapper.updateGoodsState(newgoods.getSeller_username(),newgoods.getItem_id(),3); + }else if (newgoods.getGoods_stock() > 0){ + goodsMapper.updateGoodsState(newgoods.getSeller_username(),newgoods.getItem_id(),1); + } + return goodsMapper.updateGoods(newgoods);} public List searchWelcomeGoods(){return goodsMapper.searchWelcomeGoods();} public boolean isHaveSellingGoods(String username){ if(goodsMapper.isHaveSellingGoods(username)==null){ @@ -29,7 +40,19 @@ public class GoodsService { return true; } } - public List searchGoodsByCategory(int goods_category){return goodsMapper.searchGoodsByCategory(goods_category);} + public List searchGoodsByCategory(int goods_category){ + List goodsList = new ArrayList(); + List categoryList = categoryMapper.searchChildCategory(goods_category); + if (categoryList != null){ + for (Category category:categoryList + ) { + List goods = goodsMapper.searchGoodsByCategory(category.getCategory_id()); + goodsList.addAll(goods); + } + }else + goodsList = goodsMapper.searchGoodsByCategory(goods_category); + return goodsList; + } public List searchGoodsByKeyName(String key_name){return goodsMapper.searchGoodsByKeyName(key_name);} // public int reduceGoodStock(int item_id,int reduce_sum){ // Goods good = goodsMapper.searchGoods(item_id); @@ -42,5 +65,17 @@ public class GoodsService { // return goodsMapper.updateGoodStock(item_id,new_stock); // } public int updateGoodStock(int item_id,int new_stock){return goodsMapper.updateGoodStock(item_id,new_stock);} - public List searchGoodsByCategoryAndKeyName(int goods_category,String key_name){return goodsMapper.searchGoodsByCategoryAndKeyName(goods_category,key_name);} + public List searchGoodsByCategoryAndKeyName(int goods_category,String key_name){ + List goodsList = null; + List categoryList = categoryMapper.searchChildCategory(goods_category); + if (categoryList != null){ + for (Category category:categoryList + ) { + List goods = goodsMapper.searchGoodsByCategoryAndKeyName(category.getCategory_id(),key_name); + goodsList.addAll(goods); + } + }else + goodsList = goodsMapper.searchGoodsByCategoryAndKeyName(goods_category,key_name); + return goodsList; + } } diff --git a/back-end_code/src/main/resources/mapping/OrderMapper.xml b/back-end_code/src/main/resources/mapping/OrderMapper.xml index 2c5140e..e82961a 100644 --- a/back-end_code/src/main/resources/mapping/OrderMapper.xml +++ b/back-end_code/src/main/resources/mapping/OrderMapper.xml @@ -4,6 +4,10 @@ + + + + @@ -79,6 +83,18 @@ itemId, + + goodsName, + + + goodsImg, + + + goodsDiscribe, + + + goodsPrice, + sellerUsername, @@ -112,6 +128,18 @@ #{item_id,jdbcType=INTEGER}, + + #{goods_name,jdbcType=VARCHAR}, + + + #{goods_img,jdbcType=VARCHAR}, + + + #{goods_discribe,jdbcType=VARCHAR}, + + + #{goods_price,jdbcType=REAL}, + #{seller_username,jdbcType=VARCHAR}, diff --git "a/\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" new file mode 100644 index 0000000..da7e75e --- /dev/null +++ "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -0,0 +1,1532 @@ +# User + +## 登陆 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/login + +#### 线上 +>http://souldays.top:8083/user/login + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名和密码 +* 实现登陆功能 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|password|密码|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "permission": 2, + "message": "success", + "username ": "admin", + "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhZG1pbiIsImV4cCI6MTYzODU4NDk2NSwiaWF0IjoxNjM4NTQxNzY1LCJ1c2VybmFtZSI6ImFkbWluIn0.eYprmaSIWmPd8mzI58dKpXVEwZ-uc-eggJl3MeaX2Ik" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|permission|权限|int|-| +|token|token|String|-| +|username|用户名|String|-| +|message|调用信息|String|-| + + + +## 获取用户信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/getUserInfo + +#### 线上 +>http://souldays.top:8083/user/getUserInfo + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名 +* 获取用户信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "user": { + "password": "wxy123", + "permission": 1, + "phonenumber": "12345678900", + "address": "浙江工商大学", + "realname": "纹宗", + "userName": "xyWei", + "userHead": "http://cdn.souldays.top/image/2021-11-14-9565b3f30f124a02acc5e46da020afff.jpg", + "nickName": "纹宗" + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|user|用户信息|User|-| +|message|调用信息|String|-| + + + +## 修改密码 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/updatePassword + +#### 线上 +>http://souldays.top:8083/user/updatePassword + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名,旧密码,新密码 +* 实现修改密码 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|oldPassword|旧密码|String|Y|-| +|newPassword|新密码|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 注册 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/registerUser + +#### 线上 +>http://souldays.top:8083/user/registerUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入注册用户信息 +* 实现注册用户 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|password|密码|String|Y|-| +|nickname|昵称|String|Y|-| +|phonenumber|电话|String|Y|-| +|address|地址|String|Y|-| +|realname|真实姓名|String|Y|-| +|user_head|头像|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 修改用户信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/updateUser + +#### 线上 +>http://souldays.top:8083/user/updateUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入新用户信息 +* 实现用户修改个人信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|nickname|昵称|String|Y|-| +|phonenumber|电话|String|Y|-| +|address|地址|String|Y|-| +|realname|真实姓名|String|Y|-| +|user_head|头像|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 卖家查看买家信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/searchAllUser + +#### 线上 +>http://souldays.top:8083/user/searchAllUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查看全部用户信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "users": [ + { + "password": null, + "permission": 1, + "phonenumber": "17395711129", + "address": "翻斗花园", + "realname": "陈国栋", + "userName": "cgd", + "nickName": "cgd", + "userHead": "" + }, + { + "password": null, + "permission": 1, + "phonenumber": "12345678900", + "address": "浙江工商大学", + "realname": "纹宗", + "userName": "xyWei", + "nickName": "纹宗", + "userHead": "http://cdn.souldays.top/image/2021-11-14-9565b3f30f124a02acc5e46da020afff.jpg" + } + ] +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|users|用户信息表|List\|-| + + + +# Goods + +## 添加商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/addGoods + +#### 线上 +>http://souldays.top:8083/goods/addGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品信息 +* 实现添加商品 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_name|商品名称|String|Y|-| +|goods_stock|商品数量|int|Y|-| +|goods_img|商品图片|String|Y|-| +|goods_discribe|商品描述|String|Y|-| +|goods_price|商品价格|float|Y|-| +|goods_category|商品类别|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查询商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoods + +#### 线上 +>http://souldays.top:8083/goods/searchGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品编号 +* 实现查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "good": { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|good|商品信息|Good|-| +|message|调用信息|String|-| + + + +## 修改商品状态 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/updateGoodsState + +#### 线上 +>http://souldays.top:8083/goods/updateGoodsState + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品编号 +* 实现查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|买家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| +|new_state|新商品状态|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + + +## 查找正在出售的商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchSellingGoods + +#### 线上 +>http://souldays.top:8083/goods/searchSellingGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查询正在出售的商品信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + }, + { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + + +## 查找正在出售的商品(首页使用) + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchWelcomeGoods + +#### 线上 +>http://souldays.top:8083/goods/searchWelcomeGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查询正在出售的商品信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + }, + { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } + ], + "message": "success", + "Strings": [ + "纹***", + "纹***", + "纹***" + ] +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| +|Strings|加密后的已下单用户名|List\|-| + + + +## 查找已下架的商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchHistoryGoods + +#### 线上 +>http://souldays.top:8083/goods/searchHistoryGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入卖家用户名 +* 实现查询已下架的商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 3, + "goods_name": "AD钙奶", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-12-04-a1db84bba9ea4ed69736c756ec6955cf.jpg", + "goods_discribe": "童年的 味道", + "goods_price": 8.0, + "goods_state": 3, + "goods_category": 4 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + + +## 通过类别查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByCategory + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByCategory + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的类别 +* 实现通过类别查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_category|商品类别|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + +## 通过关键词查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByKeyName + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByKeyName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的关键词 +* 实现通过关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|key_name|商品关键词|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|goods|商品信息表|List\|-| +|message|调用信息|String|-| + + + +## 通过类别和关键词查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByCategoryAndKeyName + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByCategoryAndKeyName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的类别和关键词 +* 实现通过类别和关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_category|商品类别|int|Y|-| +|key_name|商品关键词|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|goods|商品信息表|List\|-| +|message|调用信息|String|-| + + + +## 修改商品库存 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/updateGoodStock + +#### 线上 +>http://souldays.top:8083/goods/updateGoodStock + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要修改的商品编号和新的库存 +* 实现通过类别和关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|new_stock|商品库存|int|Y|-| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +# Order + +## 查看商品意向购买买家 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/searchWantBuyerlistByItemId + +#### 线上 +>http://souldays.top:8083/order/searchWantBuyerlistByItemId + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的商品编号和卖家用户名 +* 实现通过商品编号查询商品意向买家 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "orders": [ + { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 5, + "create_time": "2021-11-15 21:16:08", + "finish_time": null + }, + { + "order_id": 160, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 5, + "create_time": "2021-11-15 21:17:20", + "finish_time": null + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|orders|订单信息表|List\|-| +|message|调用信息|String|-| + + + +## 同意意向购买买家 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/agreeOrderwanted + +#### 线上 +>http://souldays.top:8083/order/agreeOrderwanted + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要同意的订单编号和卖家用户名 +* 实现同意商品意向买家 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "order": { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 1, + "create_time": "2021-11-15 21:16:08", + "finish_time": null + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|order|订单信息|Order|-| +|message|调用信息|String|-| + + + +## 完成交易 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/finishOrder + +#### 线上 +>http://souldays.top:8083/order/finishOrder + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要完成的订单编号和卖家用户名 +* 实现完成奖交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 取消交易 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/cancelOrder + +#### 线上 +>http://souldays.top:8083/order/cancelOrder + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要取消的订单编号和卖家用户名 +* 实现取消交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 意向买家下单 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/addToOrderWanted + +#### 线上 +>http://souldays.top:8083/order/addToOrderWanted + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要取消的订单编号和卖家用户名 +* 实现取消交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|buyer_username|买家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| +|buyer_realname|买家真实姓名|String|N|-| +|buyer_phonenumber|买家电话|int|N|-| +|buyer_address|买家地址|String|N|-| +|buy_sum|购买数量|int|Y|-| +|buy_amount|订单总金额|float|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查看历史购买记录 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/searchFinishOrderByBuyerUserName + +#### 线上 +>http://souldays.top:8083/order/searchFinishOrderByBuyerUserName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的家买用户名 +* 实现查看历史购买记录 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|buyer_username|买家用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "orders": [ + { + "order_id": 157, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 2, + "create_time": "2021-11-15 20:58:48", + "finish_time": "2021-11-15 22:59:04" + }, + { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 2, + "create_time": "2021-11-15 21:16:08", + "finish_time": "2021-12-04 10:39:17" + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|orders|订单信息表|List\|-| +|message|调用信息|String|-| + + + +# Category + +## 添加类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/addCategory + +#### 线上 +>http://souldays.top:8083/category/addCategory + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要添加的类别类 +* 实现添加类别 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_name|类别名|String|Y|-| +|parentCategory_id|父类别编号|int|N|无参为父类别| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查询父类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/searchParentCategory + +#### 线上 +>http://souldays.top:8083/category/searchParentCategory + +### 2) 调用方式:HTTP get + +### 3) 接口描述: + +* 实现查询父类别 + +### 4) 请求参数: + +#### GET参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "categorys": [ + { + "category_id": 1, + "category_name": "饮料茶水", + "parentCategory_id": 0 + }, + { + "category_id": 5, + "category_name": "娃哈哈", + "parentCategory_id": 0 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|categorys|类别信息表|List\|-| +|message|调用信息|String|-| + + + +## 查询子类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/searchChildCategory + +#### 线上 +>http://souldays.top:8083/category/searchChildCategory + +### 2) 调用方式:HTTP get + +### 3) 接口描述: + +* 传入需要查询的父类别编号 +* 实现查询子类别 + +### 4) 请求参数: + +#### GET参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|parentCategory_id|父类别编号|int|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "categories": [ + { + "category_id": 2, + "category_name": "白酒", + "parentCategory_id": 1 + }, + { + "category_id": 3, + "category_name": "茶饮料", + "parentCategory_id": 1 + }, + { + "category_id": 4, + "category_name": "牛奶", + "parentCategory_id": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|categorys|类别信息表|List\|-| +|message|调用信息|String|-| + + + +## 查询子类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/deleteCategoryByItemId + +#### 线上 +>http://souldays.top:8083/category/deleteCategoryByItemId + +### 2) 调用方式:HTTP delete + +### 3) 接口描述: + +* 传入需要删除的类别编号 +* 实现删除类别 + +### 4) 请求参数: + +#### DELETE参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_id|类别编号|int|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------|、 +|message|调用信息|String|-| + + + +## 修改类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/updateCategory + +#### 线上 +>http://souldays.top:8083/category/updateCategory + +### 2) 调用方式:HTTP delete + +### 3) 接口描述: + +* 传入需要修改的类别类 +* 实现修改类别 + +### 4) 请求参数: + +#### DELETE参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_id|类别编号|int|Y|| +|parentCategory_id|类别编号|int|Y|| +|category_name|类别编号|String|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| \ No newline at end of file -- Gitee From 638f77fdd6026f80f418b619cdc3f8a8527ef938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Mon, 6 Dec 2021 08:12:23 +0000 Subject: [PATCH 16/43] =?UTF-8?q?!9=20=E6=B3=A8=E5=86=8C=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=BB=98=E8=AE=A4=E5=A4=B4=E5=83=8F=20*=20?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=AE=BE=E7=BD=AE=E7=94=A8=E6=88=B7=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 3 +++ "\346\216\245\345\217\243\346\226\207\346\241\243.md" | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index a931ae9..6e5e780 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -116,6 +116,9 @@ public class UserController { String address = request.getParameter("address"); String realname = request.getParameter("realname"); String user_head = request.getParameter("user_head"); + if (user_head == null){ + user_head = "http://cdn.souldays.top/image/2021-12-06-eb3ac6b8edac4612806b08f967b88963.jpg"; + } JSONObject jsonObject = new JSONObject(); User User = new User(username,password,nickname,permission,phonenumber,address,realname,user_head); int result = userService.registerUser(User); diff --git "a/\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" index da7e75e..f1f9497 100644 --- "a/\346\216\245\345\217\243\346\226\207\346\241\243.md" +++ "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -183,7 +183,7 @@ |phonenumber|电话|String|Y|-| |address|地址|String|Y|-| |realname|真实姓名|String|Y|-| -|user_head|头像|String|Y|-| +|user_head|头像|String|N|-| ### 5) 请求返回结果: @@ -1529,4 +1529,4 @@ ### 6) 请求返回结果参数说明: |字段名称 |字段说明 |类型 |备注 | | -------------|--------------|--------------|------| -|message|调用信息|String|-| \ No newline at end of file +|message|调用信息|String|-| -- Gitee From 878658d9a75c0bc1cd5f8c24f0ffd21dcf8fa1da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Wed, 8 Dec 2021 00:33:12 +0000 Subject: [PATCH 17/43] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\346\226\207\346\241\243.md" | 1532 +++++++++++++++++ 1 file changed, 1532 insertions(+) create mode 100644 "\346\216\245\345\217\243\346\226\207\346\241\243.md" diff --git "a/\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" new file mode 100644 index 0000000..b6f8473 --- /dev/null +++ "b/\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -0,0 +1,1532 @@ +# User + +## 登陆 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/login + +#### 线上 +>http://souldays.top:8083/user/login + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名和密码 +* 实现登陆功能 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|password|密码|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "permission": 2, + "message": "success", + "username ": "admin", + "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhZG1pbiIsImV4cCI6MTYzODU4NDk2NSwiaWF0IjoxNjM4NTQxNzY1LCJ1c2VybmFtZSI6ImFkbWluIn0.eYprmaSIWmPd8mzI58dKpXVEwZ-uc-eggJl3MeaX2Ik" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|permission|权限|int|-| +|token|token|String|-| +|username|用户名|String|-| +|message|调用信息|String|-| + + + +## 获取用户信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/getUserInfo + +#### 线上 +>http://souldays.top:8083/user/getUserInfo + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名 +* 获取用户信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "user": { + "password": "wxy123", + "permission": 1, + "phonenumber": "12345678900", + "address": "浙江工商大学", + "realname": "纹宗", + "userName": "xyWei", + "userHead": "http://cdn.souldays.top/image/2021-11-14-9565b3f30f124a02acc5e46da020afff.jpg", + "nickName": "纹宗" + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|user|用户信息|User|-| +|message|调用信息|String|-| + + + +## 修改密码 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/updatePassword + +#### 线上 +>http://souldays.top:8083/user/updatePassword + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入用户名,旧密码,新密码 +* 实现修改密码 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|oldPassword|旧密码|String|Y|-| +|newPassword|新密码|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 注册 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/registerUser + +#### 线上 +>http://souldays.top:8083/user/registerUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入注册用户信息 +* 实现注册用户 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|password|密码|String|Y|-| +|nickname|昵称|String|Y|-| +|phonenumber|电话|String|Y|-| +|address|地址|String|Y|-| +|realname|真实姓名|String|Y|-| +|user_head|头像|String|N|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 修改用户信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/updateUser + +#### 线上 +>http://souldays.top:8083/user/updateUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入新用户信息 +* 实现用户修改个人信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|username|用户名|String|Y|-| +|nickname|昵称|String|Y|-| +|phonenumber|电话|String|Y|-| +|address|地址|String|Y|-| +|realname|真实姓名|String|Y|-| +|user_head|头像|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 卖家查看买家信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/user/searchAllUser + +#### 线上 +>http://souldays.top:8083/user/searchAllUser + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查看全部用户信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "users": [ + { + "password": null, + "permission": 1, + "phonenumber": "17395711129", + "address": "翻斗花园", + "realname": "陈国栋", + "userName": "cgd", + "nickName": "cgd", + "userHead": "" + }, + { + "password": null, + "permission": 1, + "phonenumber": "12345678900", + "address": "浙江工商大学", + "realname": "纹宗", + "userName": "xyWei", + "nickName": "纹宗", + "userHead": "http://cdn.souldays.top/image/2021-11-14-9565b3f30f124a02acc5e46da020afff.jpg" + } + ] +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|users|用户信息表|List\|-| + + + +# Goods + +## 添加商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/addGoods + +#### 线上 +>http://souldays.top:8083/goods/addGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品信息 +* 实现添加商品 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_name|商品名称|String|Y|-| +|goods_stock|商品数量|int|Y|-| +|goods_img|商品图片|String|Y|-| +|goods_discribe|商品描述|String|Y|-| +|goods_price|商品价格|float|Y|-| +|goods_category|商品类别|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查询商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoods + +#### 线上 +>http://souldays.top:8083/goods/searchGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品编号 +* 实现查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "good": { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|good|商品信息|Good|-| +|message|调用信息|String|-| + + + +## 修改商品状态 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/updateGoodsState + +#### 线上 +>http://souldays.top:8083/goods/updateGoodsState + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入商品编号 +* 实现查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|买家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| +|new_state|新商品状态|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + + +## 查找正在出售的商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchSellingGoods + +#### 线上 +>http://souldays.top:8083/goods/searchSellingGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查询正在出售的商品信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + }, + { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + + +## 查找正在出售的商品(首页使用) + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchWelcomeGoods + +#### 线上 +>http://souldays.top:8083/goods/searchWelcomeGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 实现查询正在出售的商品信息 + +### 4) 请求参数: + +#### POST参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + }, + { + "item_id": 2, + "goods_name": "红牛", + "seller_username": "admin", + "goods_stock": 90, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-5715365be9f84bf191e6c10f7d02fb31.jpg", + "goods_discribe": "我出钱你出命,咱们一块神经病", + "goods_price": 6.0, + "goods_state": 1, + "goods_category": 2 + } + ], + "message": "success", + "Strings": [ + "纹***", + "纹***", + "纹***" + ] +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| +|Strings|加密后的已下单用户名|List\|-| + + + +## 查找已下架的商品 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchHistoryGoods + +#### 线上 +>http://souldays.top:8083/goods/searchHistoryGoods + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入卖家用户名 +* 实现查询已下架的商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 3, + "goods_name": "AD钙奶", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-12-04-a1db84bba9ea4ed69736c756ec6955cf.jpg", + "goods_discribe": "童年的 味道", + "goods_price": 8.0, + "goods_state": 3, + "goods_category": 4 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + + +## 通过类别查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByCategory + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByCategory + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的类别 +* 实现通过类别查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_category|商品类别|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| +|goods|商品信息表|List\|-| + + +## 通过关键词查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByKeyName + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByKeyName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的关键词 +* 实现通过关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|key_name|商品关键词|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|goods|商品信息表|List\|-| +|message|调用信息|String|-| + + + +## 通过类别和关键词查询商品信息 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/searchGoodsByCategoryAndKeyName + +#### 线上 +>http://souldays.top:8083/goods/searchGoodsByCategoryAndKeyName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的类别和关键词 +* 实现通过类别和关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|goods_category|商品类别|int|Y|-| +|key_name|商品关键词|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "goods": [ + { + "item_id": 1, + "goods_name": "魔爪", + "seller_username": "admin", + "goods_stock": 100, + "goods_img": "http://cdn.souldays.top/image/2021-10-26-bfe7515322954c53a89cd6b93dfdd4f6.jpg", + "goods_discribe": "不怕红牛不要命,就怕魔爪技术硬", + "goods_category": 2, + "goods_price": 6.0, + "goods_state": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|goods|商品信息表|List\|-| +|message|调用信息|String|-| + + + +## 修改商品库存 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/goods/updateGoodStock + +#### 线上 +>http://souldays.top:8083/goods/updateGoodStock + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要修改的商品编号和新的库存 +* 实现通过类别和关键词查询商品信息 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|new_stock|商品库存|int|Y|-| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +# Order + +## 查看商品意向购买买家 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/searchWantBuyerlistByItemId + +#### 线上 +>http://souldays.top:8083/order/searchWantBuyerlistByItemId + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的商品编号和卖家用户名 +* 实现通过商品编号查询商品意向买家 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "orders": [ + { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 5, + "create_time": "2021-11-15 21:16:08", + "finish_time": null + }, + { + "order_id": 160, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 5, + "create_time": "2021-11-15 21:17:20", + "finish_time": null + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|orders|订单信息表|List\|-| +|message|调用信息|String|-| + + + +## 同意意向购买买家 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/agreeOrderwanted + +#### 线上 +>http://souldays.top:8083/order/agreeOrderwanted + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要同意的订单编号和卖家用户名 +* 实现同意商品意向买家 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success", + "order": { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 1, + "create_time": "2021-11-15 21:16:08", + "finish_time": null + } +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|order|订单信息|Order|-| +|message|调用信息|String|-| + + + +## 完成交易 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/finishOrder + +#### 线上 +>http://souldays.top:8083/order/finishOrder + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要完成的订单编号和卖家用户名 +* 实现完成奖交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 取消交易 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/cancelOrder + +#### 线上 +>http://souldays.top:8083/order/cancelOrder + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要取消的订单编号和卖家用户名 +* 实现取消交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|seller_username|卖家用户名|String|Y|-| +|order_id|订单编号|int|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 意向买家下单 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/addToOrderWanted + +#### 线上 +>http://souldays.top:8083/order/addToOrderWanted + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要取消的订单编号和卖家用户名 +* 实现取消交易 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|buyer_username|买家用户名|String|Y|-| +|item_id|商品编号|int|Y|-| +|buyer_realname|买家真实姓名|String|N|-| +|buyer_phonenumber|买家电话|int|N|-| +|buyer_address|买家地址|String|N|-| +|buy_sum|购买数量|int|Y|-| +|buy_amount|订单总金额|float|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查看历史购买记录 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/order/searchFinishOrderByBuyerUserName + +#### 线上 +>http://souldays.top:8083/order/searchFinishOrderByBuyerUserName + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要查询的家买用户名 +* 实现查看历史购买记录 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|buyer_username|买家用户名|String|Y|-| + +### 5) 请求返回结果: + +``` +成功 +{ + "orders": [ + { + "order_id": 157, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 2, + "create_time": "2021-11-15 20:58:48", + "finish_time": "2021-11-15 22:59:04" + }, + { + "order_id": 158, + "item_id": 2, + "goods_name": "", + "goods_img": "", + "goods_discribe": null, + "goods_price": 0.0, + "seller_username": "admin", + "buyer_username": "xyWei", + "buyer_realname": "纹宗", + "buyer_phonenumber": "12345678900", + "buyer_address": "浙江工商大学", + "buy_sum": 10, + "buy_amount": 0.0, + "state": 2, + "create_time": "2021-11-15 21:16:08", + "finish_time": "2021-12-04 10:39:17" + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|orders|订单信息表|List\|-| +|message|调用信息|String|-| + + + +# Category + +## 添加类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/addCategory + +#### 线上 +>http://souldays.top:8083/category/addCategory + +### 2) 调用方式:HTTP post + +### 3) 接口描述: + +* 传入需要添加的类别类 +* 实现添加类别 + +### 4) 请求参数: + +#### POST参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_name|类别名|String|Y|-| +|parentCategory_id|父类别编号|int|N|无参为父类别| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| + + + +## 查询父类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/searchParentCategory + +#### 线上 +>http://souldays.top:8083/category/searchParentCategory + +### 2) 调用方式:HTTP get + +### 3) 接口描述: + +* 实现查询父类别 + +### 4) 请求参数: + +#### GET参数: 无 + +### 5) 请求返回结果: + +``` +成功 +{ + "categorys": [ + { + "category_id": 1, + "category_name": "饮料茶水", + "parentCategory_id": 0 + }, + { + "category_id": 5, + "category_name": "娃哈哈", + "parentCategory_id": 0 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|categorys|类别信息表|List\|-| +|message|调用信息|String|-| + + + +## 查询子类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/searchChildCategory + +#### 线上 +>http://souldays.top:8083/category/searchChildCategory + +### 2) 调用方式:HTTP get + +### 3) 接口描述: + +* 传入需要查询的父类别编号 +* 实现查询子类别 + +### 4) 请求参数: + +#### GET参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|parentCategory_id|父类别编号|int|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "categories": [ + { + "category_id": 2, + "category_name": "白酒", + "parentCategory_id": 1 + }, + { + "category_id": 3, + "category_name": "茶饮料", + "parentCategory_id": 1 + }, + { + "category_id": 4, + "category_name": "牛奶", + "parentCategory_id": 1 + } + ], + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|categorys|类别信息表|List\|-| +|message|调用信息|String|-| + + + +## 查询子类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/deleteCategoryByItemId + +#### 线上 +>http://souldays.top:8083/category/deleteCategoryByItemId + +### 2) 调用方式:HTTP delete + +### 3) 接口描述: + +* 传入需要删除的类别编号 +* 实现删除类别 + +### 4) 请求参数: + +#### DELETE参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_id|类别编号|int|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------|、 +|message|调用信息|String|-| + + + +## 修改类别 + +### 1) 请求地址 + +#### 本地 +>http://localhost:8083/category/updateCategory + +#### 线上 +>http://souldays.top:8083/category/updateCategory + +### 2) 调用方式:HTTP delete + +### 3) 接口描述: + +* 传入需要修改的类别类 +* 实现修改类别 + +### 4) 请求参数: + +#### DELETE参数: +|字段名称 |字段说明 |类型 |必填 |备注 | +| -------------|--------------|--------------|--------------| ------| +|category_id|类别编号|int|Y|| +|parentCategory_id|类别编号|int|Y|| +|category_name|类别编号|String|Y|| + +### 5) 请求返回结果: + +``` +成功 +{ + "message": "success" +} + +失败 +{ + "message": "error" +} +``` + +### 6) 请求返回结果参数说明: +|字段名称 |字段说明 |类型 |备注 | +| -------------|--------------|--------------|------| +|message|调用信息|String|-| -- Gitee From 86ed3515c636e1e66746b68145aec0edc1566fab Mon Sep 17 00:00:00 2001 From: WenZongX <2937021973@qq.com> Date: Wed, 8 Dec 2021 09:01:23 +0800 Subject: [PATCH 18/43] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=AD=E7=9A=84=E6=8A=A5=E9=94=99=E4=BF=A1?= =?UTF-8?q?=E6=81=AFinfo=E7=9A=84=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 293726b..29a9853 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -108,6 +108,7 @@ public class UserController { @RequestMapping(value = "/registerUser") public Object registerUser(HttpServletRequest request, HttpServletResponse response){ String message = "error"; + String info="注册成功"; String username = request.getParameter("username"); String password = request.getParameter("password"); String nickname = request.getParameter("nickname"); @@ -144,6 +145,9 @@ public class UserController { else if (result==-7){ info = "地址过长"; } + if (info != null){ + jsonObject.put("info",info); + } jsonObject.put("message",message); return jsonObject; } -- Gitee From 61ab098aab2287eae86b749560bc787234526a4c Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 11 Dec 2021 11:19:27 +0800 Subject: [PATCH 19/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=B3=A8=E5=86=8Creq?= =?UTF-8?q?uestMapping=E6=94=B9=E6=88=90postMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/UserController.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 29a9853..40a7684 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -105,24 +105,26 @@ public class UserController { } //用户注册 - @RequestMapping(value = "/registerUser") - public Object registerUser(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/registerUser") + public Object registerUser(@RequestBody User user){ String message = "error"; String info="注册成功"; - String username = request.getParameter("username"); - String password = request.getParameter("password"); - String nickname = request.getParameter("nickname"); + String username = user.getUserName(); + String password = user.getPassword(); + String nickname = user.getNickName(); int permission = 1; - String phonenumber = request.getParameter("phonenumber"); - String address = request.getParameter("address"); - String realname = request.getParameter("realname"); - String user_head = request.getParameter("user_head"); + String phonenumber = user.getPhonenumber(); + String address = user.getAddress(); + String realname = user.getRealname(); + String user_head = user.getUserHead(); if (user_head == null){ user_head = "http://cdn.souldays.top/image/2021-12-06-eb3ac6b8edac4612806b08f967b88963.jpg"; } JSONObject jsonObject = new JSONObject(); - User User = new User(username,password,nickname,permission,phonenumber,address,realname,user_head); - int result = userService.registerUser(User); + User newUser = new User(username,password,nickname,permission,phonenumber,address,realname,user_head); + System.out.println(user); + System.out.println(newUser); + int result = userService.registerUser(newUser); if (result >= 1){ message = "success"; }else if (result==-1){ -- Gitee From c086d2116edc54336b3c1819ff04a04635950523 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 11 Dec 2021 11:30:02 +0800 Subject: [PATCH 20/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=B3=A8=E5=86=8Creq?= =?UTF-8?q?uestMapping=E6=94=B9=E6=88=90postMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 40a7684..9106a37 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -122,8 +122,6 @@ public class UserController { } JSONObject jsonObject = new JSONObject(); User newUser = new User(username,password,nickname,permission,phonenumber,address,realname,user_head); - System.out.println(user); - System.out.println(newUser); int result = userService.registerUser(newUser); if (result >= 1){ message = "success"; -- Gitee From 5c23e6bc66de8ec8a56d7dd665d59238fbded5dd Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 11 Dec 2021 12:27:26 +0800 Subject: [PATCH 21/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=88=B0postMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 9106a37..e7c2ad9 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -32,11 +32,11 @@ public class UserController { private TokenService tokenService; //登录验证账号密码 - @RequestMapping(value = "/login") - public Object loginByPassword(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/login") + public Object loginByPassword(@RequestBody User tryingUser){ String message = "error"; - String username = request.getParameter("username"); - String password = request.getParameter("password"); + String username =tryingUser.getUserName(); + String password = tryingUser.getPassword(); JSONObject jsonObject = new JSONObject(); if(username.length()<=10&&username.length()>=3&&password.length()>=7&&password.length()<=15){ User user = userService.login(username,password); -- Gitee From 2838d6b4a3a0464be1e50e02cf1cf146d8f38198 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 11 Dec 2021 23:24:23 +0800 Subject: [PATCH 22/43] =?UTF-8?q?=E8=A7=84=E8=8C=83controller=201.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9getUserInfo=202.=E4=BF=AE=E6=94=B9updatePassw?= =?UTF-8?q?ord=203.=E4=BF=AE=E6=94=B9updateUser=204.=E4=BF=AE=E6=94=B9sear?= =?UTF-8?q?chFinishOrderByUserName?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/OrderController.java | 7 +++-- .../com/shop/controller/UserController.java | 30 +++++++++---------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 05afba3..934b149 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -10,7 +10,9 @@ import com.shop.service.OrderService; import com.shop.service.UserService; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @@ -202,10 +204,9 @@ public class OrderController { } //根据用户名查看历史购买记录 - @RequestMapping("/searchFinishOrderByBuyerUserName") - public Object searchFinishOrderByBuyerName(HttpServletRequest request, HttpServletResponse response){ + @GetMapping("/searchFinishOrderByBuyerUserName") + public Object searchFinishOrderByBuyerName(@RequestParam String buyer_username){ String message = "error"; - String buyer_username = request.getParameter("buyer_username"); JSONObject jsonObject = new JSONObject(); List orderList = orderService.searchFinishOrderByBuyerName(buyer_username); message = "success"; diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index e7c2ad9..dd6e453 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -55,10 +55,9 @@ public class UserController { } //获取用户信息 - @RequestMapping(value = "/getUserInfo") - public Object getUserInfo(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/getUserInfo") + public Object getUserInfo(@RequestParam (defaultValue = "1") String username){ String message = "error"; - String username = request.getParameter("username"); JSONObject jsonObject = new JSONObject(); User user = userService.getUserInfo(username); if (user != null){ @@ -72,12 +71,11 @@ public class UserController { } //修改密码 - @RequestMapping(value = "/updatePassword") - public Object updatePasswordByUsername(HttpServletRequest request, HttpServletResponse response){ + @PutMapping(value = "/updatePassword") + public Object updatePasswordByUsername(@RequestParam String username, + @RequestParam String oldPassword, + @RequestParam String newPassword){ String message = "error"; - String username = request.getParameter("username"); - String oldPassword = request.getParameter("oldPassword"); - String newPassword = request.getParameter("newPassword"); JSONObject jsonObject = new JSONObject(); User user = userService.login(username,oldPassword); int result = 0; @@ -153,15 +151,15 @@ public class UserController { } //用户修改个人信息 - @RequestMapping(value = "/updateUser") - public Object updateUser(HttpServletRequest request, HttpServletResponse response){ + @PutMapping(value = "/updateUser") + public Object updateUser(@RequestBody User user){ String message = "error"; - String username = request.getParameter("username"); - String nickname = request.getParameter("nickname"); - String realname = request.getParameter("realname"); - String phonenumber = request.getParameter("phonenumber"); - String address = request.getParameter("address"); - String user_head = request.getParameter("user_head"); + String username = user.getUserName(); + String nickname = user.getNickName(); + String realname = user.getRealname(); + String phonenumber = user.getPhonenumber(); + String address = user.getAddress(); + String user_head = user.getUserHead(); JSONObject jsonObject = new JSONObject(); User newUser = new User(username,nickname,phonenumber,address,realname,user_head); int result = userService.updateUser(newUser); -- Gitee From c1c8d7922698bd087a24ca31374a8545c94aa8ee Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 16 Dec 2021 21:48:45 +0800 Subject: [PATCH 23/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E7=9A=84=E5=8F=82=E6=95=B0=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?requestBody?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index dd6e453..1e5bf95 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -72,15 +72,13 @@ public class UserController { //修改密码 @PutMapping(value = "/updatePassword") - public Object updatePasswordByUsername(@RequestParam String username, - @RequestParam String oldPassword, - @RequestParam String newPassword){ + public Object updatePasswordByUsername(@RequestBody Map json){ String message = "error"; JSONObject jsonObject = new JSONObject(); - User user = userService.login(username,oldPassword); + User user = userService.login(json.get("userName"),json.get("oldPassword")); int result = 0; if(user!=null){ - result = userService.updatePassword(username,newPassword); + result = userService.updatePassword(json.get("userName"),json.get("newPassword")); } if(result>=1){ message = "success"; -- Gitee From 26d673ff4cd31db8c3bdb816a640771f9d3e5b8a Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 17 Dec 2021 18:04:51 +0800 Subject: [PATCH 24/43] =?UTF-8?q?1.=E5=B0=86=E6=9F=A5=E7=9C=8B=E4=B9=B0?= =?UTF-8?q?=E5=AE=B6=E4=BF=A1=E6=81=AF=E7=9A=84=E6=8E=A5=E5=8F=A3=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/UserController.java | 6 +++--- back-end_code/src/main/java/com/shop/mapper/UserMapper.java | 2 +- .../src/main/java/com/shop/service/UserService.java | 2 +- back-end_code/src/main/resources/mapping/UserMapper.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/UserController.java b/back-end_code/src/main/java/com/shop/controller/UserController.java index 1e5bf95..1b6258c 100644 --- a/back-end_code/src/main/java/com/shop/controller/UserController.java +++ b/back-end_code/src/main/java/com/shop/controller/UserController.java @@ -169,11 +169,11 @@ public class UserController { } //卖家查看买家信息 - @RequestMapping(value = "/searchAllUser") - public Object searchAllUser(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchAllBuyer") + public Object searchAllBuyer(){ String message = "error"; JSONObject jsonObject = new JSONObject(); - List UserList = userService.searchAllUser(); + List UserList = userService.searchAllBuyer(); message = "success"; jsonObject.put("users",UserList); // jsonObject.put("User",userService.searchAllUser()); diff --git a/back-end_code/src/main/java/com/shop/mapper/UserMapper.java b/back-end_code/src/main/java/com/shop/mapper/UserMapper.java index 30aa7b1..567a515 100644 --- a/back-end_code/src/main/java/com/shop/mapper/UserMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/UserMapper.java @@ -49,6 +49,6 @@ public interface UserMapper { * @param * @return */ - List searchAllUser(); + List searchAllBuyer(); } diff --git a/back-end_code/src/main/java/com/shop/service/UserService.java b/back-end_code/src/main/java/com/shop/service/UserService.java index 1982763..e49061d 100644 --- a/back-end_code/src/main/java/com/shop/service/UserService.java +++ b/back-end_code/src/main/java/com/shop/service/UserService.java @@ -40,5 +40,5 @@ public class UserService { return userMapper.registerUser(user); } public int updateUser(User User){return userMapper.updateUser(User);} - public List searchAllUser(){return userMapper.searchAllUser();} + public List searchAllBuyer(){return userMapper.searchAllBuyer();} } diff --git a/back-end_code/src/main/resources/mapping/UserMapper.xml b/back-end_code/src/main/resources/mapping/UserMapper.xml index 70d3984..7b08e5f 100644 --- a/back-end_code/src/main/resources/mapping/UserMapper.xml +++ b/back-end_code/src/main/resources/mapping/UserMapper.xml @@ -114,7 +114,7 @@ - select userName,nickName,phoneNumber,address,realName,userHead,permission from user where permission = 1 -- Gitee From 1c11fc9275a3affc2460d0e4ea8481839c956dfe Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 17 Dec 2021 21:03:30 +0800 Subject: [PATCH 25/43] =?UTF-8?q?1.=E5=B0=86=E6=9F=A5=E7=9C=8B=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E5=95=86=E5=93=81=E6=94=B9=E6=88=90getMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/GoodsController.java | 6 +++--- .../src/main/java/com/shop/service/UserService.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index f8e8e92..85cc817 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -8,6 +8,7 @@ import com.shop.service.UploadImageService; import com.shop.utils.StringUtil; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -200,10 +201,9 @@ public class GoodsController { } //查看冻结商品 - @RequestMapping(value = "/searchFreezingGoods") - public Object searchFreezingGoods(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchFreezingGoods") + public Object searchFreezingGoods(@RequestParam String seller_username){ String message = "error"; - String seller_username = request.getParameter("seller_username"); JSONObject jsonObject = new JSONObject(); List goodsList = goodsService.searchFreezingGoods(seller_username); List list = new ArrayList(); diff --git a/back-end_code/src/main/java/com/shop/service/UserService.java b/back-end_code/src/main/java/com/shop/service/UserService.java index e49061d..e95dd79 100644 --- a/back-end_code/src/main/java/com/shop/service/UserService.java +++ b/back-end_code/src/main/java/com/shop/service/UserService.java @@ -41,4 +41,5 @@ public class UserService { } public int updateUser(User User){return userMapper.updateUser(User);} public List searchAllBuyer(){return userMapper.searchAllBuyer();} + } -- Gitee From 7d6fa118f1d2b74e6b0501cf4b7e711a07cb2818 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 19 Dec 2021 17:11:12 +0800 Subject: [PATCH 26/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=94=B9=E6=88=90putMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/shop/controller/GoodsController.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 85cc817..b92dbd9 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -8,10 +8,7 @@ import com.shop.service.UploadImageService; import com.shop.utils.StringUtil; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -89,12 +86,11 @@ public class GoodsController { } //修改商品状态 - @RequestMapping(value = "/updateGoodsState") - public Object updateGoodsState(HttpServletRequest request, HttpServletResponse response){ + @PutMapping (value = "/updateGoodsState") + public Object updateGoodsState(@RequestParam String seller_username, + @RequestParam int item_id, + @RequestParam int new_state){ String message = "error"; - String seller_username = request.getParameter("seller_username"); - int item_id = Integer.parseInt(request.getParameter("item_id")); - int new_state = Integer.parseInt(request.getParameter("new_state")); JSONObject jsonObject = new JSONObject(); int result = goodsService.updateGoodsState(seller_username,item_id, new_state); if (result >= 1) { -- Gitee From 09e4bfa8caaf13e87de3b1e28b4a061d9dab69f7 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 19 Dec 2021 20:57:50 +0800 Subject: [PATCH 27/43] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84RequestBody=E6=94=B9=E6=88=90Map?= =?UTF-8?q?=E5=BD=A2=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/GoodsController.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index b92dbd9..6d04732 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -18,6 +18,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/goods") @@ -87,12 +88,10 @@ public class GoodsController { //修改商品状态 @PutMapping (value = "/updateGoodsState") - public Object updateGoodsState(@RequestParam String seller_username, - @RequestParam int item_id, - @RequestParam int new_state){ + public Object updateGoodsState(@RequestBody Map json){ String message = "error"; JSONObject jsonObject = new JSONObject(); - int result = goodsService.updateGoodsState(seller_username,item_id, new_state); + int result = goodsService.updateGoodsState(json.get("seller_username"),Integer.parseInt(json.get("item_id")), Integer.parseInt(json.get("new_state"))); if (result >= 1) { message = "success"; }else { -- Gitee From c603ef165a3fc8d3883a52ac5c746486fbd01f0d Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 19 Dec 2021 22:22:59 +0800 Subject: [PATCH 28/43] =?UTF-8?q?1.=E9=80=9A=E8=BF=87=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E6=94=B9=E6=88=90getMappin?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/GoodsController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 6d04732..68737ba 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -225,10 +225,9 @@ public class GoodsController { } //通过类别查询商品 - @RequestMapping(value = "/searchGoodsByCategory") - public Object searchGoodsByCategory(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchGoodsByCategory") + public Object searchGoodsByCategory(@RequestParam Integer goods_category){ String message = "error"; - int goods_category = Integer.parseInt(request.getParameter("goods_category")); // System.out.println(goods_category); JSONObject jsonObject = new JSONObject(); List goodsList =goodsService.searchGoodsByCategory(goods_category); -- Gitee From 33822a2ad954c73da2260d1b34ae67533fa80113 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 19 Dec 2021 22:48:24 +0800 Subject: [PATCH 29/43] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E9=87=8D=E5=A4=8D=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E9=87=8D=E5=A4=8D=E5=88=99=E4=B8=8D?= =?UTF-8?q?=E7=BB=99=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/CategoryController.java | 17 +++++++++++------ .../java/com/shop/mapper/CategoryMapper.java | 7 ++++++- .../java/com/shop/service/CategoryService.java | 1 + .../main/resources/mapping/CategoryMapper.xml | 3 +++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/CategoryController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java index bad8c58..7a50eb0 100644 --- a/back-end_code/src/main/java/com/shop/controller/CategoryController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -23,13 +23,18 @@ public class CategoryController { public Object addCategory(@RequestBody Category category){ String message = "error"; String category_name = category.getCategory_name(); - int parentCategory_id = category.getParentCategory_id(); JSONObject jsonObject = new JSONObject(); - int result = CategoryService.addCategory(category_name,parentCategory_id); - if(result>=1){ - message = "success"; - } else{ - message = "error"; + Category categoryExist = CategoryService.searchCategoryByName(category_name); + if(categoryExist!=null){ + message="类别已存在"; + }else { + int parentCategory_id = category.getParentCategory_id(); + int result = CategoryService.addCategory(category_name,parentCategory_id); + if(result>=1){ + message = "success"; + } else{ + message = "error"; + } } jsonObject.put("message",message); return jsonObject; diff --git a/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java index 8e9b7d2..061e6c5 100644 --- a/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java @@ -34,7 +34,12 @@ public interface CategoryMapper { * @return */ int deleteCategoryByItemId(int category_id); - + /** + * 根据categoryName查找category + * @param category_name + * @return + */ + Category searchCategoryByName(String category_name); /** * 根据categoryId修改Category * @param Category diff --git a/back-end_code/src/main/java/com/shop/service/CategoryService.java b/back-end_code/src/main/java/com/shop/service/CategoryService.java index 034d8d1..32be5d2 100644 --- a/back-end_code/src/main/java/com/shop/service/CategoryService.java +++ b/back-end_code/src/main/java/com/shop/service/CategoryService.java @@ -17,4 +17,5 @@ public class CategoryService { public List searchChildCategory(int parentCategory_id){return categoryMapper.searchChildCategory(parentCategory_id);} public int deleteCategoryByItemId(int category_id){return categoryMapper.deleteCategoryByItemId(category_id);} public int updateCategory(Category category){return categoryMapper.updateCategory(category);} + public Category searchCategoryByName(String category_name){return categoryMapper.searchCategoryByName(category_name);} } diff --git a/back-end_code/src/main/resources/mapping/CategoryMapper.xml b/back-end_code/src/main/resources/mapping/CategoryMapper.xml index 9d0e15f..0a26548 100644 --- a/back-end_code/src/main/resources/mapping/CategoryMapper.xml +++ b/back-end_code/src/main/resources/mapping/CategoryMapper.xml @@ -40,6 +40,9 @@ + -- Gitee From db0c628f021664707248e87773302020db970618 Mon Sep 17 00:00:00 2001 From: WenZongX <2937021973@qq.com> Date: Sun, 19 Dec 2021 23:37:12 +0800 Subject: [PATCH 30/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=E7=B1=BB=EF=BC=8C=E5=B9=B6=E5=AF=B9=E5=85=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShowCategoryController.java | 52 ++++++++++++++ .../java/com/shop/entity/ShowCategory.java | 67 +++++++++++++++++++ .../com/shop/mapper/ShowCategoryMapper.java | 25 +++++++ .../com/shop/service/ShowCategoryService.java | 32 +++++++++ .../resources/mapping/ShowCategoryMapper.xml | 27 ++++++++ 5 files changed, 203 insertions(+) create mode 100644 back-end_code/src/main/java/com/shop/controller/ShowCategoryController.java create mode 100644 back-end_code/src/main/java/com/shop/entity/ShowCategory.java create mode 100644 back-end_code/src/main/java/com/shop/mapper/ShowCategoryMapper.java create mode 100644 back-end_code/src/main/java/com/shop/service/ShowCategoryService.java create mode 100644 back-end_code/src/main/resources/mapping/ShowCategoryMapper.xml diff --git a/back-end_code/src/main/java/com/shop/controller/ShowCategoryController.java b/back-end_code/src/main/java/com/shop/controller/ShowCategoryController.java new file mode 100644 index 0000000..b260bd9 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/controller/ShowCategoryController.java @@ -0,0 +1,52 @@ +package com.shop.controller; + +import com.shop.entity.Category; +import com.shop.entity.ShowCategory; +import com.shop.service.ShowCategoryService; +import net.minidev.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping("/showcategory") +public class ShowCategoryController { + + @Autowired + private ShowCategoryService ShowCategoryService; + + //查询ShowCategory + @GetMapping(value = "/searchCategory") + public Object searchShowCategory(){ + String message = "error"; + JSONObject jsonObject = new JSONObject(); + List ShowCategoryList = ShowCategoryService.searchShowCategory(); + if(ShowCategoryList != null){ + message = "success"; + jsonObject.put("showcategorys", ShowCategoryList); + } else{ + message = "error"; + } + jsonObject.put("message",message); + return jsonObject; + } + + //修改ShowCategory + @PutMapping(value = "/updateShowCategory") + public Object updateShowCategory(@RequestBody List Categorys){ + String message = "error"; + JSONObject jsonObject = new JSONObject(); + System.out.println(Categorys); + int result = ShowCategoryService.updateShowCategory(Categorys); + if (result >= 1){ + message = "success"; + }else { + message = "error"; + } + jsonObject.put("message",message); + return jsonObject; + } + +} diff --git a/back-end_code/src/main/java/com/shop/entity/ShowCategory.java b/back-end_code/src/main/java/com/shop/entity/ShowCategory.java new file mode 100644 index 0000000..49bd292 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/entity/ShowCategory.java @@ -0,0 +1,67 @@ +package com.shop.entity; + +public class ShowCategory { + private int show_id; + private int sequence; + private int category_id; + private String category_name; + + public ShowCategory(int sequence, int category_id, String category_name) { + this.sequence = sequence; + this.category_id = category_id; + this.category_name = category_name; + } + + public ShowCategory() { + } + + public ShowCategory(int show_id, int sequence) { + this.show_id = show_id; + this.sequence = sequence; + this.category_id = 0; + this.category_name = null; + } + + public int getShow_id() { + return show_id; + } + + public ShowCategory(int show_id) { + this.show_id = show_id; + } + + public void setShow_id(int show_id) { + this.show_id = show_id; + } + + public ShowCategory(int show_id, int sequence, int category_id, String category_name) { + this.show_id = show_id; + this.sequence = sequence; + this.category_id = category_id; + this.category_name = category_name; + } + + public int getSequence() { + return sequence; + } + + public void setSequence(int sequence) { + this.sequence = sequence; + } + + public int getCategory_id() { + return category_id; + } + + public void setCategory_id(int category_id) { + this.category_id = category_id; + } + + public String getCategory_name() { + return category_name; + } + + public void setCategory_name(String category_name) { + this.category_name = category_name; + } +} diff --git a/back-end_code/src/main/java/com/shop/mapper/ShowCategoryMapper.java b/back-end_code/src/main/java/com/shop/mapper/ShowCategoryMapper.java new file mode 100644 index 0000000..948e372 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/mapper/ShowCategoryMapper.java @@ -0,0 +1,25 @@ +package com.shop.mapper; + +import com.shop.entity.Category; +import com.shop.entity.ShowCategory; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ShowCategoryMapper { + + /** + * 修改ShowCategory + * @param ShowCategory + * @return + */ + int updateShowCategory(ShowCategory ShowCategory); + + /** + * 查询ShowCategory + * @param + * @return + */ + List searchShowCategory(); +} diff --git a/back-end_code/src/main/java/com/shop/service/ShowCategoryService.java b/back-end_code/src/main/java/com/shop/service/ShowCategoryService.java new file mode 100644 index 0000000..e860ab6 --- /dev/null +++ b/back-end_code/src/main/java/com/shop/service/ShowCategoryService.java @@ -0,0 +1,32 @@ +package com.shop.service; + +import com.shop.entity.Category; +import com.shop.entity.ShowCategory; +import com.shop.mapper.ShowCategoryMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ShowCategoryService { + @Autowired + private ShowCategoryMapper ShowCategoryMapper; + + public List searchShowCategory(){return ShowCategoryMapper.searchShowCategory();} + public int updateShowCategory(List Categorys){ + int i = 1,sequence=1; + for (Category Category:Categorys + ) { + if (Category.getParentCategory_id() == 0 && Category.getCategory_name() != null){ + ShowCategory showCategory = new ShowCategory(i,sequence,Category.getCategory_id(),Category.getCategory_name()); + ShowCategoryMapper.updateShowCategory(showCategory); + sequence++;i++; + } + } + for (;i<=5;i++){ + ShowCategory showCategory = new ShowCategory(i,0); + ShowCategoryMapper.updateShowCategory(showCategory); + } + return 1;} +} diff --git a/back-end_code/src/main/resources/mapping/ShowCategoryMapper.xml b/back-end_code/src/main/resources/mapping/ShowCategoryMapper.xml new file mode 100644 index 0000000..fe62f36 --- /dev/null +++ b/back-end_code/src/main/resources/mapping/ShowCategoryMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + update showcategory + + Sequence = #{sequence,jdbcType=INTEGER}, + categoryId = #{category_id,jdbcType=INTEGER}, + categoryName = #{category_name,jdbcType=VARCHAR}, + + where ShowId = #{show_id,jdbcType=INTEGER} + + + + + + -- Gitee From eaf36e755f8b6379ab479db787be5efb51ee1556 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 20 Dec 2021 12:55:28 +0800 Subject: [PATCH 31/43] =?UTF-8?q?1.=E6=9F=A5=E8=AF=A2=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=94=B9=E6=88=90getMapping=202.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A0=B9=E6=8D=AE=E5=8D=96=E5=AE=B6=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=B9=B6=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/shop/controller/GoodsController.java | 6 +++--- .../java/com/shop/controller/OrderController.java | 11 +++++++++++ .../src/main/java/com/shop/mapper/OrderMapper.java | 10 +++++++--- .../src/main/java/com/shop/service/OrderService.java | 3 ++- .../src/main/resources/mapping/OrderMapper.xml | 7 +++++-- 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 68737ba..a40e5b7 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -92,6 +92,7 @@ public class GoodsController { String message = "error"; JSONObject jsonObject = new JSONObject(); int result = goodsService.updateGoodsState(json.get("seller_username"),Integer.parseInt(json.get("item_id")), Integer.parseInt(json.get("new_state"))); + if (result >= 1) { message = "success"; }else { @@ -128,10 +129,9 @@ public class GoodsController { } //在goods表中查询历史商品 - @RequestMapping(value = "/searchHistoryGoods") - public Object searchHistoryGoods(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchHistoryGoods") + public Object searchHistoryGoods(@RequestParam String seller_username){ String message = "error"; - String seller_username = request.getParameter("seller_username"); JSONObject jsonObject = new JSONObject(); List goodsList = goodsService.searchHistoryGoods(seller_username); // List list = new ArrayList(); diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 934b149..89b19a1 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -214,4 +214,15 @@ public class OrderController { jsonObject.put("message",message); return jsonObject; } + //根据卖家用户名查找所有订单 + @GetMapping("/searchOrdersBySellerName") + public Object searchOrdersBySellerName(@RequestParam String seller_username){ + String message = "error"; + JSONObject jsonObject = new JSONObject(); + List orderList = orderService.searchOrdersBySellerName(seller_username); + message = "success"; + jsonObject.put("orders",orderList); + jsonObject.put("message",message); + return jsonObject; + } } diff --git a/back-end_code/src/main/java/com/shop/mapper/OrderMapper.java b/back-end_code/src/main/java/com/shop/mapper/OrderMapper.java index 632ac47..614eb42 100644 --- a/back-end_code/src/main/java/com/shop/mapper/OrderMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/OrderMapper.java @@ -64,11 +64,15 @@ public interface OrderMapper { /** * 查询完成订单 * @param seller_username - * @param page * @return */ - List searchFinishOrder(String seller_username,int page); - + List searchFinishOrder(String seller_username); + /** + * 按卖家查询所有订单 + * @param seller_username + * @return + */ + List searchOrdersBySellerUserName(String seller_username); /** * 在Order表中查找已完成交易商品的历史意向买家 * @param seller_username diff --git a/back-end_code/src/main/java/com/shop/service/OrderService.java b/back-end_code/src/main/java/com/shop/service/OrderService.java index 240f5bc..9749d29 100644 --- a/back-end_code/src/main/java/com/shop/service/OrderService.java +++ b/back-end_code/src/main/java/com/shop/service/OrderService.java @@ -67,7 +67,7 @@ public class OrderService { } public int finishOrder(String seller_username,int item_id,String finish_time){ return orderMapper.finishOrder(seller_username,item_id,finish_time); } public Order searchOrderByOrderId(String seller_username,int order_id){return orderMapper.searchOrderByOrderId(seller_username,order_id);} - public List searchFinishOrder(String seller_username,int page){return orderMapper.searchFinishOrder(seller_username,page);} + public List searchFinishOrder(String seller_username){return orderMapper.searchFinishOrder(seller_username);} public List searchDealingOrder(String seller_username,int page){return orderMapper.searchDealingOrder(seller_username,page);} public int cancelOrder(String seller_username,int order_id){ int result = orderMapper.cancelOrder(seller_username,order_id); @@ -82,4 +82,5 @@ public class OrderService { } public int addToOrderWanted(Order order){return orderMapper.addToOrderWanted(order); } public List searchFinishOrderByBuyerName(String buyer_username){return orderMapper.searchFinishOrderByBuyerName(buyer_username);} + public List searchOrdersBySellerName(String seller_username){return orderMapper.searchOrdersBySellerUserName(seller_username);} } diff --git a/back-end_code/src/main/resources/mapping/OrderMapper.xml b/back-end_code/src/main/resources/mapping/OrderMapper.xml index e82961a..9171276 100644 --- a/back-end_code/src/main/resources/mapping/OrderMapper.xml +++ b/back-end_code/src/main/resources/mapping/OrderMapper.xml @@ -30,7 +30,7 @@ select * from orders where itemId = #{item_id,jdbcType=INTEGER} and state = 2 and sellerUsername = #{seller_username} - + @@ -70,7 +70,7 @@ select * from orders where sellerUsername = #{seller_username} and state = 2 - + @@ -174,5 +174,8 @@ + \ No newline at end of file -- Gitee From 8d20f6f83644fd86870be8a5d40b9c11ab432f35 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 20 Dec 2021 22:26:33 +0800 Subject: [PATCH 32/43] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=89=80=E6=9C=89?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=B1=BB=E5=88=AB=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/CategoryController.java | 15 +++++++++++++++ .../main/java/com/shop/mapper/CategoryMapper.java | 5 +++++ .../main/java/com/shop/mapper/GoodsMapper.java | 1 + .../java/com/shop/service/CategoryService.java | 1 + .../src/main/resources/mapping/CategoryMapper.xml | 3 +++ .../src/main/resources/mapping/GoodsMapper.xml | 1 + 6 files changed, 26 insertions(+) diff --git a/back-end_code/src/main/java/com/shop/controller/CategoryController.java b/back-end_code/src/main/java/com/shop/controller/CategoryController.java index 7a50eb0..dd834fb 100644 --- a/back-end_code/src/main/java/com/shop/controller/CategoryController.java +++ b/back-end_code/src/main/java/com/shop/controller/CategoryController.java @@ -56,6 +56,21 @@ public class CategoryController { return jsonObject; } + //查询所有类别 + @GetMapping("/searchAllCategory") + public Object searchAllCategory(){ + String message = "error"; + JSONObject jsonObject = new JSONObject(); + List categoryList = CategoryService.searchAllCategory(); + if(categoryList != null){ + message = "success"; + jsonObject.put("categories", categoryList); + } else{ + message = "error"; + } + jsonObject.put("message",message); + return jsonObject; + } //根据parentCategory_id查询子类别 @GetMapping(value = "/searchChildCategory") public Object searchChildCategory(@RequestParam (defaultValue = "1") Integer parentCategory_id){ diff --git a/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java index 061e6c5..907c798 100644 --- a/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/CategoryMapper.java @@ -21,6 +21,11 @@ public interface CategoryMapper { */ List searchParentCategory(); + /** + * 查询所有类别 + * @return + */ + List searchAllCategory(); /** * 根据parentCategory_id查询子类别 * @param parentCategory_id diff --git a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java index e9b44ed..f660172 100644 --- a/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java +++ b/back-end_code/src/main/java/com/shop/mapper/GoodsMapper.java @@ -69,6 +69,7 @@ public interface GoodsMapper { */ List searchFreezingGoods(String seller_username); + /** * 通过类别查询商品 * @param goods_category diff --git a/back-end_code/src/main/java/com/shop/service/CategoryService.java b/back-end_code/src/main/java/com/shop/service/CategoryService.java index 32be5d2..69af2ab 100644 --- a/back-end_code/src/main/java/com/shop/service/CategoryService.java +++ b/back-end_code/src/main/java/com/shop/service/CategoryService.java @@ -18,4 +18,5 @@ public class CategoryService { public int deleteCategoryByItemId(int category_id){return categoryMapper.deleteCategoryByItemId(category_id);} public int updateCategory(Category category){return categoryMapper.updateCategory(category);} public Category searchCategoryByName(String category_name){return categoryMapper.searchCategoryByName(category_name);} + public List searchAllCategory(){return categoryMapper.searchAllCategory();} } diff --git a/back-end_code/src/main/resources/mapping/CategoryMapper.xml b/back-end_code/src/main/resources/mapping/CategoryMapper.xml index 0a26548..5f1a153 100644 --- a/back-end_code/src/main/resources/mapping/CategoryMapper.xml +++ b/back-end_code/src/main/resources/mapping/CategoryMapper.xml @@ -43,6 +43,9 @@ + diff --git a/back-end_code/src/main/resources/mapping/GoodsMapper.xml b/back-end_code/src/main/resources/mapping/GoodsMapper.xml index 1e45344..5932718 100644 --- a/back-end_code/src/main/resources/mapping/GoodsMapper.xml +++ b/back-end_code/src/main/resources/mapping/GoodsMapper.xml @@ -154,6 +154,7 @@ select * from goods where goodsName like '%${key_name}%' and goodsCategory = #{goods_category} and goodsState = 1 + update goods -- Gitee From b0cd3bd9c14704861dec00cb77c374d0153d3099 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 11:29:45 +0800 Subject: [PATCH 33/43] =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E8=AF=8D=E6=9F=A5=E8=AF=A2=E4=B8=8A=E6=9E=B6=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=94=B9=E6=88=90getMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/GoodsController.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index a40e5b7..5dcc9b0 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -237,11 +237,10 @@ public class GoodsController { return jsonObject; } - //通过关键词查询商品 - @RequestMapping(value = "/searchGoodsByKeyName") - public Object searchGoodsByKeyName(HttpServletRequest request, HttpServletResponse response){ + //通过关键词查询上架商品 + @GetMapping(value = "/searchGoodsByKeyName") + public Object searchGoodsByKeyName(@RequestParam String key_name){ String message = "error"; - String key_name = request.getParameter("key_name"); JSONObject jsonObject = new JSONObject(); List goodsList =goodsService.searchGoodsByKeyName(key_name); message = "success"; -- Gitee From 62ea129f916e7ef9e00027709a25b2b1e804693d Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 20:41:45 +0800 Subject: [PATCH 34/43] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=94=B9=E6=88=90postMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/GoodsController.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 5dcc9b0..447956a 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -38,17 +38,17 @@ public class GoodsController { UploadImageService uploadImageService; //向Goods表中添加商品 - @RequestMapping(value = "/addGoods") - public Object addGoods(HttpServletRequest request, HttpServletResponse response) { + @PostMapping(value = "/addGoods") + public Object addGoods(@RequestBody Goods goods) { String message = "error"; - String goods_name = request.getParameter("goods_name"); + String goods_name = goods.getGoods_name(); String seller_username = "admin"; - int goods_stock = Integer.parseInt(request.getParameter("goods_stock")); + int goods_stock =goods.getGoods_stock(); // String goods_img = uploadImageService.uploadQNImg((FileInputStream) file.getInputStream(), StringUtil.getRandomImgName(file.getOriginalFilename())); - String goods_img = request.getParameter("goods_img"); - String goods_discribe = request.getParameter("goods_discribe"); - float goods_price = Float.parseFloat(request.getParameter("goods_price")); - int goods_category = Integer.parseInt(request.getParameter("goods_category")); + String goods_img = goods.getGoods_img(); + String goods_discribe = goods.getGoods_discribe(); + float goods_price = goods.getGoods_price(); + int goods_category = goods.getGoods_category(); JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && goods_stock >= 0 && @@ -57,8 +57,8 @@ public class GoodsController { goods_price >= 0 && goods_category >= 0 ){ - Goods goods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); - int result = goodsService.addGoods( goods); + Goods newGoods = new Goods(goods_name,seller_username,goods_stock,goods_img,goods_discribe,goods_category,goods_price); + int result = goodsService.addGoods( newGoods); if (result >= 1) { message = "success"; }else { -- Gitee From 9b3b03b925f95a49262ccd04e1f33e9ff922b0be Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 20:46:06 +0800 Subject: [PATCH 35/43] =?UTF-8?q?1.searchGoods=E6=94=B9=E6=88=90GetMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/GoodsController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 447956a..17b0735 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -70,10 +70,9 @@ public class GoodsController { } //买家在goods表中查询goods详细信息 - @RequestMapping(value = "/searchGoods") - public Object searchGoods(HttpServletRequest request, HttpServletResponse response){ + @GetMapping(value = "/searchGoods") + public Object searchGoods(@RequestParam int item_id){ String message = "error"; - int item_id = Integer.parseInt(request.getParameter("item_id")); JSONObject jsonObject = new JSONObject(); Goods good = goodsService.searchGoods(item_id); if (good != null){ -- Gitee From af612aa99581decd0293863c88a0afb7b6bd4626 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 21:10:30 +0800 Subject: [PATCH 36/43] =?UTF-8?q?1.updateGoods=E6=94=B9=E6=88=90PostMappin?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/GoodsController.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index 17b0735..f419bca 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -162,18 +162,29 @@ public class GoodsController { public boolean isHaveSellingGoods(String username){return goodsService.isHaveSellingGoods(username);} //修改商品信息 - @RequestMapping(value = "/updateGoods") - public Object updateGoods(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/updateGoods") + public Object updateGoods(@RequestBody Goods goods){ String message = "error"; - int item_id = Integer.parseInt(request.getParameter("item_id")); - String goods_name = request.getParameter("goods_name"); +// int item_id = Integer.parseInt(request.getParameter("item_id")); +// String goods_name = request.getParameter("goods_name"); +// String seller_username = "admin"; +// int goods_stock = Integer.parseInt(request.getParameter("goods_stock")); +// String goods_img = uploadImageService.uploadQNImg((FileInputStream) file.getInputStream(), StringUtil.getRandomImgName(file.getOriginalFilename())); +// String goods_img = request.getParameter("goods_img"); +// String goods_discribe = request.getParameter("goods_discribe"); +// int goods_category = Integer.parseInt(request.getParameter("goods_category")); +// float goods_price = Float.parseFloat(request.getParameter("goods_price")); +// // + int item_id = goods.getItem_id(); + String goods_name = goods.getGoods_name(); String seller_username = "admin"; - int goods_stock = Integer.parseInt(request.getParameter("goods_stock")); + int goods_stock =goods.getGoods_stock(); // String goods_img = uploadImageService.uploadQNImg((FileInputStream) file.getInputStream(), StringUtil.getRandomImgName(file.getOriginalFilename())); - String goods_img = request.getParameter("goods_img"); - String goods_discribe = request.getParameter("goods_discribe"); - int goods_category = Integer.parseInt(request.getParameter("goods_category")); - float goods_price = Float.parseFloat(request.getParameter("goods_price")); + String goods_img = goods.getGoods_img(); + String goods_discribe = goods.getGoods_discribe(); + float goods_price = goods.getGoods_price(); + int goods_category = goods.getGoods_category(); + // JSONObject jsonObject = new JSONObject(); if (goods_name.length() >= 2 && goods_name.length() <= 20 && goods_stock >= 0 && -- Gitee From 35a256867e55e9253dc350a91ad4e9b77675e914 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 22:53:46 +0800 Subject: [PATCH 37/43] =?UTF-8?q?1.addToOrderWanted=E6=94=B9=E6=88=90PostM?= =?UTF-8?q?apping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/OrderController.java | 26 +++++++++---------- .../src/main/java/com/shop/entity/Order.java | 2 +- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 89b19a1..9ee1d0e 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -10,10 +10,7 @@ import com.shop.service.OrderService; import com.shop.service.UserService; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -22,6 +19,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/order") @@ -158,21 +156,21 @@ public class OrderController { } //意向购买者下单 - @RequestMapping(value = "/addToOrderWanted") - public Object addToOrderWanted(HttpServletRequest request, HttpServletResponse response){ + @PostMapping(value = "/addToOrderWanted") + public Object addToOrderWanted(@RequestBody Map request){ String message = "error"; - int item_id = Integer.parseInt(request.getParameter("item_id")); + int item_id = Integer.parseInt(request.get("item_id")); Goods good = goodsService.searchGoods(item_id); String goods_name = good.getGoods_name(); String goods_img = good.getGoods_img(); String goods_discribe = good.getGoods_discribe(); float goods_price = good.getGoods_price(); String seller_username = good.getSeller_username(); - String buyer_username = request.getParameter("buyer_username"); + String buyer_username = request.get("buyer_username"); User user = userService.getUserInfo(buyer_username); - String buyer_realname = request.getParameter("buyer_realname"); - String buyer_phonenumber = request.getParameter("buyer_phonenumber"); - String buyer_address = request.getParameter("buyer_address"); + String buyer_realname = request.get("buyer_realname"); + String buyer_phonenumber = request.get("buyer_phonenumber"); + String buyer_address = request.get("buyer_address"); if (buyer_realname == null){ buyer_realname = user.getRealname(); } @@ -182,10 +180,10 @@ public class OrderController { if (buyer_address == null){ buyer_address = user.getAddress(); } - int buy_sum = Integer.parseInt(request.getParameter("buy_sum")); + int buy_sum = Integer.parseInt(request.get("buy_sum")); float buy_amount; - if (buy_sum*good.getGoods_price() == Float.parseFloat(request.getParameter("buy_amount"))){ - buy_amount = Float.parseFloat(request.getParameter("buy_amount")); + if (buy_sum*good.getGoods_price() == Float.parseFloat(request.get("buy_amount"))){ + buy_amount = Float.parseFloat(request.get("buy_amount")); }else buy_amount = buy_sum*good.getGoods_price(); String create_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); diff --git a/back-end_code/src/main/java/com/shop/entity/Order.java b/back-end_code/src/main/java/com/shop/entity/Order.java index 6b7e05a..4246ea6 100644 --- a/back-end_code/src/main/java/com/shop/entity/Order.java +++ b/back-end_code/src/main/java/com/shop/entity/Order.java @@ -13,7 +13,7 @@ public class Order { private String buyer_phonenumber; private String buyer_address; private int buy_sum; - private float buy_amount; + private float buy_amount;//总价 private int state;//int,1表示进行中,2表示交易成功,3表示买家退款,4表示卖家关闭交易,5表示申请中 private String create_time; private String finish_time; -- Gitee From c0731e4ff23397bba743d8561ad1b94dd1cac5d3 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Dec 2021 23:18:24 +0800 Subject: [PATCH 38/43] =?UTF-8?q?1.addToOrderWanted=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E6=80=BB=E4=BB=B7=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/controller/OrderController.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/OrderController.java b/back-end_code/src/main/java/com/shop/controller/OrderController.java index 9ee1d0e..6c0d5bb 100644 --- a/back-end_code/src/main/java/com/shop/controller/OrderController.java +++ b/back-end_code/src/main/java/com/shop/controller/OrderController.java @@ -182,10 +182,7 @@ public class OrderController { } int buy_sum = Integer.parseInt(request.get("buy_sum")); float buy_amount; - if (buy_sum*good.getGoods_price() == Float.parseFloat(request.get("buy_amount"))){ - buy_amount = Float.parseFloat(request.get("buy_amount")); - }else - buy_amount = buy_sum*good.getGoods_price(); + buy_amount = buy_sum*good.getGoods_price(); String create_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); JSONObject jsonObject = new JSONObject(); Order order = new Order(item_id,goods_name,goods_img,goods_discribe,goods_price,seller_username,buyer_username,buyer_realname,buyer_phonenumber,buyer_address,buy_sum,buy_amount,5,create_time); -- Gitee From 48e5e43d7e7cc2e792ea097682d7d094d48cb588 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 29 Dec 2021 22:30:24 +0800 Subject: [PATCH 39/43] =?UTF-8?q?1.=E6=96=B0=E5=A2=9EResult=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/utils/Result.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 back-end_code/src/main/java/com/shop/utils/Result.java diff --git a/back-end_code/src/main/java/com/shop/utils/Result.java b/back-end_code/src/main/java/com/shop/utils/Result.java new file mode 100644 index 0000000..ebc988b --- /dev/null +++ b/back-end_code/src/main/java/com/shop/utils/Result.java @@ -0,0 +1,68 @@ +package com.shop.utils; + +import net.minidev.json.JSONObject; + +public class Result extends JSONObject { + + public static final String SUCCESS = "success"; + public static final String FAILURE = "error"; + + private boolean result; + private String msg; + private Object data; + + private Result() {} + + public static Result ok() { + return Result.ok(SUCCESS); + } + + public static Result ok(String msg) { + Result result = new Result(); + result.put("msg:",msg); + return result; + } + + + public static Result ok(String dataName, Object data) { + Result result = new Result(); + result.put("msg:",SUCCESS); + result.put(dataName,data); + return result; + } + + public static Result fail() { + return Result.fail(FAILURE); + } + + public static Result fail(String msg) { + return Result.fail("msg", msg); + } + + + public static Result fail(String dataName, Object data) { + Result result = new Result(); + result.put("msg:",FAILURE); + result.put(dataName,data); + return result; + } + + public boolean isResult() { + return result; + } + public void setResult(boolean result) { + this.result = result; + } + public String getMsg() { + return msg; + } + public void setMsg(String msg) { + this.msg = msg; + } + public Object getData() { + return data; + } + public void setData(Object data) { + this.data = data; + } +} -- Gitee From 46b8a7cf713e0ed9d8d8523d0b3914368ba26c73 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 29 Dec 2021 23:54:58 +0800 Subject: [PATCH 40/43] =?UTF-8?q?1.=E5=AE=8C=E6=88=90=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3=202.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E8=B7=AF=E5=BE=84=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=203.StringUtil=E5=A2=9E=E5=8A=A0=E7=94=9F=E6=88=90UUI?= =?UTF-8?q?D=E4=B8=8D=E5=B8=A6img=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/FileController.java | 39 +++++++++++++++++++ .../main/java/com/shop/utils/StringUtil.java | 16 ++++++++ .../src/main/resources/application-dev.yml | 6 ++- .../src/main/resources/application-pro.yml | 31 +++++++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 back-end_code/src/main/java/com/shop/controller/FileController.java create mode 100644 back-end_code/src/main/resources/application-pro.yml diff --git a/back-end_code/src/main/java/com/shop/controller/FileController.java b/back-end_code/src/main/java/com/shop/controller/FileController.java new file mode 100644 index 0000000..6380a1f --- /dev/null +++ b/back-end_code/src/main/java/com/shop/controller/FileController.java @@ -0,0 +1,39 @@ +package com.shop.controller; + +import com.shop.utils.Result; +import com.shop.utils.StringUtil; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; + +@RestController +@RequestMapping("/file") +@PropertySource("classpath:application.yml")//读取application.yml文件 +public class FileController { + + @Value("${filepath.bin}") + private String fileBinPath; + + @RequestMapping("/uploadBin") + public Result uploadBin(@RequestParam MultipartFile file){ + + String filename=file.getOriginalFilename(); + String newFilename = StringUtil.getRandomName(filename); + String fullPath = fileBinPath+newFilename; + File dest = new File(fullPath); + try { + file.transferTo(dest); + return Result.ok("path",fullPath); + } catch (IOException e) { + e.printStackTrace(); + return Result.fail(); + } + + } +} diff --git a/back-end_code/src/main/java/com/shop/utils/StringUtil.java b/back-end_code/src/main/java/com/shop/utils/StringUtil.java index 8f4dcc1..c247858 100644 --- a/back-end_code/src/main/java/com/shop/utils/StringUtil.java +++ b/back-end_code/src/main/java/com/shop/utils/StringUtil.java @@ -31,4 +31,20 @@ public class StringUtil { String path = "image/" + DateUtil.today() + "-" + uuid + suffix; return path; } + + public static String getRandomName(String fileName) { + + int index = fileName.lastIndexOf("."); + + if ((fileName == null || fileName.isEmpty()) || index == -1){ + throw new IllegalArgumentException(); + } + // 获取文件后缀 + String suffix = fileName.substring(index); + // 生成UUID + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + // 生成文件名 + String path = DateUtil.today() + "-" + uuid + suffix; + return path; + } } diff --git a/back-end_code/src/main/resources/application-dev.yml b/back-end_code/src/main/resources/application-dev.yml index 8fa5d15..55c39ba 100644 --- a/back-end_code/src/main/resources/application-dev.yml +++ b/back-end_code/src/main/resources/application-dev.yml @@ -24,4 +24,8 @@ oss: domain: http://cdn.souldays.top # 访问域名(默认使用七牛云测试域名) accessKey: KJb6ZIW_mplRncSOOFRDf5efUF_EY6LMwdD09uMb # 公钥 secretKey: _3ZryKtRPL3X66byb5evv7OC4X6ddgpdwpQRLJfI # 私钥 - bucketName: shop-software #存储空间名称 \ No newline at end of file + bucketName: shop-software #存储空间名称 + +#文件上传路径 +filepath: + bin: "E:/file/bin/" \ No newline at end of file diff --git a/back-end_code/src/main/resources/application-pro.yml b/back-end_code/src/main/resources/application-pro.yml new file mode 100644 index 0000000..55c39ba --- /dev/null +++ b/back-end_code/src/main/resources/application-pro.yml @@ -0,0 +1,31 @@ +server: + port: 8083 + +spring: + datasource: + username: xiangwan + password: dingwanren + #url中database为对应的数据库名称 + url: jdbc:mysql://47.103.214.177:3306/service2.0?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC + driver-class-name: com.mysql.cj.jdbc.Driver + +mybatis: + mapper-locations: classpath:mapping/*.xml + type-aliases-package: com.shop.entity + +#showSql +logging: + level: + com.example.demo.mapper: debug + +# 七牛云存储 +oss: + qiniu: + domain: http://cdn.souldays.top # 访问域名(默认使用七牛云测试域名) + accessKey: KJb6ZIW_mplRncSOOFRDf5efUF_EY6LMwdD09uMb # 公钥 + secretKey: _3ZryKtRPL3X66byb5evv7OC4X6ddgpdwpQRLJfI # 私钥 + bucketName: shop-software #存储空间名称 + +#文件上传路径 +filepath: + bin: "E:/file/bin/" \ No newline at end of file -- Gitee From 0437ffc7598c4d02feb0abb8e3042236a3724fc7 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 3 Jan 2022 16:05:24 +0800 Subject: [PATCH 41/43] =?UTF-8?q?1.=E5=B0=86msg=E6=94=B9=E6=88=90message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/shop/utils/Result.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/utils/Result.java b/back-end_code/src/main/java/com/shop/utils/Result.java index ebc988b..fa52d53 100644 --- a/back-end_code/src/main/java/com/shop/utils/Result.java +++ b/back-end_code/src/main/java/com/shop/utils/Result.java @@ -8,7 +8,7 @@ public class Result extends JSONObject { public static final String FAILURE = "error"; private boolean result; - private String msg; + private String message; private Object data; private Result() {} @@ -17,16 +17,16 @@ public class Result extends JSONObject { return Result.ok(SUCCESS); } - public static Result ok(String msg) { + public static Result ok(String message) { Result result = new Result(); - result.put("msg:",msg); + result.put("message:",message); return result; } public static Result ok(String dataName, Object data) { Result result = new Result(); - result.put("msg:",SUCCESS); + result.put("message:",SUCCESS); result.put(dataName,data); return result; } @@ -35,14 +35,14 @@ public class Result extends JSONObject { return Result.fail(FAILURE); } - public static Result fail(String msg) { - return Result.fail("msg", msg); + public static Result fail(String message) { + return Result.fail("message", message); } public static Result fail(String dataName, Object data) { Result result = new Result(); - result.put("msg:",FAILURE); + result.put("message:",FAILURE); result.put(dataName,data); return result; } @@ -54,10 +54,10 @@ public class Result extends JSONObject { this.result = result; } public String getMsg() { - return msg; + return message; } - public void setMsg(String msg) { - this.msg = msg; + public void setMsg(String message) { + this.message = message; } public Object getData() { return data; -- Gitee From af28fac9343f86dc64b25d690f670e4f6ff3e3a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Sun, 27 Feb 2022 07:02:32 +0000 Subject: [PATCH 42/43] =?UTF-8?q?!15=20=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20*=20=E4=BF=AE=E6=94=B9pom.xml=E4=BD=8D=E7=BD=AE=20*?= =?UTF-8?q?=201.=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E6=88=90=E9=80=82?= =?UTF-8?q?=E5=90=88=E8=BF=90=E8=A1=8C=E5=9C=A8=E8=99=9A=E6=8B=9F=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml => back-end_code/pom.xml | 2 +- back-end_code/src/main/resources/application-pro.yml | 8 ++++---- back-end_code/src/main/resources/application.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename pom.xml => back-end_code/pom.xml (98%) diff --git a/pom.xml b/back-end_code/pom.xml similarity index 98% rename from pom.xml rename to back-end_code/pom.xml index 2d58506..f3b0005 100644 --- a/pom.xml +++ b/back-end_code/pom.xml @@ -10,7 +10,7 @@ com.shop service - 0.0.1-SNAPSHOT + 1.0.1-SNAPSHOT com.shop.service 购物网站后台 diff --git a/back-end_code/src/main/resources/application-pro.yml b/back-end_code/src/main/resources/application-pro.yml index 55c39ba..2124426 100644 --- a/back-end_code/src/main/resources/application-pro.yml +++ b/back-end_code/src/main/resources/application-pro.yml @@ -3,10 +3,10 @@ server: spring: datasource: - username: xiangwan - password: dingwanren + username: root + password: jiaxintang #url中database为对应的数据库名称 - url: jdbc:mysql://47.103.214.177:3306/service2.0?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC + url: jdbc:mysql://localhost:3306/service2.0?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver mybatis: @@ -28,4 +28,4 @@ oss: #文件上传路径 filepath: - bin: "E:/file/bin/" \ No newline at end of file + bin: "C:/file/bin/" \ No newline at end of file diff --git a/back-end_code/src/main/resources/application.yml b/back-end_code/src/main/resources/application.yml index caf4dfc..fc3033b 100644 --- a/back-end_code/src/main/resources/application.yml +++ b/back-end_code/src/main/resources/application.yml @@ -1,3 +1,3 @@ spring: profiles: - active: dev \ No newline at end of file + active: pro \ No newline at end of file -- Gitee From f180da067d35b3db1492c3119745e863ba15b07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B9=E5=AE=97?= <2937021973@qq.com> Date: Mon, 28 Feb 2022 02:45:02 +0000 Subject: [PATCH 43/43] =?UTF-8?q?!17=20=E5=AE=8C=E5=96=84Result=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=20*=20=E5=AE=8C=E5=96=84Result=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/shop/controller/FileController.java | 5 ++- .../com/shop/controller/GoodsController.java | 44 ++++++++++--------- .../src/main/java/com/shop/utils/Result.java | 39 +++++++++------- .../src/main/resources/application.yml | 2 +- 4 files changed, 52 insertions(+), 38 deletions(-) diff --git a/back-end_code/src/main/java/com/shop/controller/FileController.java b/back-end_code/src/main/java/com/shop/controller/FileController.java index 6380a1f..1ea4cfc 100644 --- a/back-end_code/src/main/java/com/shop/controller/FileController.java +++ b/back-end_code/src/main/java/com/shop/controller/FileController.java @@ -2,6 +2,7 @@ package com.shop.controller; import com.shop.utils.Result; import com.shop.utils.StringUtil; +import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.web.bind.annotation.RequestMapping; @@ -28,8 +29,10 @@ public class FileController { String fullPath = fileBinPath+newFilename; File dest = new File(fullPath); try { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("path",fullPath); file.transferTo(dest); - return Result.ok("path",fullPath); + return Result.ok(jsonObject); } catch (IOException e) { e.printStackTrace(); return Result.fail(); diff --git a/back-end_code/src/main/java/com/shop/controller/GoodsController.java b/back-end_code/src/main/java/com/shop/controller/GoodsController.java index f419bca..3c72a8c 100644 --- a/back-end_code/src/main/java/com/shop/controller/GoodsController.java +++ b/back-end_code/src/main/java/com/shop/controller/GoodsController.java @@ -5,6 +5,7 @@ import com.shop.service.GOService; import com.shop.service.GoodsService; import com.shop.service.OrderService; import com.shop.service.UploadImageService; +import com.shop.utils.Result; import com.shop.utils.StringUtil; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; @@ -102,29 +103,32 @@ public class GoodsController { } //在goods表中查找所有正在出售的商品 - @RequestMapping(value = "/searchSellingGoods") - public Object searchSellingGoods(HttpServletRequest request, HttpServletResponse response){ - String message = "error"; - JSONObject jsonObject = new JSONObject(); - List goods= goodsService.searchSellingGoods(); - message = "success"; - jsonObject.put("message",message); - jsonObject.put("goods",goods); - return jsonObject; + @GetMapping(value = "/searchSellingGoods") + public Object searchSellingGoods(){ + try { + JSONObject jsonObject = new JSONObject(); + List goods= goodsService.searchSellingGoods(); + jsonObject.put("goods",goods); + return Result.ok(jsonObject); + }catch (Exception e){ + return Result.fail(); + } } - //在goods表中查找所有正在出售的商品。 - @RequestMapping(value = "/searchWelcomeGoods") + //在goods表中查找欢迎界面商品 + @GetMapping(value = "/searchWelcomeGoods") public Object searchWelcomeGoods(){ - String message = "error"; - JSONObject jsonObject = new JSONObject(); - List goods = goodsService.searchWelcomeGoods(); - List stringList = orderService.searchSellingGoodsBuyerRealname(); - message = "success"; - jsonObject.put("goods",goods); - jsonObject.put("Strings",stringList); - jsonObject.put("message",message); - return jsonObject; + try{ + JSONObject jsonObject = new JSONObject(); + List goods = goodsService.searchWelcomeGoods(); + List stringList = orderService.searchSellingGoodsBuyerRealname(); + jsonObject.put("goods",goods); + jsonObject.put("Strings",stringList); + return Result.ok(jsonObject); + }catch (Exception e){ + return Result.fail(); + } + } //在goods表中查询历史商品 diff --git a/back-end_code/src/main/java/com/shop/utils/Result.java b/back-end_code/src/main/java/com/shop/utils/Result.java index fa52d53..9259986 100644 --- a/back-end_code/src/main/java/com/shop/utils/Result.java +++ b/back-end_code/src/main/java/com/shop/utils/Result.java @@ -14,39 +14,46 @@ public class Result extends JSONObject { private Result() {} public static Result ok() { - return Result.ok(SUCCESS); - } - - public static Result ok(String message) { Result result = new Result(); - result.put("message:",message); + result.put("code:",200); return result; } - - public static Result ok(String dataName, Object data) { + public static Result ok(Object data) { Result result = new Result(); - result.put("message:",SUCCESS); - result.put(dataName,data); + result.put("code:",200); + result.put("data:",data); return result; } + +// public static Result ok(String message, Object data) { +// Result result = new Result(); +// result.put("code:",200); +// result.put("data:",data); +// return result; +// } + public static Result fail() { return Result.fail(FAILURE); } public static Result fail(String message) { - return Result.fail("message", message); - } - - - public static Result fail(String dataName, Object data) { Result result = new Result(); - result.put("message:",FAILURE); - result.put(dataName,data); + result.put("code:",500); + result.put("message:",message); return result; } + +// public static Result fail(String dataName, Object data) { +// Result result = new Result(); +// result.put("code:",500); +// result.put("message:",FAILURE); +// result.put(dataName,data); +// return result; +// } + public boolean isResult() { return result; } diff --git a/back-end_code/src/main/resources/application.yml b/back-end_code/src/main/resources/application.yml index fc3033b..caf4dfc 100644 --- a/back-end_code/src/main/resources/application.yml +++ b/back-end_code/src/main/resources/application.yml @@ -1,3 +1,3 @@ spring: profiles: - active: pro \ No newline at end of file + active: dev \ No newline at end of file -- Gitee