/**
  * 兑换奖品
  *
  * @param $broker_id
  * @param $activity_id
  * @param $prize_id
  * @param $periods_no
  * @param $consume
  * @param $times_limit
  * @return array
  */
 public static function exchange_property($broker_id, $activity_id, $prize_id, $periods_no, $consume, $times_limit)
 {
     /** 从兑换奖品表里对奖品剩余数量做 -1 操作 */
     $effectRowCount = Dao_Cms_ExchangeProperty::decrease_exchange_property($activity_id, $prize_id, $periods_no);
     if ($effectRowCount != 1) {
         return array('status' => -3, 'message' => '奖品不足', 'debug' => __CLASS__, 'debug_info' => $effectRowCount);
     }
     /** 对经纪人看消费资源做扣除相应数量资源操作 */
     $effectRowCount = Dao_Cms_ActivityUserProperty::decrease_user_property($activity_id, $broker_id, $consume);
     if ($effectRowCount != 1) {
         Dao_Cms_ExchangeProperty::increase_exchange_property($activity_id, $prize_id, $periods_no);
         return array('status' => -2, 'message' => '积分不足', 'debug' => __CLASS__, 'debug_info' => $effectRowCount);
     }
     /** 对经纪人的兑换次数做 +1 操作 */
     $effectRowCount = Dao_Cms_LuckyDrawTimes::increase_broker_exchange_times($activity_id, $broker_id, $periods_no, $times_limit);
     if ($effectRowCount != 1) {
         /** 恢复奖品数量 */
         Dao_Cms_ExchangeProperty::increase_exchange_property($activity_id, $prize_id, $periods_no);
         /** 恢复经纪人资源数量 */
         Dao_Cms_ActivityUserProperty::increase_user_property($activity_id, $broker_id, $consume);
         return array('status' => -4, 'message' => '对不起,每个时段只能兑换一次。', 'debug' => __CLASS__, 'debug_info' => $effectRowCount);
     }
     return array('status' => 0, 'message' => '兑换成功');
 }
 public static function add_broker($aid, $user_id, $broker_id, $city_id, $user_name, $gender, $phone, $properties, $origin_properties, $grade_score, $grade_level)
 {
     return Dao_Cms_ActivityUserProperty::add_broker($aid, $user_id, $broker_id, $city_id, $user_name, $gender, $phone, $properties, $origin_properties, $grade_score, $grade_level);
 }
 /**
  * 开始分派奖品
  */
 public static function log_lucky_draw($activity_id, $broker_id, $lucky_draw_prize_id, $periods_no, $times_limit, $consume)
 {
     /** 奖品剩余 数量 -1 */
     $effectCount = Dao_Cms_LuckyDrawPrize::decrease_lucky_draw_prize($lucky_draw_prize_id);
     if ($effectCount != 1) {
         // Dao_Cms_ActivityUserProperty::increase_user_property($activity_id, $broker_id, $consume);
         return array('status' => 0, 'message' => '谢谢参与', 'prize_id' => 0, 'prize_title' => '谢谢参与', 'debug' => __CLASS__, 'debug_info' => __LINE__);
     }
     /** 经纪人的抽奖次数 */
     $effectCount = Dao_Cms_LuckyDrawTimes::increase_broker_times($activity_id, $broker_id, $periods_no, $times_limit);
     if ($effectCount != 1) {
         Dao_Cms_ActivityUserProperty::increase_user_property($activity_id, $broker_id, $consume);
         Dao_Cms_LuckyDrawPrize::increase_lucky_draw_prize($lucky_draw_prize_id);
         return array('status' => -3, 'message' => '抽奖次数上限', 'debug' => __CLASS__, 'debug_info' => __LINE__);
     }
     /** 增加经纪人的中奖次数 */
     Dao_Cms_LuckyDrawTimes::increase_broker_lucky_times($activity_id, $broker_id, $periods_no);
     return array('status' => 0, 'message' => '', 'prize_id' => $lucky_draw_prize_id);
 }
示例#4
0
 private function ajax_lucky_draw($params)
 {
     if (!isset($params['aid']) || empty($params['aid']) || !isset($params['pro_id']) || empty($params['pro_id'])) {
         return array('status' => -99, 'message' => '参数错误', 'debug' => __CLASS__);
     }
     $request = APF::get_instance()->get_request();
     $broker_id = $request->getBrokerId();
     $periods_no = $params['pro_id'];
     $activity_id = $params['aid'];
     /** 判断抽奖活动当前是否有效 */
     $checkLuckyDraw = Bll_Cms_LuckyDrawConfig::check_lucky_draw_is_valid($activity_id, $periods_no);
     if ($checkLuckyDraw['status'] != 0) {
         return $checkLuckyDraw;
     }
     $consume = $checkLuckyDraw['luckyDrawConfig']['consume'];
     $times_limit = $checkLuckyDraw['luckyDrawConfig']['times_limit'];
     /** 判断经纪人资源是否不足 */
     $userProperty = Bll_Cms_ActivityUserProperty::check_lucky_draw_is_valid($broker_id, $activity_id, $consume);
     if ($userProperty['status'] != 0) {
         return $userProperty;
     }
     /** 判断经纪人抽奖次数是否上线 */
     $checkLuckyDrawTimes = Bll_Cms_LuckyDrawTimes::check_lucky_times_is_valid($activity_id, $broker_id, $periods_no, $times_limit);
     if ($checkLuckyDrawTimes['status'] != 0) {
         return $checkLuckyDrawTimes;
     }
     /** 扣除积分 */
     $effectCount = Dao_Cms_ActivityUserProperty::decrease_user_property($activity_id, $broker_id, $consume);
     if ($effectCount != 1) {
         return array('status' => -1, 'message' => '积分不足', 'debug' => __CLASS__, 'debug_info' => __LINE__);
     }
     $lid = $checkLuckyDraw['luckyDrawConfig']['id'];
     $city_id = $request->getBrokerCityId();
     $property = $userProperty['userProperty']['origin_propertys'];
     /** 开始抽奖 */
     $luckyDraw = Bll_Cms_LuckyDrawConfig::calculate_lucky_draw($lid, $city_id, $property, $checkLuckyDrawTimes['lucky_draw_times'], $checkLuckyDrawTimes['lucky_times']);
     /** 未中奖 */
     if ($luckyDraw['status'] == 0) {
         Bll_Cms_LuckyDrawTimes::increase_broker_times($activity_id, $broker_id, $periods_no, $times_limit);
         Bll_Cms_ActivityComsumePropertyLog::add_lucky_draw_thanks_log($activity_id, $broker_id, $luckyDraw['prize_id'], $userProperty['userProperty']['user_name'], $userProperty['userProperty']['phone'], '谢谢参与', $consume, $userProperty['userProperty']['propertys'], $request->get_client_ip());
         $luckyDraw['leveing'] = $userProperty['userProperty']['propertys'] - $consume;
         return $luckyDraw;
     }
     /** 开始派奖 */
     $lucky_draw_prize_id = $luckyDraw['lucky_prize']['id'];
     $luckyDrawLog = Bll_Cms_LuckyDrawConfig::log_lucky_draw($activity_id, $broker_id, $lucky_draw_prize_id, $periods_no, $times_limit, $consume);
     /** 中奖&奖品还有 */
     if ($luckyDrawLog['status'] == 0 && empty($luckyDrawLog['message'])) {
         Bll_Cms_ActivityComsumePropertyLog::add_lucky_draw_log($activity_id, $broker_id, $luckyDraw['prize_id'], $userProperty['userProperty']['user_name'], $userProperty['userProperty']['phone'], $luckyDraw['prize_title'], $consume, $userProperty['userProperty']['propertys'], $request->get_client_ip());
         return array('status' => 0, 'message' => $luckyDraw['message'], 'prize_id' => $luckyDraw['prize_id'], 'prize_title' => $luckyDraw['prize_title'], 'leveing' => $userProperty['userProperty']['propertys'] - $consume);
     }
     /** 奖品不够 */
     Bll_Cms_ActivityComsumePropertyLog::add_lucky_draw_thanks_log($activity_id, $broker_id, $luckyDraw['prize_id'], $userProperty['userProperty']['user_name'], $userProperty['userProperty']['phone'], '谢谢参与', $consume, $userProperty['userProperty']['propertys'], $request->get_client_ip());
     $luckyDrawLog['prize_title'] = '谢谢参与';
     $luckyDrawLog['leveing'] = $userProperty['userProperty']['propertys'] - $consume;
     return $luckyDrawLog;
 }