html
<button class="fixed-text fixed-button" open-type="share" title="分享" hover-class="none">分享好友</button>
js
/**
* 用户点击右上角分享 或点击按钮分享
*/
onShareAppMessage: function() {
//生成唯一编号
var num = util.create_uuid();
var shareObj = {
title: '传化保险商城',
path: '/pages/index/index?origin_from=share&origin_num=' + num,
imageUrl: '/images/share.png'
}
//保存分享记录 调用自己的接口记录数据
util.save_user_share(shareObj.title, shareObj.path, shareObj.imageUrl, num);
return shareObj;
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
app.firstload(function(res) {
//分享进入 判断是否是分享进入的
console.log(options)
if (options.origin_from == 'share') {
//更新分享记录 调用自己的接口更新记录数据
util.update_user_share(options.origin_num);
}
})
},
接口
// 保存分享记录
public function share_save() {
$openid = $_REQUEST['openid'];
$title = $_REQUEST['title'];
$path = $_REQUEST['path'];
$img_url = $_REQUEST['img_url'];
$num = $_REQUEST['num'];
//用户昵称
$username = db('weixin_user')->where(['OpenId' => $openid])->value('NickName');
//新增分享记录
$data['num'] = $num;
$data['openid'] = $openid;
$data['title'] = $title;
$data['path'] = $path;
$data['img_url'] = $img_url;
$data['create_time'] = time();
$data['create_user'] = $username;
$res = db('tf_share')->insert($data);
if ($res != false) {
$return['status'] = 1;
$return['info'] = '操作成功';
} else {
$return['status'] = 0;
$return['info'] = '操作失败';
}
exit(json_encode($return));
}
//更新分享记录
public function share_update() {
$openid = $_REQUEST['openid'];
$num = $_REQUEST['num'];
//用户昵称
$username = db('weixin_user')->where(['OpenId' => $openid])->value('NickName');
//获取分享的记录
$share_info = db('tf_share')->where(array('num' => $num))->find();
if (!count($share_info)) {
$return['status'] = 0;
$return['info'] = '分享信息不存在';
exit(json_encode($return));
}
//新增或更新
$where['openid'] = $openid;
$where['share_id'] = $share_info['id'];
$share_user_info = db('tf_share_user')->where($where)->find();
if ($share_user_info) {
$data['ip'] = request()->ip();
$data['update_time'] = time();
$data['update_user'] = $username;
$res = db('tf_share_user')->where($where)->update($data);
} else {
$data['share_id'] = $share_info['id'];
$data['openid'] = $openid;
$data['ip'] = request()->ip();
$data['create_time'] = time();
$data['create_user'] = $username;
$res = db('tf_share_user')->insert($data);
}
if ($res != false) {
$return['status'] = 1;
$return['info'] = '操作成功';
} else {
$return['status'] = 0;
$return['info'] = '操作失败';
}
exit(json_encode($return));
}
数据库
CREATE TABLE `t_tf_share` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`num` varchar(100) NOT NULL COMMENT '分享唯一编号',
`openid` varchar(50) NOT NULL COMMENT '用户openid',
`title` varchar(100) NOT NULL COMMENT '分享标题',
`img_url` varchar(255) NOT NULL COMMENT '分享描述',
`path` varchar(255) NOT NULL COMMENT '分享路径',
`create_time` int(11) DEFAULT NULL COMMENT '创建时间',
`create_user` varchar(100) DEFAULT NULL COMMENT '创建者',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `source` (`num`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='分享记录表';
CREATE TABLE `t_tf_share_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`openid` varchar(50) NOT NULL COMMENT '用户openid',
`share_id` int(11) DEFAULT NULL COMMENT '分享id',
`ip` varchar(20) NOT NULL COMMENT '用户ip地址',
`create_time` int(11) DEFAULT NULL COMMENT '创建时间',
`create_user` varchar(100) DEFAULT NULL COMMENT '创建者',
`update_time` int(11) DEFAULT NULL COMMENT '更新时间',
`update_user` varchar(100) DEFAULT NULL COMMENT '更新者',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='分享用户表(通过分享链接进入的用户)';
CREATE TABLE `t_weixin_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`OpenId` varchar(50) DEFAULT NULL COMMENT '用户OpenId',
`FakeId` varchar(50) DEFAULT NULL COMMENT '用户唯一标识(已废弃)',
`NickName` varchar(100) DEFAULT NULL COMMENT '呢称',
`ReMarkName` varchar(50) DEFAULT NULL COMMENT '废弃',
`Username` varchar(50) DEFAULT NULL COMMENT '废弃',
`Signature` text COMMENT '废弃',
`Country` varchar(50) DEFAULT NULL COMMENT '废弃',
`Province` varchar(50) DEFAULT NULL COMMENT '省份',
`City` varchar(50) DEFAULT NULL COMMENT '城市',
`Sex` int(11) DEFAULT NULL COMMENT '姓别',
`GroupId` int(11) DEFAULT NULL COMMENT '分组',
`HeadImg` varchar(150) DEFAULT NULL COMMENT '头像地址',
`Status` int(11) DEFAULT NULL COMMENT '状态:0取消关注,1已关注,2未关注有访问记录',
`Source` varchar(65) DEFAULT '0' COMMENT '推广场景值ID',
`UnionId` varchar(50) DEFAULT NULL COMMENT '公众号绑定唯一Id',
`CompanyId` int(11) DEFAULT NULL COMMENT '所属公司id(表:t_company)',
`ConfigId` int(11) DEFAULT NULL COMMENT '公众号id(表:t_config自增id)',
`CreateTime` int(11) DEFAULT NULL COMMENT '创建时间',
`UpdateTime` int(11) DEFAULT NULL COMMENT '微信User表的更新时间',
PRIMARY KEY (`Id`) USING BTREE,
KEY `CompanyId` (`ConfigId`) USING BTREE,
KEY `OpenId` (`OpenId`) USING BTREE,
KEY `UninId_ConfigId` (`UnionId`,`ConfigId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关注用户';