You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
11 KiB
244 lines
11 KiB
<?php
|
|
|
|
/**
|
|
|
|
* [Laike System] Copyright (c) 2017-2020 laiketui.com
|
|
|
|
* Laike is not a free software, it under the license terms, visited http://www.laiketui.com/ for more details.
|
|
|
|
*/
|
|
require_once('BaseAction.class.php');
|
|
|
|
class drawAction extends BaseAction {
|
|
|
|
//存formid
|
|
public function getFormid(){
|
|
$db = DBAction::getInstance();
|
|
$request = $this->getContext()->getRequest();
|
|
$uid = addslashes(trim($request->getParameter('userid')));
|
|
$formid = addslashes(trim($request->getParameter('from_id')));
|
|
|
|
$fromidsql = "select count(*) as have from lkt_draw_user_fromid where open_id='$uid'";
|
|
$fromres = $db -> select($fromidsql);
|
|
$fromres = intval($fromres[0] -> have);
|
|
$lifetime = date('Y-m-d H:i:s',time());
|
|
if($formid != 'the formId is a mock one'){
|
|
if($fromres < 8){
|
|
$addsql = "insert into lkt_draw_user_fromid(open_id,fromid,lifetime) values('$uid','$formid','$lifetime')";
|
|
$addres = $db -> insert($addsql);
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function ceshi(){
|
|
$db = DBAction::getInstance();
|
|
$request = $this->getContext()->getRequest();
|
|
//现在时间的前一天
|
|
$datetime = date('Y-m-d H:i:s',time()-24*60*60);
|
|
//现在时间的前七天
|
|
$datetime1 = date('Y-m-d H:i:s',time()-7*24*60*60);
|
|
//删除超过七天的数据
|
|
$delsql = "delete from lkt_draw_user_fromid where lifetime < '$datetime1'";
|
|
$delres = $db -> delete($delsql);
|
|
//过去五分钟
|
|
$oldtime = date('Y-m-d H:i:s',time()-5*60-24*60*60);
|
|
$sql01 = "select * from lkt_draw where end_time >='$oldtime'and end_time<'$datetime'";//查询符合条件的活动ID
|
|
$re01 = $db -> select($sql01);
|
|
if(!empty($re01)){
|
|
foreach ($re01 as $key01 => $value01) {
|
|
$draw_id = $value01->id;//活动ID
|
|
$name = $value01->name;//活动名称
|
|
$draw_brandid = $value01->draw_brandid;//活动名称
|
|
$sql03 = "select product_title from lkt_product_list where id='$draw_brandid'";//通过活动ID查询活动人员
|
|
$re03 = $db -> select($sql03);
|
|
$product_title = $re03[0]->product_title;//活动商品
|
|
$sql02 = "select * from lkt_draw_user where draw_id='$draw_id'";//通过活动ID查询活动人员
|
|
$re02 = $db -> select($sql02);
|
|
|
|
if(!empty($re02)){//存在参加活动的订单
|
|
foreach ($re02 as $key02 => $value02) {
|
|
$id = $value02->id;//ID
|
|
$user_id = $value02->user_id;//用户ID
|
|
|
|
$sql04 = "select wx_id from lkt_user where user_id='$user_id'";//查询活动人员wx_id
|
|
$re04 = $db -> select($sql04);
|
|
$openid =$re04[0]->wx_id;
|
|
$sql05 = "select fromid from lkt_draw_user_fromid where open_id='$openid' order by lifetime asc ";//查询活动人员wx_id
|
|
$re05 = $db -> select($sql05);
|
|
if(!empty($re05)){//存在符合条件的fromid
|
|
$fromid = $re05[0]->fromid;//状态
|
|
$lottery_status = $value02->lottery_status;//状态
|
|
$time = $value02->time;//中奖时间
|
|
if($lottery_status==4){
|
|
$rew[$key01][$key02]['lottery_status'] = '抽奖成功' ;
|
|
}elseif($lottery_status==2){
|
|
$rew[$key01][$key02]['lottery_status'] = '参团失败' ;
|
|
}else{
|
|
$rew[$key01][$key02]['lottery_status'] = '抽奖失败' ;
|
|
}
|
|
$rew[$key01][$key02]['product_title'] = $product_title ;
|
|
$rew[$key01][$key02]['name'] = $name ;
|
|
$rew[$key01][$key02]['time'] = $time ;
|
|
$rew[$key01][$key02]['openid'] = $openid ;
|
|
$rew[$key01][$key02]['fromid'] = $fromid ;
|
|
}
|
|
}
|
|
$this -> Send_success($rew);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function Send_success($rew){
|
|
$db = DBAction::getInstance();
|
|
$request = $this->getContext()->getRequest();
|
|
$sql = "select * from lkt_config where id=1";
|
|
$r = $db->select($sql);
|
|
if($r){
|
|
$appid = $r[0]->appid; // 小程序唯一标识
|
|
$appsecret = $r[0]->appsecret; // 小程序的 app secret
|
|
$AccessToken = $this->getAccessToken($appid, $appsecret);
|
|
$url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$AccessToken;
|
|
}
|
|
|
|
foreach ($rew as $k => $v) {
|
|
foreach ($v as $key => $value) {
|
|
$lottery_status = $value[''] ;
|
|
$product_title = $value['product_title'] ;
|
|
$name = $value['name'] ;
|
|
$time = $value['time'] ;
|
|
$openid = $value['openid'] ;
|
|
$fromid = $value['fromid'] ;
|
|
$lottery_status = $value['lottery_status'] ;
|
|
$data = array();
|
|
$data['access_token'] = $AccessToken;
|
|
$data['touser'] = $openid;
|
|
$sql = "select * from lkt_notice where id = '1'";
|
|
$r = $db->select($sql);
|
|
$template_id = $r[0]->lottery_res;
|
|
$data['template_id'] = $template_id;
|
|
$data['form_id'] = $fromid;
|
|
$minidata = array('keyword1' => array('value' => $name,'color' => "#173177"),'keyword2' => array('value' => $product_title,'color' => "#173177"),'keyword3' => array('value' => $time,'color' => "#173177"),'keyword4' => array('value' => $lottery_status,'color' => "#173177"));
|
|
$data['data'] = $minidata;
|
|
$data = json_encode($data);
|
|
|
|
$da = $this->httpsRequest($url,$data);
|
|
$delsql = "delete from lkt_draw_user_fromid where open_id='$openid' and fromid='$fromid'";
|
|
$db -> delete($delsql);
|
|
var_dump(json_encode($da));
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getdraw(){
|
|
$db = DBAction::getInstance();
|
|
$request = $this->getContext()->getRequest();
|
|
|
|
$openid = addslashes(trim($request->getParameter('openid'))); // 本人微信id
|
|
$referee_openid = addslashes(trim($request->getParameter('referee_openid'))); // 本人微信id
|
|
$order_id = addslashes(trim($request->getParameter('order_id'))); // 订单id
|
|
|
|
// 查询系统参数
|
|
$sql = "select * from lkt_config where id = 1";
|
|
$r_1 = $db->select($sql);
|
|
$uploadImg_domain = $r_1[0]->uploadImg_domain; // 图片上传域名
|
|
$uploadImg = $r_1[0]->uploadImg; // 图片上传位置
|
|
if(strpos($uploadImg,'../') === false){ // 判断字符串是否存在 ../
|
|
$img = $uploadImg_domain . $uploadImg; // 图片路径
|
|
}else{ // 不存在
|
|
$img = $uploadImg_domain . substr($uploadImg,2); // 图片路径
|
|
}
|
|
|
|
$arr = [];
|
|
$user = [];
|
|
// 根据订单id,查询订单号和抽奖id
|
|
$sql = "select sNo,drawid from lkt_order where id = '$order_id'";
|
|
$r_1 = $db->select($sql);
|
|
$sNo = $r_1[0]->sNo; // 订单号
|
|
$arr['drawid'] = $r_1[0]->drawid; // 抽奖id
|
|
// 根据抽奖id,查询抽奖活动id
|
|
$sql = "select draw_id,role from lkt_draw_user where id = " . $arr['drawid'];
|
|
$rr = $db->select($sql);
|
|
$arr['draw_id'] = $rr[0]->draw_id; // 抽奖活动id
|
|
$role = $rr[0]->role; // 角色
|
|
|
|
// 根据抽奖id,查询那些用户参加了
|
|
$sql = "select user_id from lkt_draw_user where role = '$role' order by id";
|
|
$rrr = $db->select($sql);
|
|
|
|
$user_num = count($rrr);
|
|
foreach ($rrr as $k => $v) {
|
|
$sql = "select user_id,wx_name,headimgurl from lkt_user where user_id = '$v->user_id'";
|
|
$r = $db->select($sql);
|
|
$user[] = $r[0];
|
|
}
|
|
$sql = "select a.p_id,a.p_price,a.sid,c.img,c.yprice from lkt_order_details AS a LEFT JOIN lkt_configure AS c ON a.sid = c.id where a.r_sNo = '$sNo'";
|
|
$r_2 = $db->select($sql);
|
|
$p_id = $r_2[0]->p_id; // 商品id
|
|
$arr['p_id'] = $r_2[0]->p_id; // 商品id
|
|
$arr['p_price'] = $r_2[0]->p_price; // 商品抽奖价格
|
|
$arr['yprice'] = $r_2[0]->yprice; // 商品原价
|
|
$arr['sid'] = $r_2[0]->sid; // 商品属性id
|
|
$arr['img'] = $img . $r_2[0]->img; // 商品图片
|
|
|
|
$sql = "select product_title from lkt_product_list where id = '$p_id'";
|
|
$r_4 = $db->select($sql);
|
|
$arr['product_title'] = $r_4[0]->product_title; // 商品名称
|
|
|
|
$sql = "select num,end_time from lkt_draw where draw_brandid = '$p_id'";
|
|
$r_3 = $db->select($sql);
|
|
$arr['num'] = $r_3[0]->num; // 参加抽奖人数
|
|
$arr['user_num'] = $arr['num'] - $user_num; // 参团还差的人数
|
|
|
|
$arr['time'] = strtotime($r_3[0]->end_time) - time(); // 抽奖活动结束时间
|
|
if(count($user) < $r_3[0]->num){
|
|
$arr['draw_status'] = 0; // 参团中
|
|
if($arr['time'] < 0){
|
|
$arr['draw_status'] = 2; // 参团失败
|
|
}
|
|
}else{
|
|
$arr['draw_status'] = 1; // 参团成功
|
|
}
|
|
if($referee_openid != '' && $referee_openid != 'undefined'){
|
|
if($referee_openid == $openid){
|
|
$arr['draw_type'] = true;
|
|
}else{
|
|
$arr['draw_type'] = false;
|
|
}
|
|
}else{
|
|
if(count($user) == 1){
|
|
$arr['draw_type'] = true;
|
|
}else{
|
|
$arr['draw_type'] = false;
|
|
}
|
|
}
|
|
$sql = "select num from lkt_product_list where id = " . $arr['p_id'];
|
|
$r_r = $db->select($sql);
|
|
$arr['stock'] = $r_r[0]->num;
|
|
/* 获取商品属性 */
|
|
$commodityAttr = [];
|
|
$sql_size = "select * from lkt_configure where pid = " . $arr['p_id'];
|
|
$r_size = $db->select($sql_size);
|
|
$array_price = [];
|
|
$array_yprice = [];
|
|
if ($r_size) {
|
|
foreach ($r_size as $key => $value) {
|
|
$array_price[$key] = $value->price;
|
|
$array_yprice[$key] = $value->yprice;
|
|
$attrValueList[0] = array('attrKey' => '型号', 'attrValue' => $value->name);
|
|
$attrValueList[1] = array('attrKey' => '规格', 'attrValue' => $value->size);
|
|
$attrValueList[2] = array('attrKey' => '颜色', 'attrValue' => $value->color);
|
|
$cimgurl = $img.$value->img;
|
|
$commodityAttr[$key] = array('priceId' => $value->id,'price' => $value->price,'stock' => $value->num,'img' => $cimgurl, 'attrValueList' => $attrValueList);
|
|
}
|
|
}
|
|
echo json_encode(array('status'=>1,'arr'=>$arr,'user'=>$user,'commodityAttr'=>$commodityAttr));
|
|
exit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|