Exemple #1
0
 /**
  * 赠送礼物,暂只支持赠送已有物品
  * @param $params
  *   require  u         -- 送礼人id
  *            f         -- 受礼人id
  *            msg       -- 送礼人的留言
  *   option   xid       -- 礼物id,赠送已有物品时传此参数,
  *            xtag      -- 新买物品的xml id,赠送新买物品时传此参数
  * @return 
  *            s         --  OK
  */
 public function send_gift($params)
 {
     $uid = $params['u'];
     $fid = $params['f'];
     $msg = $params['msg'];
     $xid = $params['xid'];
     $xtag = $params['xtag'];
     if (!$fid) {
         $ret['s'] = 'friendnotexsit';
         return $ret;
     }
     if (!$xid) {
         //赠送已有物品
         if (0) {
             //验证xml中是否存在此类物品
         }
         //验证送礼人是否有此物品
         $tm = new TTMain();
         //礼物只能是装饰品?
         $gift_obj = $tm->getbyid($xid, $uid);
         if (!$gift_obj) {
             $ret['s'] = 'giftnotexsit';
             return $ret;
         }
         //从送礼人的物品列表中除去此礼物
         $tm->remove($uid, $gift_obj['id']);
     }
     if (!$xtag) {
         //赠送新买物品
         if (0) {
             //验证xml中是否存在此类物品
         }
         $tu = new TTUser($uid);
         $buy_ret = $tu->buyItem($xtag);
         if ($buy_ret['s'] != 'OK') {
             return $buy_ret;
         }
         //如何得到新买物品的id?
     }
     $db = ServerConfig::connect_main_mysql(0);
     $present = ModelFactory::Present($db);
     $now = time();
     $data['user_id'] = $fid;
     $data['donor_id'] = $uid;
     $data['message'] = $msg;
     $data['item_id'] = $gift_obj['tag'];
     //如果是新买物品 $data['item_id'] = 新物品的tag
     $data['done'] = 0;
     //未被好友领取
     $data['created_at'] = date(TM_FORMAT, $now);
     $present->insert($data);
     $ret['s'] = 'OK';
     return $ret;
 }
Exemple #2
0
 /**
  * @param $params
  *  require             u          -- user id
  *                      d          -- item        支持购买多种物品
  *                                 tag            --  tag to distiguish item type
  *                                 pos            --  position for describe item 
  * @return 
  *                      s          -- OK ,or other fail
  *                                     notexsit ,配置不一致
  *                                     notbuy ,不能购买的物品
  *                                     level,等级未到 
  *                                     achive, 所需成就buy_need_achiveid 未达成 
  *                                     task,所需任务未达成
  *                                     buynumlimit,限量版已经卖完
  *                                     money,
  *				       gem
  *			index     -- 第几个物品开始后面的物品没有购买成功
  *
  *                      ids        -- the new generate id
  */
 public function buy($params)
 {
     $uid = $params['u'];
     $ids = array();
     $tu = new TTUser($uid);
     if ($tu->check_dup($params['_cid'], $ret)) {
         return $ret;
     }
     $pop = 0;
     $now = time();
     foreach ($params['d'] as $index => $row) {
         $tag = $row['tag'];
         $num = 1;
         $item = ItemConfig::getItem($tag);
         if (!$item) {
             $ret['s'] = 'notexsit';
             $ret['index'] = $index;
             return $ret;
         }
         $buy_ret = $tu->buyItem($tag, $num);
         if ($buy_ret['s'] != 'OK') {
             $buy_ret['index'] = $index;
             return $buy_ret;
         }
         if ($item['type'] == "ro") {
             $row['id'] = $tu->getdid(false, TT::SHOP_GROUP);
             //shop id
         } else {
             //不维护店面人气,但厕所的人气需包含
             $row['id'] = $tu->getdid(false, TT::ITEM_GROUP);
             //other
             $pop += $item['pop'];
             if ($item['type'] == 'rs') {
                 //特殊店需记录一个结算时间
                 $row['ctime'] = $now;
             }
         }
         $ret['ids'][$index] = $tu->puto($row, TT::ITEM_GROUP, false);
     }
     if ($pop) {
         $popu = $tu->numch(TT::POPU, $pop);
     }
     $ret['s'] = 'OK';
     return $ret;
 }
Exemple #3
0
 /**
  * 进货
  * @param $params
  * require  u           -- user_id
  * require  c           -- the car to be lold
  *                      id         -- id of the car
  *                      goodsTag   -- goods type the car can load
  * @return
  *          s           -- OK
  *          c           -- car status
  */
 public function go_goods($params)
 {
     $uid = $params['u'];
     $goodsTag = $params['c']['goodsTag'];
     $cid = $params['c']['id'];
     $tu = new TTUser($uid);
     $car_obj = $tu->getbyid($cid);
     if (!$car_obj) {
         $ret['s'] = 'notexist';
         return $ret;
     }
     if ($car_obj['t']) {
         $ret['s'] = 'doing';
         return $ret;
     }
     $car = ItemConfig::getItem($car_obj['tag']);
     if (!$car) {
         $ret['s'] = 'caritemnotexist';
         return $ret;
     }
     $goods = ItemConfig::getItem($goodsTag);
     if (!$goods) {
         $ret['s'] = 'goodsitemnotexist';
         return $ret;
     }
     $buy_ret = $tu->buyItem($goods['tag'], $car['goodsNumber']);
     if ($buy_ret['s'] != 'OK') {
         return $buy_ret;
     }
     $add_exp = $goods['exp'] * $car['goodsNumber'];
     if ($add_exp) {
         $tu->addExp($add_exp);
     }
     $now = time();
     $car_obj['goodsTag'] = $goodsTag;
     $car_obj['t'] = $now;
     $tu->puto($car_obj, TT::CAR_GROUP);
     $gogoods_count = $tu->numch('gogoods_count', 1);
     $ret['s'] = 'OK';
     $params['c']['t'] = $now;
     $ret['c'] = $params['c'];
     //		$ret['c'] = $car_obj;
     return $ret;
 }