コード例 #1
0
ファイル: member.php プロジェクト: Wen1750686723/utao
 /**
  * @brief 移动会员,修改会员等级
  */
 function member_remove()
 {
     $user_ids = IFilter::act(IReq::get('check', 'post'), 'int');
     $group_id = IFilter::act(IReq::get('move_group', 'post'), 'int');
     $point = IFilter::act(IReq::get('move_point', 'post'), 'int');
     if ($user_ids && is_array($user_ids)) {
         $ids = implode(',', $user_ids);
         if ($ids) {
             $tb_member = new IModel('member');
             $updatearray = array();
             //积分改动
             if ($point) {
                 $pointObj = new Point();
                 $userList = $tb_member->query('user_id in(' . $ids . ')', 'user_id,point');
                 foreach ($userList as $val) {
                     $c_point = intval($point - $val['point']);
                     if ($c_point != 0) {
                         $tip = $c_point > 0 ? '奖励' : '扣除';
                         $pointConfig = array('user_id' => $val['user_id'], 'point' => $c_point, 'log' => '管理员' . $this->admin['admin_name'] . '修改了积分,' . $tip . $c_point . '积分');
                         $pointObj->update($pointConfig);
                     }
                 }
             }
             $updatearray['group_id'] = $group_id;
             $tb_member->setData($updatearray);
             $where = "user_id in (" . $ids . ")";
             $tb_member->update($where);
         }
     }
     $this->member_list();
 }
コード例 #2
0
ファイル: member.php プロジェクト: zhendeguoke1008/shop
 function member_save()
 {
     $user_id = IFilter::act(IReq::get('user_id'), 'int');
     $user_name = IFilter::act(IReq::get('username'));
     $email = IFilter::act(IReq::get('email'));
     $password = IFilter::act(IReq::get('password'));
     $repassword = IFilter::act(IReq::get('repassword'));
     $group_id = IFilter::act(IReq::get('group_id'), 'int');
     $truename = IFilter::act(IReq::get('true_name'));
     $sex = IFilter::act(IReq::get('sex'), 'int');
     $telephone = IFilter::act(IReq::get('telephone'));
     $mobile = IFilter::act(IReq::get('mobile'));
     $province = IFilter::act(IReq::get('province'), 'int');
     $city = IFilter::act(IReq::get('city'), 'int');
     $area = IFilter::act(IReq::get('area'), 'int');
     $contact_addr = IFilter::act(IReq::get('contact_addr'));
     $zip = IFilter::act(IReq::get('zip'));
     $qq = IFilter::act(IReq::get('qq'));
     $msn = IFilter::act(IReq::get('msn'));
     $exp = IFilter::act(IReq::get('exp'), 'int');
     $point = IFilter::act(IReq::get('point'), 'int');
     $_POST['area'] = ',' . $province . ',' . $city . ',' . $area . ',';
     if (!$user_id && $password == '') {
         $errorMsg = '请输入密码!';
     }
     if ($password != $repassword) {
         $errorMsg = '两次输入的密码不一致!';
     }
     //操作失败表单回填
     if (isset($errorMsg)) {
         $this->userInfo = $_POST;
         $this->redirect('member_edit', false);
         Util::showMessage($errorMsg);
     }
     $member = array('true_name' => $truename, 'telephone' => $telephone, 'mobile' => $mobile, 'area' => $_POST['area'], 'contact_addr' => $contact_addr, 'qq' => $qq, 'msn' => $msn, 'sex' => $sex, 'zip' => $zip, 'exp' => $exp, 'point' => $point, 'group_id' => $group_id);
     //创建会员操作类
     $userDB = new IModel("user");
     $memberDB = new IModel("member");
     //添加新会员
     if (empty($user_id)) {
         $user = array('username' => $user_name, 'password' => md5($password), 'email' => $email);
         $userDB->setData($user);
         $user_id = $userDB->add();
         $member['user_id'] = $user_id;
         $member['time'] = date('Y-m-d H:i:s');
         $memberDB->setData($member);
         $memberDB->add();
     } else {
         //修改密码
         if ($password) {
             $userDB->setData(array('password' => md5($password)));
             $userDB->update('id = ' . $user_id);
         }
         $member_info = $memberDB->getObj('user_id=' . $user_id);
         //修改积分记录日志
         if ($point != $member_info['point']) {
             $ctrlType = $point > $member_info['point'] ? '增加' : '减少';
             $diffPoint = $point - $member_info['point'];
             $pointObj = new Point();
             $pointConfig = array('user_id' => $user_id, 'point' => $diffPoint, 'log' => '管理员' . $this->admin['admin_name'] . '将积分' . $ctrlType . $diffPoint . '积分');
             $pointObj->update($pointConfig);
         }
         $memberDB->setData($member);
         $memberDB->update("user_id = " . $user_id);
     }
     $this->redirect('member_list');
 }
コード例 #3
0
ファイル: order_class.php プロジェクト: zhendeguoke1008/shop
 /**
  * 支付成功后修改订单状态
  * @param $orderNo  string 订单编号
  * @param $admin_id int    管理员ID
  * @param $note     string 收款的备注
  * @return false or int order_id
  */
 public static function updateOrderStatus($orderNo, $admin_id = '', $note = '')
 {
     //获取订单信息
     $orderObj = new IModel('order');
     $orderRow = $orderObj->getObj('order_no = "' . $orderNo . '"');
     if (empty($orderRow)) {
         return false;
     }
     if ($orderRow['pay_status'] == 1) {
         return $orderRow['id'];
     } else {
         if ($orderRow['pay_status'] == 0) {
             $dataArray = array('status' => 2, 'pay_time' => ITime::getDateTime(), 'pay_status' => 1);
             $orderObj->setData($dataArray);
             $is_success = $orderObj->update('order_no = "' . $orderNo . '"');
             if ($is_success == '') {
                 return false;
             }
             //删除订单中使用的道具
             $ticket_id = trim($orderRow['prop']);
             if ($ticket_id != '') {
                 $propObj = new IModel('prop');
                 $propData = array('is_userd' => 1);
                 $propObj->setData($propData);
                 $propObj->update('id = ' . $ticket_id);
             }
             if (intval($orderRow['user_id']) != 0) {
                 $user_id = $orderRow['user_id'];
                 //获取用户信息
                 $memberObj = new IModel('member');
                 $memberRow = $memberObj->getObj('user_id = ' . $user_id, 'prop,group_id');
                 //(1)删除订单中使用的道具
                 if ($ticket_id != '') {
                     $finnalTicket = str_replace(',' . $ticket_id . ',', ',', ',' . trim($memberRow['prop'], ',') . ',');
                     $memberData = array('prop' => $finnalTicket);
                     $memberObj->setData($memberData);
                     $memberObj->update('user_id = ' . $user_id);
                 }
                 if ($memberRow) {
                     //(2)进行促销活动奖励
                     $proObj = new ProRule($orderRow['real_amount']);
                     $proObj->setUserGroup($memberRow['group_id']);
                     $proObj->setAward($user_id);
                     //(3)增加经验值
                     $memberData = array('exp' => 'exp + ' . $orderRow['exp']);
                     $memberObj->setData($memberData);
                     $memberObj->update('user_id = ' . $user_id, 'exp');
                     //(4)增加积分
                     $pointConfig = array('user_id' => $user_id, 'point' => $orderRow['point'], 'log' => '成功购买了订单号:' . $orderRow['order_no'] . '中的商品,奖励积分' . $orderRow['point']);
                     $pointObj = new Point();
                     $pointObj->update($pointConfig);
                 }
             }
             //插入收款单
             $collectionDocObj = new IModel('collection_doc');
             $collectionData = array('order_id' => $orderRow['id'], 'user_id' => $orderRow['user_id'], 'amount' => $orderRow['order_amount'], 'time' => ITime::getDateTime(), 'payment_id' => $orderRow['pay_type'], 'pay_status' => 1, 'if_del' => 0, 'note' => $note, 'admin_id' => $admin_id ? $admin_id : 0);
             $collectionDocObj->setData($collectionData);
             $collectionDocObj->add();
             /*同步数据*/
             //同步团购的数据
             if ($orderRow['type'] == 1) {
                 $regimentUserObj = new IModel('regiment_user_relation');
                 $regimentUserObj->setData(array('is_over' => 1));
                 $regimentUserObj->update("order_no = '" . $orderRow['order_no'] . "'");
             }
             //更改购买商品的库存数量
             self::updateStore($orderRow['id'], 'reduce');
             return $orderRow['id'];
         } else {
             return false;
         }
     }
 }
コード例 #4
0
ファイル: ucenter.php プロジェクト: yongge666/sunupedu
 function trade_ticket()
 {
     $ticketId = IFilter::act(IReq::get('ticket_id', 'post'), 'int');
     $message = '';
     if (intval($ticketId) == 0) {
         $message = '请选择要兑换的代金券';
     } else {
         $nowTime = ITime::getDateTime();
         $ticketObj = new IModel('ticket');
         $ticketRow = $ticketObj->getObj('id = ' . $ticketId . ' and point > 0 and start_time <= "' . $nowTime . '" and end_time > "' . $nowTime . '"');
         if (empty($ticketRow)) {
             $message = '对不起,此代金券不能兑换';
         } else {
             $memberObj = new IModel('member');
             $where = 'user_id = ' . $this->user['user_id'];
             $memberRow = $memberObj->getObj($where, 'point');
             if ($ticketRow['point'] > $memberRow['point']) {
                 $message = '对不起,您的积分不足,不能兑换此类代金券';
             } else {
                 //生成红包
                 $dataArray = array('condition' => $ticketRow['id'], 'name' => $ticketRow['name'], 'card_name' => 'T' . IHash::random(8), 'card_pwd' => IHash::random(8), 'value' => $ticketRow['value'], 'start_time' => $ticketRow['start_time'], 'end_time' => $ticketRow['end_time'], 'is_send' => 1);
                 $propObj = new IModel('prop');
                 $propObj->setData($dataArray);
                 $insert_id = $propObj->add();
                 //用户prop字段值null时
                 $memberArray = array('prop' => ',' . $insert_id . ',');
                 $memberObj->setData($memberArray);
                 $result = $memberObj->update('user_id = ' . $this->user["user_id"] . ' and ( prop is NULL or prop = "" )');
                 //用户prop字段值非null时
                 if (!$result) {
                     $memberArray = array('prop' => 'concat(prop,"' . $insert_id . ',")');
                     $memberObj->setData($memberArray);
                     $result = $memberObj->update('user_id = ' . $this->user["user_id"], 'prop');
                 }
                 //代金券成功
                 if ($result) {
                     $pointConfig = array('user_id' => $this->user['user_id'], 'point' => '-' . $ticketRow['point'], 'log' => '积分兑换代金券,扣除了 -' . $ticketRow['point'] . '积分');
                     $pointObj = new Point();
                     $pointObj->update($pointConfig);
                 }
             }
         }
     }
     //展示
     if ($message != '') {
         $this->integral();
         Util::showMessage($message);
     } else {
         $this->redirect('redpacket');
     }
 }
コード例 #5
0
ファイル: order_class.php プロジェクト: herrify/iwebshop
 /**
  * @brief 订单退款操作
  * @param int $refundId 退款单ID
  * @param int $authorId 操作人ID
  * @param string $type admin:管理员;seller:商家
  * @param int $isNotBalance 是否充值到余额, 0:退款余额; 1:不退款到余额
  * @return
  */
 public static function refund($refundId, $authorId, $type = 'admin', $isNotBalance = 0)
 {
     $orderGoodsDB = new IModel('order_goods');
     $refundDB = new IModel('refundment_doc');
     //获取goods_id和product_id用于给用户减积分,经验
     $refundsRow = $refundDB->getObj('id = ' . $refundId);
     $order_id = $refundsRow['order_id'];
     $order_no = $refundsRow['order_no'];
     $user_id = $refundsRow['user_id'];
     $orderGoodsRow = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and goods_id = ' . $refundsRow['goods_id'] . ' and product_id = ' . $refundsRow['product_id'] . ' and is_send != 2');
     if (!$orderGoodsRow) {
         return false;
     }
     $order_goods_id = $orderGoodsRow['id'];
     //如果管理员(商家)自定义了退款金额。否则就使用默认的付款商品金额
     $amount = $refundsRow['amount'] > 0 ? $refundsRow['amount'] : $orderGoodsRow['goods_nums'] * $orderGoodsRow['real_price'];
     //库存增加
     self::updateStore($order_goods_id, 'add');
     //更新退款状态
     $orderGoodsDB->setData(array('is_send' => 2));
     $orderGoodsDB->update('id = ' . $order_goods_id);
     //更新order表状态
     $isSendData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and is_send != 2');
     $orderStatus = 6;
     //全部退款
     if ($isSendData) {
         $orderStatus = 7;
         //部分退款
     }
     $tb_order = new IModel('order');
     $tb_order->setData(array('status' => $orderStatus));
     $tb_order->update('id=' . $order_id);
     /**
      * 进行用户的余额增加操作,积分,经验的减少操作,
      * 1,当全部退款时候,减少订单中记录的积分和经验;且如果没有发货的商品直接退回订单中的运费,报价,税金等
      * 2,当部分退款时候,查询商品表中积分和经验
      */
     if ($orderStatus == 6) {
         Order_class::resetOrderProp($order_id);
         $orderRow = $tb_order->getObj('id = ' . $order_id);
         //是否返还运费,报价,税金
         $isDeliveryData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and delivery_id > 0');
         if (!$isDeliveryData) {
             $amount += $orderRow['real_freight'] + $orderRow['insured'] + $orderRow['taxes'];
         }
     }
     //退款积分,经验
     $goodsDB = new IModel('goods');
     $goodsRow = $goodsDB->getObj('id = ' . $orderGoodsRow['goods_id']);
     $orderRow = array('exp' => $goodsRow['exp'] * $orderGoodsRow['goods_nums'], 'point' => $goodsRow['point'] * $orderGoodsRow['goods_nums'], 'order_no' => $order_no);
     //更新退款表
     $updateData = array('amount' => $amount, 'pay_status' => 2, 'dispose_time' => ITime::getDateTime());
     $refundDB->setData($updateData);
     $refundDB->update('id = ' . $refundId);
     //更新用户的信息
     $obj = new IModel('member');
     $memberObj = $obj->getObj('user_id = ' . $user_id, 'exp,point');
     $exp = $memberObj['exp'] - $orderRow['exp'];
     $obj->setData(array('exp' => $exp <= 0 ? 0 : $exp));
     $obj->update('user_id = ' . $user_id);
     //积分记录日志
     $pointConfig = array('user_id' => $user_id, 'point' => '-' . $orderRow['point'], 'log' => '退款订单号:' . $orderRow['order_no'] . '中的商品,减掉积分 -' . $orderRow['point']);
     $pointObj = new Point();
     $pointObj->update($pointConfig);
     //用户余额进行的操作记入account_log表
     $log = new AccountLog();
     $config = array('user_id' => $user_id, 'event' => 'drawback', 'num' => $amount, 'order_no' => $order_no);
     if ($type == 'admin') {
         $config['admin_id'] = $authorId;
         $adminObj = new IModel('admin');
         $adminRow = $adminObj->getObj('id = ' . $authorId);
         $authorName = $adminRow['admin_name'];
     } else {
         if ($type == 'seller') {
             $config['seller_id'] = $authorId;
             $sellerObj = new IModel('seller');
             $sellerRow = $sellerObj->getObj('id = ' . $authorId);
             $authorName = $sellerRow['seller_name'];
         }
     }
     //生成订单日志
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $authorName, 'action' => '退款', 'result' => '成功', 'note' => '订单【' . $order_no . '】退款,退款金额:¥' . $amount, 'addtime' => ITime::getDateTime()));
     $tb_order_log->add();
     return $isNotBalance == 0 ? $log->write($config) : true;
 }
コード例 #6
0
ファイル: prorule.php プロジェクト: chenyongze/iwebshop
 /**
  * @brief 赠品促销规则奖励操作
  * @param array 赠品促销规则奖励信息
  */
 private function giftAction($giftArray, $user_id)
 {
     foreach ($giftArray as $key => $val) {
         $award_type = $val['award_type'];
         $award_value = $val['award_value'];
         switch ($award_type) {
             //积分
             case "3":
                 $pointConfig = array('user_id' => $user_id, 'point' => $award_value, 'log' => '促销奖励,消费满' . $this->sum . '元,奖励' . $award_value . '积分');
                 $pointObj = new Point();
                 $pointObj->update($pointConfig);
                 break;
                 //代金券
             //代金券
             case "4":
                 /*(1)修改prop表*/
                 $ticketObj = new IModel('ticket');
                 $where = 'id = ' . $award_value;
                 $ticketRow = $ticketObj->getObj($where);
                 //奖励的红包没有过期
                 $time = ITime::getDateTime();
                 if ($time > $ticketRow['start_time'] && $time < $ticketRow['end_time']) {
                     $dataArray = array('condition' => $award_value, 'name' => $ticketRow['name'], 'card_name' => 'T' . IHash::random(8), 'card_pwd' => IHash::random(8), 'value' => $ticketRow['value'], 'start_time' => $ticketRow['start_time'], 'end_time' => $ticketRow['end_time'], 'is_send' => 1);
                     $propObj = new IModel('prop');
                     $propObj->setData($dataArray);
                     $insert_id = $propObj->add();
                     /*(2)修改member表*/
                     $memberObj = new IModel('member');
                     //用户prop字段值null时
                     $memberArray = array('prop' => ',' . $insert_id . ',');
                     $memberObj->setData($memberArray);
                     $result = $memberObj->update('user_id = ' . $user_id . ' and ( prop is NULL or prop = "" )');
                     //用户prop字段值非null时
                     if (!$result) {
                         $memberArray = array('prop' => 'concat(prop,"' . $insert_id . ',")');
                         $memberObj->setData($memberArray);
                         $memberObj->update('user_id = ' . $user_id, 'prop');
                     }
                 }
                 break;
                 //赠送经验
             //赠送经验
             case "5":
                 $memberObj = new IModel('member');
                 $memberArray = array('exp' => 'exp' + $award_value);
                 $memberObj->setData($memberArray);
                 $memberObj->update('user_id = ' . $user_id, 'exp');
                 break;
         }
     }
 }
コード例 #7
0
ファイル: order_class.php プロジェクト: yongge666/sunupedu
 /**
  * @brief 订单退款操作
  * @param int $refundId 退款单ID
  * @param int $authorId 操作人ID
  * @param string $type admin:管理员;seller:商家
  * @return
  */
 public static function refund($refundId, $authorId, $type = 'admin')
 {
     $orderGoodsDB = new IModel('order_goods');
     $refundDB = new IModel('refundment_doc');
     //更新退款表
     $updateData = array('pay_status' => 2, 'dispose_time' => ITime::getDateTime());
     $refundDB->setData($updateData);
     $refundDB->update('id = ' . $refundId);
     //获取goods_id和product_id用于给用户减积分,经验
     $refundsRow = $refundDB->getObj('id = ' . $refundId);
     $order_id = $refundsRow['order_id'];
     $order_no = $refundsRow['order_no'];
     $amount = $refundsRow['amount'];
     $user_id = $refundsRow['user_id'];
     $orderGoodsRow = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and goods_id = ' . $refundsRow['goods_id'] . ' and product_id = ' . $refundsRow['product_id']);
     $order_goods_id = $orderGoodsRow['id'];
     //更新退款状态
     $orderGoodsDB->setData(array('is_send' => 2));
     $orderGoodsDB->update('id = ' . $order_goods_id);
     //更新order表状态
     $isSendData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and is_send != 2');
     $orderStatus = 6;
     //全部退款
     if ($isSendData) {
         $orderStatus = 7;
         //部分退款
     }
     $tb_order = new IModel('order');
     $tb_order->setData(array('status' => $orderStatus));
     $tb_order->update('id=' . $order_id);
     if ($orderStatus == 6) {
         Order_class::resetOrderProp($order_id);
     }
     //生成订单日志
     $authorName = $type == 'admin' ? ISafe::get('admin_name') : ISafe::get('seller_name');
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $authorName, 'action' => '退款', 'result' => '成功', 'note' => '订单【' . $order_no . '】退款,退款金额:¥' . $amount, 'addtime' => ITime::getDateTime()));
     $tb_order_log->add();
     /**
      * 进行用户的余额增加操作,积分,经验的减少操作,
      * 1,当全部退款时候,减少订单中记录的积分和经验;
      * 2,当部分退款时候,查询商品表中积分和经验
      */
     if ($orderStatus == 6) {
         $orderRow = $tb_order->getObj('id = ' . $order_id);
     } else {
         $goodsDB = new IModel('goods');
         $goodsRow = $goodsDB->getObj('id = ' . $orderGoodsRow['goods_id']);
         $orderRow = array('exp' => $goodsRow['exp'], 'point' => $goodsRow['point'], 'order_no' => $order_no);
     }
     $obj = new IModel('member');
     $memberObj = $obj->getObj('user_id = ' . $user_id, 'balance,exp,point');
     $exp = $memberObj['exp'] - $orderRow['exp'];
     $balance = $memberObj['balance'] + $amount;
     $obj->setData(array('balance' => $balance, 'exp' => $exp <= 0 ? 0 : $exp));
     $isSuccess = $obj->update('user_id = ' . $user_id);
     //积分记录日志
     $pointConfig = array('user_id' => $user_id, 'point' => '-' . $orderRow['point'], 'log' => '退款订单号:' . $orderRow['order_no'] . '中的商品,减掉积分 -' . $orderRow['point']);
     $pointObj = new Point();
     $pointObj->update($pointConfig);
     if ($isSuccess) {
         //用户余额进行的操作记入account_log表
         $log = new AccountLog();
         $config = array('user_id' => $user_id, 'event' => 'drawback', 'num' => $amount, 'order_no' => $order_no);
         if ($type == 'admin') {
             $config['admin_id'] = $authorId;
         } else {
             if ($type == 'seller') {
                 $config['seller_id'] = $authorId;
             }
         }
         $re = $log->write($config);
         return true;
     }
     return false;
 }