WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考
WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考
AdminController.class.php<?php <br />
<br>
namespace Addons\Sign\Controller;<br>
<br>
class AdminController extends InitController<br>
{<br>
<br>
<br>
public function __construct()<br>
{<br>
parent::__construct();<br>
}<br>
<br>
public function index()<br>
{<br>
$config = M("AddonSignConfig")->find();<br>
$this->assign("config", $config);<br>
<br>
$record = D(’Addons://Sign/AddonSignRecord’); // 实例化User对象<br>
<br>
$count = $record->count();// 查询满足要求的总记录数<br>
$Page = new \Think\Page($count, 12);// 实例化分页类 传入总记录数和每页显示的记录数(25)<br>
$Page->setConfig(’theme’, "<div><ul>
<li>%FIRST%</li>
<li>%UP_PAGE%</li>
<li>%LINK_PAGE%</li>
<li>%DOWN_PAGE%</li>
<li>%END%</li>
<li><a> %HEADER% %NOW_PAGE%/%TOTAL_PAGE% 页</a></li>
</ul></div>");<br>
$show = $Page->show();// 分页显示输出<br>
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性<br>
$record = $record->limit($Page->firstRow . ’,’ . $Page->listRows)->order("id desc")->relation(true)->select();<br>
<br>
$this->assign("record", $record);// 赋值数据集<br>
$this->assign(’page’, $show);// 赋值分页输出<br>
<br>
$this->display();<br>
}<br>
<br>
public function addConfig()<br>
{<br>
M("AddonSignConfig")->where(array("id" => "1"))->save($_POST);<br>
$this->success(’修改成功’, ’Admin/Admin/index/addon/Sign’);<br>
}<br>
}
IndexController.class.php<?php <br />
namespace Addons\Sign\Controller;<br>
<br>
class IndexController extends InitController<br>
{<br>
public $appUrl = "";<br>
public function __construct()<br>
{<br>
parent::__construct();<br>
$this->appUrl = "http://" . I("server.HTTP_HOST");<br>
}<br>
<br>
public function init()<br>
{<br>
return R("App/Common/init");<br>
}<br>
<br>
public function oauthRegister($wxuser)<br>
{<br>
return R("App/Common/oauthRegister", array($wxuser));<br>
}<br>
<br>
public function index()<br>
{<br>
<br>
$user = R("App/Public/oauthLogin");<br>
<br>
// $user = M("User")->where(array("uid" => session("userUid")))->find();<br>
$contact = M("Contact")->where(array("user_id" => $user["id"]))->find();<br>
if ($contact) {<br>
$this->assign("contact", $contact);<br>
}<br>
$config = M("Config")->find();<br>
$this->assign("config", $config);<br>
$this->assign("user", $user);<br>
<br>
$product = M("addonScore")->select();<br>
$this->assign("product", $product);<br>
$this->display();<br>
}<br>
<br>
public function addOrder()<br>
{<br>
// $user = M("User")->where(array("uid" => session("userUid")))->find();<br>
$user = M("User")->where(array("id" => session("userId")))->find();<br>
$score = floatval($user["score"]) - floatval($_POST["score"]);<br>
if ($score >= 0) {<br>
M("User")->where(array("id" => $user["id"]))->save(array("score" => $score));<br>
} else {<br>
return;<br>
}<br>
<br>
$userHas = M("Contact")->where(array("user_id" => session("userId")))->find();<br>
if ($userHas) {<br>
$contact ["id"] = $userHas ["id"];<br>
$contact ["user_id"] = session("userId");<br>
$contact ["name"] = $_POST ["name"];<br>
$contact ["phone"] = $_POST ["phone"];<br>
$contact ["address"] = $_POST ["address"];<br>
M("Contact")->save($contact);<br>
} else {<br>
$contact ["user_id"] = session("userId");<br>
$contact ["name"] = $_POST ["name"];<br>
$contact ["city"] = "";<br>
$contact ["area"] = "";<br>
$contact ["phone"] = $_POST ["phone"];<br>
$contact ["address"] = $_POST ["address"];<br>
M("Contact")->add($contact);<br>
}<br>
$userHas = M("Contact")->where(array("user_id" => session("userId")))->find();<br>
$contact_id = $userHas["id"];<br>
<br>
$data ["user_id"] = session("userId");<br>
$data ["contact_id"] = $contact_id;<br>
$data ["orderid"] = date("ymdhis") . mt_rand(1, 9);<br>
$data ["totalscore"] = $_POST["score"];<br>
$data ["status"] = 0;<br>
$data ["note"] = $_POST ["note"];<br>
$data ["time"] = date("Y-m-d H:i:s");<br>
$data ["score_id"] = $_POST ["id"];<br>
$result = M("AddonScoreOrder")->add($data);<br>
if ($result) {<br>
$this->ajaxReturn($result);<br>
}<br>
}<br>
public function sign(){<br>
$today = date("Y-m-d");<br>
$where["time"] = array("like", $today . "%");<br>
$where["user_id"] = session("userId");<br>
$record = D("Addons://Sign/AddonSignRecord")->where($where)->find();<br>
if ($record) {<br>
$this->ajaxReturn(array("status" => 0));<br>
return;<br>
}<br>
<br>
$user = M("User")->where(array("id" => session("userId")))->find();<br>
<br>
$count = 0;<br>
do{<br>
$count++;<br>
$yesterday = date("Y-m-d", strtotime("-$count day"));<br>
$where["time"] = array("like", $yesterday . "%");<br>
$record = D("AddonSignRecord")->where($where)->find();<br>
} while ($record);<br>
$continue_sign = $count-1;<br>
<br>
$config = M("AddonSignConfig")->find();<br>
if ($config) {<br>
$addScore = floatval($continue_sign) * floatval($config["continue_sign"]) + floatval($config["first_sign"]);<br>
M("AddonSignRecord")->add(array("user_id" => session("userId"), "score" => $addScore));<br>
<br>
$score = floatval($user["score"]) + $addScore;<br>
M("User")->where(array("id" => $user["id"]))->save(array("score" => $score));<br>
$this->ajaxReturn(array("status" => 1, "score" => $addScore));<br>
}<br>
}<br>
<br>
}
Index_index.htmlnbsp;html><br>
<br>
<br>
<meta>
<br>
<meta>
<br>
<meta>
<br>
<title>签到系统</title>
<br>
<meta>
<br>
<meta>
<br>
<!-- apple devices fullscreen --><br>
<meta>
<br>
<meta>
<br>
<link>
<br>
<link>
<br>
<link>
<br>
<link>
<br>
<link>
<br>
<br>
<br>
<div>
<br>
<div>
<br>
<div>
<br>
<div>
<br>
<div><img alt="WeMall微信商城签到插件Sign的主要源码" ></div>
<br>
<div>
<br>
<span>{$user.username}</span><br>
<span>会员ID: {$user.id}</span><br>
</div>
<br>
</div>
<br>
<div>
<br>
<a>积分<span>{$user.score}</span></a><br>
<a><span><span></span>
style="color: #fff;background-color: transparent;border-color: #fff;">今日签到</span></a><br>
</div>
<br>
</div>
<br>
</div>
<br>
<div>
<br>
<div>
<br>
<ul>
<br>
<volist><br>
<li>
<br>
<div>
<br>
<div>
<br>
<h5>{$product.name}</h5>
<br>
</div>
<br>
<div>
<br>
<img alt="WeMall微信商城签到插件Sign的主要源码" ><br>
</div>
<br>
<div>
<br>
<div>积分:<b>{$product.score}</b>
</div>
<br>
<div>
<a></a>
onclick="doCart(this , ’{$product.score}’ , ’{$product.id}’)" style="color: black;">立即兑换<br>
</div>
<br>
</div>
<br>
</div>
<br>
</li>
<br>
</volist><br>
</ul>
<br>
</div>
<br>
</div>
<br>
<div></div>
<br>
<div></div>
style="left: 0px; bottom: 0px; z-index: 3000; position: fixed; display: none;width: 100%;"><br>
<div>
<br>
<div>
<br>
<div><img alt="WeMall微信商城签到插件Sign的主要源码" ></div>
<br>
</div>
<br>
<div>
<br>
<ul>
<br>
<li>
<br>
<div>姓名</div>
<br>
<div>
<br>
<input><br>
</div>
<br>
</li>
<br>
<li>
<br>
<div>手机</div>
<br>
<div>
<br>
<input><br>
</div>
<br>
</li>
<br>
<li>
<br>
<div>地址</div>
<br>
<div>
<br>
<input><br>
</div>
<br>
</li>
<br>
<li>
<br>
<div>备注</div>
<br>
<div>
<br>
<input><br>
</div>
<br>
</li>
<br>
</ul>
<br>
</div>
<br>
<br>
<div>
<br>
<a></a>
style="display: none;"><br>
<br>
<div>
<br>
<input>
style="display: none; width: 100%;"><br>
<a></a>
onclick="submitOrder()">提交<br>
</div>
<br>
</div>
<br>
<br>
</div>
<br>
</div>
<br>
<br>
<div>
<br>
<div>温馨提示</div>
<br>
<div></div>
<br>
<div><button>知道了</button></div>
<br>
<div></div>
<br>
</div>
<br>
<br>
<script></script><br>
<script></script><br>
<script><br />
var id = 0;<br />
var score = 0;<br />
function hidePop(){<br />
$("#join_box").hide();<br />
$("#cover2").hide();<br />
}<br />
function showPop(){<br />
$("#join_box").show();<br />
$("#cover2").show();<br />
}<br />
function doCart(obj , scoreIn ,idIn){<br />
if(parseFloat(scoreIn) > parseFloat($(’#myscore’).html())){<br />
alert("积分不足!");<br />
return;<br />
}<br />
id = idIn;<br />
score = scoreIn;<br />
showPop();<br />
}<br />
<br />
var signFlag = true;<br />
function signIn(obj){<br />
$.ajax({<br />
type: "post",<br />
url: "{:u_addons(’Sign://Index/sign’)}",<br />
data: {<br />
<br />
},<br />
success: function (data) {<br />
if(data){<br />
var json = eval(data)<br />
$("#alert").show();<br />
if (typeof json.score != "undefined") {<br />
$("#alert_text").html("恭喜您获得"+json.score+"积分");<br />
}else{<br />
$("#alert_text").html("对不起,您已签到!");<br />
}<br />
<br />
}<br />
},<br />
beforeSend: function () {<br />
<br />
},<br />
complete: function () {<br />
}<br />
<br />
});<br />
<br />
// $("#alert").show();<br />
}<br />
function hideAlert(){<br />
$("#alert").hide();<br />
location.reload();<br />
}<br />
var submitFlag = true;<br />
function submitOrder(){<br />
if (submitFlag == false) {<br />
alert("请不要重复操作!");<br />
return;<br />
};<br />
var name = $(’#name’).val();<br />
var phone = $(’#phone’).val();<br />
var address = $(’#address’).val();<br />
var note = $(’#note’).val();<br />
<br />
if (name.length == 0 || phone.length == 0 || address.length == 0) {<br />
alert("请核对输入的信息!");<br />
return;<br />
};<br />
submitFlag = false;<br />
<br />
$.ajax({<br />
type: "post",<br />
url: "{:u_addons(’Sign://Index/addOrder’)}",<br />
data: {<br />
name: name,<br />
phone: phone,<br />
id: id,<br />
score: score,<br />
address: address,<br />
note: note<br />
},<br />
success: function (data) {<br />
if(data){<br />
hidePop();<br />
alert("商品兑换成功!");<br />
location.reload();<br />
}<br />
},<br />
beforeSend: function () {<br />
<br />
},<br />
complete: function () {<br />
}<br />
<br />
});<br />
}<br />
</script><br>
<br>
Admin_index.html
<section><br>
<h1>
<br>
签到管理<br>
<small></small><br>
</h1>
<br>
</section><br>
<!-- Main content --><br>
<section><br>
<div>
<br>
<!-- /.col --><br>
<div>
<br>
<div>
<br>
<div>
<br>
<h3>签到管理</h3>
<br>
<!-- /.box-tools --><br>
</div>
<br>
<!-- /.box-header --><br>
<div>
<br>
<div>
<br>
<ul>
<br>
<li>
<br>
<a><i></i><span>签到设置</span></a><br>
</li>
<br>
<li>
<br>
<a><i></i><span>签到记录</span></a><br>
</li>
<br>
</ul>
<br>
</div>
<br>
<div>
<br>
<div>
<br>
<!-- <h3>签到设置</h3> --><br>
<br>
<p><br>
</p>
<form></form>
onsubmit="return false;" class="form-horizontal"><br>
<div>
<br>
<label>签到名称</label><br>
<br>
<div>
<br>
<input>
name="name" type="text"><br>
</div>
<br>
</div>
<br>
<div>
<br>
<label>首次签到赠送积分</label><br>
<br>
<div>
<br>
<input>
name="first_sign" type="text"><br>
</div>
<br>
</div>
<br>
<div>
<br>
<label>连续签到增长积分</label><br>
<br>
<div>
<br>
<input>
value="{$config.continue_sign}" name="continue_sign" type="text"><br>
</div>
<br>
</div>
<br>
<!-- <div class="form-group"><br />
<label class="control-label col-md-2">最大连续签到天数</label><br />
<br />
<div class="col-md-7"><br />
<input class="form-control" placeholder="" value="{$config.max_sign}"<br />
name="max_sign" type="text"><br />
</div><br />
</div> --><br>
<div>
<br>
<label></label><br>
<br>
<div>
<br>
<button></button>
onclick="myFormSubmit(’{:u_addons(\’Sign://Admin/Admin/index\’)}’)"<br>
type="submit">提交<br>
<br>
<button>取消</button><br>
</div>
<br>
</div>
<br>
<br>
<br>
</div>
<br>
<div>
<br>
<!-- <h3>签到记录</h3> --><br>
<br>
<p><br>
<br>
</p>
<div>
<br>
<table>
<br>
<thead>
<br>
<th>
<br>
<label><input>
type="checkbox"><span></span></label><br>
</th>
<br>
<th>
<br>
ID<br>
</th>
<br>
<th>
<br>
用户名<br>
</th>
<br>
<th>
<br>
积分<br>
</th>
<br>
<th>
<br>
时间<br>
</th>
<br>
</thead>
<br>
<tbody>
<br>
<volist></volist>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div></section>