外卖CPS红包小程序源码分享

外卖cps带分销返利源码

饿了么红包、美团优惠券开发(外卖cps,三级裂变源码)

源代码地址

http://y.mybei.cn

搭建步骤

  • 下载以上源代码到本地
    http://y.mybei.cn

截图

步骤

  • 下载以上源代码到本地
    http://www.mybei.cn
  • 修改为你自己的微信小程序,打开 /dist/pages/ele/index.js
  • 微信小程序->开发管理->开发设置 添加 request的域名: 地址:
    https://mp.weixin.qq.com/wxamp/devprofile/get_profile?token=271531762&lang=zh_CN
  • 小程序管理后台配置你的链接
    后台地址: http://q.mybei.cn
  • 进去之后选择小程序管理->无裂变小程序管理->添加小程序->填入你自己的链接
  • 微信开发者工具,导入项目,提交审核

const Base = require(’./base.js’);
const moment = require(‘moment’);
const fs = require(‘fs’);
const path = require(“path”);
const qiniu = require(‘qiniu’);
module.exports = class extends Base {
/**
* index action
* @return {Promise} []
*/
async indexAction() {
const page = this.get(‘page’) || 1;
const size = this.get(‘size’);
const name = this.get(‘name’) || ‘’;
const model = this.model(‘goods’);
const data = await model.where({
name: [‘like’, %${name}%],
is_delete: 0
}).order([‘sort_order asc’]).page(page, size).countSelect();
// let newData = data;
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
}
async getExpressDataAction() {
let kd = [];
let cate = [];
const kdData = await this.model(‘freight_template’).where({
is_delete: 0
}).select();
for (const item of kdData) {
kd.push({
value: item.id,
label: item.name
})
}
const cateData = await this.model(‘category’).where({
parent_id: 0
}).select();
for (const item of cateData) {
cate.push({
value: item.id,
label: item.name
})
}
let infoData = {
kd: kd,
cate: cate
};
return this.success(infoData);
}
async copygoodsAction() {
const goodsId = this.post(‘id’);
let data = await this.model(‘goods’).where({
id: goodsId
}).find();
delete data.id;
data.is_on_sale = 0;
let insertId = await this.model(‘goods’).add(data);
let goodsGallery = await this.model(‘goods_gallery’).where({
goods_id: goodsId,
is_delete:0,
}).select();
for (const item of goodsGallery) {
let gallery = {
img_url: item.img_url,
sort_order: item.sort_order,
goods_id: insertId
}
await this.model(‘goods_gallery’).add(gallery);
}
return this.success(insertId);
}
async updateStock(goods_sn, goods_number) {
think.logger.info(‘存在,现在就更新’);
await this.model(‘product’).where({
goods_sn: goods_sn
}).update({
goods_number: goods_number
});
}
async updateGoodsNumberAction() {
let all_goods = await this.model(‘goods’).where({
is_delete: 0,
is_on_sale: 1
}).select();
for (const item of all_goods) {
let goodsSum = await this.model(‘product’).where({
goods_id: item.id
}).sum(‘goods_number’);
await this.model(‘goods’).where({
id: item.id
}).update({
goods_number: goodsSum
});
await think.timeout(2000);
}
return this.success();
}
async onsaleAction() {
const page = this.get(‘page’) || 1;
const size = this.get(‘size’);
const model = this.model(‘goods’);
const data = await model.where({
is_delete: 0,
is_on_sale: 1
}).order([‘sort_order asc’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
// if (info.parent_id != 0) {
// const parentInfo = await this.model(‘category’).where({id: info.parent_id}).find();
// item.category_p_name = parentInfo.name;
// }
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
}
async outAction() {
const page = this.get(‘page’) || 1;
const size = this.get(‘size’);
const model = this.model(‘goods’);
const data = await model.where({
is_delete: 0,
goods_number: [’<=’, 0]
}).order([‘sort_order asc’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
}
async dropAction() {
const page = this.get(‘page’) || 1;
const size = this.get(‘size’);
const model = this.model(‘goods’);
const data = await model.where({
is_delete: 0,
is_on_sale: 0
}).order([‘id DESC’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
}
async sortAction() {
const page = this.get(‘page’) || 1;
const size = this.get(‘size’);
const model = this.model(‘goods’);
const index = this.get(‘index’);
if (index == 1) {
const data = await model.where({
is_delete: 0
}).order([‘sell_volume DESC’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
} else if (index == 2) {
const data = await model.where({
is_delete: 0
}).order([‘retail_price DESC’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
} else if (index == 3) {
const data = await model.where({
is_delete: 0
}).order([‘goods_number DESC’]).page(page, size).countSelect();
for (const item of data.data) {
const info = await this.model(‘category’).where({
id: item.category_id
}).find();
item.category_name = info.name;
if (item.is_on_sale == 1) {
item.is_on_sale = true;
} else {
item.is_on_sale = false;
}
if (item.is_index == 1) {
item.is_index = true;
} else {
item.is_index = false;
}
let product = await this.model(‘product’).where({
goods_id: item.id,
is_delete: 0
}).select();
for (const ele of product) {
let spec = await this.model(‘goods_specification’).where({
id: ele.goods_specification_ids,
is_delete: 0
}).find();
ele.value = spec.value;
ele.is_on_sale = ele.is_on_sale ? “1” : “0”;
}
item.product = product;
}
return this.success(data);
}
}
async saleStatusAction() {
const id = this.get(‘id’);
const status = this.get(‘status’);
let sale = 0;
if (status == ‘true’) {
sale = 1;
}
const model = this.model(‘goods’);
await model.where({
id: id
}).update({
is_on_sale: sale
});
await this.model(‘cart’).where({
goods_id: id
}).update({
is_on_sale: sale,
checked: sale
});
}
async productStatusAction() {
const id = this.get(‘id’);
const status = this.get(‘status’);
const model = this.model(‘product’);
await model.where({
id: id
}).update({
is_on_sale: status
});
// 4.14更新
await this.model(‘cart’).where({
product_id: id,
is_delete: 0
}).update({
is_on_sale: status
})
}
async indexShowStatusAction() {
const id = this.get(‘id’);
const status = this.get(‘status’);
let stat = 0;
if (status == ‘true’) {
stat = 1;
}
const model = this.model(‘goods’);
await model.where({
id: id
}).update({
is_index: stat
});
}
async infoAction() {
const id = this.get(‘id’);
const model = this.model(‘goods’);
const data = await model.where({
id: id
}).find();
let category_id = data.category_id;
let infoData = {
info: data,
category_id: category_id,
};
return this.success(infoData);
}
async getAllSpecificationAction() {
const specInfo = await this.model(‘specification’).where({
id: [’>’, 0]
}).select();
let specOptionsData = [];
for (const spitem of specInfo) {
let info = {
value: spitem.id,
label: spitem.name
};
specOptionsData.push(info);
}
return this.success(specOptionsData);
}
async getAllCategory1Action() { // 我写的算法
const model = this.model(‘category’);
const data = await model.where({
is_show: 1,
level: ‘L1’
}).select();
const c_data = await model.where({
is_show: 1,
level: ‘L2’
}).select();
let newData = [];
for (const item of data) {
let children = [];
for (const citem of c_data) {
if (citem.parent_id == item.id) {
children.push({
value: citem.id,
label: citem.name
})
}
}
newData.push({
value: item.id,
label: item.name,
children: children
});
}
return this.success(newData);
}
async getAllCategoryAction() { // 晓玲的算法,她要
const model = this.model(‘category’);
const data = await model.where({
is_show: 1,
level: ‘L1’
}).field(‘id,name’).select();
let newData = [];
for (const item of data) {
let children = [];
const c_data = await model.where({
is_show: 1,
level: ‘L2’,
parent_id: item.id
}).field(‘id,name’).select();
for (const c_item of c_data) {
children.push({
value: c_item.id,
label: c_item.name
})
}
newData.push({
value: item.id,
label: item.name,
children: children
});
}
return this.success(newData);
}
async storeAction() {
const values = this.post(‘info’);
const specData = this.post(‘specData’);
const specValue = this.post(‘specValue’);
const cateId = this.post(‘cateId’);
const model = this.model(‘goods’);
let picUrl = values.list_pic_url;
let goods_id = values.id;
values.category_id = cateId;
values.is_index = values.is_index ? 1 : 0;
values.is_new = values.is_new ? 1 : 0;
let id = values.id;
think.logger.info("===========================");
if (id > 0) {
await model.where({
id: id
}).update(values);
await this.model(‘cart’).where({
goods_id: id
}).update({
checked: values.is_on_sale,
is_on_sale: values.is_on_sale,
list_pic_url: picUrl,
freight_template_id: values.freight_template_id
});
await this.model(‘product’).where({
goods_id: id
}).update({
is_delete: 1
});
await this.model(‘goods_specification’).where({
goods_id: id
}).update({
is_delete: 1
});
for (const item of specData) {
if (item.id > 0) {
await this.model(‘cart’).where({
product_id: item.id,
is_delete: 0,
}).update({
retail_price: item.retail_price,
goods_specifition_name_value: item.value,
goods_sn: item.goods_sn
});
delete item.is_delete;
item.is_delete = 0;
await this.model(‘product’).where({
id: item.id
}).update(item);
let specificationData = {
value: item.value,
specification_id: specValue,
is_delete: 0
};
await this.model(‘goods_specification’).where({
id: item.goods_specification_ids
}).update(specificationData);
} else {
let specificationData = {
value: item.value,
goods_id: id,
specification_id: specValue
}
let specId = await this.model(‘goods_specification’).add(specificationData);
item.goods_specification_ids = specId;
item.goods_id = id;
await this.model(‘product’).add(item);
}
}
} else {
delete values.id;
goods_id = await model.add(values);
for (const item of specData) {
let specificationData = {
value: item.value,
goods_id: goods_id,
specification_id: specValue,
pic_url: item.pic_url
}
let specId = await this.model(‘goods_specification’).add(specificationData);
item.goods_specification_ids = specId;
item.goods_id = goods_id;
item.is_on_sale = 1;
await this.model(‘product’).add(item);
}
}
let pro = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).select();
if (pro.length > 1) {
let goodsNum = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).sum(‘goods_number’);
let retail_price = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).getField(‘retail_price’);
let maxPrice = Math.max(…retail_price);
let minPrice = Math.min(…retail_price);
let cost = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).getField(‘cost’);
let maxCost = Math.max(…cost);
let minCost = Math.min(…cost);
let goodsPrice = ‘’;
if(minPrice == maxPrice){
goodsPrice = minPrice;
}
else{
goodsPrice = minPrice + ‘~’ + maxPrice;
}
let costPrice = minCost + ‘~’ + maxCost;
await this.model(‘goods’).where({
id: goods_id
}).update({
goods_number: goodsNum,
retail_price: goodsPrice,
cost_price: costPrice,
min_retail_price: minPrice,
min_cost_price: minCost,
});
} else {
let info = {
goods_number: pro[0].goods_number,
retail_price: pro[0].retail_price,
cost_price: pro[0].cost,
min_retail_price: pro[0].retail_price,
min_cost_price: pro[0].cost,
}
await this.model(‘goods’).where({
id: goods_id
}).update(info);
}
values.goods_id = goods_id;
return this.success(values);
}
async updatePriceAction() {
let data = this.post(’’);
// think.logger.info(data);
await this.model(‘goods_specification’).where({
id: data.goods_specification_ids
}).update({
value: data.value
});
await this.model(‘product’).where({
id: data.id
}).update(data);
await this.model(‘cart’).where({
product_id: data.id,
is_delete: 0,
}).update({
retail_price: data.retail_price,
goods_specifition_name_value: data.value,
goods_sn: data.goods_sn
});
delete data.value;
let goods_id = data.goods_id;
let pro = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).select();
if (pro.length > 1) {
let goodsNum = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).sum(‘goods_number’);
let retail_price = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).getField(‘retail_price’);
let maxPrice = Math.max(…retail_price);
let minPrice = Math.min(…retail_price);
let cost = await this.model(‘product’).where({
goods_id: goods_id,
is_on_sale: 1,
is_delete: 0
}).getField(‘cost’);
let maxCost = Math.max(…cost);
let minCost = Math.min(…cost);
let goodsPrice = ‘’;
if(minPrice == maxPrice){
goodsPrice = minPrice;
}
else{
goodsPrice = minPrice + ‘~’ + maxPrice;
}
let costPrice = minCost + ‘~’ + maxCost;
await this.model(‘goods’).where({
id: goods_id
}).update({
goods_number: goodsNum,
retail_price: goodsPrice,
cost_price: costPrice,
min_retail_price: minPrice,
min_cost_price: minCost,
});
} else {
let info = {
goods_number: pro[0].goods_number,
retail_price: pro[0].retail_price,
cost_price: pro[0].cost,
min_retail_price: pro[0].retail_price,
min_cost_price: pro[0].cost,
}
await this.model(‘goods’).where({
id: goods_id
}).update(info);
}
return this.success();
}
async checkSkuAction() {
const info = this.post(‘info’);
if (info.id > 0) {
const model = this.model(‘product’);
const data = await model.where({
id: [’<>’, info.id],
goods_sn: info.goods_sn,
is_delete: 0
}).find();
if (!think.isEmpty(data)) {
return this.fail(100, ‘重复’)
} else {
return this.success();
}
} else {
const model = this.model(‘product’);
const data = await model.where({
goods_sn: info.goods_sn,
is_delete: 0
}).find();
if (!think.isEmpty(data)) {
return this.fail(100, ‘重复’)
} else {
return this.success();
}
}
}
async updateSortAction() {
const id = this.post(‘id’);
const sort = this.post(‘sort’);
const model = this.model(‘goods’);
const data = await model.where({
id: id
}).update({
sort_order: sort
});
return this.success(data);
}
async updateShortNameAction() {
const id = this.post(‘id’);
const short_name = this.post(‘short_name’);
const model = this.model(‘goods’);
const data = await model.where({
id: id
}).update({
short_name: short_name
});
return this.success(data);
}
async galleryListAction() {
const id = this.get(‘id’);
const model = this.model(‘goods_gallery’);
const data = await model.where({
goods_id: id,
is_delete:0
}).select();
// think.logger.info(data);
return this.success(data);
}
async galleryAction() {
const url = this.post(‘url’);
const id = this.post(‘goods_id’);
let info = {
goods_id: id,
img_url: url
}
await this.model(‘goods_gallery’).add(info);
return this.success();
}
async getGalleryListAction() {
const goodsId = this.post(‘goodsId’);
const data = await this.model(‘goods_gallery’).where({
goods_id: goodsId,
is_delete:0
}).select();
let galleryData = [];
for (const item of data) {
let pdata = {
id: item.id,
url: item.img_url
}
galleryData.push(pdata);
}
let info = {
galleryData: galleryData,
}
return this.success(info);
}
async deleteGalleryFileAction() {
const url = this.post(‘url’);
const id = this.post(‘id’);
await this.model(‘goods_gallery’).where({
id: id
}).limit(1).update({
is_delete: 1
});
return this.success(‘文件删除成功’);
}
async galleryEditAction() {
if (!this.isPost) {
return false;
}
const values = this.post();
let data = values.data;
// think.logger.info(data);
const model = this.model(‘goods_gallery’);
for (const item of data) {
let id = item.id;
let sort = parseInt(item.sort_order);
// think.logger.info(sort);
await this.model(‘goods_gallery’).where({
id: id
}).update({
sort_order: sort
});
}
return this.success();
}
async deleteListPicUrlAction() {
const id = this.post(‘id’);
think.logger.info(id);
await this.model(‘goods’).where({
id: id
}).limit(1).update({
list_pic_url: 0
});
return this.success();
}
async destoryAction() {
const id = this.post(‘id’);
await this.model(‘goods’).where({
id: id
}).limit(1).update({
is_delete: 1
});
await this.model(‘product’).where({
goods_id: id
}).update({
is_delete: 1
});
await this.model(‘goods_specification’).where({
goods_id: id
}).update({
is_delete: 1
});
// TODO 删除图片
return this.success();
}
async uploadHttpsImageAction() {
let url = this.post(‘url’);
think.logger.info(’----------------------’);
think.logger.info(url);
let accessKey = think.config(‘qiniuHttps.access_key’);
let secretKey = think.config(‘qiniuHttps.secret_key’);
let domain = think.config(‘qiniuHttps.domain’);
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
var config = new qiniu.conf.Config();
let zoneNum = think.config(‘qiniuHttps.zoneNum’);
if(zoneNum == 0){
config.zone = qiniu.zone.Zone_z0;
}
else if(zoneNum == 1){
config.zone = qiniu.zone.Zone_z1;
}
else if(zoneNum == 2){
config.zone = qiniu.zone.Zone_z2;
}
else if(zoneNum == 3){
config.zone = qiniu.zone.Zone_na0;
}

    else if(zoneNum == 4){config.zone = qiniu.zone.Zone_as0;}var bucketManager = new qiniu.rs.BucketManager(mac, config);let bucket = think.config('qiniuHttps.bucket');let key = think.uuid(32);await think.timeout(500);const uploadQiniu = async() => {return new Promise((resolve, reject) => {try {bucketManager.fetch(url, bucket, key, function(err, respBody, respInfo) {if (err) {think.logger.info(err);//throw err;} else {if (respInfo.statusCode == 200) {resolve(respBody.key)} else {think.logger.info(respInfo.statusCode);}}});} catch (e) {return resolve(null);}})};const httpsUrl = await uploadQiniu();think.logger.info(httpsUrl);let lastUrl = domain + httpsUrl;return this.success(lastUrl);
}

};

外卖红包返利小程序源码系统相关推荐

  1. 独立后台全新菜谱外卖CPS微信小程序源码下载

    以前发过一次该菜谱小程序不过那个版本是没有后台的只是前端 现在发的这一款是拥有独立后台推荐小程序都可以在后台完成 另外本次增加了吃啥抽奖机 首页的各个cps获取 后端的话是php大伙可以魔改 本安装教 ...

  2. 计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)

    项目介绍 据世界动物保护协会统计,全世界大概有5亿只流浪狗和散养的狗和大致同样数量的流浪猫,而这些主要源于主人的弃养.同时,在很多地区,狗和猫都处于散养状态,这部分的动物,也经常会变成流浪动物.猫和狗 ...

  3. 开源智慧党建小程序源码系统+搭建教程

    分享一款完全开源的智慧党建小程序源码系统,功能强大,非常给力!有完整搭建教程. 后台演示: 源码下载地址:春哥技术博客 获取

  4. 开源商城小程序源码系统 7端合一功能强大

    分享一个功能超级强大的7合一小程序源码系统,代码完全开源,完整后端+前端+搭建教程! 7端合一的好处:一次开发,多端上线,后台互通.春哥七合一小程序源码系统最直接的优势就在于单个小程序开发成本的下降, ...

  5. 开源多端合一小程序源码系统+前端+后端+搭建教程

    七合一多端合一小程序源码系统实现全平台小程序功能,一个后台控制7端,功能十分强大! ​春哥全平台7合一万能DIY小程序系统,一个后台控制7端小程序,微信小程序+支付宝小程序+百度小程序+抖音小程序+头 ...

  6. 黑色简约多功能工具箱去水印外卖流量主小程序源码

    文章目录 前言 一.黑色简约多功能工具箱去水印外卖流量主小程序源码 二.程序演示与下载 1.程序演示 2.程序下载 前言 简单来说是一款聚合工具类小程序,作用比较多.介绍如下 一.黑色简约多功能工具箱 ...

  7. 最新酒店订房小程序源码系统+前端+后端+完整搭建教程

    2022年最新接口酒店订房小程序源码系统,有完整搭建教程,非常给力.实现在线订房订餐功能,功能十分强大. 小程序源码下载地址:春哥技术博客

  8. 开源美容美发行业小程序源码系统 完整前端+后端+部署教程

    分享一款开源的美容美发行业小程序源码系统,单店多店可以自由切换,实现一键在线预约,含完整前端+后端+部署教程,上手so easy! 小程序页面功能截图展示: 本套系统采用PHP+MySQL组合开发,系 ...

  9. 在线答题考试小程序源码系统 支持在线刷题+考试二合一+安装部署教程

    分享一个在线答题考试小程序源码系统,支持在线刷题+考试二合一,程序包含前后端和详细的安装部署教程,可以用来给学生刷题,给员工刷题,给政企员工刷题,万能通用版适合任何行业在线刷题及考试. 系统功能一览: ...

  10. 汽车4s店新车二手车租卖小程序源码系统 汽车行业通用版 含完整前后端+搭建教程

    分享一个汽车行业通用版系统源码,汽车4s店新车二手车租卖小程序源码系统,含完整前后端+搭建教程. 系统支持新车二手车的汽车在线展示.在线预约.购车计算器.贷款计算器,门店介绍,新闻资讯,汽车详情介绍等 ...

最新文章

  1. 计算机在轻工行业中的应用,计算机在不同领域中的具体应用
  2. 震后首游都江堰感怀(二)
  3. python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...
  4. MyBatis在insert插入操作时返回主键ID
  5. 社交平台舆情分析项目的总结和感想(LU学习,EM,KNN)(二)
  6. 1-100之间的奇数
  7. Easy Code,IntelliJ IDEA中代码一键生成
  8. [转]通过崩溃地址找错误行数之Delphi版
  9. 六大免费网站数据采集器对比(火车头,海纳,云采集,ET,三人行,狂人采集)
  10. catia怎么将特征参数化_catia 怎么做参数化设计
  11. word转pdf转换器2015注册码
  12. 余世维《成功经理人讲座》之重要又紧急的事情
  13. 整理:不用ACE你不知道ACE有多烂,给饱受ACE折磨的弟兄们散分了。
  14. 【WPS】WPS之如何给文件加密?
  15. 如何用记事本写Java程序
  16. IBL-镜面反射(预滤波篇)
  17. Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因
  18. python 制作二维码
  19. chart.js 饼图显示百分比_干货收藏 | 用matplotlib和Pyecharts花式绘制饼图
  20. java代码审计--之--常用框架了解

热门文章

  1. 有传递函数画matlab,matlab画传递函数曲线
  2. 普通话/汉语的语音识别:DFSMN-CTC-SMBR模型
  3. 无线专题 WAN口和LAN口、WLAN和WiFi区别
  4. 传说中的考研神校,考研人数究竟有多高?
  5. mysql 查询父子关系_查询父子关系 · dotnetcore/FreeSql Wiki · GitHub
  6. go 的基本命令详解
  7. 在ArcGIS中自定义符号制作时,发现无法正常使用符号单位,是怎么回事?
  8. ios-自建网页在浏览器安装ipa包
  9. 在Flask中上传本地图片到服务器
  10. 奥尼捷多功能证件包护照包证件夹男士卡包女士必备 A101 黑色【图片 价格 品牌 报价】-京东商城...