# APIForGroupShoppingMall_团购商城后台接口 **Repository Path**: HGJing/H5_SHOPPING_API ## Basic Information - **Project Name**: APIForGroupShoppingMall_团购商城后台接口 - **Description**: 本项目是本人早期大学期间的一个前后端分离的 APP 项目 - 团购商城(林井药房)的后台接口实现。采用了 Spring MVC + MyBatis 的技术架构,整体 API 风格遵循 RestFUL 风格,实现了团购商城的一些基础逻辑。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://palerock.cn/projects/006Fk27IOTD - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2017-01-13 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # APIForGroupShoppingMall_团购商城后台接口 > 本项目是本人早期大学期间的一个前后端分离的 APP 项目 - 团购商城(林井药房)的后台接口实现。采用了 Spring MVC + MyBatis 的技术架构,整体 API 风格遵循 RestFUL 风格,实现了团购商城的一些基础逻辑。 在编译部署该项目时 MySql、服务器需要自行配置,sql 文件位于源码 sql 文件夹中。 由于项目的架构问题,该项目需要基于 Tomcat 环境运行,将本项目编译打包后放在 Tomcat 的 WebApp 目录里并重启 Tomcat 便可以部署该项目。(后期会考虑出一个 release 包放到 git 中) [API 演示 Demo 地址](https://palerock.cn/view/files/TDJGd2FWOTBaWE4wTDNOb2IzQndhVzVuTFcxaGJHd3RZWEJwTCtlWnUrbVpodWV1Z09XTmxlYThsT2VrdWk1b2RHMXM=)(不输入账号密码可以直接登录,也可以自行注册) [官网地址: 苍石居](https://palerock.cn/projects/006Fk27IOTD) ## API 文档 ### 目录(整理中) #### 注册API: ``` method:POST url:'http(s)://*.*/h5_back/register' data: { // 发送json参数 'userPhoneNumber':'' // 用户电话号码 'userLoginPsw':'' // 用户登录密码 } 返回: { error: // '0'则为操作成功 id: // 操作成功返回注册后的id mes: // 操作后返回的信息 } ``` #### 登录API: ``` method:POST url:'http(s)://*.*/h5_back/login' data: { // 发送json参数 'userPhoneNumber':'' // 用户电话号码 'userLoginPsw':'' // 用户登录密码 } 返回: { token: // 返回的登录用户记录密文,需存入缓存,注销时需清除该部分缓存 // 在用户的每一次请求需要在请求头部加上该记录密文,详情看登录状态检测部分演示 error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 登录状态API: ``` method:GET url:'http(s)://*.*/h5_back/user/isLogin' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 无 } 返回: { data: // 返回的登录用户对象简单属性 error: // '0'则为操作成功 // 201:头部格式错误 // 202:token 密文是无效的,需要重新登录 mes: // 操作后返回的信息 } ``` #### 获取用户信息API: ``` method:GET url:'http(s)://*.*/h5_back/user/show-user-info' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 无 } 返回: { data: // 返回的用户信息 { userAge: //用户年龄 userAvatar: //用户头像图片名 userDetail: //用户详细描述 userId: //用户id userNickName: //用户昵称 userPhoneNumber: //用户电话 userSex: //用户性别 0:男,1:女 } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 修改用户信息API: ``` method:POST url:'http(s)://*.*/h5_back/user/edit-user-info' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 userAge: //用户年龄 userAvatar: //用户头像图片名 userDetail: //用户详细描述 userId: //用户id userNickName: //用户昵称 userPhoneNumber: //用户电话 userSex: //用户性别 0:男,1:女 //多余其他参数不做处理 } 返回: { error: // '0'则为操作成功 mes: // 操作返回的信息 } ``` #### 用户上传图片API: ``` method:POST url:'http(s)://*.*/h5_back/user/image-upload' 请求头: Authorization:'Bearer '+token 密文记录 data: { image: // 图片转化为base64编码的字符串 // 需要在上传图片前对图片做裁剪处理为100x100 // 裁剪图片在下面有详细的演示 } 返回: { data: // 返回的上传成功的文件名(需要被处理存在userAvatar里) error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取所有团信息API: ``` method:GET url:'http(s)://*.*/group/find-groups' 请求头: 无要求 params: { // 发送params参数(不附加参数即为查找所有) line: // 获取的团信息的起始位置 next: // 获取的团信息的个数 注: 1、起始位置从0开始,按照时间由近及远排序 2、如果只使用其中一个参数,无论是line还是next,都是获得团的个数,并且从位置0开始 3、若都不使用,则返回所有符合条件的团信息 goodsTypeId: // 获取团的类型id(可选),无则返回所有类型 keyWord: // 指定关键字查询(可选),无则返回所有符合条件的团 } 返回: { dataList: // 返回的团数据列表 { groupAliveHours: // 团存活周期(小时) groupGoodType: // 团类型id groupId: // 团id groupImgs: // 团封面图片(字符串) 需要转化为数组后使用 groupInitiatorId: // 团发起者id groupNowNumber: // 当前参团人数 groupPostage: // 团商品邮费 groupPrice: // 团商品单价 groupPriceOriginal: // 团商品原价 groupSynopsis: // 团简介 groupTargetNumber: // 团目标人数 groupTitle: // 团标题 groupStatus: // 团状态 groupInitTime: // 发团时间(时间戳) } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取用户已发团总数API: ``` method:GET url:'http(s)://*.*/group/find-all-groups-count' 请求头: 无要求 params: { // 发送params参数(不附加参数即为查找所有) goodsTypeId: // 获取团的类型id(可选),无则返回所有类型 keyWord: // 指定关键字查询(可选),无则返回所有符合条件的团 } 返回: { data: // 团数量 error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取一个团详细信息API: ``` method:GET url:'http(s)://*.*/group/find-groups' 请求头: 无要求 params: { // 发送params参数(不附加参数即为查找所有) groupId: // 你想获得的团的团id } 返回: { dataList: // 返回的团数据列表 { groupAliveHours: // 团存活周期(小时) groupGoodType: // 团类型id groupId: // 团id groupImgs: // 团封面图片(字符串) 需要转化为数组后使用 groupInitiatorId: // 团发起者id groupNowNumber: // 当前参团人数 groupPostage: // 团商品邮费 groupPrice: // 团商品单价 groupPriceOriginal: // 团商品原价 groupSynopsis: // 团简介 groupDetail: // 团详情 groupInitTime: // 发团时间(时间戳) groupFormat : // 团规格 json字符串 需转化为js对象后使用 groupTargetNumber: // 团目标人数 groupTitle: // 团标题 groupStatus: // 团状态 -1.审核中 0.拼团中 1.拼团成功 2.拼团失败 groupInitiator: // 团发起者 { userAvatar // 用户头像 userId // 用户id userPhoneNumber // 用户电话号 userPower // 用户权限 1.普通会员 2.VIP 3.管理员 0.不能发团' userSex // 用户性别 0.男 1.女 userStatus // 用户状态 } } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 参团功能API: ``` method:POST url:'http(s)://*.*/h5_back/user/group/join-group' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送json参数 groupId // 欲参加团的团id addressId // 参团后生成的订单的订单预留地址 } 返回: { data: //返回生成后的订单信息 { orderId //生成订单的订单号 } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取团商品类型API: ``` method:GET url:'http(s)://*.*/group/find-all-type' 请求头: 无要求 data: { // 发送json参数 无 } 返回: { dataList: // 返回的商品类型列表 { goodsTypeFormat: //该商品类型的默认规格,是一个只含规格名的数组 //如:['产品名称','保修期','产品功耗'] goodsTypeId: //该商品类型的id,在和后台交互时需要使用 goodsTypeName: //该商品的类型名 } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 发起团信息API: ``` method:POST url:'http(s)://*.*/user/group/add-group' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 groupTitle: // 团标题 30字符 groupSynopsis: // 团简介 80字符 groupDetail: // 团详细介绍 2000字符 groupFormat: // 团规格,分为两部分,一部分来自商品默认规格,一部分来自用户自定义规格 如:{"产品名称":"飞机","类型":"载人航空"} groupGoodType: // 团商品类型 groupImgs: // 团封面图片,一个数组转化而成的字符串,储存的是封面图片的地址 如:["20170204063229462-211980771.png","201702040632363501875513740.png"] groupPrice: // 团单价 groupPriceOriginal: // 团原单价 groupTargetNumber: // 团目标人数 groupPostage: // 邮费,可选,默认6元 //多余其他参数不做处理 } 返回: { error: // '0'则为操作成功 id: // 返回操作成功后团的id mes: // 操作返回的信息 } ``` #### 获取用户余额API: ``` method:GET url:'http(s)://*.*/h5_back/user/show-balance' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 无 } 返回: { data: // 返回的登录用户对象简单属性 { userId:用户id userBalance:用户余额 } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 管理员充值用户余额API: ``` method:POST url:'http(s)://*.*/h5_back/user/recharge-balance' 请求头: Authorization:'Bearer '+token 密文记录 //需要验证为管理员 params: { // 发送json参数 value: // 浮点型,充值金额 userId: // 用户id,充值用户的id info: // 备注信息(可选) } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 修改用户密码API: ``` method:POST url:'http(s)://*.*/h5_back/user/modify-psw' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送json参数 pswType: // 密码类型(整形) 0:登录密码 1:支付密码 oldPsw: // 原密码 newPsw: // 新密码 } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取用户账单API: ``` method:GET url:'http(s)://*.*/h5_back/user/show-bills' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送json参数 无 } 返回: { dataList: //账单信息列表 { billAddTime: // 账单生成时的时间戳 billBalance: // 账单生成后的余额 billChangeType: // 账单金额变动类型 -1为支出 1为收入 billChangeValue: // 账单变动金额 billId: // 账单id billOrigin: // 账单来源或用途 billInfo: // 账单备注 userId: // 账单绑定的用户id } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取用户已发团信息API: ``` method:GET url:'http(s)://*.*/user/group/find-init-groups' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数(不附加参数即为查找所有) groupStatus // 团状态码(可选,没有这个参数则获取所有状态下的团) -1:审核中 0:拼团中 1:拼团成功 2:拼团失败 line: // 获取的团信息的起始位置 next: // 获取的团信息的个数 注: 1、起始位置从0开始,按照时间由近及远排序 2、如果只使用其中一个参数,无论是line还是next,都是获得团的个数,并且从位置0开始 } 返回: { dataList: // 返回的团数据列表 { groupAliveHours: // 团存活周期(小时) groupGoodType: // 团类型id groupId: // 团id groupImgs: // 团封面图片(字符串) 需要转化为数组后使用 groupInitiatorId: // 团发起者id groupNowNumber: // 当前参团人数 groupPostage: // 团商品邮费 groupPrice: // 团商品单价 groupPriceOriginal: // 团商品原价 groupSynopsis: // 团简介 groupTargetNumber: // 团目标人数 groupTitle: // 团标题 groupInitTime: // 发团时间(时间戳) groupStatus: // 团状态 } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取指定状态用户已发团总数API: ``` method:GET url:'http(s)://*.*/user/group/find-init-groups-count' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 groupStatus // 团状态码(可选,没有这个参数则获取所有状态下的团总数) -1:审核中 0:拼团中 1:拼团成功 2:拼团失败 } 返回: { data: // 团数量 error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 添加地址信息API: ``` method:POST url:'http(s)://*.*/h5_back/user/add-address' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 'addressInfo': //详细地址信息 'addressPhoneNum': //联系电话 'addressNickName': //称呼 } 返回: { id: // 添加成功的地址id error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取地址信息API: ``` method:GET url:'http(s)://*.*/h5_back/user/show-address' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 无 } 返回: { dataList: // 返回的地址信息列表 { address: { addressId: //地址id userId: //用户id addressInfo: //详细地址信息 addressPhoneNum: //联系电话 addressNickName: //称呼 } ... } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 删除地址信息API: ``` method:POST url:'http(s)://*.*/h5_back/user/delete-address' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 addressId: //地址id userId: //用户id addressInfo: //详细地址信息 addressPhoneNum: //联系电话 addressNickName: //称呼 } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 修改地址信息API: ``` method:POST url:'http(s)://*.*/h5_back/user/edit-address' 请求头: Authorization:'Bearer '+token 密文记录 data: { // 发送json参数 addressId: //地址id userId: //用户id addressInfo: //详细地址信息 addressPhoneNum: //联系电话 addressNickName: //称呼 } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取一个订单详细信息API: ``` method:GET url:'http(s)://*.*/user/order/find-order-deeply' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 无 } 返回: { dataList: // 返回的团数据列表 { orderId: // 订单id orderUserId: // 商家id orderMoney: // 订单金额 orderAddressId: // 订单地址id orderAddTime: // 订单生成时间 orderStatus: // 订单状态 -1.失效 0.未付款 1.付款成功,等待拼团 2.拼团成功,等待发货 3.交易成功 } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 订单支付API: ``` method:POST url:'http(s)://*.*/h5_back/user/order/pay' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送json参数 orderId // 订单id payPsw // 支付密码 } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取审核中的团api: ``` 需要操作用户为管理员 method:'get', url:'http(s)://*.*/h5_back/user/group/find-checked-groups', headers:'headers : { 'Authorization' : 'Bearer ' + token //token:用户信息口令 }', params:{ line: 起始位置 next: 获取团的个数 1、起始位置从0开始,按照时间由近及远排序 2、如果只使用其中一个参数,无论是line还是next,都是获得团的个数,并且从位置0开始 3、若都不使用,则返回所有符合条件的团信息 } 返回值: error: 返回0则为调用成功 mes: 返回文字提示信息 dataList: 返回的团信息列表 // 注意,该项获取的团信息只有概要,如:所有团列表api获取中的属性,需要有点击查看详情的功能 ``` #### 获取用户参团信息API: ``` method:GET url:'http(s)://*.*/user/group/show-joined-groups' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数(不附加参数即为查找所有) groupStatus // 团状态码(可选,没有这个参数则获取所有状态下的团) -1:审核中 0:拼团中 1:拼团成功 2:拼团失败 line: // 获取的团信息的起始位置 next: // 获取的团信息的个数 注: 1、起始位置从0开始,按照时间由近及远排序 2、如果只使用其中一个参数,无论是line还是next,都是获得团的个数,并且从位置0开始 } 返回: { dataList: // 返回的团数据列表 { groupAliveHours: // 团存活周期(小时) groupGoodType: // 团类型id groupId: // 团id groupImgs: // 团封面图片(字符串) 需要转化为数组后使用 groupInitiatorId: // 团发起者id groupNowNumber: // 当前参团人数 groupPostage: // 团商品邮费 groupPrice: // 团商品单价 groupPriceOriginal: // 团商品原价 groupSynopsis: // 团简介 groupTargetNumber: // 团目标人数 groupTitle: // 团标题 groupInitTime: // 发团时间(时间戳) groupStatus: // 团状态 } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取某个团的所有订单API:(只允许团发起者获取,在发货的时候用) ``` method:GET url:'http(s)://*.*/user/order/show-group-orders' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 groupId // 团id } 返回: { data: { // 订单列表信息,参考用户订单列表获取 } error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 发货功能API:(只允许团发起者使用) ``` method:POST url:'http(s)://*.*/user/order/order-sent-out' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 orderId // 欲发货的订单id } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 确认收货功能API: ``` method:POST url:'http(s)://*.*/user/order/order-received' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 orderId // 确认收货的订单id } 返回: { error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取用户所有订单列表API: ``` method:GET url:'http(s)://*.*/user/order/show-user-orders' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 无 } 返回: { dataList: // 返回的团数据列表 { orderId: // 订单id userId: // 用户id groupId: // 团id orderUserId: // 商家id orderMoney: // 订单金额 orderAddressId: // 订单地址id orderAddTime: // 订单生成时间 orderStatus: // 订单状态 -1.失效 0.未付款 1.付款成功,等待拼团 2.拼团成功,等待发货 3.已发货 4.交易成功 } ... error: // '0'则为操作成功 mes: // 操作后返回的信息 } ``` #### 获取一个订单详细信息API(包含订单绑定的团和地址信息): ``` method:GET url:'http(s)://*.*/user/order/find-order-deeply' 请求头: Authorization:'Bearer '+token 密文记录 params: { // 发送params参数 orderId: // 你想获得的订单的订单id } 返回: { data: // 返回的团数据列表 { orderId: // 订单id orderUserId: // 商家id orderMoney: // 订单金额 orderAddressId: // 订单地址id orderAddTime: // 订单生成时间 orderStatus: // 订单状态 -1.失效 0.未付款 1.付款成功,等待拼团 2.拼团成功,等待发货 3.交易成功 address: // 订单绑定的地址信息 { addressId // 地址id addressInfo // 详细地址 addressNickName // 称呼 addressPhoneNum // 联系电话 userId // 绑定用户id } group: // 订单绑定的地址信息 { ... // 参展获取所有团列表中单个团的属性 } } //注意 error: // '0'、'1'都为操作成功 { 0:查看该订单详情的是该订单所绑定的用户 1:查看该订单详情的是该订单所绑定的商家 } mes: // 操作后返回的信息 } ``` #### 获取与用户有关的所有团 ``` /user/group/show-all-groups ``` #### 获取商家订单列表 ``` /user/order/show-seller-orders ```