From 2c844711fd549288ce28832fcfee0a2b4b7434d1 Mon Sep 17 00:00:00 2001 From: pjhmizn49 Date: Fri, 13 Dec 2024 14:33:32 +0800 Subject: [PATCH] ADD file via upload --- .../flower/controller/CartController.java | 435 ++++++++++++++++++ 1 file changed, 435 insertions(+) create mode 100644 flower_back/src/main/java/com/example/flower/controller/CartController.java diff --git a/flower_back/src/main/java/com/example/flower/controller/CartController.java b/flower_back/src/main/java/com/example/flower/controller/CartController.java new file mode 100644 index 0000000..bec8063 --- /dev/null +++ b/flower_back/src/main/java/com/example/flower/controller/CartController.java @@ -0,0 +1,435 @@ +package com.example.flower.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.example.flower.entity.Cart; +import com.example.flower.entity.Flower; +import com.example.flower.entity.Pack; +import com.example.flower.service.CartService; +import com.example.flower.service.FlowerService; +import com.example.flower.service.PackService; +import com.example.flower.unit.JWTUtil; +import io.jsonwebtoken.Claims; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +@RestController +@RequestMapping("/cart") +public class CartController { + @Resource + private CartService cartService; + @Resource + private FlowerService flowerService; + @Resource + private PackService packService; + + @PostMapping("/list") //cartList获取所有购物车信息列表 + public JSONObject cartList(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + JSONObject jsonObject1 = new JSONObject(); + int page=param.getIntValue("page"); + int page_size=param.getIntValue("page_size"); + Claims claims = JWTUtil.getBodyByToken(Authorization); + int user_id = (int) claims.get("id"); + + List cartList = cartService.cartList(page,page_size,user_id).getList(); + + jsonObject1.put("page_number",cartService.cartList(page,page_size,user_id).getPages()); + jsonObject1.put("total",cartService.cartList(page,page_size,user_id).getTotal()); + + int size=cartList.size(); + + JSONObject[] objects = new JSONObject[size]; + for(int i = 0;i cartList = cartService.cartListByQuery(page,page_size,user_id,flower_name).getList(); + + jsonObject1.put("page_number",cartService.cartListByQuery(page,page_size,user_id,flower_name).getPages()); + jsonObject1.put("total",cartService.cartListByQuery(page,page_size,user_id,flower_name).getTotal()); + + int size=cartList.size(); + + JSONObject[] objects = new JSONObject[size]; + for(int i = 0;i cart_db = cartService.cartRepeat(user_id,flower_id); + + //无重复 add + if(cart_db.size()==0){ + cart.setPack_ids(pack_ids); + cart.setNumber(param.getIntValue("number")); + cartService.cartAdd(cart); + } + + //有重复,比较花材信息 + else { + boolean flag = false; //记录是否有重复 + int i = 0; + while(i 即购物车信息一样 num + if( (cart_db.get(i).getPack_ids()== null || Objects.equals(cart_db.get(i).getPack_ids(), "")) + && (pack_ids==null || Objects.equals(pack_ids, "")) ){ + flag = true; + } + else { + //至少一个为空 => 花材不一样 add + if((cart_db.get(i).getPack_ids()== null || Objects.equals(cart_db.get(i).getPack_ids(), "")) + || (pack_ids==null || Objects.equals(pack_ids, "")) ){ + i++; + } + //都不空,判断是否相同 + else{ + String[] pack_ids_string1 = pack_ids.split(","); + int[] pack_ids_int1 = new int[pack_ids_string1.length]; + for (int j = 0; j < pack_ids_string1.length; j++) { + if (pack_ids_string1[j] != null) + pack_ids_int1[j] = Integer.parseInt(pack_ids_string1[j].trim()); + } + + String[] pack_ids_string2 = cart_db.get(i).getPack_ids().split(","); + int[] pack_ids_int2 = new int[pack_ids_string2.length]; + for (int j = 0; j < pack_ids_string2.length; j++) { + if (pack_ids_string2[j] != null) + pack_ids_int2[j] = Integer.parseInt(pack_ids_string2[j].trim()); + } + + if(Arrays.equals(pack_ids_int1,pack_ids_int2)){ //花材重复 num + flag = true; + } + else{ //不重复 add + i++; + } + } + } + } + if(flag){ //重复,只改数量 + cart.setCart_id(cart_db.get(i).getCart_id()); + cart.setNumber(cart_db.get(i).getNumber()+number); + cartService.cartModify_num(cart); + } + else{ //不重复,添加购物车 + cart.setPack_ids(pack_ids); + cart.setNumber(param.getIntValue("number")); + cartService.cartAdd(cart); + } + + } + + jsonObject.put("code",200 ); + jsonObject.put("msg","成功" ); + jsonObject.put("cart_id",cart.getCart_id()); + + return jsonObject; + } + + @PostMapping("/deletePer") //cartDeletePer删除单个购物车 + public JSONObject cartDeletePer(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + int flag = cartService.cartDeletePer(param.getIntValue("cart_id")); + if(flag==1){ + jsonObject.put("code",200 ); + jsonObject.put("msg","成功" ); + } + else { + jsonObject.put("code",403 ); + jsonObject.put("msg","删除失败" ); + } + return jsonObject; + } + + @PostMapping("/deleteMul") //cartDeleteMul批量删除购物车 + public JSONObject cartDeleteMul(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + //获取请求参数 + JSONArray cart_ids = param.getJSONArray("cart_ids"); + if(cart_ids.size()==0){ + jsonObject.put("code",403); + jsonObject.put("msg","批量删除失败,请选择商品"); + return jsonObject; + } + + int [] ids = new int[cart_ids.size()]; + + //把cart_id中的数据进行类型转换并存入到int数组中 + for (int i = 0; i < cart_ids.size(); i++) { + ids[i] = Integer.parseInt(cart_ids.getString(i)); + } + + int result = cartService.cartDeleteMul(ids); + if(result == ids.length){ + jsonObject.put("code",200); + jsonObject.put("msg","批量删除成功,删除了"+result+"条购物车数据"); + }else{ + jsonObject.put("code",403); + jsonObject.put("msg","批量删除失败,删除了"+result+"条购物车数据"); + } + return jsonObject; + + } + + @PostMapping("/info") //cartInfo获取购物车信息 + public JSONObject cartInfo(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + int cart_id = param.getIntValue("cart_id"); + Cart cart = cartService.cartInfo(cart_id); + + if(cart!=null){ + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("cart_id",cart.getCart_id()); + jsonObject1.put("number",cart.getNumber()); + + if (cart.getPack_ids() == null || Objects.equals(cart.getPack_ids(), "")) { + jsonObject1.put("packs", ""); + } else { + //数组拆分 + String[] pack_ids_string = cart.getPack_ids().split(","); + int[] pack_ids_int = new int[pack_ids_string.length]; + for (int j = 0; j < pack_ids_string.length; j++) { + if (pack_ids_string[j] != null) + pack_ids_int[j] = Integer.parseInt(pack_ids_string[j].trim()); + } + jsonObject1.put("pack_id_array",pack_ids_int); + + JSONObject[] object_pack = new JSONObject[pack_ids_int.length]; + for (int k = 0; k < pack_ids_int.length; k++) { + Pack pack = packService.packInfo(pack_ids_int[k]); + object_pack[k] = new JSONObject(); + object_pack[k].put("pack_id", pack.getPack_id()); + object_pack[k].put("pack_name", pack.getPack_name()); + object_pack[k].put("pack_price", pack.getPack_price()); + } + jsonObject1.put("pack",object_pack); + } + + jsonObject.put("code",200); + jsonObject.put("msg","成功"); + jsonObject.put("data",jsonObject1); + } + else{ + jsonObject.put("code",403); + jsonObject.put("msg","获取购物车信息失败"); + jsonObject.put("data",null); + } + return jsonObject; + } + + @PostMapping("/modify") //cartModify修改购物车信息_花材 + public JSONObject cartModify(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + Cart cart = new Cart(); + cart.setCart_id(param.getIntValue("cart_id")); + cart.setPack_ids(param.getString("pack_ids")); + + int flag = cartService.cartModify(cart); + if(flag==1){ + jsonObject.put("code",200 ); + jsonObject.put("msg","修改成功" ); + } + else{ + jsonObject.put("code",403 ); + jsonObject.put("msg","修改失败" ); + } + + return jsonObject; + } + + @PostMapping("/modify_num") //cartModify修改购物车信息_数量 + public JSONObject cartModify_num(@RequestHeader String Authorization, @RequestBody JSONObject param){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + + Cart cart = new Cart(); + cart.setCart_id(param.getIntValue("cart_id")); + cart.setNumber(param.getIntValue("number")); + + int flag = cartService.cartModify_num(cart); + if(flag==1){ + jsonObject.put("code",200 ); + jsonObject.put("msg","修改成功" ); + } + else{ + jsonObject.put("code",403 ); + jsonObject.put("msg","修改失败" ); + } + + return jsonObject; + } + + @PostMapping("/count") + public JSONObject cartCountNum(@RequestHeader String Authorization){ + JSONObject jsonObject = new JSONObject(); + + if(!JWTUtil.checkToken(Authorization)){ //token认证失败 + JWTUtil.checkTokenFailed(jsonObject); + return jsonObject; + } + Claims claims = JWTUtil.getBodyByToken(Authorization); + int user_id = (int) claims.get("id"); + + jsonObject.put("cartNum",cartService.cartNum(user_id)); + jsonObject.put("code",200); + jsonObject.put("msg","成功"); + return jsonObject; + } +}