123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919 |
- <?php
- namespace Home\Model;
- use Think\Model;
- /**
- * 商品模块
- * @author fish
- *
- */
- class GoodsModel extends Model{
-
-
- public function check_goods_fav($goods_id, $member_id)
- {
- $user_favgoods = M('user_favgoods')->where( array('member_id' => $member_id, 'goods_id' => $goods_id) )->find();
-
- if(!empty($user_favgoods))
- {
- return true;
- } else {
- return false;
- }
- }
-
- public function check_goods_new_manbug($member_id )
- {
- //order_status_id in (1,2,4,6,7,8,9,10,11,12,13)
- $sql ="select count(o.id) as count from ".C('DB_PREFIX')."order as o ";
-
- $order_count = M('order')->where( array('member_id' => $member_id, 'order_status_id' =>array('in', '1,2,4,6,7,8,9,10,11,12,13')) )->count();
-
- return $order_count;
- }
-
- public function check_store_fav($store_id, $member_id)
- {
- $user_favstore = M('user_favstore')->where( array('member_id' => $member_id, 'store_id' => $store_id) )->find();
-
- if(!empty($user_favstore))
- {
- return true;
- } else {
- return false;
- }
- }
-
-
- /**
- 获取商品列表
- **/
- public function get_goods_list($fields='*', $where='1=1',$order='index_sort desc ,seller_count desc,goods_id asc',$offset=0,$perpage=10)
- {
-
-
- $list = M('goods')->where($where)->order($order)->limit($offset,$perpage)->select();
- // var_dump(M('goods')->getLastSql(), $list);
- //die();
- return $list;
- }
- /**
- 获取会员等级信息,某个商品的折扣
- **/
- public function get_member_level_info($member_id, $goods_id = 0)
- {
- $result = array();
-
- $member_info = M('member')->field('level_id')->where( array('member_id' => $member_id) )->find();
- $result['level_id'] = $member_info['level_id'];
-
- if( empty($member_info['level_id']) || $member_info['level_id'] ==0)
- {
- $default_discount_info = M('config')->where( array('name' => 'member_defualt_discount') )->find();
- $default_levelname_info = M('config')->where( array('name' => 'member_default_levelname') )->find();
-
- $result['member_discount'] = $default_discount_info['value'];
- $result['level_name'] = $default_levelname_info['value'];
- $result['level'] = 0;
- }else{
- $level_info = M('member_level')->where( array('id' => $member_info['level_id']) )->find();
-
- $result['member_discount'] = $level_info['discount'];
- $result['level_name'] = $level_info['levelname'];
- $result['level'] = $level_info['level'];
- }
-
- if(!empty($goods_id) && $goods_id > 0)
- {
- $desc_info = M('goods_description')->field('is_untake_level,level_discount')->where( array('goods_id' => $goods_id) )->find();
-
- if(!empty($desc_info))
- {
- if($desc_info['is_untake_level'] == 1)
- {
- $result['member_discount'] = 100;
- }else{
- $level_discount_arr = unserialize($desc_info['level_discount']);
-
- if( array_key_exists($member_info['level_id'],$level_discount_arr) && $level_discount_arr[$member_info['level_id']] > 0)
- {
- $result['member_discount'] = $level_discount_arr[$member_info['level_id']];
- }
- }
- }
- }
-
- $level_info = M('config')->where( array('name' => 'member_level_is_open') )->find();
-
- if($level_info['value'] == 0)
- {
- $result['member_discount'] = 100;
- }
-
- return $result;
- }
-
-
- /**
- * 获取商品的不同价格,分普通商品,拼团商品
- * @param unknown $goods_id
- */
- public function get_goods_price($goods_id)
- {
- $price_arr = array();
- //if (!$price_arr = S('goods_price_cache'.$goods_id)) {
- //$this->customer_id
- $goods_info = M('goods')->field('type,danprice')->where( array('goods_id' =>$goods_id) )->find();
-
-
- if($goods_info['type'] =='pintuan' || $goods_info['type'] =='newman' || $goods_info['type'] =='lottery')
- {
- $pin_goods_info = M('pin_goods')->field('pin_price,pin_count')->where( array('goods_id' =>$goods_id) )->find();
-
- if(!empty($pin_goods_info))
- {
- $price_arr = array('price' =>$pin_goods_info['pin_price'],'danprice' =>$goods_info['danprice'], 'pin_price' =>$pin_goods_info['pin_price'],'pin_count' => $pin_goods_info['pin_count']);
-
- //pin_price
- $option_price_arr = M('goods_option_mult_value')->field('dan_price')->where( array('goods_id' => $goods_id) )->order('dan_price asc')->find();
- if( !empty($option_price_arr) )
- {
- //if($option_price_arr['dan_price'] < $price_arr['danprice'])
- //{
- $price_arr['danprice'] = $option_price_arr['dan_price'];
- //}
- }
-
- $option_pinprice_arr = M('goods_option_mult_value')->field('pin_price')->where( array('goods_id' => $goods_id) )->order('pin_price asc')->find();
- if( !empty($option_pinprice_arr) )
- {
- //if($option_pinprice_arr['pin_price'] < $pin_goods_info['pin_price'])
- //{
- $price_arr['price'] = $option_pinprice_arr['pin_price'];
- $price_arr['pin_price'] = $option_pinprice_arr['pin_price'];
- //}
- //
- }
-
-
- //S('goods_price_cache'.$goods_id, $price_arr);
- }
-
-
- }
- else if($goods_info['type'] =='integral')
- {
- $pin_goods_info = M('intgral_goods')->field('score')->where( array('goods_id' =>$goods_id) )->find();
-
- if(!empty($pin_goods_info))
- {
- $price_arr = array('price' =>$pin_goods_info['score'],'danprice' =>$pin_goods_info['score'], 'pin_price' =>$pin_goods_info['score']);
-
- //pin_price
- $option_price_arr = M('goods_option_mult_value')->field('dan_price')->where( array('goods_id' => $goods_id) )->order('dan_price asc')->find();
- if( !empty($option_price_arr) )
- {
- $price_arr['danprice'] = $option_price_arr['dan_price'];
- }
-
- $option_pinprice_arr = M('goods_option_mult_value')->field('pin_price')->where( array('goods_id' => $goods_id) )->order('pin_price asc')->find();
- if( !empty($option_pinprice_arr) )
- {
- $price_arr['price'] = $option_pinprice_arr['pin_price'];
- $price_arr['pin_price'] = $option_pinprice_arr['pin_price'];
- }
-
- }
- }
- else if($goods_info['type'] =='bargain')
- {
- $pin_goods_info = M('bargain_goods')->field('bargain_price,bargain_count')->where( array('goods_id' =>$goods_id) )->find();
-
- if(!empty($pin_goods_info))
- {
- $price_arr = array('price' =>$pin_goods_info['bargain_price'],'danprice' =>$goods_info['danprice'], 'pin_price' =>$pin_goods_info['bargain_price'],'pin_count' => $pin_goods_info['bargain_count']);
-
- //pin_price
- $option_price_arr = M('goods_option_mult_value')->field('dan_price')->where( array('goods_id' => $goods_id) )->order('dan_price asc')->find();
- if( !empty($option_price_arr) )
- {
- $price_arr['danprice'] = $option_price_arr['dan_price'];
- }
-
- $option_pinprice_arr = M('goods_option_mult_value')->field('pin_price')->where( array('goods_id' => $goods_id) )->order('pin_price asc')->find();
- if( !empty($option_pinprice_arr) )
- {
- $price_arr['price'] = $option_pinprice_arr['pin_price'];
- $price_arr['pin_price'] = $option_pinprice_arr['pin_price'];
- }
-
- }
- }
- else{
- //获取最低价格
- //dan_price
- $option_price_arr = M('goods_option_mult_value')->field('dan_price')->where( array('goods_id' => $goods_id) )->order('dan_price asc')->find();
-
-
-
- if( !empty($option_price_arr) && $option_price_arr['dan_price'] >= 0.01)
- {
- $price_arr = array('price' => $option_price_arr['dan_price'],'danprice' => $option_price_arr['dan_price']);
-
- //if($price_arr['price'] > $goods_info['dan_price'])
- //{
- // $price_arr = array('price' => $goods_info['dan_price'],'danprice' => $goods_info['dan_price']);
-
- //}
- }else{
- //danprice
- $goods_info = M('goods')->field('danprice')->where( array('goods_id' => $goods_id) )->find();
- $price_arr = array('price' => $goods_info['danprice'],'danprice' => $goods_info['danprice']);
- }
-
- }
- //未来还有更多类型
- // }
-
- return $price_arr;
- }
-
- /**
- 砍价
- **/
- public function _zan_bargain_order($zan_order_id)
- {
- $zan_order_info = M('bargain_order')->where( array('id' => $zan_order_id) )->find();
- //goods_id
- $goods_info = M('goods')->field('name,store_id,model,image')->where( array('goods_id' => $zan_order_info['goods_id']) )->find();
-
- $member_info = M('member')->where( array('member_id' => $zan_order_info['member_id']) )->find();
-
- $address_info = M('address')->where( array('address_id' => $zan_order_info['address_id']) )->find();
-
-
- $order = array();
-
- $order['member_id']=$zan_order_info['member_id'];
- $order['order_num_alias']= build_order_no($zan_order_info['member_id']);
- $order['name']=$goods_info['name'];
- $order['email']=$member_info['email'];
- $order['store_id']= $goods_info['store_id'];
-
- $order['telephone']=$address_info['telephone'];
- $order['shipping_name']=$address_info['name'];
- $order['shipping_address']=$address_info['address'];
- $order['shipping_city_id']=$address_info['city_id'];
-
- $order['shipping_country_id']=$address_info['country_id'];
- $order['shipping_province_id']=$address_info['province_id'];
- $order['shipping_tel']=$address_info['telephone'];
- $order['comment']='';
- $order['order_status_id']=1;
- $order['ip']=get_client_ip();
- $order['voucher_id']=0;
- $order['voucher_credit']=0;
- $order['shipping_fare'] = 0;
- $order['is_zhuli'] = 2;
-
- $order['is_pin'] = 0;
-
- $order['ip_region'] = '';
- $order['date_added'] =time();
- $order['total'] =0;
- $order['user_agent']='';
-
- $order['shipping_method']=0;
- $order['delivery']=$data['delivery'];
-
- $order['payment_code']='express';
- $order['type']='normal';
-
- $order['address_id']=$zan_order_info['address_id'];
-
- $order_id=M('Order')->add($order);
-
- //goods_images
- $this->execute("INSERT INTO ".C('DB_PREFIX')."order_goods SET order_id = '" .$order_id
- ."',goods_id='".$zan_order_info['goods_id']."'"
- .",store_id='".$goods_info['store_id']."'"
- .",name='". addslashes($goods_info['name'])."'"
- .",model='".$goods_info['model']."'"
- .",commiss_one_money='0'"
- .",commiss_two_money='0'"
- .",commiss_three_money='0'"
- .",head_disc='100'"
- .",is_pin='0'"
- .",goods_images='".$goods_info['image']."'"
- .",goods_type='normal'"
- .",shipping_fare='0'"
- .",quantity='1'"
- .",price='0'"
- .",rela_goodsoption_valueid='".$zan_order_info['sku_str']."'"
- .",comment=''"
- .",total='0'"
- );
-
- $order_goods_id=$this->getLastInsID();
-
- $sku_str = ($zan_order_info['sku_str']);
-
- $options = $sku_str;
- $option_data = array();
-
- $goods_id = $zan_order_info['goods_id'];
-
-
- //$good['sku_str']
-
- if(!empty($sku_str))
- {
- $options_arr = array();
- $option_value_id_arr = explode('_',$sku_str);
-
- foreach($option_value_id_arr as $id_val)
- {
- $goods_option_value = M('goods_option_value')->where( array('option_value_id' => $id_val,'goods_id' =>$goods_id) )->find();
-
- $options_arr[$goods_option_value['goods_option_id']] = $goods_option_value['goods_option_value_id'];
-
- $goods_option = M('goods_option')->where( array('goods_option_id' =>$goods_option_value['goods_option_id']) )->find();
- $option_value = M('option_value')->where( array('option_value_id' =>$goods_option_value['option_value_id']) )->find();
- $this->execute("INSERT INTO ".C('DB_PREFIX')."order_option SET order_id = '" .$order_id
- ."',order_goods_id='".$order_goods_id."'"
- .",goods_option_id='".(int)$goods_option_value['goods_option_id']."'"
- .",goods_option_value_id='".(int)$goods_option_value['goods_option_value_id']."'"
- .",name='".$goods_option['option_name']."'"
- .",value='".$option_value['value_name']."'"
- );
- }
- }
-
- $oh['order_id']=$order_id;
- $oh['order_status_id']=1;
- $oh['comment']='砍价成功';
- $oh['date_added']=time();
- $oh_id=M('OrderHistory')->add($oh);
-
- return $order_id;
- }
-
- /**
- * 获取商品规格
- * @param unknown $goods_id
- */
- public function get_goods_options($goods_id) {
-
- $result = array();
- $goods_option_name = array();
- $goods_option_data = array();
- $goods_option_query = M()->query("SELECT * FROM " . C('DB_PREFIX') . "goods_option po LEFT JOIN "
- . C('DB_PREFIX') . "option o ON po.option_id = o.option_id WHERE po.goods_id =".(int)$goods_id);
-
-
-
- foreach ($goods_option_query as $goods_option) {
- $goods_option_value_data = array();
- $goods_option_value_query = M()->query("SELECT pov.*,ov.value_name FROM " . C('DB_PREFIX')
- . "goods_option_value pov LEFT JOIN ". C('DB_PREFIX')
- ."option_value ov ON pov.option_value_id=ov.option_value_id"
- ." WHERE pov.goods_option_id = '"
- . (int)$goods_option['goods_option_id'] . "'");
-
-
- foreach ($goods_option_value_query as $goods_option_value) {
-
-
- $goods_option_value_data[] = array(
- 'goods_option_value_id' => $goods_option_value['goods_option_value_id'],
- 'option_value_id' => $goods_option_value['option_value_id'],
- 'quantity' => $goods_option_value['quantity'],
- 'name' =>$goods_option_value['value_name'],
- 'image' =>isset($goods_option_value['image'])?$goods_option_value['image']:'',
- 'price' =>'¥'.$goods_option_value['price'],
- 'price_prefix' => $goods_option_value['price_prefix'],
-
- );
- }
- $goods_option_name[] = $goods_option['name'];
- $goods_option_data[] = array(
- 'goods_option_id' => $goods_option['goods_option_id'],
- 'option_id' => $goods_option['option_id'],
- 'name' => $goods_option['name'],
- 'type' => $goods_option['type'],
- 'option_value' => $goods_option_value_data,
- 'required' => $goods_option['required']
- );
- }
- $result['list'] = $goods_option_data;
- $result['name'] = $goods_option_name;
- return $result;
- }
-
- //user_fav_store_toggle
- public function user_fav_store_toggle($store_id, $member_id)
- {
- $res = $this->check_store_fav($store_id, $member_id);
-
- if($res)
- {
- //删除
- $rs = M('user_favstore')->where( array('member_id' => $member_id, 'store_id' => $store_id) )->delete();
- return 1;
- } else {
- //添加
- $data = array();
- $data['member_id'] = $member_id;
- $data['store_id'] = $store_id;
- $data['add_time'] = time();
- M('user_favstore')->add($data);
- return 2;
- }
- }
-
- /**
- 关注取消商品收藏
- 删除返回1
- **/
- public function user_fav_goods_toggle($goods_id, $member_id)
- {
- $res = $this->check_goods_fav($goods_id, $member_id);
-
- if($res)
- {
- //删除
- $rs = M('user_favgoods')->where( array('member_id' => $member_id, 'goods_id' => $goods_id) )->delete();
- return 1;
- } else {
- //添加
- $data = array();
- $data['member_id'] = $member_id;
- $data['goods_id'] = $goods_id;
- $data['add_time'] = time();
- M('user_favgoods')->add($data);
- return 2;
- }
- }
-
- public function get_goods_pin_avatar($goods_id,$limit =10)
- {
- $sql = "select distinct(m.member_id), m.avatar from ".C('DB_PREFIX')."order_goods as og ,".C('DB_PREFIX')."order as o,".C('DB_PREFIX')."member as m
- where og.order_id=o.order_id and o.member_id=m.member_id and og.pin_id>0 and og.goods_id={$goods_id} order by og.pin_id desc limit {$limit}";
-
- $avatar_list = M()->query($sql);
-
- return $avatar_list;
- }
-
- /**
- 返回用户还能够买多少份该商品
- **/
- public function check_goods_user_canbuy_count($user_id, $goods_id)
- {
- $goods_desc = M('goods_description')->where( array('goods_id' => $goods_id) )->find();//per_number
-
- if($goods_desc['per_number'] > 0)
- {
- $query = M()->query("SELECT sum(og.quantity) as count FROM " . C('DB_PREFIX') . "order as o,
- " . C('DB_PREFIX') . "order_goods as og where o.order_id = og.order_id and og.goods_id =" . (int)$goods_id ."
- and o.member_id = {$user_id} and o.order_status_id in (1,2,3,4,6,7,9,11,12,13)");
- $buy_count = $query[0]['count'];
-
- if($buy_count >=$goods_desc['per_number'])
- {
- return -1;
- } else {
- return ($goods_desc['per_number'] - $buy_count);
- }
- } else{
- return 0;
- }
- }
-
-
-
- /**
- 扣除/增加商品多规格库存
- 1扣除, 2 增加
- **/
- public function del_goods_mult_option_quantity($order_id,$option,$goods_id,$quantity,$type='1')
- {
- //todo 库存减的不对。
- //$goods['option'],$goods_id[0],$goods['quantity'],1
- //`order_id` int(11) NOT NULL,
- // `order_goods_id` int(11) NOT NULL, quantity
-
- $tp_goods = M('goods')->field('quantity')->where( array('goods_id' => $goods_id) )->find();
-
- $order_goods = M('order_goods')->where( array('order_id' => $order_id,'goods_id' => $goods_id) )->find();
-
- $option_list = M('order_option')->where( array('order_id' => $order_id, 'order_goods_id' =>$goods_id ) )->order('order_option_id asc')->select();
-
- //$option_list = M('goods_option_value')->where( array('goods_id' => $goods_id) )->select();
-
- if($type == 1)
- {
- // rela_goodsoption_value_id order_id goods_id quantity addtime type last_quantity
- $quantity_order_data = array();
- $quantity_order_data['order_id'] = $order_id;
- $quantity_order_data['goods_id'] = $goods_id;
- $quantity_order_data['rela_goodsoption_value_id'] = $option;
- $quantity_order_data['quantity'] = $quantity;
- $quantity_order_data['type'] = 0;
- $quantity_order_data['last_quantity'] = $tp_goods['quantity'];
- $quantity_order_data['addtime'] = time();
- M('order_quantity_order')->add($quantity_order_data);
-
- //扣除库存
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET quantity = (quantity - " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- //销量增加
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET seller_count = (seller_count + " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
-
-
-
-
- } else if($type == 2){
- $quantity_order_data = array();
- $quantity_order_data['order_id'] = $order_id;
- $quantity_order_data['goods_id'] = $goods_id;
- $quantity_order_data['rela_goodsoption_value_id'] = $option;
- $quantity_order_data['quantity'] = $quantity;
- $quantity_order_data['type'] = 1;
- $quantity_order_data['last_quantity'] = $tp_goods['quantity'];
- $quantity_order_data['addtime'] = time();
- M('order_quantity_order')->add($quantity_order_data);
-
- //增加库存
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET quantity = (quantity + " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- //销量减少
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET seller_count = (seller_count - " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- }
-
-
- foreach($option_list as $op_li)
- {
- if($type == 1)
- {
- $goods_option_value = M('goods_option_value')->where( array('goods_option_id'=>$op_li['goods_option_id'],'goods_option_value_id' => $op_li['goods_option_value_id']) )->setDec('quantity',$quantity);
-
- } else if($type ==2){
- $goods_option_value = M('goods_option_value')->where( array('goods_option_id'=>$op_li['goods_option_id'],'goods_option_value_id' => $op_li['goods_option_value_id']) )->setInc('quantity',$quantity);
- }
- }
-
- if(!empty($option))
- {
-
- if($type == 1)
- {
- M('goods_option_mult_value')->where( array('rela_goodsoption_valueid' => $option,'goods_id' =>$goods_id) )->setDec('quantity',$quantity);
-
- } else if($type ==2){
- M('goods_option_mult_value')->where( array('rela_goodsoption_valueid' => $option,'goods_id' =>$goods_id) )->setInc('quantity',$quantity);
- }
- }
- }
-
- /**
- 扣除/增加商品多规格库存
- 1扣除, 2 增加
- **/
- public function del_goods_mult_option_quantity2($order_id,$quantity,$type='1')
- {
- //todo 库存减的不对。
-
- $order_goods = M('order_goods')->where( array('order_id' => $order_id) )->find();
- $goods_id = $order_goods['goods_id'];
- $option_list = M('order_option')->where( array('order_id' => $order_id) )->order('order_option_id asc')->select();
-
- //$option_list = M('goods_option_value')->where( array('goods_id' => $goods_id) )->select();
-
- if($type == 1)
- {
- //扣除库存
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET quantity = (quantity - " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- //销量增加
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET seller_count = (seller_count + " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
-
- } else if($type == 2){
- //增加库存
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET quantity = (quantity + " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- //销量减少
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods SET seller_count = (seller_count - " . (int)$quantity . ") WHERE goods_id = '" . $goods_id . "' ");
- }
-
- $option = array();
-
- foreach($option_list as $op_li)
- {
- $option[$op_li['goods_option_id']] = $op_li['goods_option_value_id'];
- }
-
- $mul_opt_arr = array();
-
- foreach($option as $key => $option_value)
- {
- $goods_option_value = M('goods_option_value')->where( array('goods_option_id'=>$key,'goods_option_value_id' => $option_value) )->find();
- $mul_opt_arr[] = $goods_option_value['option_value_id'];
- }
-
- $rela_goodsoption_valueid = implode('_', $mul_opt_arr);
-
- $goods_option_mult_value = M('goods_option_mult_value')->where( array('rela_goodsoption_valueid' => $rela_goodsoption_valueid,'goods_id'=>$goods_id) )->find();
-
- if( !empty($goods_option_mult_value) )
- {
- if($type == 1)
- {
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods_option_mult_value
- SET quantity = (quantity - " . (int)$quantity . ")
- WHERE rela_goodsoption_valueid = '" . $rela_goodsoption_valueid . "' and goods_id=".$goods_id);
-
- foreach($option as $key => $option_value)
- {
- $goods_option_value = M('goods_option_value')->where( array('goods_option_id'=>$key,'goods_option_value_id' => $option_value) )->setDec('quantity',$quantity);
- //$User->where('id=5')->setInc('score',3); + quantity
- //$User->where('id=5')->setDec('score',5); -
- }
- } else if($type ==2){
- $this->execute("UPDATE " . C('DB_PREFIX') . "goods_option_mult_value
- SET quantity = (quantity + " . (int)$quantity . ")
- WHERE rela_goodsoption_valueid = '" . $rela_goodsoption_valueid . "' and goods_id=".$goods_id);
-
- foreach($option as $key => $option_value)
- {
- $goods_option_value = M('goods_option_value')->where( array('goods_option_id'=>$key,'goods_option_value_id' => $option_value) )->setInc('quantity',$quantity);
- }
- }
- }
-
- }
-
-
- private function _curl_get_avatar($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- $output = curl_exec($ch);
- curl_close($ch);
- return $output;
- }
-
- /**
- 获取首页商品
- **/
- public function _get_index_user_wxqrcode($goods_id,$member_id)
- {
- //qrcode
- $jssdk = new \Lib\Weixin\Jssdk( C('weprogram_appid'), C('weprogram_appscret') );
-
- $weqrcode = $jssdk->getAllWeQrcode('pages/index/index','0_'.$member_id );
- //line_color
- //var_dump($weqrcode);die();
-
- //保存图片
-
- $image_dir = ROOT_PATH.'Uploads/image/goods';
- $image_dir .= '/'.date('Y-m-d').'/';
-
- $file_path = C('SITE_URL').'Uploads/image/goods/'.date('Y-m-d').'/';
- $kufile_path = $dir.'/'.date('Y-m-d').'/';
-
- RecursiveMkdir($image_dir);
- $file_name = md5('qrcode_'.$goods_id.'_'.$member_id.time()).'.png';
- //qrcode
- file_put_contents($image_dir.$file_name, $weqrcode);
- return $image_dir.$file_name;
- }
-
- public function _get_goods_user_wxqrcode($goods_id,$member_id)
- {
- //qrcode
- $jssdk = new \Lib\Weixin\Jssdk( C('weprogram_appid'), C('weprogram_appscret') );
-
- $weqrcode = $jssdk->getAllWeQrcode('pages/goods/index',$goods_id.'_'.$member_id );
- //line_color
- //var_dump($weqrcode);die();
-
- //保存图片
-
- $image_dir = ROOT_PATH.'Uploads/image/goods';
- $image_dir .= '/'.date('Y-m-d').'/';
-
- $file_path = C('SITE_URL').'Uploads/image/goods/'.date('Y-m-d').'/';
- $kufile_path = $dir.'/'.date('Y-m-d').'/';
-
- RecursiveMkdir($image_dir);
- $file_name = md5('qrcode_'.$goods_id.'_'.$member_id.time()).'.png';
- //qrcode
- file_put_contents($image_dir.$file_name, $weqrcode);
- return $image_dir.$file_name;
- }
-
- public function _get_compare_qrcode_bgimg($bg_img, $qrcode_img,$s_x = '500',$s_y = '660')
- {
- $image_dir = ROOT_PATH."Uploads/image/".date('Y-m-d')."/";
-
- RecursiveMkdir($image_dir);
-
- $thumb_image_name = "thumb_img".md5($qrcode_img).'.png';
-
- $image = new \Think\Image();
- $image->open($qrcode_img);
- $image->thumb(230, 230)->save($image_dir.$thumb_image_name);
-
- $thumb_qrcode_img = $image_dir.$thumb_image_name;
-
- $bg_img = ROOT_PATH."Uploads/image/".$bg_img;
-
- $dst = imagecreatefromjpeg ($bg_img);
- $src = imagecreatefromstring(file_get_contents($thumb_qrcode_img));
-
- if (imageistruecolor($src))
- imagetruecolortopalette($src, false, 65535);
-
- list($src_w, $src_h) = getimagesize($thumb_qrcode_img);
- list($dst_w, $dst_h, $dst_type) = getimagesize($bg_img);
- imagecopymerge($dst, $src, $s_x, $s_y, 0, 0, $src_w, $src_h, 100);
-
- $last_img = $image_dir;
-
- $file_path = C('SITE_URL').'Uploads/image/'.date('Y-m-d').'/';
- $return_file_path = ''.date('Y-m-d').'/';
-
-
- $last_img_name = "last_qrcode".md5( time().$bg_img.$qrcode_img).'';
-
- switch ($dst_type) {
- case 1://GIF
- $last_img_name .= '.gif';
- header('Content-Type: image/gif');
- imagegif($dst, $last_img.$last_img_name);
- break;
- case 2://JPG
- $last_img_name .= '.jpg';
- //header('Content-Type: image/jpeg');
- imagejpeg($dst, $last_img.$last_img_name);
- break;
- case 3://PNG
- $last_img_name .= '.png';
- header('Content-Type: image/png');
- imagepng($dst, $last_img.$last_img_name);
- break;
- default:
- break;
- }
- imagedestroy($dst);
- imagedestroy($src);
- imagedestroy($goods_src);
- //imagedestroy($avatar_src);
-
- //return_file_path
- $result = array('full_path' => $file_path.$last_img_name,'need_path' => $return_file_path.$last_img_name);
-
- return $result;
- }
-
- //_get_compare_zan_img($rocede_path,$goods_img,$goods_title,$goods_price)
- public function _get_compare_zan_img($goods_img,$goods_title,$goods_price)
- {
- //$qrcode_img = ROOT_PATH."Uploads/image/2018-01-19/7b4f87260dff5247f2313dfe6cc0fe83.png";
-
- $image_dir = ROOT_PATH."Uploads/image/".date('Y-m-d')."/";
-
-
- RecursiveMkdir($image_dir);
-
-
-
-
- // 70 70 /alidata/www/pinduoduo/Common/img/bg.jpg
- // Common/img/bg.png 590 460 11258
- $bg_img = ROOT_PATH."Common/image/bg.jpg";
- //$goods_img = ROOT_PATH."Uploads/image/goods/2017-11-25/1511619168701f098ef1190364f8beb079a306673c.jpg";
-
- $thumb_goods_name = "thumb_img".md5($goods_img).'.png';
-
- $image2 = new \Think\Image();
- $image2->open($goods_img);
- $image2->thumb(750, 585)->save($image_dir.$thumb_goods_name);
-
- $thumb_goods_img = $image_dir.$thumb_goods_name;
-
-
- $image_dir = ROOT_PATH.'Uploads/image/goods';
- $image_dir .= '/'.date('Y-m-d').'/';
-
- $file_path = C('SITE_URL').'Uploads/image/goods/'.date('Y-m-d').'/';
- $return_file_path = 'goods/'.date('Y-m-d').'/';
-
- RecursiveMkdir($image_dir);
-
- //$image_dir.$thumb_avatar_name
-
- //文字:74 640
- //长按二维码领取: 517 640
- //商品文字: 24 710
- //快和我一起领取吧: 24 817
- //市场价,单价 24 895
-
- //var_dump($thumb_goods_img);die();
-
- //$dst = imagecreatefromstring(file_get_contents($bg_img));
- $dst = imagecreatefromjpeg ($bg_img);
-
- $goods_src = imagecreatefromstring(file_get_contents($thumb_goods_img));
-
-
- if (imageistruecolor($goods_src))
- imagetruecolortopalette($goods_src, false, 65535);
-
- if (imageistruecolor($avatar_src))
- imagetruecolortopalette($avatar_src, false, 65535);
-
-
- list($goods_src_w, $goods_src_h) = getimagesize($thumb_goods_img);
- list($dst_w, $dst_h, $dst_type) = getimagesize($bg_img);
-
-
- imagecopymerge($dst, $goods_src, ($dst_w - $goods_src_w) / 2, 0, 0, 0, $goods_src_w, $goods_src_h, 100);
-
- //imagecopymerge($dst, $avatar_src, 24, 615, 0, 0, $avatar_w, $avatar_h, 100);
-
- $ttf_path = ROOT_PATH."Common/js/simhei.ttf";
-
- //打上文字
-
- $black = imagecolorallocate($dst, 20,20,20);//黑色
- $red = imagecolorallocate($dst, 237, 48, 43); //红色 201 55 49
- $huise = imagecolorallocate($dst, 159, 159, 159); //灰色 159 159 159
- $fense = imagecolorallocate($dst, 248, 136, 161); //粉色 248 136 161
- //ffb7d7 248 136 161
-
-
- //$goods_title = "我免费领取了【大白兔奶糖果零食铁盒装114g】的所得税的色舞认太热太热太热";
- $goods_title = $goods_title;
- $need_goods_title = mb_substr($goods_title,0,12,'utf-8')."\r\n";
- $need_goods_title .= mb_substr($goods_title,12,12,'utf-8');
-
- imagefttext($dst, 25, 0, 120, 660, $black, $ttf_path, $username);
- //imagefttext($dst, 15, 0, 518, 920, $huise, $ttf_path, '长按二维码领取');
- imagefttext($dst, 30, 0, 24, 750, $black, $ttf_path, $need_goods_title);
- imagefttext($dst, 15, 0, 24, 860, $fense, $ttf_path, "限时爆款价");
- imagefttext($dst, 36, 0, 24, 920, $black, $ttf_path, "¥".$goods_price['price']);
- imagefttext($dst, 18, 0, 186, 920, $huise, $ttf_path, "市场价¥".$goods_price['market_price']);
-
- $last_img = $image_dir;
-
- $last_img_name = "last_avatar".md5( time().$need_goods_title.$username).'';
-
- switch ($dst_type) {
- case 1://GIF
- $last_img_name .= '.gif';
- header('Content-Type: image/gif');
- imagegif($dst, $last_img.$last_img_name);
- break;
- case 2://JPG
- $last_img_name .= '.jpg';
- //header('Content-Type: image/jpeg');
- imagejpeg($dst, $last_img.$last_img_name);
- break;
- case 3://PNG
- $last_img_name .= '.png';
- header('Content-Type: image/png');
- imagepng($dst, $last_img.$last_img_name);
- break;
- default:
- break;
- }
- imagedestroy($dst);
-
- imagedestroy($goods_src);
- //imagedestroy($avatar_src);
-
- //return_file_path
- $result = array('full_path' => $file_path.$last_img_name,'need_path' => $return_file_path.$last_img_name);
-
- return $result;
- }
-
- /**
- * 前端已售单位自定义
- * @return [string] [自定义值,默认件]
- */
- public function get_sale_unit()
- {
- $isnull_goods_sale_unit = D('Home/Front')->get_config_by_name('isnull_goods_sale_unit');
- if($isnull_goods_sale_unit==1) {
- return '';
- } else {
- $goods_sale_unit = D('Home/Front')->get_config_by_name('goods_sale_unit');
- return $goods_sale_unit ? $goods_sale_unit : '件';
- }
- }
-
- }
|