作者 吴孟雨
正在显示 37 个修改的文件 包含 790 行增加151 行删除
... ... @@ -84,19 +84,29 @@ class MainController extends AdminBaseController
// }
public function index(){
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$today_start = strtotime(date("Y-m-d"),time());
$today_end=$today_start+24*60*60;
$today_order=Db::name('light_order')
->whereTime('create_time', 'between', [$today_start, $today_end])
->whereNotNull('pay_time')
->sum('money');
$users=Db::name('users')->count();
->alias('lo')
->join('light l','lo.light_id=l.id')
->join('temple t','l.temple_id=t.id')
->whereTime('lo.create_time', 'between', [$today_start, $today_end])
->where('lo.status',1)
->whereNotNull('lo.pay_time')
->sum('lo.money');
$users=Db::name('users')->where('status',1)->count();
$order=Db::name('temple')
->where($where)
->sum('money');
$expect=Db::name('temple')
->where($where)
->sum('money*percent');
$data=Db::name('temple')->order('money','desc')->select();
$data=Db::name('temple')->where($where)->order('money','desc')->select();
$this->assign([
'today_order'=>$today_order,
'users'=>$users,
... ...
... ... @@ -28,12 +28,12 @@ class PublicController extends AdminBaseController
{
$loginAllowed = session("__LOGIN_BY_CMF_ADMIN_PW__");
if (empty($loginAllowed)) {
$this->error('非法登录!', cmf_get_root() . '/');
return redirect(url("admin/Index/index"));
}
$admin_id = session('ADMIN_ID');
if (!empty($admin_id)) {//已经登录
redirect(url("admin/Index/index"));
return redirect(url("admin/Index/index"));
} else {
$site_admin_url_password = config("cmf_SITE_ADMIN_URL_PASSWORD");
$upw = session("__CMF_UPW__");
... ... @@ -122,6 +122,6 @@ class PublicController extends AdminBaseController
public function logout()
{
session('ADMIN_ID', null);
return redirect(url('/', [], false, true));
return redirect(url('admin/user/login'));
}
}
\ No newline at end of file
... ...
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 老猫 <bronet@126.com>
// +----------------------------------------------------------------------
namespace app\admin\service;
use think\Db;
class LightService
{
public function lightChange($id="",$status1='01',$status2='01',$u="",$c=""){
if ($id==""){
return false;
}else {
$light=Db::name('light')->where('id',$id)->find();
$client = fsockopen('114.215.223.17', 5002, $errno, $errmsg, 1);
$code=$light['addr'].'10000000306001'.$light['addr'].$status1.$status2.$this->strtoascii1($u).$this->strtoascii2($c).'00';
$crc=$this->crc16_modbus($code);
$changeCode=$code.substr($crc,2,2).substr($crc,0,2);
// var_dump($queryCode);
$data = array('uid' => $light['number'], 'percent' => "$changeCode");
// 发送数据,注意5678端口是Text协议的端口,Text协议需要在数据末尾加上换行符
fwrite($client, json_encode($data) . "\n");
// 读取推送结果
return fread($client, 8192);
}
}
function crc16_modbus($msg)
{
$data = pack('H*',$msg);
$crc = 0xFFFF;
for ($i = 0; $i < strlen($data); $i++)
{
$crc ^=ord($data[$i]);
for ($j = 8; $j !=0; $j--)
{
if (($crc & 0x0001) !=0)
{
$crc >>= 1;
$crc ^= 0xA001;
}
else $crc >>= 1;
}
}
return sprintf('%04X', $crc);
}
public function strtoascii1($str="")
{
$str = mb_convert_encoding($str, 'GB2312');
$change_after = '';
for ($i = 0; $i < strlen($str); $i=$i+2) {
$change_after .= dechex(ord($str[$i])).dechex(ord($str[$i+1]));
}
for ($i=0;strlen($change_after)<50;$i++){
$change_after=$change_after.'00';
}
return strtoupper($change_after);
}
public function strtoascii2($str="")
{
$str = mb_convert_encoding($str, 'GB2312');
// var_dump(strlen($str));
if(strlen($str)%2!=0){
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 1) {
$change_after .= dechex(ord($str[$i]));
// var_dump($change_after);
}
}else {
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 2) {
$change_after .= dechex(ord($str[$i])) . dechex(ord($str[$i + 1]));
// var_dump($change_after);
}
}
// exit();
for ($i=0;strlen($change_after)<130;$i++){
$change_after=$change_after.'00';
}
return strtoupper($change_after);
}
}
\ No newline at end of file
... ...
... ... @@ -47,6 +47,9 @@ class AdminLightController extends AdminBaseController
$param = $this->request->param();
//添加搜索条件
$where = [];
if (cmf_get_current_admin_id()!=1){
$where['t.user_id']=cmf_get_current_admin_id();
};
$keyword = empty($param['number']) ? '' : $param['number'];
if (!empty($keyword)) {
$where['l.number'] = ['like', "%$keyword%"];
... ... @@ -60,7 +63,7 @@ class AdminLightController extends AdminBaseController
->join('temple t', 'l.temple_id=t.id','left')
->join('temple_area ta', 'l.area_id=ta.id','left')
->where($where)
->field('l.*,t.address,t.name as tname,ta.name as taname,ta.light')
->field('l.*,t.address as taddress,t.name as tname,ta.name as taname,ta.light')
->order('l.create_time', 'desc')
->paginate('10');
//向地址传参
... ... @@ -78,10 +81,10 @@ class AdminLightController extends AdminBaseController
$id = $this->request->param('id');
$data = Db::name('light')
->alias('l')
->join('temple t', 'l.temple_id=t.id')
->join('temple_area ta', 'l.area_id=ta.id')
->join('temple t', 'l.temple_id=t.id','left')
->join('temple_area ta', 'l.area_id=ta.id','left')
->where('l.temple_id', $id)
->field('l.*,t.address,t.name as tname,ta.name as taname,ta.light')
->field('l.*,t.address as taddress,t.name as tname,ta.name as taname,ta.light')
->order('l.create_time', 'desc')
->paginate('10');
$this->assign('page', $data->render());
... ... @@ -104,7 +107,12 @@ class AdminLightController extends AdminBaseController
*/
public function add()
{
$address = Db::name('temple')->field('address')->distinct('true')->select();
$where = [];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$address = Db::name('temple')->where($where)->field('address')->distinct('true')->select();
$this->assign('address', $address);
return $this->fetch();
}
... ... @@ -114,7 +122,12 @@ class AdminLightController extends AdminBaseController
public function getTemple()
{
$address = $this->request->param('address');
$temple = Db::name('temple')->where('address', $address)->select()->toJson();
$where = [];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$where['address']=$address;
$temple = Db::name('temple')->where($where)->select()->toJson();
return $temple;
}
... ... @@ -221,18 +234,22 @@ class AdminLightController extends AdminBaseController
*/
public function edit()
{
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$id = $this->request->param('id');
$data = Db::name('light')
->alias('l')
->join('temple t', 't.id=l.temple_id','left')
->where('l.id', $id)
->field('l.*,t.name as tname,t.id as tid')
->field('l.*,t.name as tname,t.id as tid,t.address as taddress')
->find();
$data['location']=[$data['row'],$data['column']];
$address = Db::name('temple')->field('address')->distinct('true')->select();
$address = Db::name('temple')->where($where)->field('address')->distinct('true')->select();
$this->assign('address',$address);
if (!empty($data['address'])) {
$temple = Db::name('temple')->where('address', $data['address'])->select();
if (!empty($data['taddress'])) {
$temple = Db::name('temple')->where('address', $data['taddress'])->where($where)->select();
$this->assign('temple', $temple);
}
if(!empty($data['temple_id'])) {
... ...
... ... @@ -12,6 +12,7 @@ namespace app\portal\controller;
use cmf\controller\AdminBaseController;
use think\Db;
use app\admin\service;
/**
* Class AdminLightOrderController
... ... @@ -47,6 +48,11 @@ class AdminLightOrderController extends AdminBaseController
$param = $this->request->param();
//添加搜索条件
$where=[];
$where1=[];
if (cmf_get_current_admin_id()!=1){
$where['t.user_id']=cmf_get_current_admin_id();
$where1['user_id']= $where['t.user_id'];
};
$user_name = empty($param['user_name']) ? '' : $param['user_name'];
if (!empty($user_name)) {
$where['u.user_name'] = ['like', "%$user_name%"];
... ... @@ -73,7 +79,7 @@ class AdminLightOrderController extends AdminBaseController
}
//所有寺庙
$temples=Db::name('temple')->select();
$temples=Db::name('temple')->where($where1)->select();
$this->assign('temples',$temples);
//数据提取
... ... @@ -124,7 +130,7 @@ class AdminLightOrderController extends AdminBaseController
->join('users u','lo.users_id=u.id')
->join('temple t','l.temple_id=t.id')
->where('t.id',$id)
->field('lo.*,u.*')
->field('lo.*,u.*,lo.id as loid')
->order('lo.create_time','desc')
->paginate('10');
$this->assign('page',$data->render());
... ... @@ -148,6 +154,10 @@ class AdminLightOrderController extends AdminBaseController
public function edit()
{
$id = $this->request->param('id');
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$data = Db::name('light_order')
->alias('lo')
->join('light l','lo.light_id=l.id')
... ... @@ -155,12 +165,12 @@ class AdminLightOrderController extends AdminBaseController
->join('temple t','l.temple_id=t.id')
->join('temple_area ta','l.area_id=ta.id')
->where('lo.id',$id)
->field('lo.*,l.*,u.mobile,u.user_name,t.name as tname,ta.name as taname,lo.name as loname')
->field('lo.*,l.*,u.mobile,u.user_name,t.name as tname,ta.name as taname,lo.name as loname,lo.id as loid')
->find();
$address = Db::name('temple')->field('address')->distinct('true')->select();
$address = Db::name('temple')->where($where)->field('address')->distinct('true')->select();
$this->assign('address',$address);
$temple = Db::name('temple')->where('address',$data['address'])->select();
$temple = Db::name('temple')->where('address',$data['address'])->where($where)->select();
$this->assign('temple', $temple);
$area = Db::name('temple_area')->where('temple_id', $data['temple_id'])->select();
$this->assign('area', $area);
... ... @@ -187,6 +197,8 @@ class AdminLightOrderController extends AdminBaseController
$param = $this->request->param();
$param['create_time'] = time();
Db::name('light_order')->where('id', $param['id'])->update($param);
$lightService= new service\LightService();
$lightService->lightChange($param['light_id'],'01','01',$param['name'],$param['content']);
$this->success('编辑成功');
}
... ... @@ -207,6 +219,9 @@ class AdminLightOrderController extends AdminBaseController
public function delete()
{
$id = $this->request->param('id');
$light_order=Db::name('light_order')->where('id', $id)->find();
$lightService= new service\LightService();
$lightService->lightChange($light_order['light_id'],'00','00');
Db::name('light_order')->where('id', $id)->delete();
$this->success('删除成功');
}
... ...
... ... @@ -47,6 +47,9 @@ class AdminMoneyController extends AdminBaseController
$param = $this->request->param();
//添加搜索条件
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['t.user_id']=cmf_get_current_admin_id();
};
$temple = empty($param['temple']) ? '' : $param['temple'];
if (!empty($temple)) {
$where['t.name'] = ['like', "%$temple%"];
... ... @@ -62,7 +65,7 @@ class AdminMoneyController extends AdminBaseController
//数据提取
$data=Db::name('temple')->alias('t')->where($where)->paginate(10)->each(function ($item) {
$item['money'] = Db::name('light_order')->alias('lo')->join('light l','lo.light_id=l.id')->where('l.temple_id',$item['id'])->whereNotNull('lo.pay_time')->sum('lo.money');
// $item['money'] = Db::name('light_order')->alias('lo')->join('light l','lo.light_id=l.id')->where('l.temple_id',$item['id'])->whereNotNull('lo.pay_time')->sum('lo.money');
$item['real_money']=$item['money']*$item['percent'];
return $item;
});
... ...
... ... @@ -34,6 +34,9 @@ class AdminTempleAreaController extends AdminBaseController
$param = $this->request->param();
//添加搜索条件
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['t.user_id']=cmf_get_current_admin_id();
};
$keyword = empty($param['keyword']) ? '' : $param['keyword'];
if (!empty($keyword)) {
$where['ta.name'] = ['like', "%$keyword%"];
... ... @@ -76,7 +79,11 @@ class AdminTempleAreaController extends AdminBaseController
*/
public function add()
{
$temple=Db::name('temple')->select();
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$temple=Db::name('temple')->where($where)->select();
$this->assign('temple',$temple);
return $this->fetch();
}
... ... @@ -128,7 +135,11 @@ class AdminTempleAreaController extends AdminBaseController
->where('id', $id)
// ->field('t.*,u.user_login')
->find();
$temple=Db::name('temple')->select();
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['user_id']=cmf_get_current_admin_id();
};
$temple=Db::name('temple')->where($where)->select();
$this->assign('temple',$temple);
$this->assign('list', $data);
return $this->fetch();
... ...
... ... @@ -44,11 +44,16 @@ class AdminWarningController extends AdminBaseController
public function index()
{
//数据提取
$where=[];
if (cmf_get_current_admin_id()!=1){
$where['t.user_id']=cmf_get_current_admin_id();
};
$data=Db::name('warning')
->alias('w')
->join('light l','w.light_id=l.id')
->join('temple t','l.temple_id=t.id')
->join('temple_area ta','l.area_id=ta.id')
->where($where)
->field('w.*,l.row,l.column,l.address,l.temple_id,l.number,t.name as tname ,ta.name as taname,w.status as wstatus')
->order('w.create_time','desc')
->paginate(10);
... ...
... ... @@ -41,12 +41,12 @@ class IndexController extends WeChatBaseController
$param=$this->request->param();
$where=[];
$name = empty($param['name']) ? "" : $param['name'];
$search_address = empty($param['address']) ? "" : $param['address'];
$search_address = ($param['address']=="全部") ? "" : $param['address'];
if (!empty($name)){
$where['name']=['like',"%$name%"];
}
if (!empty($search_address)){
$where['address']=['like',"%$search_address%"];
$where['address']=$search_address;
}
$data=Db::name('temple')->where($where)->select()->each(function ($item) {
$item['thumbnail']=cmf_get_image_preview_url($item['thumbnail']);
... ... @@ -98,6 +98,7 @@ class IndexController extends WeChatBaseController
->field('l.row')
->order('l.row','dec')
->column('l.row');
$arr=[];
foreach ($row as $k=>$v){
$arr[$v]=Db::name('light')->alias('l')->join('temple_area ta','l.area_id=ta.id')->where(['l.row'=>$v,'l.area_id'=>$param['id']])->field('l.*,ta.name')->select()->each(function ($item) {
if(Db::name('light_order') ->where(['light_id'=>$item['id'],'end_time'=>['>',time()],'status'=>1])->find()){
... ... @@ -146,6 +147,9 @@ class IndexController extends WeChatBaseController
if (Db::name('light_order')->where(['light_id'=>$param['light_id'],'status'=>1,'end_time'=>['>',time()]])->find()){
return 3;
}
if (Db::name('light_order')->where(['light_id'=>$param['light_id'],'status'=>0,'end_time'=>['>',time()]])->find()){
return 4;
}
if ($param['media']!="") {
$data['avatar'] = $this->upload_wx_pic_mul($param['media']);
}else{
... ...
... ... @@ -37,20 +37,66 @@ class PayController extends WeChatBaseController
'body' => '十方台',
'detail' => '点亮财神灯',
'out_trade_no' => $data['order_sn'],
'total_fee' => 1, // 单位:分
'total_fee' => $data['money']*100, // 单位:分
'notify_url' => url('portal/pay/notify','','',true), // 支付结果通知网址,如果不设置则会使用配置里的默认地址
'openid' => $re['open_id'], // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识,
];
$order = new Order($attributes);
$app = new Application($this->options);
$payment = $app->payment;
$result = $payment->prepare($order);
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){
//判断支付并发情况
// if (Db::name('light_order')->where(['light_id'=>$data['light_id'],'status'=>1,'end_time'=>['>',time()]])->find()){
// $this->error('该财神灯已被点亮','');
// }
$prepayId = $result->prepay_id;
$jsApiParameters=$payment->configForJSSDKPayment($prepayId);
$this->assign('jsApiParameters',json_encode($jsApiParameters));
$this->assign('list',$data);
return $this->fetch();
}else{
$this->error('支付参数错误','',$result);
}
}
public function demo(){
var_dump(cache('result'));
// var_dump(cache('changecode'));
// var_dump(cache('order'));
}
public function index2(){
$re=$this->checkLogin();
$param=$this->request->param();
$data=Db::name('light_order')->where('id',$param['id'])->find();
$data['price']=Db::name('light')->where('id',$data['light_id'])->find()['price'];
$data['pay_sn']=cmf_get_order_sn();
Db::name('pay')->insert(['order_id'=>$param['id'],'pay_sn'=>$data['pay_sn'],'money'=>$data['price']]);
$attributes = [
'trade_type' => 'JSAPI',
'body' => '十方台',
'detail' => '续费',
'out_trade_no' => $data['pay_sn'],
'total_fee' => $data['price']*100, // 单位:分
'notify_url' => url('portal/pay/notify2','','',true), // 支付结果通知网址,如果不设置则会使用配置里的默认地址
'openid' => $re['open_id'], // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识,
];
$order = new Order($attributes);
$app = new Application($this->options);
$payment = $app->payment;
$result = $payment->prepare($order);
cache('result',$result);
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){
//判断支付并发情况
// if (Db::name('light_order')->where(['light_id'=>$data['light_id'],'status'=>1,'end_time'=>['>',time()]])->find()){
// $this->error('该财神灯已被点亮','');
// }
$prepayId = $result->prepay_id;
$jsApiParameters=$payment->configForJSSDKPayment($prepayId);
$this->assign('jsApiParameters',json_encode($jsApiParameters));
$this->assign('list',$data);
return $this->fetch();
... ... @@ -60,6 +106,8 @@ class PayController extends WeChatBaseController
}
/**
* 支付回调
* @throws \EasyWeChat\Core\Exceptions\FaultException
... ... @@ -68,10 +116,7 @@ class PayController extends WeChatBaseController
// cache('nnn',111);
$app = new Application($this->options);
$response = $app->payment->handleNotify(function($notify, $successful){
cache('notify',$notify);
cache('successful',$successful);
/*这里是支付回调逻辑处理,一下是DEMO*/
// // 使用通知里的 "微信支付订单号" 或者 "商户订单号" 去自己的数据库找到订单
$out_trade_no=$notify->out_trade_no;
$order = Db::name('light_order')->where('order_sn',$out_trade_no)->find();
... ... @@ -87,34 +132,87 @@ class PayController extends WeChatBaseController
if ($successful) {
// 回填微信的订单号
// $update['transaction_id']=$notify->transaction_id;
// $update['pay_time']=time();
// 不是已经支付状态则修改为已经支付状态
$update['status']=1;
$light=Db::name('light_order')->where('order_sn',$out_trade_no)->find();
$light=Db::name('light')->where('id',$order['light_id'])->find();
//寺庙金额增加
Db::name('temple')->where('id',$light['temple_id'])->setInc('money',$light['price']);
//硬件控制
// $this->lightChange($light['light_id'],'01','01',$light['name']);
} else { // 用户支付失败
$update['status']=0;
}
Db::name('light_order')->where('order_sn',$out_trade_no)->update($update);
Db::name('light_order')->where('order_sn',$out_trade_no)->update(['status'=>1,'pay_time'=>time()]);
$this->lightChange($order['light_id'],'01','01',$order['name'],$order['content']);
//支付成功推送模板消息
$app = new Application($this->options);
$notice = $app->notice;
$userId = Db::name('users')->where('id',$order['users_id'])->find()['open_id'];
$templateId = 'IS6PSpoH7gFVH8Z_MJeXBKQe0g8PEYnhFxBe0-p2Y5A';
$url = '';
$data = array(
"first" => "恭喜您点亮福牌成功!",
"keyword1" => $light['price'],
"keyword2" => $light['term'],
"keyword3" => date('Y-m-d H:i:s',$order['end_time']),
"remark" => "欢迎再次购买!",
);
$result = $notice->uses($templateId)->withUrl($url)->andData($data)->andReceiver($userId)->send();
} else {
// 用户支付失败
Db::name('light_order')->where('order_sn',$out_trade_no)->delete();
}
return true; // 返回处理完成
});
$response->send();
}
public function notify2(){
// cache('nnn',111);
$app = new Application($this->options);
$response = $app->payment->handleNotify(function($notify, $successful){
cache('notify',$notify);
protected function lightChange($id="",$status1='01',$status2='01',$u=""){
/*这里是支付回调逻辑处理,一下是DEMO*/
// // 使用通知里的 "微信支付订单号" 或者 "商户订单号" 去自己的数据库找到订单
$out_trade_no=$notify->out_trade_no;
$order = Db::name('pay')->where('pay_sn',$out_trade_no)->find();
if (!$order) { // 如果订单不存在
return 'Order not exist.'; // 告诉微信,我已经处理完了,订单没找到,别再通知我了
}
// // 如果订单存在
// // 检查订单是否已经更新过支付状态
if ($order['pay_time']!=null) { // 假设订单字段“支付时间”不为空代表已经支付
return true; // 已经支付成功了就不再更新了
}
// // 用户是否支付成功
if ($successful) {
// 回填微信的订单号
// $update['transaction_id']=$notify->transaction_id;
// 不是已经支付状态则修改为已经支付状态
$light_order=Db::name('light_order')->where('id',$order['order_id'])->find();
$light=Db::name('light')->where('id',$light_order['light_id'])->find();
//寺庙金额增加
Db::name('temple')->where('id',$light['temple_id'])->setInc('money',$order['money']);
Db::name('pay')->where('pay_sn',$out_trade_no)->update(['pay_time'=>time()]);
Db::name('light_order')->where('id',$order['order_id'])->update(['end_time'=>strtotime('+'."$light[term]". 'year',$light_order['end_time'])]);
// $this->lightChange($order['light_id'],'01','01',$order['name'],$order['content']);
} else {
return false;
}
return true; // 返回处理完成
});
$response->send();
}
protected function lightChange($id="",$status1='01',$status2='01',$u="",$c=""){
if ($id==""){
return false;
}else {
$light=Db::name('light')->where('id',$id)->find();
$client = fsockopen('114.215.223.17', 5002, $errno, $errmsg, 1);
$code=$light['addr'].'10000000102001'.$light['addr'].$status1.$status2.$this->strtoascii($u).'00';
$code=$light['addr'].'10000000306001'.$light['addr'].$status1.$status2.$this->strtoascii1($u).$this->strtoascii2($c).'00';
$crc=$this->crc16_modbus($code);
$changeCode=$code.substr($crc,2,2).substr($crc,0,2);
// var_dump($queryCode);
$data = array('uid' => $light['number'], 'percent' => "$changeCode");
// 发送数据,注意5678端口是Text协议的端口,Text协议需要在数据末尾加上换行符
fwrite($client, json_encode($data) . "\n");
... ... @@ -143,20 +241,73 @@ class PayController extends WeChatBaseController
}
return sprintf('%04X', $crc);
}
public function strtoascii($str="潘浩文")
public function strtoascii1($str="")
{
$str = mb_convert_encoding($str, 'GB2312');
if(strlen($str)%2!=0){
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 1) {
$change_after .= dechex(ord($str[$i]));
// var_dump($change_after);
}
}else {
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 2) {
$change_after .= dechex(ord($str[$i])) . dechex(ord($str[$i + 1]));
}
}
for ($i=0;strlen($change_after)<50;$i++){
$change_after=$change_after.'00';
}
return strtoupper($change_after);
}
public function strtoascii2($str="")
{
$str = mb_convert_encoding($str, 'GB2312');
$change_after = '';
for ($i = 0; $i < strlen($str); $i=$i+2) {
$change_after .= dechex(ord($str[$i])).dechex(ord($str[$i+1]));
// var_dump(strlen($str));
if(strlen($str)%2!=0){
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 1) {
$change_after .= dechex(ord($str[$i]));
// var_dump($change_after);
}
}else {
$change_after = '';
for ($i = 0; $i < strlen($str); $i = $i + 2) {
$change_after .= dechex(ord($str[$i])) . dechex(ord($str[$i + 1]));
// var_dump($change_after);
}
}
for ($i=0;strlen($change_after)<52;$i++){
// exit();
for ($i=0;strlen($change_after)<130;$i++){
$change_after=$change_after.'00';
}
return strtoupper($change_after);
}
public function cancel(){
$param=$this->request->param();
Db::name('light_order')->where(['light_id'=>$param['light_id'],'status'=>0])->delete();
$this->redirect(url('portal/index/lightOrder',array('id'=>$param['light_id'])));
}
public function cancel2(){
$param=$this->request->param();
Db::name('pay')->where(['order_id'=>$param['order_id'],'pay_time'=>null])->delete();
$this->redirect(url('portal/user/edit',array('id'=>$param['order_id'])));
}
... ...
... ... @@ -95,6 +95,9 @@ class RegisterController extends WeChatBaseController
//个人信息ajax提交
public function postInfo(){
$param=$this->request->param();
$arr = date_parse_from_format('Y年m月d日',$param['birthday']);
$param['birthday'] = mktime(0,0,0,$arr['month'],$arr['day'],$arr['year']);
// $param['birthday']=strtotime( $param['birthday']);
$param['status']=1;
$re=Db::name('users')->where('open_id',session('wechat_user')['id'])->update($param);
if ($re){
... ...
... ... @@ -14,8 +14,9 @@ use cmf\controller\WeChatBaseController;
use think\Validate;
use cmf\controller\HomeBaseController;
use app\user\model\UserModel;
use app\admin\service;
use think\Db;
use EasyWeChat\Foundation\Application;
class UserController extends WeChatBaseController
{
... ... @@ -61,10 +62,64 @@ class UserController extends WeChatBaseController
public function edit(){
$re=$this->checkLogin();
$this->checkLogin();
$options = [
'app_id' => config('wechat_config.app_id'),
'secret' => config('wechat_config.secret'),
'payment' => config('wechat_config.payment'),
];
$app = new Application($options);
$js = $app->js;
$jss = $js->config(['chooseImage', 'uploadImage', 'previewImage'], $debug = false, $beta = false, $json = true);
$this->assign('js', $jss);
$param=$this->request->param();
$data=Db::name('light_order')->where('id',$param['id'])->find();
$this->assign('list',$data);
return $this->fetch(':edit');
}
public function editPost(){
$user=$this->checkLogin();
$param = $this->request->param();
if ($param['media']!="") {
$param['avatar'] = $this->upload_wx_pic_mul($param['media']);
}
unset($param['media']);
$data=Db::name('light_order')->where('id',$param['id'])->find();
// return $param;
Db::name('light_order')->where('id',$param['id'])->update($param);
$lightService= new service\LightService();
$lightService->lightChange($data['light_id'],'01','01',$param['name'],$param['content']);
return 1;
}
public function upload_wx_pic_mul()
{
require_once VENDOR_PATH . "jssdk/jssdk.php";
$jssdk = new \JSSDK(Config('WX_APPID'), Config('WX_APP_SECRET'));
$access_token = $jssdk->getAccessToken();
$img_str = $this->request->param('media');
$file = $this->getmedia($access_token,$img_str, date('Ymd'));
return $file;
}
public function getmedia($access_token, $media_id, $foldername)
{
$url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $media_id;
if (!file_exists("./upload/" . $foldername)) {
mkdir("./upload/" . $foldername, 0777, true);
}
$file_name = date('YmdHis') . rand(1000, 9999) . '.jpg';
$targetName = './upload/' . $foldername . '/' . $file_name;
$saveName = $foldername . '/' . $file_name;
$ch = curl_init($url); // 初始化
$fp = fopen($targetName, 'wb'); // 打开写入
curl_setopt($ch, CURLOPT_FILE, $fp); // 设置输出文件的位置,值是一个资源类型
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
return $saveName;
}
}
\ No newline at end of file
... ...
... ... @@ -10,7 +10,7 @@
// [ 入口文件 ]
ini_set('display_errors','on');
// 调试模式开关
define("APP_DEBUG", true);
define("APP_DEBUG", false);
// 定义CMF根目录,可更改此目录
define('CMF_ROOT', __DIR__ . '/../');
... ...
... ... @@ -27,13 +27,20 @@
<div class="col-md-9">
<table class="table table-bordered">
<tr>
<th>设备ID<span class="form-required">*</span></th>
<th>设备ID(重要)<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="number"
id="number" required value="" placeholder="请输入设备ID"/>
</td>
</tr>
<tr>
<th>设备ADDR(重要)<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="addr"
id="addr" required value="" placeholder="请输入设备addr"/>
</td>
</tr>
<tr>
<th>地区<span class="form-required">*</span></th>
<td>
<select name="address" required id="address">
... ... @@ -69,7 +76,7 @@
</td>
</tr>
<tr>
<th>使用年限<span class="form-required">*</span></th>
<th>使用年限(年)<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="term"
id="term" value="" placeholder="请输入该位置使用年限" required/>
... ...
... ... @@ -23,7 +23,7 @@
<div class="col-md-9">
<table class="table table-bordered">
<tr>
<th>设备ID<span class="form-required">*</span></th>
<th>设备ID(重要)<span class="form-required">*</span></th>
<td>
<input value="{$list.id}" name="id" hidden>
<input class="form-control" type="text" name="number"
... ... @@ -31,13 +31,20 @@
</td>
</tr>
<tr>
<th>设备ADDR(重要)<span class="form-required">*</span></th>
<td>
<input class="form-control" type="text" name="addr"
id="addr" required value="{$list.addr}" placeholder="请输入设备addr"/>
</td>
</tr>
<tr>
<th>地区<span class="form-required">*</span></th>
<td>
<select name="address" required id="address">
<option value="">请选择地区</option>
<foreach name="address" item="vo">
<option value="{$vo.address}" <eq name="list.address" value="$vo.address">selected</eq>>{$vo.address}</option>
<option value="{$vo.address}" <eq name="list.taddress" value="$vo.address">selected</eq>>{$vo.address}</option>
</foreach>
</select>
... ... @@ -49,7 +56,7 @@
<select name="temple_id" required id="temple">
<option value="">请选择所属寺庙</option>
<notempty name="list.temple">
<notempty name="list.temple_id">
<foreach name="temple" item="vo">
<option value="{$vo.id}" <eq name="list.temple_id" value="$vo.id">selected</eq>>{$vo.name}</option>
</foreach>
... ... @@ -63,7 +70,7 @@
<select name="area_id" required id="area">
<option value="">请选择所属区域</option>
<notempty name="list.area">
<notempty name="list.area_id">
<foreach name="area" item="vo">
<option value="{$vo.id}" <eq name="list.area_id" value="$vo.id">selected</eq>>{$vo.name}</option>
</foreach>
... ... @@ -87,7 +94,7 @@
</td>
</tr>
<tr>
<th>使用年限<span class="form-required">*</span></th>
<th>使用年限(年)<span class="form-required">*</span></th>
<td>
<input class="form-control" type="number" name="term"
id="term" value="{$list.term}" placeholder="请输入该位置使用年限" required/>
... ...
... ... @@ -28,6 +28,7 @@
<tr>
<th width="50">ID</th>
<th>设备ID</th>
<th>ADDR</th>
<th>设备位置</th>
<th>使用年限</th>
<th>价格(元)</th>
... ... @@ -44,14 +45,15 @@
<tr>
<td>{$vo.id}</td>
<td>{$vo.number}</td>
<td>{$vo.addr}</td>
<td>{$vo.row}排{$vo.column}位</td>
<td>{$vo.term}</td>
<td>{$vo.term}</td>
<td>{$vo.price}</td>
<td>
<eq name="vo.status" value="1">正常</eq>
<eq name="vo.status" value="2">故障</eq>
</td>
<td>{$vo.address}</td>
<td>{$vo.taddress}</td>
<td>{$vo.tname}</td>
<td>{$vo.taname}</td>
<td>
... ... @@ -67,6 +69,7 @@
<tr>
<th width="50">ID</th>
<th>设备ID</th>
<th>ADDR</th>
<th>设备位置</th>
<th>使用年限</th>
<th>价格(元)</th>
... ...
... ... @@ -15,7 +15,9 @@
<tr>
<th width="50">ID</th>
<th>设备ID</th>
<th>ADDR</th>
<th>设备位置</th>
<th>使用年限</th>
<th>价格(元)</th>
<th>设备运行状态</th>
<th>地区</th>
... ... @@ -30,13 +32,15 @@
<tr>
<td>{$vo.id}</td>
<td>{$vo.number}</td>
<td>{$vo.addr}</td>
<td>{$vo.row}排{$vo.column}位</td>
<td>{$vo.term}年</td>
<td>{$vo.price}</td>
<td>
<eq name="vo.status" value="1">正常</eq>
<eq name="vo.status" value="2">故障</eq>
</td>
<td>{$vo.address}</td>
<td>{$vo.taddress}</td>
<td>{$vo.tname}</td>
<td>{$vo.taname}</td>
<td>
... ... @@ -52,7 +56,9 @@
<tr>
<th width="50">ID</th>
<th>设备ID</th>
<th>ADDR</th>
<th>设备位置</th>
<th>使用年限</th>
<th>价格(元)</th>
<th>设备运行状态</th>
<th>地区</th>
... ...
... ... @@ -24,7 +24,7 @@
<tr>
<th>订单编号<span class="form-required">*</span></th>
<td>
<input value="{$list.id}" name="id" hidden>
<input value="{$list.loid}" name="id" hidden>
<input class="form-control" type="text" name="order_sn"
id="order_sn" required value="{$list.order_sn}" disabled/>
</td>
... ...
... ... @@ -66,7 +66,14 @@
<td>{$vo.taname}</td>
<td>{$vo.row}排{$vo.column}位</td>
<td>{$vo.money}</td>
<td>{:date('Y-m-d',$vo.pay_time);}</td>
<td>
<empty name="vo.pay_time">
未支付的订单
<else />
{:date('Y-m-d',$vo.pay_time);}
</empty>
</td>
<td>{:date('Y-m-d',$vo.end_time);}</td>
<td>{$vo.loname}</td>
<td><img width="25" height="25" src="{:cmf_get_image_preview_url($vo.avatar)}" onclick="parent.imagePreviewDialog(this.src);"/></td>
... ...
... ... @@ -23,7 +23,7 @@
<tbody>
<foreach name="list" item="vo">
<tr>
<td>{$vo.id}</td>
<td>{$vo.loid}</td>
<td>{:date('Y-m-d',$vo.pay_time);}</td>
<td>{$vo.user_name}</td>
<td>{$vo.nickname}</td>
... ...
... ... @@ -30,7 +30,7 @@
<th width="120">所属寺庙<span class="form-required">*</span></th>
<td>
<select name="temple_id" required>
<option value="">请选择寺庙账户</option>
<option value="">请选择所属寺庙</option>
<foreach name="temple" item="vo">
<option value="{$vo.id}">{$vo.name}</option>
</foreach>
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>福牌公众号</title>
<title>十方台公众号</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/detail.css" rel="stylesheet">
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>福牌公众号</title>
<title>十方台公众号</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<script src="__TMPL__/public/assets/js/weui.js"></script>
... ... @@ -17,7 +17,7 @@
<div class="head">
<div class="city">
<div class="city_name">
<text class="city-name">{$address.0}</text>
<text class="city-name">全部</text>
<image src="__TMPL__/public/assets/images/aicon03@2x.png"></image>
</div>
</div>
... ... @@ -82,6 +82,10 @@
$('.city-name').click(function () {
weui.picker([
{
label: "全部",
value: "",
},
<foreach name="address" item="u">
{
label: "{$u}",
... ... @@ -94,6 +98,29 @@
},
onConfirm: function (res) {
$('.city-name').text(res[0].label)
$.ajax({
url: "{:url('portal/index/search')}",
type: "post",
data: {
name:$('.search-input').val(),
address:$('.city-name').text()
},
success: function (data) {
var html = "";
for (var i = 0; i < data.length; i++) {
html +=' <a href=" '+data[i]['url']+'">\n' +
' <div class="list-item">\n' +
' <image src="'+data[i]['thumbnail']+'" class="img"></image>\n' +
' <div class="name">'+data[i]['name']+'</div>\n' +
' <div class="people-num">已有<span>'+data[i]['count']+'</span>人供奉</div>\n' +
' <div class="enter">进入</div>\n' +
' </div>\n' +
' </a>'
}
$(".section").html(html);
}
})
}
}
)
... ...
... ... @@ -109,7 +109,7 @@
window.history.go(-1);
}
function showModal() {
alert("该位置已被预订,不能选择")
alert("十方台温馨提示:\n该位置已被预订,不能选择")
}
</script>
</html>
\ No newline at end of file
... ...
... ... @@ -20,7 +20,7 @@
</div>
</div>
<div class="section">
<div class="title">福牌显示信息</div>
<div class="title">十方台显示信息</div>
<div class="avatar-box" onclick="editAvatar()">
<div class="border-box">
<image src="{:cmf_get_image_preview_url($users.avatar);}" class="avatar-img"></image>
... ... @@ -45,7 +45,7 @@
<div class="bless-input">
<!--<input type="text" placeholder="请输入祈祷语" class="bless-input"/>-->
<!--<textarea type="text" placeholder="请输入祈祷语" class="bless-input"/>-->
<textarea name="" id="content" cols="30" rows="10" placeholder="请输入祈祷语" class="bless-input"></textarea>
<textarea name="" id="content" cols="30" rows="10" placeholder="请输入祈祷语(最多30字)" class="bless-input" maxlength="30"></textarea>
</div>
</div>
</div>
... ... @@ -98,13 +98,23 @@
});
$('.reset').click(function () {
// console.log($('.bless-input').val())
var content=$('#content').val()
content=content.replace(/,/ig,',');
content=content.replace(/。/ig,'.');
content=content.replace(/:/ig,':');
content=content.replace(/;/ig,';');
content=content.replace(/!/ig,'!');
if(content==""){
alert('祈福语必须输入')
return false
}
$.ajax({
url: "{:url('portal/index/listOrderPost')}",
type: "post",
data: {
'media': serverIds,
'name':$('.name-info').val(),
'content':$('#content').val(),
'content':content,
'money':"{$list.price}",
'light_id':"{$list.id}",
'term':"{$list.term}",
... ... @@ -113,12 +123,16 @@
success: function (data) {
// console.log(data);
if (data==2){
alert('预订失败');
alert('十方台温馨提示:\n预订失败');
return false
}else if (data==3){
alert('该财神灯已被点亮');
alert('十方台温馨提示:\n该财神灯已被点亮');
return false
}else if (data==4){
alert('十方台温馨提示:\n其他用户支付中');
return false
}else {
}
else {
window.location.href=data;
}
}
... ...
... ... @@ -16,6 +16,7 @@
WeixinJSBridge.log(res.err_msg);
// alert(res.err_code+res.err_desc+res.err_msg);
if (res.err_msg=='get_brand_wcpay_request:cancel'){
window.location.href="{:url('portal/pay/cancel',array('light_id'=>$list.light_id))}"
//支付取消逻辑
}else if (res.err_msg=='get_brand_wcpay_request:ok'){
window.location.href="{:url('user/User/myLight')}"
... ...
<!DOCTYPE html>
<html>
<head>
<title>微信支付</title>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, width=device-width, user-scalable=no" />
<link rel="stylesheet" type="text/css" href="__TMPL__/public/assets/css/lanren.css">
<script type="text/javascript">
//调用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
{$jsApiParameters},
function(res){
WeixinJSBridge.log(res.err_msg);
// alert(res.err_code+res.err_desc+res.err_msg);
if (res.err_msg=='get_brand_wcpay_request:cancel'){
window.location.href="{:url('portal/pay/cancel2',array('order_id'=>$list.id))}"
//支付取消逻辑
}else if (res.err_msg=='get_brand_wcpay_request:ok'){
window.location.href="{:url('user/user/myLight')}"
//支付成功逻辑
}else{
//支付失败逻辑
alert('支付失败')
window.history.go(-1);
}
}
);
}
function callpay()
{
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WesixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}else{
jsApiCall();
}
}
</script>
</head>
<body>
<div class="wenx_xx">
<div class="mz">{$list.pay_sn}</div>
<div class="wxzf_price">¥{$list.price}</div>
</div>
<div class="skf_xinf">
<div class="all_w"> <span class="bt">收款方</span> <span class="fr">十方台</span> </div>
</div>
<a onclick="callpay()" class="ljzf_but all_w">立即支付</a>
<script type="text/javascript">
callpay();
</script>
</body>
</html>
\ No newline at end of file
... ...
... ... @@ -5,6 +5,21 @@ body, html{
.content {
width: 100%;
}
.no-data {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.no-data .tips {
color: #999999;
font-size: 0.32rem;
}
.cards-list {
width: 100%;
display: flex;
... ...
... ... @@ -29,6 +29,11 @@ body, html{
outline: none;
background: none;
}
.age-box .date {
font-size: 0.28rem;
color: #1A1A1A;
line-height: 1rem;
}
.input-box {
width: 100%;
display: flex;
... ...

1.2 MB | 宽: | 高:

1.2 MB | 宽: | 高:

  • 两方对比
  • 交换覆盖
  • 透明覆盖
... ... @@ -4,4 +4,24 @@
d=c.getBoundingClientRect().width;
document.documentElement.style.fontSize=100*(d/750)+"px"}
window.addEventListener("DOMContentLoaded",function(){b()},!1),
window.addEventListener("resize",function(){b()}),b()}(window);
\ No newline at end of file
window.addEventListener("resize",function(){b()}),b()}(window);
window.alert = function(name){
var iframe = document.createElement("IFRAME");
iframe.style.display="none";
document.documentElement.appendChild(iframe);
window.frames[0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
window.confirm = function (message) {
var iframe = document.createElement("IFRAME");
iframe.style.display = "none";
iframe.setAttribute("src", 'data:text/plain,');
document.documentElement.appendChild(iframe);
var alertFrame = window.frames[0];
var result = alertFrame.window.confirm(message);
iframe.parentNode.removeChild(iframe);
return result;
}
\ No newline at end of file
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>我的福牌</title>
<title>我的十方台</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/cards.css" rel="stylesheet">
... ... @@ -21,13 +21,13 @@
<div class="term-of-validity">{:date('Y年m月d日',$list['create_time']);}-{:date('Y年m月d日',$list['end_time']);}</div>
</div>
<div class="renew-box">
<div class="renew-btn">续费</div>
<a href="{:url('portal/pay/index2',array('id'=>$list.id))}" style="text-decoration:none;out-line: none;"> <div class="renew-btn">续费</div></a>
</div>
</div>
<div class="bottom">
<div class="border-box">
<div class="name">福牌信息</div>
<div class="edit" onclick="enter()">
<div class="name">十方台信息</div>
<div class="edit">
<a href="{:url('user/User/edit',array('id'=>$list.id))}" style="text-decoration:none;out-line: none;color: #666666"><div class="name-info">信息有误,要修改</div></a>
<image src="__TMPL__/public/assets/images/bicon03@2x.png" class="arrow"></image>
</div>
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>我的福牌</title>
<title>我的十方台</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/edit.css" rel="stylesheet">
... ... @@ -11,13 +11,13 @@
</head>
<body>
<div class="section">
<div class="title">福牌显示信息</div>
<div class="title">十方台显示信息</div>
<div class="avatar-box">
<div class="border-box">
<image src="{:cmf_get_image_preview_url($list.avatar);}" class="avatar-img"></image>
<div class="edit">
<div class="list_input">
<input type="file" value="">
<!--<input type="file" value="">-->
编辑头像
</div>
<image src="__TMPL__/public/assets/images/bicon03@2x.png" class="arrow"></image>
... ... @@ -37,17 +37,85 @@
<div class="bless-box">
<div class="bless-title">祈祷语</div>
<!--<input type="text" placeholder="请输入祈祷语" class="bless-input"/>-->
<textarea name="" id="" cols="30" rows="10" placeholder="请输入祈祷语" class="bless-textarea">{$list.content}</textarea>
<textarea name="" id="content" cols="30" rows="10" placeholder="请输入祈祷语(最多30字)" class="bless-textarea" maxlength="30">{$list.content}</textarea>
</div>
<div class="footer-box">
<div class="btn">
<!--<div class="seat-num">重新选区</div>-->
<div class="reset" onclick="confirm()">确定</div>
<div class="reset">确定</div>
</div>
</div>
</div>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script>
wx.config(
{$js}
);
var serverIds = '';
wx.ready(function () {
$('.list_input').click(function () {
// var id = $(this).attr('id');
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
$('.avatar-img').attr('src',res.localIds)
uploadImages(res.localIds)
}
});
});
function uploadImages(localIds) {
var localId = localIds.pop();
// alert(localIds)
wx.uploadImage({
localId: localId,
isShowProgressTips: 1,
success: function (res) {
serverIds = res.serverId; // 返回图片的服务器端ID
// serverIds += id+':'+serverId + ',';
// alert(serverIds)
},
fail: function (res) {
$modal.toast(JSON.stringify(res));
}
});
}
});
$('.reset').click(function () {
// console.log($('.bless-input').val())
var content=$('#content').val()
if(content==""){
alert('祈福语必须输入')
return false
}
content=content.replace(/,/ig,',');
content=content.replace(/。/ig,'.');
content=content.replace(/:/ig,':');
content=content.replace(/;/ig,';');
content=content.replace(/!/ig,'!');
$.ajax({
url: "{:url('user/User/editPost')}",
type: "post",
data: {
'media': serverIds,
'name':$('.name-info').val(),
'content':content,
'id':"{$list.id}",
},
success: function (data) {
console.log(data);
if (data==1){
alert('十方台温馨提示:\n编辑成功');
window.history.go(-1);
}
// else {
// alert('十方台温馨提示:编辑失败');
// return false
// }
}
})
})
</script>
</html>
\ No newline at end of file
... ...
... ... @@ -3,49 +3,75 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>福牌公众号</title>
<title>十方台公众号</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<script src="__TMPL__/public/assets/js/weui.js"></script>
<script src="__TMPL__/public/assets/js/myweui.js"></script>
<link href="__TMPL__/public/assets/css/weui.css" rel="stylesheet">
<link href="__TMPL__/public/assets/css/myweui.css" rel="stylesheet">
<link href="__TMPL__/public/assets/css/personal-info.css" rel="stylesheet">
</head>
<body>
<div class="content">
<div class="name-box">
<div class="input-box">
<text>姓名</text>
<input class="input" type="text" placeholder="请输入姓名" cursor="100" placeholder-class="placeholder-style"
id="user_name" value="" bindinput="inputName"/>
</div>
<div class="content">
<div class="name-box">
<div class="input-box">
<text>姓名</text>
<input class="input" type="text" placeholder="请输入姓名" cursor="100" placeholder-class="placeholder-style"
id="user_name" value="" bindinput="inputName"/>
</div>
<div class="age-box">
<div class="input-box">
<text>年龄</text>
<input class="input" type="number" placeholder="请输入年龄" cursor="100" placeholder-class="placeholder-style"
id="age" value="" bindinput="inputName"/>
</div>
</div>
<div class="age-box">
<div class="input-box">
<text>年龄</text>
<input class="input" type="number" placeholder="请输入年龄" cursor="100" placeholder-class="placeholder-style"
id="age" value="" bindinput="inputName"/>
</div>
</div>
<div class="age-box" id='showDatePicker'>
<div class="input-box">
<text>生日</text>
<text id="date" class="date"></text>
<!--<input type="text" id='showDatePicker' bindblur="birthBlur"/>-->
</div>
<div class="sex-box">
<div class="input-box">
<text>性别</text>
<div class="man active" data-id="1"></div>
<div class="women" data-id="2"></div>
</div>
</div>
<div class="sex-box">
<div class="input-box">
<text>性别</text>
<div class="man active" data-id="1"></div>
<div class="women" data-id="2"></div>
</div>
<div class="family-box">
<div class="input-box">家庭住址</div>
<div class="address-input">
<input class="input" type="text" placeholder="请填写您的家庭住址" cursor="100" placeholder-class="placeholder-style"
value="" id="address" bindinput="inputName"/>
</div>
</div>
<div class="family-box">
<div class="input-box">家庭住址(选填)</div>
<div class="address-input">
<input class="input" type="text" placeholder="请填写您的家庭住址(选填)" cursor="100"
placeholder-class="placeholder-style"
value="" id="address" bindinput="inputName"/>
</div>
<div class="footer" onclick="goNext()">
<div class="confirm-btn">
<text>确定</text>
</div>
</div>
<div class="footer" onclick="goNext()">
<div class="confirm-btn">
<text>确定</text>
</div>
</div>
</div>
</body>
<script>
// $("#showDatePicker").blur(function(){$("keyboard").hide();});
$('#showDatePicker').on('click', function () {
weui.datePicker({
start: 1990,
end: new Date().getFullYear(),
onChange: function (result) {
// console.log(result);
},
onConfirm: function (result) {
$('#date').text(result[0].label + result[1].label + result[2].label)
}
});
});
$(".man").click(function () {
$(".man").addClass('active');
$(".women").removeClass('active');
... ... @@ -54,43 +80,46 @@
$(".women").addClass('active');
$(".man").removeClass('active');
})
function goNext() {
var user_name=$('#user_name').val()
var age=$('#age').val()
var sex=$('.active').data("id")
var user_name = $('#user_name').val()
var age = $('#age').val()
var sex = $('.active').data("id")
// console.log(sex)
var address=$('#address').val()
if (user_name==""){
var address = $('#address').val()
if (user_name == "") {
alert('请输入姓名')
return false
}
if (age==""){
if (age == "") {
alert('请输入年龄')
return false
}
if (address==""){
alert('请输入家庭住址')
alert($('#showDatePicker').val());
if ($('#showDatePicker').val()==""){
alert('请选择出生日期')
return false
}
$.ajax({
url: "{:url('user/register/postInfo')}",
type: "post",
data: {
user_name:user_name,
age:age,
sex:sex,
address:address,
},
success: function (data) {
if (data==1) {
alert('注册成功')
window.location.href = "{:url('portal/index/index')}";
}else {
alert('注册失败')
return false
}
}
})
url: "{:url('user/register/postInfo')}",
type: "post",
data: {
birthday:$('#showDatePicker').val(),
user_name: user_name,
age: age,
sex: sex,
address: address,
},
success: function (data) {
if (data == 1) {
alert('十方台温馨提示:\n注册成功')
window.location.href = "{:url('portal/index/index')}";
} else {
alert('十方台温馨提示:\n注册失败')
return false
}
}
})
}
</script>
</html>
\ No newline at end of file
... ...
... ... @@ -3,13 +3,18 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>我的福牌</title>
<title>我的十方台</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/blessing.css" rel="stylesheet">
</head>
<body>
<div class="content">
<empty name="list">
<div class="no-data">
<div class="tips">暂无供奉的福牌!</div>
</div>
</empty>
<div class="cards-list">
<foreach name="list" item="vo">
<a href="{:url('user/User/details',array('id'=>$vo.id))}" style="text-decoration:none;
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>福牌公众号</title>
<title>十方台公众号</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/index.css" rel="stylesheet">
... ... @@ -38,7 +38,7 @@
function goNext() {
var phone = document.getElementById('phone').value;
if (!(/(^[0-9]{3,4}\-[0-9]{7}$)|(^[0-9]{7}$)|(^[0-9]{3,4}[0-9]{7}$)|(^0{0,1}13[0-9]{9}$)/.test(phone))) {
alert("手机号码有误,请重填");
alert("十方台温馨提示:手机号码有误,请重填");
return false;
} else {
$.ajax({
... ... @@ -88,7 +88,7 @@
$(".getCode").click(function () {
var phone = document.getElementById('phone').value;
if (!(/(^[0-9]{3,4}\-[0-9]{7}$)|(^[0-9]{7}$)|(^[0-9]{3,4}[0-9]{7}$)|(^0{0,1}13[0-9]{9}$)/.test(phone))) {
alert("手机号码有误,请重填");
alert("十方台温馨提示:手机号码有误,请重填");
return false;
} else {
var time = 60;
... ... @@ -113,11 +113,11 @@
},
success: function (data) {
if (data==2){
alert('获取验证码失败');
alert('十方台温馨提示:\n获取验证码失败');
return false;
}
else {
alert(data)
alert('十方台温馨提示:\n'+data)
}
}
})
... ...