PHP开发:小区物业管理缴费小程序uniapp在线报修系统、活动报名、在线商城
二次开发小区物业管理缴费小程序,以 uniapp 技术为支撑,操作简单流畅,适配各种手机设备
物业缴费、房产管理、在线报修、业主活动报名以及在线商城等多项功能,为小区物业提供了全面的智能化管理
/**
* 保留1个小时
* php ./public/index.php /addons/deerhome/autotask/cancel
*/
public function cancel()
{
//1个小时前
$time=date("Y-m-d H:i:s",time()-1*3600);
//次卡订单::超时未支付
$cardOrderModel=new \app\admin\model\deerhome\CardOrder;
$cardOrderModel->where('add_time',"<",$time)->where("status",1)->update(["status"=>3]);
//次卡订单::已到期
$cardOrderModel->where('end_time',"<",date("Y-m-d H:i:s"))
->where("status",2)
->update([
"status"=>3
,"num_left"=>0
,"done_time"=>date("Y-m-d H:i:s")
]);
//过期优惠券
$YhqModel=new \app\admin\model\deerhome\Yhq;
$YhqModel->where('end_day',"<",date("Y-m-d"))->where("status","in",[1,2])->update(["status"=>4]);
//作废充值流水
Db::name("deerhome_order_pay_log")->where('add_time',"<",$time)->where("type",2)->where("is_wallet",1)->where("status",1)->update(["status"=>3,"note"=>"长时间未支付,交易关闭"]);
$orderArr=Db::name("deerhome_order")->where("status",1)->where('time_add',"<",$time)->column("status,sn","id");
if(count($orderArr)==0){
echo "\n cancel:0 \n";
return;
}
$time=date("Y-m-d H:i:s");
$logArr=[];
foreach($orderArr as $id=>$item){
$logArr[]=[
'order_id'=>$id,
'add_time'=>$time,
'ac_user'=>'系统',
'note'=>"长时间未支付,交易关闭"
];
}
$orderIds=array_keys($orderArr);
$order_snArr=[];
foreach($orderArr as $id=>$item){
$order_snArr[]=$item['sn'];
}
Db::startTrans();
try{
//作废流水
Db::name("deerhome_order_pay_log")->where("order_sn","in",$order_snArr)->update(["status"=>3,"note"=>"长时间未支付,交易关闭"]);
Db::name("deerhome_order")->where("id","in",$orderIds)->update(["status"=>8,"time_done"=>$time]);
Db::name("deerhome_order_log")->insertAll($logArr);
Db::commit();
}catch(\Exception $e){
Db::rollback();
echo "\n ERR-cancel:".$e->getMessage()." \n";
return;
}
echo "\n cancel:".count($orderArr)." \n";
return;
}
报修一键通,服务马上到
点击房产账单,实现线上缴费
在线商城,家政、便捷到家社区活动,一键报名
public function index()
{
if (false === $this->request->isAjax()) {
return $this->view->fetch();
}
if($this->request->param("action")=="checkErr"){
$this->checkErr();
return;
}
$trade=$this->request->param("trade",0,"intval");
$column = [];
$starttime = strtotime(date("Y-m-01"));
$endtime = strtotime(date("Y-m-t"));
if($trade==1){
$starttime = strtotime(date("Y-m-01",strtotime("-1 month")));
$endtime = strtotime(date("Y-m-t",strtotime("-1 month")));
}
$trade = Db::name("deerhome_order")
->where('time_add', 'between time', [$starttime, $endtime])
->where("status","in",[2,3,4,5])
->field('ANY_VALUE(time_add) as time_add, COUNT(*) AS nums, SUM(price_payed) AS price, DATE_FORMAT(`time_add`, "%m-%d") AS add_date')
->group('add_date')
->select();
for ($time = $starttime; $time <= $endtime;) {
$column[] = date("m-d", $time);
$time += 86400;
}
$trade_chart_price = array_fill_keys($column, 0);
$trade_chart_num = array_fill_keys($column, 0);
foreach ($trade as $k => $v) {
$trade_chart_num[$v['add_date']] = (int)$v['nums'];
$trade_chart_price[$v['add_date']] = $v['price'];
}
if($trade==1){
$out=[];
$out['trade_chart']['price'] = array_values($trade_chart_price);
$out['trade_chart']['num'] = array_values($trade_chart_num);
$out['trade_chart']['x'] = $column;
$this->success('','',$out);
}
//用户图表
$starttime = Date::unixtime('day', -31);
$starttime_user = Date::unixtime('day', -10);
$column_user = [];
$trade_user = Db::name("deerhome_user")->where('regtime', 'between time', [$starttime_user, $endtime])
->field('ANY_VALUE(regtime) as regtime, COUNT(*) AS nums, DATE_FORMAT(regtime, "%m-%d") AS add_date')
->group('add_date')
->select();
for ($time = $starttime_user; $time <= $endtime;) {
$column_user[] = date("m-d", $time);
$time += 86400;
}
$user_chart_num = array_fill_keys($column_user, 0);
foreach ($trade_user as $k => $v) {
$user_chart_num[$v['add_date']] = (int)$v['nums'];
}
// foreach ($user_chart_num as $k => $v) {
// $user_chart_num[$k] = rand(10,50);
// }
//热销->where("sale_times",">",0)
$hot_sale=Db::name("deerhome_items")->field("name,sale_times")->order('sale_times desc')->limit(8)->select();
$total_sale=Db::name("deerhome_items")->sum("sale_times");
foreach ($hot_sale as $k=>$v){
if($total_sale==0){
$hot_sale[$k]['percent']="0%";
continue;
}
$hot_sale[$k]['percent']=round($v['sale_times']/$total_sale,2)*100 . "%";
}
//接单排行
$worker_rank=Db::name("deerhome_order")->alias('o')->join("deerhome_worker w","o.worker_id=w.id")->field("w.face_image,w.uname, COUNT(o.id) AS nums")->where('o.status','<=',5)->where('o.worker_id','>',0)->group('o.worker_id')->limit(8)->order('nums desc')->select();
//最近服务记录
$fw_log=Db::name("deerhome_order_log")->alias('l')->join("deerhome_order o","o.id=l.order_id")->field("o.sn,l.ac_user,l.note,l.add_time")->limit(12)->order('l.id desc')->select();
$out=[];
$out['trade_chart']['price'] = array_values($trade_chart_price);
$out['trade_chart']['num'] = array_values($trade_chart_num);
$out['trade_chart']['x'] = $column;
$out['use_chart']['num'] = array_values($user_chart_num);
$out['use_chart']['x'] = $column_user;
$out['hot_sale'] = $hot_sale;
$out['xs_list'] =[];
$out['worker_rank'] = $worker_rank;
$out['fw_log'] = $fw_log;
$out['tpl_ids'] = [];
$saasInfo=$this->auth->getGroups($this->auth->id);
$saasInfo=$saasInfo[0];
//入驻审核
$out['tpl_ids']['rzsh'] = Db::name("deerhome_worker_sh")->where('status',1)->count();
//提现审核
$out['tpl_ids']['txsh'] = Db::name("deerhome_worker_money_log")->where('type','like','%提现')->where('status',1)->count();
$out['tpl_ids']['fapiao'] = Db::name("deerhome_fapiao")->where('status',1)->count();
$out['tpl_ids']['shouhou'] = Db::name("deerhome_order_refund")->where('status',1)->count();
//待完成订单
$status2=0;
$status3=0;
$status4=0;
$dwc_orders=Db::name("deerhome_order")->field("status,COUNT(id) as num")->where('status','in',[2,3,4])->group('status')->select();
if(count($dwc_orders)>0){
foreach($dwc_orders as $k=>$v){
if($v['status']==2){
$status2=$v['num'];
}elseif($v['status']==3){
$status3=$v['num'];
}elseif($v['status']==4){
$status4=$v['num'];
}
}
}
$out['tpl_ids']['dwc_orders'] = "{$status2} / {$status3} / {$status4}";
//数据概况
$out['tpl_ids']['info_today_price'] = Db::name("deerhome_order")->where("status","in",[2,3,4,5])->whereTime('time_add',"today")->sum('price_payed');
$out['tpl_ids']['info_today_price'] = "¥".number_format($out['tpl_ids']['info_today_price'],2);
$out['tpl_ids']['info_month_price'] = Db::name("deerhome_order")->where("status","in",[2,3,4,5])->whereTime('time_add',"month")->sum('price_payed');
$out['tpl_ids']['info_month_price'] = "¥".number_format($out['tpl_ids']['info_month_price'],2);
$out['tpl_ids']['info_today_num'] = Db::name("deerhome_order")->whereTime('time_add',"today")->where("price_payed",">",0)->count();
$out['tpl_ids']['info_month_num'] = Db::name("deerhome_order")->whereTime('time_add',"month")->where("price_payed",">",0)->count();
$out['tpl_ids']['info_day_user'] = Db::name("deerhome_user")->whereTime('regtime',"today")->count();
$out['tpl_ids']['info_total_user'] = Db::name("deerhome_user")->count();
$out['tpl_ids']['info_total_worker'] = Db::name("deerhome_worker")->count();
$out['tpl_ids']['info_total_shop'] = Db::name("deerhome_shop")->count();
$this->success('','',$out);
}
一、物业缴费功能
用户可以轻松查看到各类物业费用的金额、缴纳时间以及缴纳记录等信息。用户可以通过该程序直接进行缴纳操作,支持多种支付方式,如微信支付、支付宝等,方便快捷,无需多次操作。
此外,智慧小区物业管理小程序还支持自动推送缴费通知功能,用户无需手动查询,即可实时掌握各类物业费用的缴纳情况,避免因漏缴或忘缴而影响到自己的生活。
二、房产管理功能
小区物业管理的房产管理功能,可以实现对小区房屋资源的统一管理。该功能详细记录了每栋楼、每套房的信息,包括房屋面积、户型、产权年限、所属业主等。同时,该程序还可以根据用户需求进行快速搜索和筛选,方便查找和管理。
三、在线报修
在线报修功能可以让用户快速提交报修申请,物业工作人员可以在线接收并处理报修信息,提高了工作效率和响应速度
四、业主活动报名功能
业主活动报名功能则可以让用户快速便捷地参与自己感兴趣的小区活动,拉近了邻里之间的距离。
五、在线商城功能
小区物业管理小程序还内置了一个在线商城模块,方便用户进行购物。该商城模块提供了丰富多样的商品供用户选择,包括生活日用品、家居装饰品、家用电器等