微信小程序拼团功能之表结构

时间:2022-07-24 18:51:29

做拼团功能首先我对需求看了一下,对于单个的拼团商品要求有拼团的人数限制,拼团的活动时间倒计时,以及开团后参团时间倒计时等需求。开团人是团长与参团人加以区分,同时一个拼团有多人参加,付款与未付款对拼团成功的影响,以及未付款订单(微信支付接口要求同一个订单的支付价格必须相同,否则再次调用时返回订单重复的报错)再次支付时价格改变问题等,研究后设了四个表如下:

拼团表的设计:拼团商品表jkd_ptgoods 用户拼团表 jkd_ptcode 拼团商品规格表 jkd_ptgoods_norm 规格表 jkd_norm

CREATE TABLE `jkd_norm` (
  `norm_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `norm_name` varchar(50) DEFAULT NULL COMMENT '规格名',
  `is_show` tinyint(1) DEFAULT NULL COMMENT '是否显示 0 隐藏 1 显示',
  `sort` smallint(5) DEFAULT NULL COMMENT '排序 越打越靠后',
  PRIMARY KEY (`norm_id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='规格详情表';

CREATE TABLE `jkd_ptcode` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL COMMENT '团长id',
  `ptgoods_id` int(11) DEFAULT NULL COMMENT '拼团商品id',
  `ptcode` varchar(50) DEFAULT NULL COMMENT '拼团编号',
  `ptnumber` int(11) DEFAULT NULL COMMENT '拼团人数',
  `addtime` datetime DEFAULT NULL COMMENT '创建日期',
  `endtime` datetime DEFAULT NULL COMMENT '结束时间',
  `ptstatus` tinyint(1) DEFAULT '0' COMMENT '0:未付款 1:拼团中,2:拼团成功, 3:拼团失败, ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 COMMENT='用户拼团表';


CREATE TABLE `jkd_ptcode_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL COMMENT '用户id',
  `ptgoods_norm_id` int(11) DEFAULT NULL COMMENT '拼团商品规格id',
  `pid` varchar(50) DEFAULT NULL COMMENT '拼团id',
  `ptcode` varchar(50) DEFAULT NULL COMMENT '拼团编号',
  `ptordercodeTrue` varchar(52) DEFAULT NULL,
  `ptordercode` varchar(50) DEFAULT NULL COMMENT '拼团虚拟订单',
  `ptrefundcode` varchar(50) DEFAULT NULL COMMENT '退款单编号',
  `ptgoods_name` varchar(250) DEFAULT NULL COMMENT '商品名称',
  `norm_name` varchar(250) DEFAULT NULL COMMENT '规格名称',
  `per_price` varchar(20) DEFAULT NULL COMMENT '单价',
  `price` varchar(20) DEFAULT NULL COMMENT '付款金额',
  `name` varchar(20) DEFAULT NULL COMMENT '收货人',
  `addtime` datetime DEFAULT NULL COMMENT '参团日期',
  `province` varchar(50) DEFAULT NULL COMMENT '省',
  `city` varchar(50) DEFAULT NULL COMMENT '市',
  `county` varchar(50) DEFAULT NULL COMMENT '县',
  `address` varchar(255) DEFAULT NULL COMMENT '详细地址',
  `tel` varchar(15) DEFAULT NULL COMMENT '手机号码',
  `orderstatus` tinyint(1) DEFAULT '0' COMMENT '0:初始,1:已付款, 2-已发货 3-已收货 4-已评价,5:已退款',
  `is_header` tinyint(1) DEFAULT '0' COMMENT '是否团长 0-不是 1-是',
  `lack` tinyint(1) DEFAULT '0' COMMENT '是否缺货(0:否,1:是)',
  `number` int(10) DEFAULT '0' COMMENT '数量',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=95 DEFAULT CHARSET=utf8 COMMENT='拼团明细表';

CREATE TABLE `jkd_ptgoods` (
  `ptgoods_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '拼团商品自增id',
  `ptgoods_name` varchar(120) DEFAULT '' COMMENT '拼团商品名称',
  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品价格(默认价格)',
  `pt_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '拼团价格',
  `pt_size` int(10) DEFAULT '2' COMMENT '拼团人数(2-10)',
  `pt_validhours` int(10) DEFAULT '24' COMMENT '拼团有效期(默认24小时)',
  `start_time` datetime NOT NULL COMMENT '拼团开始时间',
  `end_time` datetime NOT NULL COMMENT '拼团结束时间',
  `ptgoods_number` smallint(5) NOT NULL DEFAULT '0' COMMENT '商品库存数量',
  `description` varchar(255) NOT NULL DEFAULT '' COMMENT '商品剪短描述',
  `content` text COMMENT '商品详细描述',
  `ptgoods_thumb` varchar(255) DEFAULT NULL COMMENT '商品微缩图',
  `ptgoods_imgs` varchar(255) DEFAULT NULL COMMENT '商品详情轮播图',
  `sort` smallint(4) DEFAULT '0' COMMENT '该商品显示顺序(越大越靠后)',
  `addtime` int(11) DEFAULT '0' COMMENT '商品添加时间',
  `uptime` int(10) DEFAULT '0' COMMENT '修改时间',
  `is_sale` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '销售,1,是;0,否',
  `pt_times` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '拼团次数',
  PRIMARY KEY (`ptgoods_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='商品表';

CREATE TABLE `jkd_ptgoods_norm` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ptgoods_id` int(11) unsigned NOT NULL COMMENT '商品自增id',
  `norm_id` int(10) DEFAULT NULL COMMENT '规格id',
  `number` varchar(50) DEFAULT '' COMMENT '规格商品数量',
  `is_show` tinyint(1) DEFAULT NULL COMMENT '是否显示 0 隐藏 1 显示',
  `price` varchar(50) DEFAULT NULL COMMENT '规格价格',
  `pt_price` varchar(50) DEFAULT NULL COMMENT '拼团价格',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='拼团商品规格表';

建立这几个表后基本可以满足拼团功能的要求了。下篇说说我具体实现的过程。。。。。。。。。。