这个是目前比较常见的婚恋交友平台小程序制作开发代码案例解析,很多功能大家都可以参考借鉴,比如关注功能,会员付费功能,权限设置等功能。

首页部分

交友平台小程序制作开发代码分享_小程序交友平台小程序制作开发代码分享_交友小程序_02

class DiaryController extends CommonController
{
private $weather = array("请选择","晴天","阴天","多云","雨天","雷阵雨","雪天");
private $feel = array('请选择','开心','吃惊','抓狂','伤心','动心','愤怒','傻笑','疑惑','感叹','郁闷','沮丧','一般');
private $power = array(1=>'公开',2=>'仅自己看');

//个人中心浏览日记
public function index(){
$mod = D("Diary");
$total = $mod->scope('read')->where("userid=".session('user')['id'])->count();
$page = new \Think\Page($total,15);
$diaryList = $mod->scope('read')->where("userid=".session('user')['id'])->limit($page->firstRow,$page->listRows)->select();

foreach($diaryList as &$diary){
$diary['catid'] = M("diary_category")->field("catname")->where("id=".$diary['catid'])->find();
$diary['comment'] = M('diary_comment')->where('diaryid='.$diary['id'])->count();
}
// dump($diaryList);
$page->setConfig('prev', "上一页");
$page->setConfig('next', "下一页");
$show = $page->show();

$this->assign("show",$show);
$this->assign("diaryList",$diaryList);
$this->display("index");
}


//获取添加日记模板
public function add(){
$this->assign("cat",M("Diary_category")->select());
$this->display("add");
}
//执行添加日记
public function insert(){
$mod = D("Diary");
$_POST['userid'] = session('user')['id'];

if(!$mod->create($_POST)){
$this->error($mod->getError());
}
if($mod->add()){
//添加积分
$userPoints = new \Home\Controller\UserPointsController();
$userPoints->insert('diary');

echo "<script>window.parent.doAdd('true');</script>";
}else{
echo "<script>window.parent.doAdd('false');</script>";
}
exit();
}

//执行日记删除
public function del(){
$mod = D("Diary");
$res = $mod->where("id=".$_POST['id'])->delete();
if($res){
echo json_encode("true");
}else{
echo json_encode("false");
}
}

//加载修改日记模板
public function edit(){
$mod = D("Diary");
$info = $mod->where("userid=".session('user')['id'])->find($_GET['id']);
$cat = M("Diary_category")->select();

$this->assign("info",$info);
$this->assign("cat",$cat);
$this->assign("weather",$this->weather);
$this->assign("feel",$this->feel);
$this->assign("power",$this->power);
$this->display("edit");
}

//执行修改日记
public function update(){
$mod = D("Diary");
if(!$mod->create()){
$this->error($mod->getError());
}
if($mod->save()){
echo "<script>window.parent.doEdit('true');</script>";
// $this->success("修改成功!",U("Diary/index"));
}else{
echo "<script>window.parent.doEdit('false');</script>";
// $this->error("修改成功!");
}
exit();
}


}

权限设置

function C($name=null, $value=null,$default=null) {
static $_config = array();
// 无参数时获取所有
if (empty($name)) {
return $_config;
}
// 优先执行设置获取或赋值
if (is_string($name)) {
if (!strpos($name, '.')) {
$name = strtolower($name);
if (is_null($value))
return isset($_config[$name]) ? $_config[$name] : $default;
$_config[$name] = $value;
return;
}
// 二维数组设置和获取支持
$name = explode('.', $name);
$name[0] = strtolower($name[0]);
if (is_null($value))
return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;
$_config[$name[0]][$name[1]] = $value;
return;
}
// 批量设置
if (is_array($name)){
$_config = array_merge($_config, array_change_key_case($name));
return;
}
return null; // 避免非法参数
}

/**
* 抛出异常处理
* @param string $msg 异常消息
* @param integer $code 异常代码 默认为0
* @return void
*/
function E($msg, $code=0) {
throw new Think\Exception($msg, $code);
}

/**
* 记录和统计时间(微秒)和内存使用情况
* 使用方法:
* <code>
* G('begin'); // 记录开始标记位
* // ... 区间运行代码
* G('end'); // 记录结束标签位
* echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位
* echo G('begin','end','m'); // 统计区间内存使用情况
* 如果end标记位没有定义,则会自动以当前作为标记位
* 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效
* </code>
* @param string $start 开始标签
* @param string $end 结束标签
* @param integer|string $dec 小数位或者m
* @return mixed
*/
function G($start,$end='',$dec=4) {
static $_info = array();
static $_mem = array();
if(is_float($end)) { // 记录时间
$_info[$start] = $end;
}elseif(!empty($end)){ // 统计时间和内存使用
if(!isset($_info[$end])) $_info[$end] = microtime(TRUE);
if(MEMORY_LIMIT_ON && $dec=='m'){
if(!isset($_mem[$end])) $_mem[$end] = memory_get_usage();
return number_format(($_mem[$end]-$_mem[$start])/1024);
}else{
return number_format(($_info[$end]-$_info[$start]),$dec);
}

}else{ // 记录时间和内存使用
$_info[$start] = microtime(TRUE);
if(MEMORY_LIMIT_ON) $_mem[$start] = memory_get_usage();
}
}

/**
* 获取和设置语言定义(不区分大小写)
* @param string|array $name 语言变量
* @param string $value 语言值
* @return mixed
*/
function L($name=null, $value=null) {
static $_lang = array();
// 空参数返回所有定义
if (empty($name))
return $_lang;
// 判断语言获取(或设置)
// 若不存在,直接返回全大写$name
if (is_string($name)) {
$name = strtoupper($name);
if (is_null($value))
return isset($_lang[$name]) ? $_lang[$name] : $name;
$_lang[$name] = $value; // 语言定义
return;
}
// 批量定义
if (is_array($name))
$_lang = array_merge($_lang, array_change_key_case($name, CASE_UPPER));
return;
}