You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
412 lines
12 KiB
PHTML
412 lines
12 KiB
PHTML
5 years ago
|
<?php
|
||
|
namespace Mobile\Controller;
|
||
|
use Think\Controller;
|
||
|
use User\Api\SuserApi;
|
||
|
|
||
|
/**
|
||
|
* 首页
|
||
|
*/
|
||
|
class ShopController extends BaseController {
|
||
|
|
||
|
/**
|
||
|
* 积分商城首页
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <840186209@qq.com>
|
||
|
*/
|
||
|
public function index(){
|
||
|
$page = $page ? $page : 1; //默认显示第一页数据
|
||
|
$row = C('LIST_ROWS');
|
||
|
$map['status'] = 1;
|
||
|
if(is_cache() &&S('mobile_shop_data') ){
|
||
|
$data=S('mobile_shop_data');
|
||
|
}else{
|
||
|
$data = M('point_shop','tab_')
|
||
|
->field("id,cover,price,good_name")
|
||
|
->where($map)
|
||
|
->order('create_time desc')
|
||
|
->page($page, $row)
|
||
|
->select();
|
||
|
foreach ($data as $key => $value) {
|
||
|
$data[$key]['url'] = U('Shop/shopdetail',array('id'=>$value['id']));
|
||
|
$data[$key]['cover'] = get_cover($value['cover'],'path');
|
||
|
}
|
||
|
if(is_cache()){
|
||
|
S('mobile_shop_data',$data);
|
||
|
}
|
||
|
}
|
||
|
if(!$this->islogin()){
|
||
|
$total = 0;
|
||
|
}else{$member = new SuserApi;
|
||
|
$user_id = $member->login_info("user_id");
|
||
|
$point = D('User')->find($user_id);
|
||
|
$total = $point['point'];
|
||
|
}
|
||
|
|
||
|
$this->assign('point',$total);
|
||
|
$this->assign('data',$data);
|
||
|
$this->assign('page',$page);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 积分商城列表
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <840186209@qq.com>
|
||
|
*/
|
||
|
public function ajaxlists(){
|
||
|
$p = I('post.p');
|
||
|
$status=0;
|
||
|
$row = C('LIST_ROWS');
|
||
|
$map['status'] = 1;
|
||
|
$lists = M('point_shop','tab_')
|
||
|
->field("id,cover,price,good_name")
|
||
|
->where($map)
|
||
|
->order('create_time desc')
|
||
|
->page($p, $row)
|
||
|
->select();
|
||
|
foreach ($lists as $key => $value) {
|
||
|
$lists[$key]['url'] = U('Shop/shopdetail',array('id'=>$value['id']));
|
||
|
$lists[$key]['cover'] = get_cover($value['cover'],'path');
|
||
|
}
|
||
|
if (!empty($lists) && is_array($lists)) {
|
||
|
$status = 1;
|
||
|
}
|
||
|
echo json_encode(array('status'=>$status,'page'=>$p,'lists'=>$lists));
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 详情页
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <@qq.com>
|
||
|
*/
|
||
|
public function shopdetail(){
|
||
|
$member = new SuserApi;
|
||
|
if(IS_POST){
|
||
|
if(!$this->islogin()){$this->error('请先登录');}
|
||
|
$user_id = $member->login_info("user_id");
|
||
|
$good_id = $_REQUEST['good_id'];
|
||
|
$good_num = $_REQUEST['number'];
|
||
|
|
||
|
if($good_num<1) {
|
||
|
$this->error("兑换数量有误");
|
||
|
}
|
||
|
if(!preg_match('/^[1-9]\d*$/', $good_num)) {
|
||
|
$this->error("兑换数量有误");
|
||
|
}
|
||
|
$good_num = intval(abs($good_num));
|
||
|
|
||
|
$map['user_id'] = $user_id;
|
||
|
$address = D('UserAddress')->field("id,name,city,address,phone")->where($map)->order("is_default desc")->find();
|
||
|
$address_id = $address['id'];
|
||
|
$result = D('PointShopRecord')->buy($good_id,$user_id,$good_num,$address_id);
|
||
|
if($result !== false){
|
||
|
$this->success('兑换成功',U('Shop/index'));
|
||
|
}else{
|
||
|
$this->error("兑换失败:".D('PointShopRecord')->getError());
|
||
|
}
|
||
|
}else{
|
||
|
$id = I('get.id');
|
||
|
$data = M('point_shop','tab_')
|
||
|
->field("*")
|
||
|
->where(array('id'=>$id))
|
||
|
->find();
|
||
|
$data['cover'] = get_cover($data['cover'],'path');
|
||
|
$user = M('user','tab_')->field('id,account,point')->find($member->login_info('user_id'));
|
||
|
$this->assign('point',empty($user['point'])?0:$user['point']);
|
||
|
$this->assign('user',$user);
|
||
|
$this->assign('data',$data);
|
||
|
$this->display();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 兑换平台币
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <840186209@qq.com>
|
||
|
*/
|
||
|
public function exchangecoin(){
|
||
|
$member = new SuserApi;
|
||
|
$user_id = $member->login_info("user_id");
|
||
|
if(IS_POST){
|
||
|
if(!$this->islogin()){$this->error('请先登录');}
|
||
|
$num = abs(I('num',0,'intval'));
|
||
|
if($num<1){
|
||
|
$this->error('兑换数量错误');
|
||
|
}
|
||
|
$model = D('PointShopRecord');
|
||
|
$result = $model->PointConvertCoin($user_id,$num);
|
||
|
if($result){
|
||
|
$this->success("兑换成功");
|
||
|
}else{
|
||
|
$this->error("兑换失败:".$model->getError());
|
||
|
}
|
||
|
}else{
|
||
|
if($user_id<=0){
|
||
|
redirect(U('User/login',array('back'=>'-1')));
|
||
|
}
|
||
|
$point = D('User')->find($user_id);
|
||
|
$this->assign('point',$point['point']);
|
||
|
$this->display();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 兑换记录
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <840186209@qq.com>
|
||
|
*/
|
||
|
public function exchangerecord(){
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}
|
||
|
$page = intval($p);
|
||
|
$page = $page ? $page : 1; //默认显示第一页数据
|
||
|
$row = C('LIST_ROWS');$member = new SuserApi;
|
||
|
$map['user_id'] = $member->login_info("user_id");//$user_id;
|
||
|
$type = $_REQUEST['type'];
|
||
|
if ($type == 2){
|
||
|
$map['good_type'] = ['in',[1,2]];//商品
|
||
|
}elseif ($type == 3) {
|
||
|
$map['good_type'] = 3;//平台币
|
||
|
}
|
||
|
$data = D("PointShopRecord")
|
||
|
->field("id,good_id,good_name,good_type,number,pay_amount,create_time")
|
||
|
->where($map)
|
||
|
->order('create_time desc')
|
||
|
->page($page, $row)
|
||
|
->select();
|
||
|
$totalMap['user_id'] = $member->login_info("user_id");
|
||
|
$total = D("PointShopRecord")->where($totalMap)->sum("pay_amount");
|
||
|
$this->assign('total',empty($total)?0:$total);
|
||
|
$this->assign('data',$data);
|
||
|
$this->assign('page',$page);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* AJAX 兌換記錄加载更多
|
||
|
* @return [type] [description]
|
||
|
*/
|
||
|
public function ajaxExchangeRecord() {
|
||
|
$page = I('post.p');
|
||
|
$row = C('LIST_ROWS');
|
||
|
$type = I('post.type');$member = new SuserApi;
|
||
|
$map['user_id'] = $member->login_info("user_id");//$user_id;
|
||
|
if ($type == 2){
|
||
|
$map['good_type'] = ['in',[1,2]];//商品
|
||
|
}elseif ($type == 3) {
|
||
|
$map['good_type'] = 3;//平台币
|
||
|
}
|
||
|
$data = D("PointShopRecord")
|
||
|
->field("id,good_name,good_type,number,pay_amount,create_time")
|
||
|
->where($map)
|
||
|
->order($order)
|
||
|
->page($page, $row)
|
||
|
->select();
|
||
|
foreach ($data as $key => $value) {
|
||
|
$data[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']);
|
||
|
}
|
||
|
if (!empty($data) && is_array($data)) {
|
||
|
$status = 1;
|
||
|
}
|
||
|
echo json_encode(array('status'=>$status,'page'=>$page,'lists'=>$data));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 兑换商品记录详情
|
||
|
* @return [type] [description]
|
||
|
* @author wyr <840186209@qq.com>
|
||
|
*/
|
||
|
public function exchangerecorddetail($id=0){
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}
|
||
|
$map['sr.id'] = $id;$member = new SuserApi;
|
||
|
$map['sr.user_id'] = $member->login_info('user_id');
|
||
|
$data = D("PointShopRecord")->table("tab_point_shop_record as sr")
|
||
|
->field("sr.good_name,sr.good_type,ps.good_info,ps.good_usage,ps.cover,sr.number,sr.good_key,sr.user_name,sr.address,sr.phone")
|
||
|
->join("left join tab_point_shop ps on ps.id = sr.good_id")
|
||
|
->where($map)
|
||
|
->find();
|
||
|
$data['cover'] = get_img_url($data['cover']);
|
||
|
$data['good_key'] = json_decode($data['good_key']);
|
||
|
|
||
|
$this->assign('data',$data);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
public function shoporder($id=0){
|
||
|
if(!$this->islogin()){
|
||
|
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
|
||
|
$this->redirect('User/login',array('url'=>base64_encode(base64_encode($url))));
|
||
|
}
|
||
|
$member = new SuserApi;
|
||
|
if(IS_POST){
|
||
|
$user_id = $member->login_info("user_id");
|
||
|
$good_id = $_REQUEST['good_id'];
|
||
|
$good_num = $_REQUEST['number'];
|
||
|
|
||
|
if($good_num<1) {
|
||
|
$this->error("兑换数量有误");
|
||
|
}
|
||
|
if(!preg_match('/^[1-9]\d*$/', $good_num)) {
|
||
|
$this->error("兑换数量有误");
|
||
|
}
|
||
|
$good_num = intval(abs($good_num));
|
||
|
|
||
|
$map['user_id'] = $user_id;
|
||
|
$map['is_default'] = 1;
|
||
|
$address = D('UserAddress')->field("id,name,city,address,phone")->where($map)->order("is_default desc")->find();
|
||
|
|
||
|
$address_id = $address['id'];
|
||
|
$result = D('PointShopRecord')->buy($good_id,$user_id,$good_num,$address_id);
|
||
|
if($result !== false){
|
||
|
$this->success('兑换成功',U('Shop/index'));
|
||
|
}else{
|
||
|
$this->error("兑换失败:".D('PointShopRecord')->getError());
|
||
|
}
|
||
|
}else{
|
||
|
$id = I('get.id');
|
||
|
$data = M('point_shop','tab_')
|
||
|
->field("*")
|
||
|
->where(array('id'=>$id))
|
||
|
->find();
|
||
|
if(empty($data)){
|
||
|
echo "<script>alert('没有商品')</script>";
|
||
|
}
|
||
|
$map['user_id'] = $member->login_info("user_id");
|
||
|
$map['is_default'] = 1;
|
||
|
$address = D('UserAddress')->field("id,name,city,address,phone")->where($map)->order("is_default desc")->find();
|
||
|
$data['cover'] = get_cover($data['cover'],'path');
|
||
|
$data['price'] = I('num',1) * $data['price'];
|
||
|
$user = M('user','tab_')->field('id,account,point')->find($member->login_info('user_id'));
|
||
|
$this->assign('point',empty($user['point'])?0:$user['point']);
|
||
|
$this->assign('user',$user);
|
||
|
$this->assign('data',$data);
|
||
|
$this->assign('address',$address);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 个人中心->编辑资料->收货管理
|
||
|
* @return [type] [description]
|
||
|
* @author 小纯洁
|
||
|
*/
|
||
|
public function useraddresslist() {
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}$member = new SuserApi;
|
||
|
$logininfo = $member->login_info();
|
||
|
$userData = M('UserAddress','tab_')->where(array('user_id'=>$logininfo['user_id']))->select();
|
||
|
$this->assign('list_data',$userData);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 个人中心->编辑资料->收货管理->新增收货地址
|
||
|
* @return [type] [description]
|
||
|
* @author 小纯洁
|
||
|
*/
|
||
|
public function useraddressadd() {
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}$member = new SuserApi;
|
||
|
$logininfo = $member->login_info();
|
||
|
$userData = M('UserAddress','tab_')->where(array('user_id'=>$logininfo['user_id']))->select();
|
||
|
if(IS_POST){
|
||
|
$model = M('UserAddress','tab_');
|
||
|
$data = $_POST;
|
||
|
$data['user_id'] = $logininfo['user_id'];
|
||
|
$data['create_time'] = time();
|
||
|
if(empty($userData)){
|
||
|
$data['is_default'] = 1;
|
||
|
}else{
|
||
|
$data['is_default'] = 0;
|
||
|
}
|
||
|
if(!empty($data['is_default'])){
|
||
|
$model->where('user_id='.$logininfo['user_id'])->save(array('is_default'=>0));
|
||
|
}
|
||
|
if($model->create($data) && $model->add()){
|
||
|
|
||
|
$this->success('添加成功!',U('Shop/useraddresslist',array('id'=>$_POST['good_id'],'num'=>$_POST['num'])));//
|
||
|
}else{
|
||
|
$this->error('添加失败');
|
||
|
}
|
||
|
}else{
|
||
|
$this->assign('userData',$userData);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 个人中心->编辑资料->收货管理->编辑收货地址
|
||
|
* @return [type] [description]
|
||
|
* @author 小纯洁
|
||
|
*/
|
||
|
public function useraddressedit($addid=0) {
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}$member = new SuserApi;
|
||
|
$logininfo = $member->login_info();
|
||
|
$model = M('UserAddress','tab_');
|
||
|
if(IS_POST){
|
||
|
$data = $_REQUEST;
|
||
|
$data['user_id'] = $logininfo['user_id'];
|
||
|
$data['id'] = $addid;
|
||
|
if(!empty($data['is_default'])){
|
||
|
$model->where('user_id='.$logininfo['user_id'])->save(array('is_default'=>0));
|
||
|
}
|
||
|
if($model->save($data) !== false){
|
||
|
$this->success('编辑成功',U('Shop/useraddresslist',array('id'=>I('good_id'),'num'=>I('num'))));
|
||
|
}else{
|
||
|
$this->error('编辑失败');
|
||
|
}
|
||
|
}else{
|
||
|
$data = $model->find($addid);
|
||
|
$this->assign("data",$data);
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 个人中心->编辑资料->收货管理->删除收货地址
|
||
|
* @return [type] [description]
|
||
|
* @author 小纯洁
|
||
|
*/
|
||
|
public function useraddressdel($id=0) {
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}
|
||
|
|
||
|
$model = M('UserAddress','tab_');
|
||
|
$result = $model->where("id=".$id)->delete();
|
||
|
if($result !== false){
|
||
|
$this->success('地址删除成功',U('Shop/useraddresslist',array('id'=>I('good_id'),'num'=>I('num'))));
|
||
|
}else{
|
||
|
$this->error("地址删除失败");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 个人中心->编辑资料->收货管理->设置默认收货地址
|
||
|
* @return [type] [description]
|
||
|
* @author 小纯洁
|
||
|
*/
|
||
|
public function setDefaultAddress($id=0,$type='setting') {
|
||
|
if(!$this->islogin()){$this->redirect('Mobile/User/login');}
|
||
|
$model = M('UserAddress','tab_');$member = new SuserApi;
|
||
|
$logininfo = $member->login_info();
|
||
|
switch ($type) {
|
||
|
case 'setting':
|
||
|
$map['id'] = array('neq',$id);
|
||
|
$map['user_id'] = $logininfo['user_id'];
|
||
|
$model->where($map)->save(array('is_default'=>0));
|
||
|
$result = $model->where('id = '.$id)->save(array('is_default'=>1));
|
||
|
break;
|
||
|
case 'cancel':
|
||
|
$result = $model->where('id = '.$id)->save(array('is_default'=>0));
|
||
|
break;
|
||
|
}
|
||
|
if($result !== false){
|
||
|
$this->success('地址删除成功');
|
||
|
}else{
|
||
|
$this->error("地址删除失败");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|