From fd9a7289ccd8ae3e422c099563d6dfae0f3bd818 Mon Sep 17 00:00:00 2001 From: unknown <1806592569@qq.com> Date: Wed, 17 May 2023 19:18:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrangeProductController.java | 3 +- .../OrangeShoppingCartController.java | 71 ++++++- .../cn/mapper/ShoppingCartMapper.java | 13 ++ .../cn/service/ShoppingCartService.java | 24 ++- .../src/main/resources/application.properties | 5 +- .../resources/mapper/ShoppingCartMapper.xml | 23 ++ orange_android/app/build.gradle | 1 + .../app/src/main/AndroidManifest.xml | 20 +- .../java/com/example/test/MainActivity.java | 3 + .../example/test/activity/homeActivity.java | 201 +++++++++++++----- .../com/example/test/adapter/cartAdapter.java | 81 +++++++ .../test/adapter/homeGoodsFruitAdapter.java | 21 +- .../java/com/example/test/entity/cart.java | 50 +++++ .../test/fragment/navigationCartFragment.java | 83 +++++++- .../test/fragment/navigationGoodFragment.java | 180 ++++++---------- .../test/fragment/navigationHomeFragment.java | 101 +++++---- .../example/test/netrequest/cartOkHttp.java | 73 +++++++ .../test/netrequest/messageOkHttp.java | 10 +- .../test/netrequest/productOkHttp.java | 48 +++-- .../example/test/netrequest/userOkHttp.java | 6 +- .../java/com/example/test/utils/Address.java | 19 ++ .../app/src/main/res/drawable/add.png | Bin 0 -> 167 bytes .../app/src/main/res/drawable/reduce.png | Bin 0 -> 161 bytes .../app/src/main/res/drawable/time.png | Bin 891 -> 775 bytes .../src/main/res/layout/activity_address.xml | 9 + .../main/res/layout/cart_listview_item.xml | 53 +++++ .../main/res/layout/home_goods_fruit_item.xml | 21 +- .../src/main/res/layout/navigation_cart.xml | 51 +---- .../main/res/layout/navigation_cart_empty.xml | 55 +++++ .../res/layout/navigation_cart_loading.xml | 16 ++ .../layout/navigation_good_spinner_item.xml | 7 +- .../app/src/main/res/values/strings.xml | 1 + 32 files changed, 939 insertions(+), 310 deletions(-) create mode 100644 orange/src/main/resources/mapper/ShoppingCartMapper.xml create mode 100644 orange_android/app/src/main/java/com/example/test/adapter/cartAdapter.java create mode 100644 orange_android/app/src/main/java/com/example/test/entity/cart.java create mode 100644 orange_android/app/src/main/java/com/example/test/netrequest/cartOkHttp.java create mode 100644 orange_android/app/src/main/java/com/example/test/utils/Address.java create mode 100644 orange_android/app/src/main/res/drawable/add.png create mode 100644 orange_android/app/src/main/res/drawable/reduce.png create mode 100644 orange_android/app/src/main/res/layout/activity_address.xml create mode 100644 orange_android/app/src/main/res/layout/cart_listview_item.xml create mode 100644 orange_android/app/src/main/res/layout/navigation_cart_empty.xml create mode 100644 orange_android/app/src/main/res/layout/navigation_cart_loading.xml diff --git a/orange/src/main/java/com/orangesale/cn/controller/OrangeProductController.java b/orange/src/main/java/com/orangesale/cn/controller/OrangeProductController.java index 70eeb95..c683ec9 100644 --- a/orange/src/main/java/com/orangesale/cn/controller/OrangeProductController.java +++ b/orange/src/main/java/com/orangesale/cn/controller/OrangeProductController.java @@ -31,7 +31,8 @@ public class OrangeProductController { * @return */ @RequestMapping(value = "/searchById", method = RequestMethod.POST) - public Map searchProductById(String productId) { + public Map searchProductById(@RequestBody String productId) { + System.out.println(productId); OrangeProduct orangeProduct = productService.selectById(Integer.valueOf(productId)); Map map = new HashMap<>(); if (Objects.isNull(orangeProduct)) { diff --git a/orange/src/main/java/com/orangesale/cn/controller/OrangeShoppingCartController.java b/orange/src/main/java/com/orangesale/cn/controller/OrangeShoppingCartController.java index 4851ae7..94d2945 100644 --- a/orange/src/main/java/com/orangesale/cn/controller/OrangeShoppingCartController.java +++ b/orange/src/main/java/com/orangesale/cn/controller/OrangeShoppingCartController.java @@ -1,8 +1,15 @@ package com.orangesale.cn.controller; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.orangesale.cn.entity.OrangeProduct; +import com.orangesale.cn.entity.OrangeShoppingCart; +import com.orangesale.cn.service.ShoppingCartService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Author zhijun @@ -12,4 +19,62 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/orange/shoppingCart") @CrossOrigin public class OrangeShoppingCartController { + @Autowired + private ShoppingCartService shoppingCartService; + @RequestMapping(value = "/insert", method = RequestMethod.POST) + public Map insertCart(@RequestBody OrangeShoppingCart shoppingCart) { + Integer insertFlag = shoppingCartService.insertCart(shoppingCart); + Map map = new HashMap<>(); + if (insertFlag <= 0) { + map.put("flag", false); + map.put("msg", "error"); + return map; + } + map.put("flag", true); + map.put("msg", "insert success"); + return map; + } + + @RequestMapping(value = "/update", method = RequestMethod.POST) + public Map updateCart(@RequestBody OrangeShoppingCart shoppingCart) { + Integer updateFlag = shoppingCartService.updateCart(shoppingCart); + Map map = new HashMap<>(); + if (updateFlag <= 0) { + map.put("flag", false); + map.put("msg", "error"); + return map; + } + map.put("flag", true); + map.put("msg", "update success"); + return map; + } + + @RequestMapping(value = "/search", method = RequestMethod.GET) + public Map searchCart() { + List carts = shoppingCartService.selectAll(); + Map map = new HashMap<>(); + if (CollectionUtils.isEmpty(carts)) { + map.put("flag", false); + map.put("msg", "search error"); + return map; + } + map.put("flag", true); + map.put("data", carts); + return map; + } + + @RequestMapping(value = "/searchByUserId", method = RequestMethod.POST) + public Map searchCartByUserId(@RequestBody String userId) { + List list = shoppingCartService.selectByUserId(Integer.valueOf(userId)); + Map map = new HashMap<>(); + if (list==null) { + map.put("flag", false); + map.put("msg", "error"); + return map; + } + map.put("flag", true); + map.put("data", list); + return map; + } + } diff --git a/orange/src/main/java/com/orangesale/cn/mapper/ShoppingCartMapper.java b/orange/src/main/java/com/orangesale/cn/mapper/ShoppingCartMapper.java index e9bcbbf..1810869 100644 --- a/orange/src/main/java/com/orangesale/cn/mapper/ShoppingCartMapper.java +++ b/orange/src/main/java/com/orangesale/cn/mapper/ShoppingCartMapper.java @@ -1,11 +1,24 @@ package com.orangesale.cn.mapper; +import com.orangesale.cn.entity.OrangeShoppingCart; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @Author zhijun * @Date 2019/12/13 */ @Mapper public interface ShoppingCartMapper { +// 新增商品到购物车 + public int insertCart(OrangeShoppingCart cart); + +// 购物车商品数量 + public int updateCart(OrangeShoppingCart cart); + +// 查询购物车中所有商品 + public List selectAll(); + + public List selectByUserId(Integer UserId); } diff --git a/orange/src/main/java/com/orangesale/cn/service/ShoppingCartService.java b/orange/src/main/java/com/orangesale/cn/service/ShoppingCartService.java index 16f52fb..f99d7f1 100644 --- a/orange/src/main/java/com/orangesale/cn/service/ShoppingCartService.java +++ b/orange/src/main/java/com/orangesale/cn/service/ShoppingCartService.java @@ -1,12 +1,34 @@ package com.orangesale.cn.service; +import com.orangesale.cn.entity.OrangeShoppingCart; +import com.orangesale.cn.mapper.ShoppingCartMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Author zhijun * @Date 2019/12/13 */ @Service public class ShoppingCartService { - + @Autowired + private ShoppingCartMapper shoppingCartMapper; + + public int insertCart(OrangeShoppingCart cart){ + return shoppingCartMapper.insertCart(cart); + } + + public int updateCart(OrangeShoppingCart cart){ + return shoppingCartMapper.updateCart(cart); + } + + public List selectAll(){ + return shoppingCartMapper.selectAll(); + } + + public List selectByUserId(Integer userId){ + return shoppingCartMapper.selectByUserId(userId); + } } diff --git a/orange/src/main/resources/application.properties b/orange/src/main/resources/application.properties index 18c7170..a154fa7 100644 --- a/orange/src/main/resources/application.properties +++ b/orange/src/main/resources/application.properties @@ -15,4 +15,7 @@ spring.jackson.time-zone=GMT+8 uploadFilePath=D:/uploaded/ spring.servlet.multipart.max-file-size=10MB -spring.servlet.multipart.max-request-size=200MB \ No newline at end of file +spring.servlet.multipart.max-request-size=200MB + + +logging.level.com.orangesale.cn.mapper=debug diff --git a/orange/src/main/resources/mapper/ShoppingCartMapper.xml b/orange/src/main/resources/mapper/ShoppingCartMapper.xml new file mode 100644 index 0000000..6ae0f70 --- /dev/null +++ b/orange/src/main/resources/mapper/ShoppingCartMapper.xml @@ -0,0 +1,23 @@ + + + + + + insert into orange_shoppingcart values (null,#{userId},#{productId},#{num}) + + + + + update orange_shoppingcart + set id=#{id} + + + + + + \ No newline at end of file diff --git a/orange_android/app/build.gradle b/orange_android/app/build.gradle index 68674b4..966a862 100644 --- a/orange_android/app/build.gradle +++ b/orange_android/app/build.gradle @@ -40,4 +40,5 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation 'com.github.crazyandcoder:citypicker:6.0.2' + implementation 'com.github.zzz40500:android-shapeLoadingView:1.0.3.2' } \ No newline at end of file diff --git a/orange_android/app/src/main/AndroidManifest.xml b/orange_android/app/src/main/AndroidManifest.xml index 66963f5..6b1b294 100644 --- a/orange_android/app/src/main/AndroidManifest.xml +++ b/orange_android/app/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ xmlns:tools="http://schemas.android.com/tools"> - + + android:exported="false" /> - - - - - - - @@ -40,6 +31,13 @@ + + + + + + \ No newline at end of file diff --git a/orange_android/app/src/main/java/com/example/test/MainActivity.java b/orange_android/app/src/main/java/com/example/test/MainActivity.java index 1babbe2..2b13c48 100644 --- a/orange_android/app/src/main/java/com/example/test/MainActivity.java +++ b/orange_android/app/src/main/java/com/example/test/MainActivity.java @@ -18,6 +18,7 @@ import com.example.test.activity.registerActivity; import com.example.test.dao.UserDatabase; import com.example.test.entity.user; import com.example.test.netrequest.userOkHttp; +import com.example.test.utils.Address; import java.io.IOException; @@ -29,6 +30,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); + Address.getImgIp("http:// :8081/uploaded/watermelon.png"); init(); } @@ -107,6 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe bundle.putString("password",result.getPassword()); bundle.putString("sex",result.getSex()); bundle.putString("city",result.getCity()); + bundle.putInt("id",result.getId()); intent.putExtras(bundle); startActivity(intent); }else{ diff --git a/orange_android/app/src/main/java/com/example/test/activity/homeActivity.java b/orange_android/app/src/main/java/com/example/test/activity/homeActivity.java index 8a041f4..44a1117 100644 --- a/orange_android/app/src/main/java/com/example/test/activity/homeActivity.java +++ b/orange_android/app/src/main/java/com/example/test/activity/homeActivity.java @@ -8,74 +8,71 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import android.content.Intent; +import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; +import android.widget.Toast; import com.example.test.R; import com.example.test.adapter.homeNavigationBottomAdapter; +import com.example.test.entity.cart; +import com.example.test.entity.message; +import com.example.test.entity.product; import com.example.test.fragment.navigationCartFragment; import com.example.test.fragment.navigationGoodFragment; import com.example.test.fragment.navigationHomeFragment; import com.example.test.fragment.navigationPersonFragment; +import com.example.test.netrequest.cartOkHttp; +import com.example.test.netrequest.productOkHttp; import com.example.test.service.MessageService; +import com.example.test.utils.Address; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; public class homeActivity extends AppCompatActivity { public final int Home = 1; public final int Good = 2; public final int Cart = 3; public final int Person = 4; - private int imgs[]={R.drawable.home_kind_orange1,R.drawable.home_kind_grapefruit, - R.drawable.home_kind_orange,R.drawable.home_kind_watermelon, - R.drawable.home_kind_pear,R.drawable.home_kind_apple, - R.drawable.home_kind_lemon,R.drawable.home_kind_mango - }; + public final int Navigation = 5; + + private List bitmapsList = new ArrayList<>(); + private String[] names; + private double[] prices; - private String names[] = {"橙子","柚子","橘子","西瓜","香梨","苹果","柠檬","芒果"}; - private double prices[] = {9.9,29.3,19.7,5.7,6.7,10.9,15.9,29.9}; + private int [] ids; + private int position; + private navigationHomeFragment homeFragment = new navigationHomeFragment(); + private navigationGoodFragment goodFragment = new navigationGoodFragment(); + private navigationCartFragment cartFragment = new navigationCartFragment(); + private navigationPersonFragment personFragment = new navigationPersonFragment(); private int sectionImgs[] = {R.drawable.section_home,R.drawable.section_good, R.drawable.section_cart,R.drawable.section_mine}; private String sectionNames[] ={"首页","商品","购物车","我"}; - private FragmentManager manager = getSupportFragmentManager(); - private Bundle extras; - private Handler handler = new Handler(new Handler.Callback() { - @Override - public boolean handleMessage(@NonNull Message message) { - switch (message.what){ - case Home: - navigationHomeFragment homeFragment = (navigationHomeFragment) manager.findFragmentById(R.id.navigation_section); - homeFragment.init(); - return true; - case Good: - navigationGoodFragment goodFragment = (navigationGoodFragment) manager.findFragmentById(R.id.navigation_section); - goodFragment.initView(); - return true; - } - return false; - } - }); - - public Handler getHandler() { - return handler; + public FragmentManager getManager() { + return manager; } - public int[] getImgs() { - return imgs; - } + public FragmentManager manager = getSupportFragmentManager(); + private Bundle extras; - public String[] getNames() { - return names; + public int[] getIds() { + return ids; } - - public double[] getPrices() { - return prices; + public Handler getHandler() { + return handler; } public int[] getSectionImgs() { @@ -90,6 +87,51 @@ public class homeActivity extends AppCompatActivity { return extras; } + public List getBitmapsList() { + return bitmapsList; + } + + public void setBitmapsList(List bitmapsList) { + this.bitmapsList = bitmapsList; + } + + public String[] getNames() { + return names; + } + + public void setNames(String[] names) { + this.names = names; + } + + public double[] getPrices() { + return prices; + } + + public void setPrices(double[] prices) { + this.prices = prices; + } + private Handler handler = new Handler(new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message message) { + switch (message.what){ + case Good: + navigationGoodFragment goodFragment1 = (navigationGoodFragment) manager.findFragmentById(R.id.navigation_section); + goodFragment1.initGridview(); + return true; + case Cart: +// 添加商品进购物车 + Map map = (Map) message.obj; + position = (Integer) map.get("position"); + new Thread(insertData).start(); + + case Navigation: + initNavigation(); + changeFragment(homeFragment); + return true; + } + return false; + } + }); @Override protected void onCreate(Bundle savedInstanceState) { @@ -97,23 +139,29 @@ public class homeActivity extends AppCompatActivity { setContentView(R.layout.navigation); Intent service = new Intent(homeActivity.this, MessageService.class); startService(service); - Log.i("start service","start"); Intent intent = getIntent(); extras = intent.getExtras(); - init(); - initFragment(new navigationHomeFragment()); +// initNavigation(); + initData(); +// 默认加载 + + } + public void initData() { + Thread thread = new Thread(getProducts); + thread.start(); } - public void initFragment(Fragment fragment){ + + public void changeFragment(Fragment fragment){ FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.navigation_section,fragment); transaction.commit(); } - protected void init(){ + //初始化底端导航栏 + protected void initNavigation(){ - //初始化底端导航栏 GridView navigation = (GridView)findViewById(R.id.home_navigation_bottom_gridview); homeNavigationBottomAdapter navigationAdapter = new homeNavigationBottomAdapter(sectionImgs,sectionNames,this); navigation.setAdapter(navigationAdapter); @@ -122,21 +170,76 @@ public class homeActivity extends AppCompatActivity { public void onItemClick(AdapterView parent, View view, int position, long id) { switch (position){ case 0: - initFragment(new navigationHomeFragment()); + changeFragment(homeFragment); break; case 1: - initFragment(new navigationGoodFragment()); - + changeFragment(goodFragment); break; case 2: - initFragment(new navigationCartFragment()); - + changeFragment(cartFragment); break; case 3: - initFragment(new navigationPersonFragment()); + changeFragment(personFragment); break; } } }); } -} \ No newline at end of file + + //获取产品信息 + Runnable getProducts = new Runnable() { + @Override + public void run() { + productOkHttp http = new productOkHttp(); + try { + List products = http.getProduct(); + List namesList = new ArrayList<>(); + List pricesList = new ArrayList<>(); + List idsList = new ArrayList<>(); + if(products!=null){ + for (product p : products) { + namesList.add(p.getName()); + pricesList.add(p.getPrice()); + String url = Address.getImgIp(p.getImgUrl()); + bitmapsList.add(http.getImg(url)); + idsList.add(p.getId()); + } + names = namesList.toArray(new String[0]); + prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); +// bitmaps = bitmapsList.toArray(new Bitmap[0]); + ids = idsList.stream().mapToInt(Integer::intValue).toArray(); + Message message1 = new Message(); + message1.what = Navigation; + handler.sendMessage(message1); + }else + { + Message msg = new Message(); + msg.what = 0; + handler.sendMessage(msg); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + }; + + + Runnable insertData = new Runnable() { + @Override + public void run() { + cart c = new cart(null,extras.getInt("id"),ids[position],1); + cartOkHttp okHttp = new cartOkHttp(); + try { + boolean b = okHttp.insertCart(c); + if(!b){ + Looper.prepare(); + Toast.makeText(homeActivity.this,"添加失败",Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + }; +} diff --git a/orange_android/app/src/main/java/com/example/test/adapter/cartAdapter.java b/orange_android/app/src/main/java/com/example/test/adapter/cartAdapter.java new file mode 100644 index 0000000..fe90fd2 --- /dev/null +++ b/orange_android/app/src/main/java/com/example/test/adapter/cartAdapter.java @@ -0,0 +1,81 @@ +package com.example.test.adapter; + +import android.content.Context; +import android.graphics.Bitmap; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.test.R; +import com.example.test.entity.cart; + +import java.util.ArrayList; +import java.util.List; + +public class cartAdapter extends BaseAdapter { + private List bitmaps; + private List names; + private List prices; + private List nums; + private Context context; + + public cartAdapter(List bitmaps, List names, List prices, List nums, Context context) { + this.bitmaps = bitmaps; + this.names = names; + this.prices = prices; + this.nums = nums; + this.context = context; + } + + @Override + public int getCount() { + return bitmaps.size(); + } + + @Override + public Object getItem(int i) { + List list = new ArrayList<>(); + list.add(bitmaps.get(i)); + list.add(names.get(i)); + list.add(prices.get(i)); + list.add(nums.get(i)); + return list; + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public View getView(int i, View convertView, ViewGroup viewGroup) { + viewHolder holder; + if(convertView==null){ + holder = new viewHolder(); + convertView = LayoutInflater.from(context).inflate(R.layout.cart_listview_item,null); + holder.ivImg = convertView.findViewById(R.id.cart_good_img); + holder.tvName = convertView.findViewById(R.id.cart_good_name); + holder.tvPrice = convertView.findViewById(R.id.cart_good_price); + holder.tvNum = convertView.findViewById(R.id.cart_good_num); + convertView.setTag(holder); + }else { + holder = (viewHolder) convertView.getTag(); + } + +// holder.ivImg.setImageResource(imgs[position]); + holder.ivImg.setImageBitmap(bitmaps.get(i)); + holder.tvName.setText(names.get(i)); + holder.tvPrice.setText(prices.get(i)+""); + holder.tvNum.setText(nums.get(i)+""); + return convertView; + } + static class viewHolder{ + ImageView ivImg; + TextView tvName; + TextView tvPrice; + TextView tvNum; + } +} diff --git a/orange_android/app/src/main/java/com/example/test/adapter/homeGoodsFruitAdapter.java b/orange_android/app/src/main/java/com/example/test/adapter/homeGoodsFruitAdapter.java index 97b60d4..a1c3382 100644 --- a/orange_android/app/src/main/java/com/example/test/adapter/homeGoodsFruitAdapter.java +++ b/orange_android/app/src/main/java/com/example/test/adapter/homeGoodsFruitAdapter.java @@ -2,7 +2,10 @@ package com.example.test.adapter; import android.content.Context; import android.graphics.Bitmap; +import android.os.Handler; +import android.os.Message; import android.telephony.SmsManager; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -23,19 +26,22 @@ public class homeGoodsFruitAdapter extends BaseAdapter { private double prices[]; private List bitmaps; private Context context; + private Handler handler; public homeGoodsFruitAdapter(int[] imgs, String[] names, double[] prices, Context context) { this.imgs = imgs; this.names = names; this.prices = prices; this.context = context; + } - public homeGoodsFruitAdapter(List bitmaps, String[] names, double[] prices, Context context) { + public homeGoodsFruitAdapter(List bitmaps, String[] names, double[] prices, Context context, Handler handler) { this.bitmaps = bitmaps; this.names = names; this.prices = prices; this.context = context; + this.handler = handler; } @Override @@ -67,6 +73,18 @@ public class homeGoodsFruitAdapter extends BaseAdapter { holder.ivImg = convertView.findViewById(R.id.home_goods_fruit_img); holder.tvName = convertView.findViewById(R.id.home_goods_fruit_name); holder.tvPrice = convertView.findViewById(R.id.home_goods_fruit_price); + holder.ivCart = convertView.findViewById(R.id.navigation_cart); + holder.ivCart.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Map cartItem = new HashMap<>(); + cartItem.put("position",position); + Message message = new Message(); + message.what = 3; + message.obj = cartItem; + handler.sendMessage(message); + } + }); convertView.setTag(holder); }else { holder = (viewHolder) convertView.getTag(); @@ -83,5 +101,6 @@ public class homeGoodsFruitAdapter extends BaseAdapter { ImageView ivImg; TextView tvName; TextView tvPrice; + ImageView ivCart; } } diff --git a/orange_android/app/src/main/java/com/example/test/entity/cart.java b/orange_android/app/src/main/java/com/example/test/entity/cart.java new file mode 100644 index 0000000..9feec60 --- /dev/null +++ b/orange_android/app/src/main/java/com/example/test/entity/cart.java @@ -0,0 +1,50 @@ +package com.example.test.entity; + +public class cart { + private Integer id; + private Integer userId; + private Integer productId; + private Integer num; + + public cart(Integer id, Integer userId, Integer productId, Integer num) { + this.id = id; + this.userId = userId; + this.productId = productId; + this.num = num; + } + + public cart() { + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } +} diff --git a/orange_android/app/src/main/java/com/example/test/fragment/navigationCartFragment.java b/orange_android/app/src/main/java/com/example/test/fragment/navigationCartFragment.java index 722467c..5ae9625 100644 --- a/orange_android/app/src/main/java/com/example/test/fragment/navigationCartFragment.java +++ b/orange_android/app/src/main/java/com/example/test/fragment/navigationCartFragment.java @@ -1,33 +1,108 @@ package com.example.test.fragment; +import android.graphics.Bitmap; import android.os.Bundle; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.ListView; import com.example.test.R; import com.example.test.activity.homeActivity; +import com.example.test.adapter.cartAdapter; +import com.example.test.entity.cart; +import com.example.test.entity.product; +import com.example.test.netrequest.cartOkHttp; +import com.example.test.netrequest.productOkHttp; +import com.example.test.utils.Address; -public class navigationCartFragment extends Fragment { +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +public class navigationCartFragment extends Fragment { + private View view; + private View cartView; + private homeActivity activity; + private static List bitmaps = new ArrayList<>(); + private static List names = new ArrayList<>(); + private static List prices = new ArrayList<>(); + private static List nums = new ArrayList<>(); + //加载动画 有东西的购物车 空的购物车 + private int[] pages={R.layout.navigation_cart_loading,R.layout.navigation_cart, R.layout.navigation_cart_empty}; + private static int index=0; + private ListView listView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.navigation_cart, container, false); + view = inflater.inflate(pages[index], container, false); + cartView = inflater.inflate(pages[1],null); + activity = (homeActivity) getActivity(); + new Thread(getCartItem).start(); + if(index==1){ + initListview(); + }else if(index==2){ + goShopping(); + } + return view; + } + + private void goShopping() { Button button = view.findViewById(R.id.navigation_cart_shopping); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { homeActivity activity = (homeActivity)getActivity(); - activity.initFragment(new navigationGoodFragment()); + activity.changeFragment(new navigationGoodFragment()); } }); - return view; } + + public void initListview(){ + if(listView == null) { + listView = (ListView) cartView.findViewById(R.id.navigation_cart_listview); + } + listView.setAdapter(new cartAdapter(bitmaps,names,prices,nums,activity)); + } + + + Runnable getCartItem = new Runnable() { + @Override + public void run() { + + cartOkHttp cartOkHttp1 = new cartOkHttp(); + productOkHttp productOkHttp1 = new productOkHttp(); + try { + int userId = (Integer)activity.getBundle().get("id"); + List carts = cartOkHttp1.selectByUserId(userId); + if(carts.size()==0){ + index = 2; + activity.changeFragment(new navigationCartFragment()); + //跳转到购物车为空页面 + }else{ +// 将获取到的数据分别添加到集合中 + for (cart cart : carts) { + product p = productOkHttp1.getProductById(cart.getProductId()); + names.add(p.getName()); + String url = Address.getImgIp(p.getImgUrl()); + Bitmap img = productOkHttp1.getImg(url); + bitmaps.add(img); + prices.add(p.getPrice()); + nums.add(cart.getNum()); + } + index = 1; + activity.changeFragment(new navigationCartFragment()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + }; } \ No newline at end of file diff --git a/orange_android/app/src/main/java/com/example/test/fragment/navigationGoodFragment.java b/orange_android/app/src/main/java/com/example/test/fragment/navigationGoodFragment.java index dfc17cf..447c771 100644 --- a/orange_android/app/src/main/java/com/example/test/fragment/navigationGoodFragment.java +++ b/orange_android/app/src/main/java/com/example/test/fragment/navigationGoodFragment.java @@ -1,12 +1,18 @@ package com.example.test.fragment; +import android.content.Context; import android.graphics.Bitmap; +import android.graphics.Point; +import android.graphics.PorterDuff; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.os.Handler; import android.os.Message; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.Display; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -20,6 +26,7 @@ import com.example.test.adapter.homeGoodsFruitAdapter; import com.example.test.adapter.spinnerAdapter; import com.example.test.entity.product; import com.example.test.netrequest.productOkHttp; +import com.example.test.utils.Address; import java.io.IOException; import java.util.ArrayList; @@ -37,6 +44,7 @@ public class navigationGoodFragment extends Fragment { private homeActivity activity; private View view; private Handler handler; + private GridView goodGridview; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -45,52 +53,58 @@ public class navigationGoodFragment extends Fragment { view = inflater.inflate(R.layout.navigation_good, container, false); activity = (homeActivity) getActivity(); handler = activity.getHandler(); - Thread thread = new Thread(runnable); - thread.start(); -// initData(); -// initView(); + goodGridview = (GridView) view.findViewById(R.id.navigation_good_gridview); + initSpinner(); + initData(); + initGridview(); return view; } - public void initView() { - GridView goodGridview = (GridView) view.findViewById(R.id.navigation_good_gridview); - homeGoodsFruitAdapter adapter = new homeGoodsFruitAdapter(bitmapsList, names, prices, activity); + public void initGridview() { + homeGoodsFruitAdapter adapter = new homeGoodsFruitAdapter(bitmapsList, names, prices, activity,handler); goodGridview.setAdapter(adapter); + } + + + public void initSpinner(){ Spinner spinner = (Spinner) view.findViewById(R.id.navigation_good_spinner); spinnerAdapter spinnerAdapter = new spinnerAdapter(new int[]{R.drawable.all, R.drawable.time, R.drawable.sale, R.drawable.price}, new String[]{"全部商品", "按上市时间排序", "按销量排序", "按价格排序"}, activity); spinner.setAdapter(spinnerAdapter); -// spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { -// @Override -// public void onItemSelected(AdapterView adapterView, View view, int i, long l) { -// switch (i) { -// case 0: -// Thread thread1 = new Thread(runnable1); -// thread1.start(); -// break; -// case 1: -// Thread thread2 = new Thread(runnable2); -// thread2.start(); -// break; -// case 2: -//// 暂时不支持 -// break; -// case 3: -// Thread thread4 = new Thread(runnable4); -// thread4.start(); -// break; -// } -// } -// -// @Override -// public void onNothingSelected(AdapterView adapterView) { -// -// } -// }); - spinner.setDropDownHorizontalOffset(0); - spinner.setDropDownVerticalOffset(30); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + switch (i) { + case 0: + Thread thread1 = new Thread(runnable1); + thread1.start(); + break; + case 1: + Thread thread2 = new Thread(runnable2); + thread2.start(); + break; + case 2: +// 暂时不支持 + break; + case 3: + Thread thread4 = new Thread(runnable4); + thread4.start(); + break; + } + } + @Override + public void onNothingSelected(AdapterView adapterView) { + } + }); + DisplayMetrics metrics = activity.getResources().getDisplayMetrics(); + spinner.setDropDownWidth(metrics.widthPixels); } + public void initData(){ + names = activity.getNames(); + prices = activity.getPrices(); + bitmapsList = activity.getBitmapsList(); + } public void handleData(List list, productOkHttp http) throws IOException { List namesList = new ArrayList<>(); @@ -99,7 +113,8 @@ public class navigationGoodFragment extends Fragment { for (product p : list) { namesList.add(p.getName()); pricesList.add(p.getPrice()); - bitmapsList.add(http.getImg(p.getImgUrl())); + String url = Address.getImgIp(p.getImgUrl()); + bitmapsList.add(http.getImg(url)); } names = namesList.toArray(new String[0]); prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); @@ -115,68 +130,13 @@ public class navigationGoodFragment extends Fragment { return; } - protected void initData() { - imgs = activity.getImgs(); - names = activity.getNames(); - prices = activity.getPrices(); - } - - Runnable runnable = new Runnable() { - @Override - public void run() { - productOkHttp http = new productOkHttp(); - try { - List products = http.getProduct(); - List namesList = new ArrayList<>(); - List pricesList = new ArrayList<>(); - if (products != null) { - for (product p : products) { - namesList.add(p.getName()); - pricesList.add(p.getPrice()); - bitmapsList.add(http.getImg(p.getImgUrl())); - } - names = namesList.toArray(new String[0]); - prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); -// bitmaps = bitmapsList.toArray(new Bitmap[0]); - Message msg = new Message(); - msg.what = activity.Good; - handler.sendMessage(msg); - } else { - Message msg = new Message(); - msg.what = 0; - handler.sendMessage(msg); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - }; - Runnable runnable1 = new Runnable() { @Override public void run() { productOkHttp http = new productOkHttp(); try { List products = http.getProduct(); - List namesList = new ArrayList<>(); - List pricesList = new ArrayList<>(); - if (products != null) { - for (product p : products) { - namesList.add(p.getName()); - pricesList.add(p.getPrice()); - bitmapsList.add(http.getImg(p.getImgUrl())); - } - names = namesList.toArray(new String[0]); - prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); -// bitmaps = bitmapsList.toArray(new Bitmap[0]); - Message msg = new Message(); - msg.what = activity.Good; - handler.sendMessage(msg); - } else { - Message msg = new Message(); - msg.what = 0; - handler.sendMessage(msg); - } + handleData(products,http); } catch (IOException e) { throw new RuntimeException(e); } @@ -188,38 +148,20 @@ public class navigationGoodFragment extends Fragment { productOkHttp productOkHttp = new productOkHttp(); try { List products = productOkHttp.getProductOrderByTime(); - List namesList = new ArrayList<>(); - List pricesList = new ArrayList<>(); - if (products != null) { - for (product p : products) { - namesList.add(p.getName()); - pricesList.add(p.getPrice()); - bitmapsList.add(productOkHttp.getImg(p.getImgUrl())); - } - names = namesList.toArray(new String[0]); - prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); -// bitmaps = bitmapsList.toArray(new Bitmap[0]); - Message msg = new Message(); - msg.what = activity.Good; - handler.sendMessage(msg); - } else { - Message msg = new Message(); - msg.what = 0; - handler.sendMessage(msg); - } + handleData(products,productOkHttp); } catch (IOException e) { throw new RuntimeException(e); } - } }; -// Runnable runnable3 = new Runnable() { -// @Override -// public void run() { -// -// } -// }; + + Runnable runnable3 = new Runnable() { + @Override + public void run() { + + } + }; // 价格排序 diff --git a/orange_android/app/src/main/java/com/example/test/fragment/navigationHomeFragment.java b/orange_android/app/src/main/java/com/example/test/fragment/navigationHomeFragment.java index d35f885..50c3bdc 100644 --- a/orange_android/app/src/main/java/com/example/test/fragment/navigationHomeFragment.java +++ b/orange_android/app/src/main/java/com/example/test/fragment/navigationHomeFragment.java @@ -4,33 +4,46 @@ import android.graphics.Bitmap; import android.os.Bundle; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.GridView; +import android.widget.Toast; import com.example.test.R; import com.example.test.activity.homeActivity; import com.example.test.adapter.homeFruitKindAdapter; import com.example.test.adapter.homeGoodsFruitAdapter; +import com.example.test.entity.cart; +import com.example.test.entity.message; import com.example.test.entity.product; +import com.example.test.netrequest.cartOkHttp; import com.example.test.netrequest.productOkHttp; +import com.example.test.utils.Address; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class navigationHomeFragment extends Fragment { private String names[] = {}; private int imgs[] = {}; private double prices[] = {}; private List bitmapsList = new ArrayList<>(); + private int ids[]; private homeActivity activity; + private int productIDNow; + private View view; private Handler handler; @@ -38,69 +51,81 @@ public class navigationHomeFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - Thread thread = new Thread(runnable); - thread.start(); + Log.i("home", this + ""); view = inflater.inflate(R.layout.navigation_home, container, false); - activity =(homeActivity)getActivity(); + activity = (homeActivity) getActivity(); handler = activity.getHandler(); - //initData(); -// init(view); + initData(); + initGridview(); return view; } - private void initData() { - names = activity.getNames(); - imgs = activity.getImgs(); - prices = activity.getPrices(); - } - public void init() { + public void initGridview() { //初始化商品种类 - GridView kindGridview = (GridView)view.findViewById(R.id.fruit_kind_gridview); + GridView kindGridview = (GridView) view.findViewById(R.id.fruit_kind_gridview); // homeFruitKindAdapter kindAdapter = new homeFruitKindAdapter(imgs,names,activity); - homeFruitKindAdapter kindAdapter = new homeFruitKindAdapter(bitmapsList,names,activity); + homeFruitKindAdapter kindAdapter = new homeFruitKindAdapter(bitmapsList, names, activity); kindGridview.setAdapter(kindAdapter); //初始化热门商品下的水果 GridView fruitGridview = (GridView) view.findViewById(R.id.home_goods_fruit_gridview); // homeGoodsFruitAdapter fruitAdapter = new homeGoodsFruitAdapter(imgs,names,prices,activity); - homeGoodsFruitAdapter fruitAdapter = new homeGoodsFruitAdapter(bitmapsList,names,prices,activity); + homeGoodsFruitAdapter fruitAdapter = new homeGoodsFruitAdapter(bitmapsList, names, prices, activity,handler); fruitGridview.setAdapter(fruitAdapter); + fruitGridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + Log.i("shopping",view+""); + switch (view.getId()){ + case R.id.navigation_cart: + Log.i("listener","enter"); +// 将商品显示在购物车中 + productIDNow = ids[i]; + Message message = new Message(); + message.what = activity.Cart; + Map map = new HashMap<>(); + map.put("img",bitmapsList.get(i)); + map.put("name",names[i]); + map.put("price",prices[i]); + message.obj = map; + handler.sendMessage(message); +// 将信息添加至数据库 + Thread thread = new Thread(insertCart); + thread.start(); + } + } + }); } - Runnable runnable = new Runnable() { + public void initData() { + names = activity.getNames(); + prices = activity.getPrices(); + bitmapsList = activity.getBitmapsList(); + ids = activity.getIds(); + } + + Runnable insertCart = new Runnable() { @Override public void run() { - int index = 0; - productOkHttp http = new productOkHttp(); + cartOkHttp OkHttp = new cartOkHttp(); + cart c = new cart(null,activity.getBundle().getInt("id"),productIDNow,1); try { - List products = http.getProduct(); - List namesList = new ArrayList<>(); - List pricesList = new ArrayList<>(); - if(products!=null){ - for (product p : products) { - namesList.add(p.getName()); - pricesList.add(p.getPrice()); - bitmapsList.add(http.getImg(p.getImgUrl())); - } - names = namesList.toArray(new String[0]); - prices = pricesList.stream().mapToDouble(Double::doubleValue).toArray(); -// bitmaps = bitmapsList.toArray(new Bitmap[0]); - Message msg = new Message(); - msg.what = activity.Home; - handler.sendMessage(msg); - }else - { - Message msg = new Message(); - msg.what = 0; - handler.sendMessage(msg); + boolean b = OkHttp.insertCart(c); + if(!b){ + Looper.prepare(); + Toast.makeText(activity,"添加失败",Toast.LENGTH_SHORT).show(); + Looper.loop(); } } catch (IOException e) { throw new RuntimeException(e); } + + } }; -} \ No newline at end of file +} + diff --git a/orange_android/app/src/main/java/com/example/test/netrequest/cartOkHttp.java b/orange_android/app/src/main/java/com/example/test/netrequest/cartOkHttp.java new file mode 100644 index 0000000..0a9d910 --- /dev/null +++ b/orange_android/app/src/main/java/com/example/test/netrequest/cartOkHttp.java @@ -0,0 +1,73 @@ +package com.example.test.netrequest; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.example.test.entity.cart; +import com.example.test.utils.Address; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import okhttp3.ConnectionPool; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class cartOkHttp { + private OkHttpClient okHttpClient = new OkHttpClient(); + public List selectAll() throws IOException { + Request request = new Request.Builder() + .url("http://" + Address.ip + ":8081/orange/shoppingCart/search") + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + String data = jsonObject.getString("data"); + List carts = JSON.parseObject(data, new TypeReference>() { + }); + return carts; + } + + public List selectByUserId(int userId) throws IOException { + RequestBody requestBody = RequestBody.create(userId+"",MediaType.parse("application/json;charset=UTF-8")); + Request request = new Request.Builder() + .url("http://" + Address.ip + ":8081/orange/shoppingCart/searchByUserId") + .post(requestBody) + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + String data = jsonObject.getString("data"); + List carts = JSON.parseObject(data, new TypeReference>() { + }); + return carts; + } + + public boolean insertCart(cart c) throws IOException { + String data = JSONObject.toJSONString(c); + RequestBody requestBody = RequestBody.create(data,MediaType.parse("application/json;charset=UTF-8")); + Request request = new Request.Builder() + .url("http://"+Address.ip+":8081/orange/shoppingCart/insert") + .post(requestBody) + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + return jsonObject.getBoolean("flag"); + } + + public boolean updateCart(cart c) throws IOException { + OkHttpClient client = new OkHttpClient(); + String data = JSONObject.toJSONString(c); + RequestBody requestBody = RequestBody.create(data,MediaType.parse("application/json;charset=UTF-8")); + Request request = new Request.Builder() + .url("http://"+Address.ip+":8081/orange/shoppingCart/update") + .post(requestBody) + .build(); + Response response = client.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + return jsonObject.getBoolean("flag"); + } +} diff --git a/orange_android/app/src/main/java/com/example/test/netrequest/messageOkHttp.java b/orange_android/app/src/main/java/com/example/test/netrequest/messageOkHttp.java index 148e496..e4aecca 100644 --- a/orange_android/app/src/main/java/com/example/test/netrequest/messageOkHttp.java +++ b/orange_android/app/src/main/java/com/example/test/netrequest/messageOkHttp.java @@ -3,10 +3,10 @@ package com.example.test.netrequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.example.test.entity.message; +import com.example.test.utils.Address; import java.io.IOException; -import okhttp3.Call; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; @@ -15,16 +15,16 @@ public class messageOkHttp { public message getMessage() throws IOException { // 获取消息 OkHttpClient okHttpClient = new OkHttpClient(); + message data = null; Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/message/consumeMessage") + .url("http://"+ Address.ip+":8081/orange/message/consumeMessage") .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = JSON.parseObject(response.body().string()); - message data = JSON.parseObject(jsonObject.getString("data"), message.class); - + data = JSON.parseObject(jsonObject.getString("data"), message.class); // 将获取到的消息设为已用 Request comsume = new Request.Builder() - .url("http://192.168.43.226:8081/orange/message/updateMessage") + .url("http://"+Address.ip+":8081/orange/message/updateMessage") .build(); Response execute = okHttpClient.newCall(comsume).execute(); return data; diff --git a/orange_android/app/src/main/java/com/example/test/netrequest/productOkHttp.java b/orange_android/app/src/main/java/com/example/test/netrequest/productOkHttp.java index c07308b..5934900 100644 --- a/orange_android/app/src/main/java/com/example/test/netrequest/productOkHttp.java +++ b/orange_android/app/src/main/java/com/example/test/netrequest/productOkHttp.java @@ -8,12 +8,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.example.test.entity.product; +import com.example.test.utils.Address; import java.io.IOException; import java.util.List; import java.util.Objects; -import okhttp3.Call; +import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; import okhttp3.Request; @@ -21,9 +22,8 @@ import okhttp3.RequestBody; import okhttp3.Response; public class productOkHttp { - + private OkHttpClient okHttpClient = new OkHttpClient(); public Bitmap getImg(String imgUrl) throws IOException { - OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(imgUrl) // .addHeader("Connection", "keep-alive") @@ -35,26 +35,41 @@ public class productOkHttp { return bitmap; } + + + + public product getProductById(int productId) throws IOException { + RequestBody requestBody = RequestBody.create(productId+"", MediaType.parse("application/json;charset=UTF-8")); + Request request = new Request.Builder() + .url("http://"+ Address.ip +":8081/orange/product/searchById") + .post(requestBody) + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + String data = jsonObject.getString("data"); + product p = JSON.parseObject(data, product.class); + return p; + } + + + //获取商品 public List getProduct() throws IOException { - OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/product/search") + .url("http://"+ Address.ip +":8081/orange/product/search") .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = JSON.parseObject(response.body().string()); String data = jsonObject.getString("data"); List products = JSON.parseObject(data, new TypeReference>() { }); - response.body().close(); return products; } //按时间排序 public List getProductOrderByTime() throws IOException { - OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/product/time") + .url("http://"+Address.ip+":8081/orange/product/time") .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = JSON.parseObject(response.body().string()); @@ -65,9 +80,8 @@ public class productOkHttp { } // 价格排序 public List getProductOrderByPrice() throws IOException { - OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/product/price") + .url("http://"+Address.ip+":8081/orange/product/price") .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = JSON.parseObject(response.body().string()); @@ -79,20 +93,16 @@ public class productOkHttp { // 上传图片 public boolean uploadImg(byte[] bytes) throws IOException { - OkHttpClient client = new OkHttpClient(); RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) .addFormDataPart("file", "baixiangguo.png", RequestBody.create(bytes)).build(); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/product/uploadCover") + .url("http://"+Address.ip+":8081/orange/product/uploadCover") .post(requestBody) .build(); - Response response = client.newCall(request).execute(); - Log.i("response", response.body().toString()); - if (response.isSuccessful()) { - return true; - }else { - return false; - } + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(response.body().string()); + return jsonObject.getBoolean("flag"); + } diff --git a/orange_android/app/src/main/java/com/example/test/netrequest/userOkHttp.java b/orange_android/app/src/main/java/com/example/test/netrequest/userOkHttp.java index de213a2..747308e 100644 --- a/orange_android/app/src/main/java/com/example/test/netrequest/userOkHttp.java +++ b/orange_android/app/src/main/java/com/example/test/netrequest/userOkHttp.java @@ -2,7 +2,9 @@ package com.example.test.netrequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.example.test.MainActivity; import com.example.test.entity.user; +import com.example.test.utils.Address; import java.io.IOException; @@ -22,7 +24,7 @@ public class userOkHttp { MediaType type = MediaType.parse("application/json;charset=utf-8"); RequestBody requestBody = RequestBody.create(JSONString, type); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/user/login") + .url("http://"+ Address.ip+":8081/orange/user/login") .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); @@ -38,7 +40,7 @@ public class userOkHttp { MediaType type = MediaType.parse("application/json;charset=utf-8"); RequestBody requestBody = RequestBody.create(jsonString, type); Request request = new Request.Builder() - .url("http://192.168.43.226:8081/orange/user/register") + .url("http://"+Address.ip+":8081/orange/user/register") .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); diff --git a/orange_android/app/src/main/java/com/example/test/utils/Address.java b/orange_android/app/src/main/java/com/example/test/utils/Address.java new file mode 100644 index 0000000..6510b3d --- /dev/null +++ b/orange_android/app/src/main/java/com/example/test/utils/Address.java @@ -0,0 +1,19 @@ +package com.example.test.utils; + +import android.util.Log; + +public class Address { + public static String ip = "192.168.64.1"; + public static String getImgIp(String url){ + StringBuilder sb = new StringBuilder(); + String[] result = url.split(" "); + for (int i = 0; i < result.length; i++) { + if(i==1){ + sb.append(ip).append(result[i]); + }else{ + sb.append(result[i]); + } + } + return sb.toString(); + } +} diff --git a/orange_android/app/src/main/res/drawable/add.png b/orange_android/app/src/main/res/drawable/add.png new file mode 100644 index 0000000000000000000000000000000000000000..446e0d04f72e016f1dd1db405c3b169c45e9b05b GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}iJmTwArbCx zuQ_rt2ne($@|kg~Z=cb9(y3F$x%X&(cTfH+!RF5$=bp23?GO@}7!$o>)yZ34Tn-G3 zECMrFqV_~BF5RBr^Y%a2jk^oxKR0v&i5G}lbiTcMYxREy);$6m2c;7fa|8Yh0xe_k MboFyt=akR{050h`Z~y=R literal 0 HcmV?d00001 diff --git a/orange_android/app/src/main/res/drawable/reduce.png b/orange_android/app/src/main/res/drawable/reduce.png new file mode 100644 index 0000000000000000000000000000000000000000..29d5c6af387236bae036bdddfab55f1ef63e5da1 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}(Vi}jArbCx zuO8%OP~>pAxY1nWpl*lc{SwOaJNIHQ0A10##T4Xz#4`#&yG zN?KRDo$*YLhm~wn+OyC73{SOpZ2Z4|-W)|H4uu8=rl(B$Th(j zhE^>k7ZyRaFr;0!>=P1#J{BRkshl@f^g(2_5EoJ5rh?%{yzdg#%YrU_6f9zMT=2TeSc;YX0(Cl%{@#lN7c*< zcqIn#IgZep=s@|5#SJ^pl`KS33CtJS;R_dmj<7*X*k$H?DlEbuOgNFo8x zWk2vV&VVXM&6)^z5}b6|4$tD&V+nXJr+{l&WXym$Z95D{;UWplmgo@WMFzu3kZFYV zC>w%66*_ZyCV#>kA_;hI;JoI}vl8;*Y_r1!ugD36>*akDwnJwsfgswI%S(Z(d=sG$ zVI#^VpeZ&kpg-qu+pNzP84}^#B33vP&W;)dJeLo^mZc5^-ZwdHGjrY;-D)u+ur5U6 zyRY;$7Z?k0MTQYhhAj26WYS7=JK7e!8?TzzDFZy!)#{U(VrW zaB`PXfg@2Wnbd8}^R}{9r9h2jAq%S9wR7}JH*@nY+ZU9)fizf*H|Ckvd#s&X!zj=d zdqv9mT!EoT0$!1u2>nUHrZ6c=uU+8FQk?gIR`D5CWlv(TD!1$c$07;Lm3XMiK_A*I zXosKzMt_Z(yiTbbgFZ}JFeSpHraXsMM!@2L-NTbA1;**d=Wz_-Yy`4gfpHK%g_*0U zmngqkOuB-!APgCQg>pZb6AlA=Q=J?CNkN#BhFR>VViMEP?2al#saCTCk_%BlAfgm! zx1WN{Qi{tetmrX{p^@z|GMiWFIj-Wdtmn9_LR|eCk_z>-mJBI3p8ETdiWz^`l2wc) zHl@mLgY$*g5zbfMlvb76=(hY*8MAp2yV`Ae_+)kaFj=))5HghdVe+pWSM1iEz%P8q V{vlX6@Gt-X002ovPDHLkV1gj>T-*Qv delta 856 zcmV-e1E>6l2Kxq(FnYx6O@tR zMhi_Qdllas-M6mX=*BndRx*iD=>r8HRM1Ssor=0pv0$W~QCGSWJ4bGsq?2?WnUoR- z0%7i*d%n5nKj;2KX!AvFj*n0PhL!JP<|Kg!0H~FpdkHsQCR@m=pFrlZWlse~!_>L< z5FsU^+P$FdbbpQ;mOcnZzIsonnrkfAn}(@B0I**^tSnQub+1ajZwx+Z_VVln<)@Fu%bzx=?0e>_yCkfu`td2T>qL~|&rA9>K z@o3t&<*M6tlU>H$DC=a0T`xU03Zl-Gp?qOF9kr+%-vw{G07rSEm7_-)j)=+ z%l^HIfq#<;RlB|v00mP&LBKTtpM|P*H3Iws&|xztcXejQmIC0#OtxPk8U^rMsM^Z^ z4xr@}cY7?^#bE&gTXDHlIS->2Jb)Keoj341jN}5&0WWLToFxPMdIL8Q!|4HJeTT7RjNxZ8>wSw)kRg`Fsa! + + + \ No newline at end of file diff --git a/orange_android/app/src/main/res/layout/cart_listview_item.xml b/orange_android/app/src/main/res/layout/cart_listview_item.xml new file mode 100644 index 0000000..734e98d --- /dev/null +++ b/orange_android/app/src/main/res/layout/cart_listview_item.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/orange_android/app/src/main/res/layout/home_goods_fruit_item.xml b/orange_android/app/src/main/res/layout/home_goods_fruit_item.xml index a7a520b..6b2e861 100644 --- a/orange_android/app/src/main/res/layout/home_goods_fruit_item.xml +++ b/orange_android/app/src/main/res/layout/home_goods_fruit_item.xml @@ -15,10 +15,21 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="20dp"/> - + android:gravity="center"> + + + \ No newline at end of file diff --git a/orange_android/app/src/main/res/layout/navigation_cart.xml b/orange_android/app/src/main/res/layout/navigation_cart.xml index 2ab9176..0a8e95e 100644 --- a/orange_android/app/src/main/res/layout/navigation_cart.xml +++ b/orange_android/app/src/main/res/layout/navigation_cart.xml @@ -4,53 +4,8 @@ android:layout_height="match_parent" android:orientation="vertical" android:background="@color/white"> - - - - - - - - -