/** * [联合操作,添加童鞋,添加宝贝并绑定] * @param [type] $uid [description] * @param [type] $nick [description] * @param [type] $sex [description] * @param [type] $birthday [description] * @param [type] $addtime [description] * @param [type] $shoeQr [description] * @param [type] $rolename [description] * @param [type] $file [description] */ public function add($uid, $nick, $sex, $birthday, $addtime, $shoeQr, $rolename, $file, $weight = '', $height = '') { if (!empty($file['file']['tmp_name'])) { $upload = new ImgUpload($this->di); $imageName = substr(md5(uniqid(true)), 8, 16); $rePath = substr($imageName, 0, 2) . '/' . substr($imageName, 2, 2); $picInfo = $upload->uploadFile($file['file'], $this->di['sysconfig']['babyPic'], $imageName, $rePath); if (is_numeric($picInfo)) { return $picInfo; } else { $pic = $this->di['sysconfig']['babyPic'] . '/' . $picInfo; } } else { return self::NON_IMG_UPLOAD; } //判断鞋子是否存在 $shoeInfo = $this->devices->getDevInfoByQr($shoeQr); if (!$shoeInfo) { return self::NON_EXIST_SHOE; } //开始计算服务期,如果值为0,则第一次添加 if (empty($shoeInfo['expire'])) { $expires = Common::expires($_SERVER['REQUEST_TIME']); } else { $expires = $shoeInfo['expire']; } $this->di['db']->begin(); //添加宝贝 $babyId = $this->baby->add($nick, $sex, $birthday, $addtime, $pic, $weight, $height, '1'); if (!$babyId) { $this->di['db']->rollback(); return self::FAILED_ADD; } if (!$this->family->addRel($babyId, $uid, empty($rolename) ? '' : $rolename, '1', $addtime, '1')) { $this->di['db']->rollback(); return self::FAILED_ADD; } //设备过期就不让添加 if ($_SERVER['REQUEST_TIME'] < $expires) { $devId = $this->devices->addShoe($uid, $shoeInfo['uuid'], $shoeInfo['imei'], $shoeInfo['mobi'], $shoeInfo['pass'], $shoeInfo['dver'], $expires, $shoeInfo['qr'], $shoeInfo['pic'], $_SERVER['REQUEST_TIME'], $babyId); if (!$babyId) { $this->di['db']->rollback(); return self::FAILED_ADD; } if (!$this->devices->updateExpires($shoeInfo['uuid'], $expires)) { $this->di['db']->rollback(); return self::FAILED_ADD; } $this->di['db']->commit(); return array('flag' => '1', 'shoe_info' => array('shoe_id' => (string) $devId), 'baby_info' => array('baby_id' => (string) $babyId, 'baby_pic' => $this->di['sysconfig']['babyPicServer'] . $pic)); } else { $this->di['db']->commit(); return array('flag' => '11077', 'target' => 'target', 'expires' => $expires, 'msg' => $this->di['flagmsg']['11077'], 'tel' => $this->di['sysconfig']['service-phone']); } }
public function renewOperate($outTradeNo, $addTime, $tradeNo) { $renewInfo = $this->renew->getRenewByRono($outTradeNo); if (!$renewInfo) { return self::FAILED_OPERATE; } //获取设备原本到期时间和imei $shoeInfo = $this->devices->getBabyDevByShoeId($renewInfo['dev_id']); if (!$shoeInfo) { return self::FAILED_OPERATE; } //如果续费的时候设备尚未到期,则延长到期时间 if ($shoeInfo['dev_expires'] - $addTime > 0) { $expires = Common::expires($shoeInfo['dev_expires'], $renewInfo['ro_period']); } else { //如果已经到期,则从现在开始续费 $expires = Common::expires($addTime, $renewInfo['ro_period']); } //现在的日期 $today = getdate($addTime); //到期日 $deaddate = getdate($expires); $content = sprintf($this->di['sysconfig']['renewPushMsg']['success'], $renewInfo['ro_rolename'], $today['year'] . '年' . $today['mon'] . '月' . $today['mday'] . '日', $renewInfo['dev_imei'], $deaddate['year'] . '年' . $deaddate['mon'] . '月' . $deaddate['mday'] . '日'); $this->di['db']->begin(); if (!$this->devices->updateExpires($shoeInfo['dev_uuid'], $expires)) { $this->di['db']->rollback(); return self::FAILED_OPERATE; } if (!$this->devices->setExpiresByDevid($renewInfo['dev_id'], $expires)) { $this->di['db']->rollback(); return self::FAILED_OPERATE; } if (!$this->renew->addRenewLog($renewInfo['ro_id'], 3, $addTime)) { $this->di['db']->rollback(); return self::FAILED_OPERATE; } if (!$this->msg->insertMsg($renewInfo['baby_id'], $addTime, $content, 17)) { $this->di['db']->rollback(); return self::FAILED_OPERATE; } if (!$this->renew->setOrderStatus($outTradeNo, 3, $tradeNo)) { $this->di['db']->rollback(); return self::FAILED_OPERATE; } $this->di['db']->commit(); //赠送云币 $swoole = new SwooleUserClient($this->di['sysconfig']['swooleConfig']['ip'], $this->di['sysconfig']['swooleConfig']['port']); $res = $swoole->checkInReceive($renewInfo['u_id'], $renewInfo['ro_coins']); return self::SUCCESS; }
public function indexAction() { $shoeInfo = $this->devices->getUidByDev($this->_sanReq['shoe_id']); if (empty($shoeInfo)) { return self::NON_EXIST_SHOE; } $this->_checkRelation($this->userInfo['uid'], $shoeInfo['baby_id']); //获取可以续费的最后时间,过期3个月,就不允许续费 $deadline = Common::expires($shoeInfo['dev_expires'], $this->di['sysconfig']['allowRenew']); if ($_SERVER['REQUEST_TIME'] > $deadline) { $this->_showMsg(self::CANNOT_TO_RENEW, $this->di['flagmsg'][self::CANNOT_TO_RENEW]); } $res = $this->renew->getRenewList($this->_sanReq['shoe_id'], $shoeInfo); if (is_array($res)) { $this->_returnResult($res); } else { $this->_showMsg($res, $this->di['flagmsg'][$res]); } }
/** * 童鞋列表 */ public function listAction($code = '') { if ($code == '') { if (empty($this->_sanReq['baby_id'])) { $result = $this->devices->shoeListByUid($this->userInfo['uid'], $this->_sanReq['count']); } else { $this->_checkRelation($this->userInfo['uid'], $this->_sanReq['baby_id']); $result = $this->devices->shoeListByBabyId($this->_sanReq['baby_id']); } if (!empty($result)) { foreach ($result as $key => $value) { if (!empty($value['baby_pic'])) { $result[$key]['baby_pic'] = $this->di['sysconfig']['babyPicServer'] . $value['baby_pic']; } else { $result[$key]['baby_id'] = ''; $result[$key]['baby_pic'] = ''; } if ($_SERVER['REQUEST_TIME'] <= Common::expires($value['expdate'])) { $result[$key]['target'] = '1'; } else { $result[$key]['target'] = '3'; } } } } elseif ($code == '1') { $result = $this->devices->shoeListUnbind($this->userInfo['uid']); //获取截止续费的时间戳:判断设备是否可以续费 target为1可续,为3不可续 foreach ($result as $key => $val) { if ($_SERVER['REQUEST_TIME'] <= Common::expires($val['expdate'])) { $result[$key]['target'] = '1'; } else { $result[$key]['target'] = '3'; } } } else { $this->_showMsg(self::INVALID_OPERATE, $this->di['flagmsg'][self::INVALID_OPERATE]); } $this->_returnResult(array('flag' => self::SUCCESS, 'shoelist' => $result)); }
/** * 返回宝贝过期的童鞋个数 */ public function invalidAction() { $shoes = $this->baby->getExpireDevs($this->_sanReq['baby_id'], $_SERVER['REQUEST_TIME']); $num = sizeof($shoes); if ($num == 0) { $shoeId = ''; $num = ''; $target = ''; } elseif ($num == 1) { $shoeId = $shoes[0]['dev_id']; //获取截止续费的时间戳:判断设备是否可以续费 target为1可续,为3不可续 $deadline = Common::expires($shoes[0]['dev_expires']); if ($_SERVER['REQUEST_TIME'] <= $deadline) { $target = self::SUCCESS; } else { $target = '3'; } } else { $shoeId = ''; $target = ''; } $this->_returnResult(array('flag' => self::SUCCESS, 'shoe_id' => $shoeId, 'shoe_count' => (string) $num, 'target' => $target)); }
/** * [扫描直接添加童鞋并绑定] * @param [string] $shoeQr [童鞋qr码] */ public function addAndBind($uid, $shoeQr, $babyId) { //判断鞋子是否存在 $shoeInfo = $this->devices->getDevInfoByQr($shoeQr); if (!$shoeInfo) { $this->_showMsg(self::NON_EXIST_SHOE, $this->di['flagmsg'][self::NON_EXIST_SHOE]); } //开始计算服务期,如果值为0,则第一次添加 if ($shoeInfo['expire'] == 0) { $expires = Common::expires($_SERVER['REQUEST_TIME']); } else { $expires = $shoeInfo['expire']; } $this->di['db']->begin(); //判断鞋子是否已经添加 $checkQr = $this->devices->getShoeIdByQr($shoeQr); if (!empty($checkQr)) { if ($checkQr['baby_id'] != '0') { return self::SHOE_ADDED; } else { //如果鞋子已添加但是还未绑定童鞋,执行绑定 if (!$this->devices->setShoeBindBabyId($babyId, $checkQr['dev_id'])) { $this->di['db']->rollback(); return self::FAILED_ADD; } if (!$this->devices->updateExpires($shoeInfo['uuid'], $expires)) { $this->di['db']->rollback(); return self::FAILED_ADD; } } } else { if ($_SERVER['REQUEST_TIME'] < $expires) { //添加鞋子 if (!$this->devices->addShoe($uid, $shoeInfo['uuid'], $shoeInfo['imei'], $shoeInfo['mobi'], $shoeInfo['pass'], $shoeInfo['dver'], $expires, $shoeInfo['qr'], $shoeInfo['pic'], $_SERVER['REQUEST_TIME'], $babyId)) { $this->di['db']->rollback(); return self::FAILED_ADD; } if (!$this->devices->updateExpires($shoeInfo['uuid'], $expires)) { $this->di['db']->rollback(); return self::FAILED_ADD; } } else { return self::VALIDED_SHOE; } } if (!$this->baby->setDevNum($babyId)) { $this->di['db']->rollback(); return self::FAILED_UPDATE_DATA; } //往排行榜里面插入宝贝记录 if (!$this->babyRanks->getBabyId($babyId)) { if (!$this->babyRanks->addBabyId($babyId)) { $this->di['db']->rollback(); return self::FAILED_UPDATE_DATA; } } $this->di['db']->commit(); return self::SUCCESS; }