diff --git a/CatApp_android_End/src/main/java/com/example/cat/controller/CatShoppingCartController.java b/CatApp_android_End/src/main/java/com/example/cat/controller/CatShoppingCartController.java index a3463de..39524ee 100644 --- a/CatApp_android_End/src/main/java/com/example/cat/controller/CatShoppingCartController.java +++ b/CatApp_android_End/src/main/java/com/example/cat/controller/CatShoppingCartController.java @@ -97,4 +97,45 @@ public class CatShoppingCartController { } } + @RequestMapping(value = "/deleteShop", method = RequestMethod.POST) + public Map deleteShoppingCart(@RequestBody String id) { + Integer deleteFlag = shoppingCartService.deleteShoppingCart(Integer.valueOf(id)); + Map map = new HashMap<>(); + if (deleteFlag <= 0) { + map.put("flag", false); + map.put("msg", "delete error"); + return map; + } + map.put("flag", true); + map.put("msg", "delete success"); + return map; + } + + @RequestMapping(value = "/updateShop", method = RequestMethod.POST) + public Map updateShoppingCart(@RequestBody String num,@RequestBody String id) { + Integer updateFlag = shoppingCartService.updateShoppingCart(Integer.valueOf(num),Integer.valueOf(id)); + Map map = new HashMap<>(); + if (updateFlag <= 0) { + map.put("flag", false); + map.put("msg", "search error"); + return map; + } + map.put("flag", true); + map.put("msg", "update success"); + return map; + } + @RequestMapping(value = "/addShop", method = RequestMethod.POST) + public Map addProduct(@RequestBody String userId,@RequestBody String productId,@RequestBody String num) { + Integer addFlag = shoppingCartService.addShoppingCart(Integer.valueOf(userId),Integer.valueOf(productId),Integer.valueOf(num)); + Map map = new HashMap<>(); + if (addFlag <= 0) { + map.put("flag", false); + map.put("msg", "add error"); + return map; + } + map.put("flag", true); + map.put("msg", "add success"); + return map; + } + } diff --git a/CatApp_android_End/src/main/java/com/example/cat/mapper/ShoppingCartMapper.java b/CatApp_android_End/src/main/java/com/example/cat/mapper/ShoppingCartMapper.java index f776860..87a1934 100644 --- a/CatApp_android_End/src/main/java/com/example/cat/mapper/ShoppingCartMapper.java +++ b/CatApp_android_End/src/main/java/com/example/cat/mapper/ShoppingCartMapper.java @@ -28,5 +28,11 @@ public interface ShoppingCartMapper { */ List selectShoppingCart(@Param("userId") Integer userId); + Integer updateShoppingCart(@Param("num") Integer num,@Param("id")Integer id); + + Integer deleteShoppingCart(@Param("id")Integer id); + + Integer addShoppingCart(@Param("userId")Integer userId,@Param("productId")Integer productId,@Param("num")Integer num); + } diff --git a/CatApp_android_End/src/main/java/com/example/cat/service/ShoppingCartService.java b/CatApp_android_End/src/main/java/com/example/cat/service/ShoppingCartService.java index bad96d7..311207e 100644 --- a/CatApp_android_End/src/main/java/com/example/cat/service/ShoppingCartService.java +++ b/CatApp_android_End/src/main/java/com/example/cat/service/ShoppingCartService.java @@ -3,6 +3,7 @@ package com.example.cat.service; import com.example.cat.entity.CatProduct; import com.example.cat.entity.CatShoppingCart; import com.example.cat.mapper.ShoppingCartMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,5 +36,17 @@ public class ShoppingCartService { public List selectShoppingCart(Integer userId) { return shoppingCartMapper.selectShoppingCart(userId); } + public Integer updateShoppingCart(Integer num, Integer id) { + return shoppingCartMapper.updateShoppingCart(num,id); + } + + public Integer deleteShoppingCart(Integer id) { + return shoppingCartMapper.deleteShoppingCart(id); + } + + public Integer addShoppingCart(Integer userId,Integer productId,Integer num) { + return shoppingCartMapper.addShoppingCart(userId,productId,num); + } + } diff --git a/CatApp_android_End/src/main/resources/mapper/ShoppingCartMapper.xml b/CatApp_android_End/src/main/resources/mapper/ShoppingCartMapper.xml index a1209c6..c4345a7 100644 --- a/CatApp_android_End/src/main/resources/mapper/ShoppingCartMapper.xml +++ b/CatApp_android_End/src/main/resources/mapper/ShoppingCartMapper.xml @@ -8,5 +8,23 @@ - + + update orange_shoppingcart set + + num=#{num}, + + where id=#{id} + + + delete from orange_shoppingcart where id=#{id} and num=0; + + + delete from orange_shoppingcart where id=#{id} ; + + + insert into orange_shoppingcart(user_id,product_id,num) values (#{user_id},#{product_id},#{num}) + + + insert into orange_shoppingcart(user_id,product_id,num) values (#{user_id},#{product_id},#{num}) + \ No newline at end of file diff --git a/CatApp_android_frontEnd/app/build.gradle b/CatApp_android_frontEnd/app/build.gradle index 977889f..4565a12 100644 --- a/CatApp_android_frontEnd/app/build.gradle +++ b/CatApp_android_frontEnd/app/build.gradle @@ -33,4 +33,5 @@ dependencies { implementation 'liji.library.dev:citypickerview:1.1.0' implementation "com.squareup.okhttp3:okhttp:4.2.2" implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.12' + implementation 'androidx.recyclerview:recyclerview:1.1.0' } diff --git a/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShopAdapter.java b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShopAdapter.java new file mode 100644 index 0000000..7ee1210 --- /dev/null +++ b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShopAdapter.java @@ -0,0 +1,106 @@ +package com.example.catapp.adapter; + +import android.app.FragmentTransaction; +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.catapp.R; +import com.example.catapp.entity.CatProductPack; +import com.example.catapp.entity.ShoppingCartPack; +import com.example.catapp.fragment.ProductFragment; + +import java.util.List; + +public class ShopAdapter extends RecyclerView.Adapter { + private List shoppingCartList; + + private List catProductList; + Context context; + + static class ViewHolder extends RecyclerView.ViewHolder{ + ImageView productImage,leftImage,rightImage; + TextView productName, productPrice,num; + + public ViewHolder(View view){ + super(view); + productImage=(ImageView) view.findViewById(R.id.category_product_image); + productName=(TextView) view.findViewById(R.id.category_product_name); + productPrice=(TextView) view.findViewById(R.id.category_product_price); + num=(TextView) view.findViewById(R.id.num); + leftImage=(ImageView) view.findViewById(R.id.left); + rightImage=(ImageView) view.findViewById(R.id.right); + + } + } + public ShopAdapter(Context context,List catProductList, List shoppingCartList){ + this.catProductList = catProductList; + this.shoppingCartList=shoppingCartList; + this.context=context; + } + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view= View.inflate(context,R.layout.item,null); + final ViewHolder holder=new ViewHolder(view); + holder.leftImage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int position=holder.getAdapterPosition(); + ShoppingCartPack shoppingCartPack=shoppingCartList.get(position); + Toast.makeText(view.getContext(), "click-"+shoppingCartPack.getNum(), Toast.LENGTH_SHORT).show(); + } + }); + holder.rightImage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int position=holder.getAdapterPosition(); + ShoppingCartPack shoppingCartPack=shoppingCartList.get(position); + Toast.makeText(view.getContext(), "click+"+shoppingCartPack.getNum(), Toast.LENGTH_SHORT).show(); + + } + }); + return holder; + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + int i; + i=position; + ShoppingCartPack shoppingCartPack=shoppingCartList.get(i); + CatProductPack catProductPack=catProductList.get(i); + if(catProductPack!=null) { + holder.productImage.setImageBitmap(catProductPack.getImgBitmap()); + holder.productName.setText(catProductPack.getName()); + Log.d("hodler",""+catProductPack.getName()); + holder.productPrice.setText(String.format("%s元", String.valueOf(catProductPack.getPrice()))); + } + if(shoppingCartPack!=null) + holder.num.setText(""+shoppingCartPack.getNum()); + } + + @Override + public int getItemCount() { + return shoppingCartList.size(); + } +// public interface OnItemClickListener { +// +// public void OnItemClick(View view, ShoppingCartPack data ); +// } +// +// //需要外部访问,所以需要设置set方法,方便调用 +// private OnItemClickListener onItemClickListener; +// +// public void setOnItemClickListener(OnItemClickListener onItemClickListener) { +// this.onItemClickListener = onItemClickListener; +// } + +} diff --git a/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShoppingCartAdapter.java b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShoppingCartAdapter.java index ca2ca2a..b5b81bc 100644 --- a/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShoppingCartAdapter.java +++ b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/adapter/ShoppingCartAdapter.java @@ -35,7 +35,6 @@ public class ShoppingCartAdapter extends BaseAdapter { return catProductList.get(position); } - public long getItemId(int position) { return position; } diff --git a/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/fragment/ShoppingCartFragment.java b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/fragment/ShoppingCartFragment.java index 70251cb..9046051 100644 --- a/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/fragment/ShoppingCartFragment.java +++ b/CatApp_android_frontEnd/app/src/main/java/com/example/catapp/fragment/ShoppingCartFragment.java @@ -17,10 +17,13 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.example.catapp.R; import com.example.catapp.activity.IndexActivity; import com.example.catapp.adapter.ProductAdapter; +import com.example.catapp.adapter.ShopAdapter; import com.example.catapp.adapter.ShoppingCartAdapter; import com.example.catapp.entity.CatProductPack; import com.example.catapp.entity.ShoppingCart; @@ -38,11 +41,11 @@ public class ShoppingCartFragment extends Fragment implements View.OnClickListen private ProductFragment productFragment; private GridView productGridView; private TextView usernameText; - Button left1; + private RecyclerView recyclerView; private Integer userId=13; private List catProductList= new ArrayList<>(); Handler h=null; - + ShopAdapter shopAdapter; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -52,22 +55,11 @@ public class ShoppingCartFragment extends Fragment implements View.OnClickListen } -// @Override -// public void onActivityCreated(@Nullable Bundle savedInstanceState) { -// super.onActivityCreated(savedInstanceState); -// productGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { -// @Override -// public void onItemClick(AdapterView parent, View view, int position, long id) { -// FragmentTransaction transaction = getFragmentManager().beginTransaction(); -// if (productFragment == null) { -// productFragment = new ProductFragment(); -// } -// transaction.replace(R.id.main_content0, productFragment); -// transaction.commit(); -// -// } -// }); -// } + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + //LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this); + } @Nullable @Override @@ -77,6 +69,7 @@ public class ShoppingCartFragment extends Fragment implements View.OnClickListen if (cartList.size() > 0) { //有商品 view = LayoutInflater.from(getActivity()).inflate(R.layout.cart_have_product, container, false); + linkHttp(view); } else { view = LayoutInflater.from(getActivity()).inflate(R.layout.cart_no_product, container, false); @@ -136,8 +129,11 @@ public class ShoppingCartFragment extends Fragment implements View.OnClickListen @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); - ShoppingCartAdapter shoppingCartAdapter = new ShoppingCartAdapter(getActivity(), catProductList,cartList); - productGridView.setAdapter(shoppingCartAdapter); + recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false)); + shopAdapter=new ShopAdapter(getActivity(),catProductList,cartList); + recyclerView.setAdapter(shopAdapter); + //ShoppingCartAdapter shoppingCartAdapter = new ShoppingCartAdapter(getActivity(), catProductList,cartList); + //productGridView.setAdapter(shoppingCartAdapter); } }; @@ -146,7 +142,8 @@ public class ShoppingCartFragment extends Fragment implements View.OnClickListen public void run() { OkHttpShoppingcart okHttpShoppingcart=new OkHttpShoppingcart(); try { - productGridView = view.findViewById(R.id.cart_productList); + recyclerView=view.findViewById(R.id.recyclerview); + //productGridView = view.findViewById(R.id.cart_productList); catProductList= okHttpShoppingcart.getProductPack(userId); cartList=okHttpShoppingcart.getShoppingCartPack(userId); } catch (IOException e) { diff --git a/CatApp_android_frontEnd/app/src/main/res/layout/cart_have_product.xml b/CatApp_android_frontEnd/app/src/main/res/layout/cart_have_product.xml index b7362e4..0252a68 100644 --- a/CatApp_android_frontEnd/app/src/main/res/layout/cart_have_product.xml +++ b/CatApp_android_frontEnd/app/src/main/res/layout/cart_have_product.xml @@ -1,15 +1,14 @@ - + + + \ No newline at end of file diff --git a/CatApp_android_frontEnd/app/src/main/res/layout/item.xml b/CatApp_android_frontEnd/app/src/main/res/layout/item.xml new file mode 100644 index 0000000..4c18dcd --- /dev/null +++ b/CatApp_android_frontEnd/app/src/main/res/layout/item.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CatApp_android_frontEnd/app/src/main/res/layout/shop.xml b/CatApp_android_frontEnd/app/src/main/res/layout/shop.xml new file mode 100644 index 0000000..51d4048 --- /dev/null +++ b/CatApp_android_frontEnd/app/src/main/res/layout/shop.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file