<?php /** * 奖品领取记录相关模块 * Created by PhpStorm. * User: chen * Date: 2017/7/11 * Time: 下午1:42 */ namespace Module; use Common\BaseModule; use Common\Response; class LotteryReceive extends BaseModule { /** * 添加奖品领取记录 *@param int $lid '抽奖记录ID', *@param varchar $name '收件人姓名', *@param varchar $address '收件人详细地址', *@param int $pid '省份ID', *@param int $cid '城市ID', *@param int $did '县ID', */ public function addReceive($lid, $name, $address, $pid, $cid, $did) { $lotteryModel = \Model\LotteryReceive::instance(); $db = $lotteryModel->getDataBase(false); // 开启事物 $db->beginTransaction(); try { // 添加领奖记录 $lotteryId = $lotteryModel->addReceive($lid, $name, $address, $pid, $cid, $did); $db->commit(); return Response::instance()->setData([]); } catch (\Exception $e) { $db->rollBack(); return Response::instance()->setError(100000002); } } /*展示领奖记录 * 活动列表 * @param int $offset 偏移量 * @param int $pageSize 分页大小 * @param string $order 排序字符串(例如:id desc, time asc) * @return 有数据返回 array('count'=>1, 'list'=>[...]) */ public function listReceive($offset, $pageSize, $order) { $model = \Model\LotteryReceive::instance(); $fields = 'id, log_id, name, address, province_id, city_id, distinct_id'; $whereArr = []; $orderArr = explode(',', $order); try { // 计算数据条数 $count = $model->getReceiveCount($whereArr); if (!$count) { return Response::instance()->setData([]); } // 获取数据数组 $list = $model->getListReceive($fields, $offset, $pageSize, $whereArr, $orderArr); return Response::instance()->setData(['count'=>$count, 'list'=>$list]); } catch (\Exception $e) { echo $e;die; return Response::instance()->setError(100000002); } } /** * 获取领奖记录详情 * @param int $id 活动ID * @return 活动详情数组 */ public function detailReceive($log_id) { $model = \Model\LotteryReceive::instance(); $fields = 'id, log_id, name, address, province_id, city_id, distinct_id'; $whereArr[] = 'log_id='.$log_id; try { $list = $model->getListReceive($fields, 0, 1, $whereArr, null); if (!empty($list)) { $list = array_shift($list); } return Response::instance()->setData($list); } catch (\Exception $e) { return Response::instance()->setError(100000002); } } /** * 修改领奖记录 *@param int $id 记录id ID *@param varchar $name '收件人姓名', *@param varchar $address '收件人详细地址', *@param int $pid '省份ID', *@param int $cid '城市ID', *@param int $did '县ID', * @return 成功返回 code=0 失败 code != 0 */ public function updateReceive($lid, $name, $address, $pid, $cid, $did) { $model = \Model\LotteryReceive::instance(); try { $count = $model->updateReceive($lid, $name, $address, $pid, $cid, $did); return Response::instance()->setData(['rowCount' => $count]); } catch (\Exception $e) { return Response::instance()->setError(100000002); } } }
<?php/** * 奖品领取记录操作 * @author * @date 2017年6月27日 * @time 下午3:10:24 */namespace Model;use Common\BaseModel;class LotteryReceive extends BaseModel { /* * 添加奖品领取记录 *@param int $lid '抽奖记录ID', *@param varchar $name '收件人姓名', *@param varchar $address '收件人详细地址', *@param int $pid '省份ID', *@param int $cid '城市ID', *@param int $did '县ID', */ public function addReceive($lid, $name, $address, $pid, $cid, $did) { $db = $this->getDataBase(false); $sql = 'INSERT INTO lottery_receive (name, log_id, address, province_id, city_id, distinct_id) VALUE (:name, :log_id, :address, :province_id, :city_id, :distinct_id)'; $query = array( ':name' => $name, ':log_id' => $lid, ':address' => $address, ':province_id' => $pid, ':city_id' => $cid, ':distinct_id' => $did, ); $rowCount = $db->createSql($sql)->query($query)->rowCount(); return $rowCount ? $db->lastInsertId() : 0; } /* * 奖品领取记录展示*/ /** * 获取查询列表 * @param string $fields 需要显示的字段 * @param int $offset 数据起始偏移量 * @param int $pageSize 分页大小 * @param array $whereArr 条件数组 * @param array $orderArr 排序数组 * @return array 返回所有数据的数组 array('count'=>11, 'list'=>[...]) */ public function getListReceive($fields, $offset, $pageSize, $whereArr, $orderArr) { $db = $this->getDataBase(); $orderStr = $whereStr = $limitStr = ''; if ($whereArr) { $whereStr = ' where '.implode(' and ', $whereArr); } if ($orderArr) { $orderStr = ' order by '.implode(',', $orderArr); } if ($pageSize) { $limitStr = " limit {$offset},{$pageSize}"; } $sql = "select {$fields} from lottery_receive {$whereStr} {$orderStr} {$limitStr}"; $stmt = $db->createSql($sql)->query(); $data = array(); while ($tmp = $stmt->fetch()){ $data[] = $tmp; } return $data; } /** * 获取指定条件的数据条数 * @param array $whereArr 条件数组 array('key'=>'value') * @return 返回符合条件的数据条数 */ public function getReceiveCount($whereArr) { $db = $this->getDataBase(); $orderStr = $whereStr = $limitStr = ''; if ($whereArr) { $whereStr = ' where '.implode(' and ', $whereArr); } $sql = "select count(id) as num from lottery_receive {$whereStr} "; $count = $db->createSql($sql)->query()->fetch(); return $count['num']; } /** *修改领奖记录 *@param int $id 记录id ID *@param varchar $name '收件人姓名', *@param varchar $address '收件人详细地址', *@param int $pid '省份ID', *@param int $cid '城市ID', *@param int $did '县ID', * @return 成功返回 code=0 失败 code != 0 */ public function updateReceive($lid, $name, $address, $pid, $cid, $did) { $db = $this->getDataBase(false); $sql = 'update lottery_receive set name= :name, address=:address ,province_id=:province_id, city_id=:city_id, distinct_id=:distinct_id where log_id=:id'; $query = array ( ':id' => $lid, ':name' => $name, ':address' => $address, ':province_id' => $pid, ':city_id' => $cid, ':distinct_id' => $did, ); return $db->createSql($sql) ->query($query) ->rowCount(); }}