微布开发-二手市场开发思路(小程序+Java后端)
小程序端:
相关参数:
- allList:全部商品列表
- askBuyList:求购商品列表
- sellLis:出售商品列表
开发思路如下:
物品列表拉取:
- 默认获取全部所有的商品list用于初始化加载页面
- 滑动一级分类,确认一级分类type类型
- Type = 转卖
- 初始化
- 默认转卖一级分类的所有商品列表
- 滑动到二级分类,根据二级分类类型对应的categoryBid拉取列表
- 下拉刷新
- 若为一级分类的所有商品列表,categoryBid = null
- 若具体到二级分类的具体类型,categoryBid = 对应的二级分类bid
- 上滑加载
- 根据一级分类和二级分类(categoryBid )的类别确定获取什么类型的list并且赋值到allList/sellList/askBuyList
- 初始化
- Type = 求购
- 初始化
- 默认求购一级分类的所有商品列表
- 滑动到二级分类,根据二级分类类型对应的categoryBid拉取列表
- 下拉刷新
- 若为一级分类的所有商品列表,categoryBid = null
- 若具体到二级分类的具体类型,categoryBid = 对应的二级分类bid
- 上滑加载
- 根据一级分类和二级分类的类别确定获取什么类型的list并且赋值到allList/sellList/askBuyList
- 初始化
- 一级分类切换的时候由于默认的是一级分类的所有商品列表拉取,所以一级分类切换的时候,修改对应的二级分类bid为空,不然切换的时候就相当于执行了
select * from hand where type = '***' and categoryBid = '***' order by id desc
;
- Type = 转卖
发布、删除、编辑操作,根据接口以及业务场景传递对应的参数即可。其中可能需要对部分参数进行参数校验、长度限制等,前后端都会做限制。
物品详情:
物品名、物品介绍、物品照片、物品价格、交易地址、物品数量、物品类型、其他联系方式:QQ/微信
Java后端:
表结构设计:(仅展示部分必要字段,可根据自己的需求自定义设计其他字段)
开发思路:
获取商品列表/详情(都是封装在一个接口,根据根据不同场景,前端传的参数不一样,获取不同的查询结果):
- 校验用户身份,主要是从userBid、schoolBid以及token是否被篡改方向进行校验。
- 根据条件筛选结果。
- 全部商品:根据id进行倒序分页查询,主要参数:商品主键id
- 根据type类型(确定是转卖/求购)
- 二级分类查询:使用andCategoryBidsEqualTo方法实现匹配,分页返回list,主要参数:type(求购/转卖)+categorybid(二级分类类别id)
- 查询某物品的详情:根据targetBid字段,进行where子句查询,获取返回结果,参数:targetBid(需要查询的物品的主键id)
- 关键字模糊查询:根据传过来的关键字进行左右模糊查询,但是因为索引遇到左右模糊查询的时候会出现索引失效,所以后面可能需要通过es组件优化模糊查询速率。
- 查询自己发布过的商品:根据用户id进行where子句查询,获取返回结果,主要参数:tagetUserBid
- 返回操作码以及结果
添加商品
- 校验用户身份。
- 身份校验成功,进行添加操作:
- 判断必传参数:type、地址、联系方式、物品的名字、二级分类类别id、出售/求购价格、物品描述、是否同步到说说(后续可以改成异步操作防止主线程阻塞)、物品数量
- 可选择性传递参数:物品照片url
- 存入数据库
- 返回操作码以及状态
删除商品
- 校验用户身份。
- 判断传递参数是否有效:
- 判断商品id是否为空
- 判断商品是否存在
- 判断是不是本人操作
- 进行软删操作,即设置isdelete=1并更新数据库
- 返回操作码及结果
更新商品信息:
- 校验用户信息
- 判断参数是否有效
- 判断请求参数是否为空
- 判断是否有此商品信息
- 判断是不是本人操作
- 进行相关参数更新操作
- 返回操作码及结果
联系他人:
联系他人涉及:扣除发起者能量值、
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HUT菜鸟小八的博客!
评论