经过上篇文章的准备工作,现在就可以正式开始写商城了
- 后台管理
后台管理分以下几大块 : 用户 、 商品管理 、 订单管理、优惠券及设置。由于小程序云函数有最多50个的限制,故而需要把云函数按照木块综合处理(刚开始的时候没注意,写着写着方法数量超了,没办法只好又把所有的方法汇总分模块了)
1,用户管理,用户管理包括 用户登录注册、更新用户信息(getuserInfo提供的信息,可根据情况保存) ,获取用户列表,获取打印员(本小程序接入快递助手),更新打印员,添加虚拟用户,删除虚拟用户,获取虚拟用户 ,
创建名字为 user_manage的函数, req_type对应函数可根据需求实现
user_manage
// 云函数入口函数
exports.main = async(event, context) => {
const wxContext = cloud.getWXContext()
const result={}
const req_type = event.req_type
const data = event.data
switch (req_type) {
case "login":
return await login(wxContext)
case "up_data_msg":
return await updataUserMsg(wxContext, data)
case "get_user":
return await getUserList(data)
case "get_printer":
return await getPrinter()
case "up_printer":
return await upPrinter(data)
case "add_invented_user":
for (let key in data) {
if (!keyIsInPara(key, data[key])) {
result.code = 202
result.msg = "参数错误"
return result
}
}
return await addUser(data)
case "del_invented_user":
for (let key in data) {
if (!keyIsInPara(key, data[key])) {
result.code = 202
result.msg = "参数错误"
return result
}
}
return await delUser(data)
case "get_invented_user":
for (let key in data) {
if (!keyIsInPara(key, data[key])) {
result.code = 202
result.msg = "参数错误"
return result
}
}
return await getInventedUser(data)
case "cleant_invented_user":
for (let key in data) {
if (!keyIsInPara(key, data[key])) {
result.code = 202
result.msg = "参数错误"
return result
}
}
return await cleanUser(data)
default :
result.code = 203
result.msg = "req_type 不存在"
return result
}
}
2,商品管理
商品管理包括 商品的增删改查复制等等
创建名字为 goods_manage的函数, req_type对应函数可根据需求实现
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const result = {}
const req_type = event.req_type
const data = event.data
switch (req_type) {
case "add_clazz"://添加分类
return await addClazz(data)
case "del_clazz"://删除分类
return await delClazz(data)
case "edit_clazz"://编辑分类
return await editClazz(data)
case "get_clazz"://获取分类列表
return await getClazz(data)
case "get_clazz_item"://获取单个分类信息
return await getClazzItem(data)
// case "clean_clazz":
// return await cleanClazz()
case "add_goods"://添加商品
return await addGoods(data)
case "del_goods"://删除商品
return await delGoods(data)
case "edit_goods"://编辑商品
return await editGoods(data)
case "get_goods_web"://获取商品列表(后台管理用)
return await getGoodsForWeb(data)
case "get_goods_wechat"://获取商品列表(小程序理用)
return await getGoodsForWechat()
case "get_goods_by_clazz"://根据分类获取商品列表
return await getGoodsBylazz(data)
case "get_goods_info"://商品详情
return await getGoodsInfo(data)
case "copy_goods"://复制商品
return await copyGoods(data)
//添加评论开始
case "add_comment_web"://添加商品评论(后台管理用)
return await addCommentWeb(data)
case "get_comment_web"://获取商品评论(后台管理用)
return await getCommentWeb(data)
case "del_comment"://删除评论
return await delComment(data)
default:
result.code = 203
result.msg = "req_type 不存在"
return result
}
}
3,订单管理(暂未写到后续补上)
4,设置
设置包括优惠券 规则图文 支付方式 发货地址 等等一些操作
创建名为setting_manage的函数,req_type对应函数可根据需求实现
// 云函数入口函数
exports.main = async(event, context) => {
const result = {}
const req_type = event.req_type
const data = event.data
switch (req_type) {
case "add_banner"://添加首页banner
return await addBanner(data)
case "del_banner"://删除banner
return await delBanner(data)
case "edit_banner"://编辑banner
return await editBanner(data)
case "get_banner"://获取banner列表
return await getBanner()
case "get_banner_item"://获取单个banner信息
return await getBannerItem(data)
case "clean_banner"://请空banner
return await cleanBanner()
// 一下为图文规则接口
case "add_rule"://添加图文规则
return await addUseingHelp(data)
case "del_rule"://删除图文规则
return await delUseingHelp(data)
case "edit_rule"://修改图文规则
return await editUseingHelp(data)
case "get_rule"://获取图文规则
return await getUseingHelp()
case "get_rule_by_type"://根据type获取图文规则
return await getUseingHelpItemByType(data)
case "get_rule_item"://获取单个图文规则
return await getUseingHelpItem(data)
case "clean_rule"://清空图文规则
return await cleanUseingHelp()
//发货地址(快递助手发货时用)
case "get_send_address"://获取发货地址
return await getSendAddress()
case "set_send_address"://设置发货地址
return await editSendAddress(data)
//支付方式
case "get_pay_way"://获取支付方式(发货方式需小程序集合内置几种发货方式,后台只可控制起是否可用)
return await getPayWay()
case "edit_pay_way":
return await editPayWay(data)
//运费模板
case "get_postage"://
return await getPostageList()
case "add_postage":
return await addPostage(data)
case "del_postage":
return await delPostage(data)
//优惠券
case "add_coupon":
return await addCoupon(data)
case "get_coupon_list":
return await getCouponList(data)
case "get_coupon":
return await getCoupon(data)
case "del_coupon":
return await delCoupon(data)
case "edit_coupon":
return await editCoupon(data)
case "get_coupon_user":
return await getCouponUser(data)
default:
result.code = 203
result.msg = "req_type 不存在"
return result
}
}
后台管理调小程序云函数详见 http调用云函数API文档