123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819 |
- <?php
- namespace app\common\model;
- use think\facade\Db;
- /**
- * ============================================================================
- *
- * ============================================================================
- * 版权所有 2014-2028 浙江惠利玛产业互联网有限公司,并保留所有权利。
- * 网站地址: https://www.valimart.net/
- * ----------------------------------------------------------------------------
- *
- * ============================================================================
- * 数据层模型
- */
- class Pointorder extends BaseModel {
- public $page_info;
- /**
- * 通过状态标识获取兑换订单状态
- * @access public
- * @author csdeshang
- * @return int
- */
- public function getPointorderStateBySign() {
- $pointorderstate_arr = array();
- $pointorderstate_arr['canceled'] = array(
- 2,
- '已取消'
- );
- $pointorderstate_arr['waitship'] = array(
- 20,
- '待发货'
- );
- $pointorderstate_arr['waitreceiving'] = array(
- 30,
- '待收货'
- );
- $pointorderstate_arr['finished'] = array(
- 40,
- '已完成'
- );
- return $pointorderstate_arr;
- }
- /**
- * 通过状态值获取兑换订单状态
- * @access public
- * @author csdeshang
- * @param type $order_state 订单状态
- * @return string
- */
- public function getPointorderState($order_state) {
- $pointorderstate_arr = array();
- $pointorderstate_arr[2] = array(
- 'canceled',
- '已取消'
- );
- $pointorderstate_arr[20] = array(
- 'waitship',
- '待发货'
- );
- $pointorderstate_arr[30] = array(
- 'waitreceiving',
- '待收货'
- );
- $pointorderstate_arr[40] = array(
- 'finished',
- '已完成'
- );
- if ($pointorderstate_arr[$order_state]) {
- return $pointorderstate_arr[$order_state];
- } else {
- return array(
- 'unknown',
- '未知'
- );
- }
- }
- /**
- * 新增兑换礼品订单
- * @access public
- * @author csdeshang
- * @param array $data 参数内容
- * @return bool
- */
- public function addPointorder($data) {
- if (!$data) {
- return false;
- }
- $result = Db::name('pointsorder')->insertGetId($data);
- //清除相关缓存
- if ($result && $data['point_buyerid'] > 0) {
- wcache($data['point_buyerid'], array('pointordercount' => null), 'm_pointorder');
- }
- return $result;
- }
- /**
- * 批量添加订单积分礼品
- * @access public
- * @author csdeshang
- * @param array $data 订单礼品信息
- * @return bool
- */
- public function addPointorderProdAll($data) {
- if (!$data) {
- return false;
- }
- $result = Db::name('pointsordergoods')->insertAll($data);
- return $result;
- }
- /**
- * 查询兑换订单礼品列表
- * @access public
- * @author csdeshang
- * @param type $where 查询条件
- * @param type $field 查询字段
- * @return type
- */
- public function getPointordergoodsList($where, $field = '*') {
- $ordergoods_list = Db::name('pointsordergoods')->field($field)->where($where)->select()->toArray();
- if ($ordergoods_list) {
- foreach ($ordergoods_list as $k => $v) {
- $v['point_goodsimage_old'] = $v['pointog_goodsimage'];
- $v['point_goodsimage_small'] = pointprod_thumb($v['pointog_goodsimage'], 'small');
- $v['pointog_goodsimage'] = pointprod_thumb($v['pointog_goodsimage'], 'mid');
- $ordergoods_list[$k] = $v;
- }
- }
- return $ordergoods_list;
- }
- /**
- * 删除兑换订单信息
- * @access public
- * @author csdeshang
- * @param array $where 查询条件
- * @return bool
- */
- public function delPointorder($where) {
- return Db::name('pointsorder')->where($where)->delete();
- }
- /**
- * 删除兑换订单礼品信息
- * @access public
- * @author csdeshang
- * @param array $where 查询条件
- * @return bool
- */
- public function delPointordergoods($where) {
- return Db::name('pointsordergoods')->where($where)->delete();
- }
- /**
- * 删除兑换订单地址信息
- * @access public
- * @author csdeshang
- * @param array $where 查询条件
- * @return bool
- */
- public function delPointorderAddress($where) {
- return Db::name('pointsorderaddress')->where($where)->delete();
- }
- /**
- * 添加积分兑换订单地址
- * @access public
- * @author csdeshang
- * @param array $data 订单收货地址信息
- * @return bool
- */
- public function addPointorderAddress($data) {
- if (!$data) {
- return false;
- }
- return Db::name('pointsorderaddress')->insertGetId($data);
- }
- /**
- * 查询兑换订单详情
- * @access public
- * @author csdeshang
- * @param array $where 查询条件
- * @param string $field 查询字段
- * @param string $order 排序
- * @param string $group 分组
- * @return array
- */
- public function getPointorderInfo($where, $field = '*', $order = '', $group = '') {
- $order_info = Db::name('pointsorder')->field($field)->where($where)->group($group)->order($order)->find();
- if(!$order_info){
- return $order_info;
- }
- $point_orderstate_arr = $this->getPointorderState($order_info['point_orderstate']);
- $order_info['point_orderstatetext'] = $point_orderstate_arr[1];
- $order_info['point_orderstatesign'] = $point_orderstate_arr[0];
- //是否可以发货
- $tmp = $this->allowPointorderShip($order_info);
- $order_info['point_orderallowship'] = $tmp['state'];
- unset($tmp);
- //是否可以修改发货信息
- $tmp = $this->allowEditPointorderShip($order_info);
- $order_info['point_orderalloweditship'] = $tmp['state'];
- unset($tmp);
- //是否允许取消
- $tmp = $this->allowPointorderCancel($order_info);
- $order_info['point_orderallowcancel'] = $tmp['state'];
- unset($tmp);
- //是否允许删除
- $tmp = $this->allowPointorderDelete($order_info);
- $order_info['point_orderallowdelete'] = $tmp['state'];
- unset($tmp);
- //允许确认收货
- $tmp = $this->allowPointorderReceiving($order_info);
- $order_info['point_orderallowreceiving'] = $tmp['state'];
- unset($tmp);
- return $order_info;
- }
- /**
- * 查询兑换订单收货人地址信息
- * @access public
- * @author csdeshang
- * @param type $where 条件
- * @param type $field 字段
- * @param type $order 排序
- * @param type $group 分组
- * @return type
- */
- public function getPointorderAddressInfo($where, $field = '*', $order = '', $group = '') {
- return Db::name('pointsorderaddress')->field($field)->where($where)->group($group)->order($order)->find();
- }
- /**
- * 查询兑换订单列表
- * @access public
- * @author csdeshang
- * @param array $where 条件
- * @param str $field 字段
- * @param int $pagesize 分页
- * @param int $limit 限制
- * @param str $order 排序
- * @return array
- */
- public function getPointorderList($where, $field = '*', $pagesize = 0, $limit = 0, $order = '') {
-
- if($pagesize){
- $order_list = Db::name('pointsorder')->field($field)->where($where)->order($order)->paginate(['list_rows'=>$pagesize,'query' => request()->param()],false);
- $this->page_info = $order_list;
- $order_list = $order_list->items();
- }else{
- $order_list = Db::name('pointsorder')->field($field)->where($where)->limit($limit)->order($order)->select()->toArray();
- }
-
-
- foreach ($order_list as $k => $v) {
- //订单状态
- $point_orderstate_arr = $this->getPointorderState($v['point_orderstate']);
- $v['point_orderstatetext'] = $point_orderstate_arr[1];
- $v['point_orderstatesign'] = $point_orderstate_arr[0];
- //是否可以发货
- $tmp = $this->allowPointorderShip($v);
- $v['point_orderallowship'] = $tmp['state'];
- unset($tmp);
- //是否可以修改发货信息
- $tmp = $this->allowEditPointorderShip($v);
- $v['point_orderalloweditship'] = $tmp['state'];
- unset($tmp);
- //是否允许取消
- $tmp = $this->allowPointorderCancel($v);
- $v['point_orderallowcancel'] = $tmp['state'];
- unset($tmp);
- //是否允许删除
- $tmp = $this->allowPointorderDelete($v);
- $v['point_orderallowdelete'] = $tmp['state'];
- unset($tmp);
- //允许确认收货
- $tmp = $this->allowPointorderReceiving($v);
- $v['point_orderallowreceiving'] = $tmp['state'];
- unset($tmp);
- $order_list[$k] = $v;
- }
- return $order_list;
- }
- /**
- * 是否可以发货
- * @access public
- * @author csdeshang
- * @param array $pointorder_info 兑换订单详情
- * @return array
- */
- public function allowPointorderShip($pointorder_info) {
- if (!$pointorder_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- $pointorderstate_arr = $this->getPointorderStateBySign();
- if ($pointorder_info['point_orderstate'] == $pointorderstate_arr['waitship'][0]) {
- return array('state' => true);
- } else {
- return array('state' => false);
- }
- }
- /**
- * 是否可以修改发货信息
- * @access public
- * @author csdeshang
- * @param array $pointorder_info 兑换订单详情
- * @return bool
- */
- public function allowEditPointorderShip($pointorder_info) {
- if (!$pointorder_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- $pointorderstate_arr = $this->getPointorderStateBySign();
- if ($pointorder_info['point_orderstate'] == $pointorderstate_arr['waitreceiving'][0]) {
- return array('state' => true);
- } else {
- return array('state' => false);
- }
- }
- /**
- * 是否可以确认收货
- * @access public
- * @author csdeshang
- * @param array $pointorder_info 兑换订单详情
- * @return bool
- */
- public function allowPointorderReceiving($pointorder_info) {
- if (!$pointorder_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- $pointorderstate_arr = $this->getPointorderStateBySign();
- if ($pointorder_info['point_orderstate'] == $pointorderstate_arr['waitreceiving'][0]) {
- return array('state' => true);
- } else {
- return array('state' => false);
- }
- }
- /**
- * 是否可以发货
- * @access public
- * @author csdeshang
- * @param array $pointorder_info 兑换订单详情
- * @return bool
- */
- public function allowPointorderCancel($pointorder_info) {
- if (!$pointorder_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- $pointorderstate_arr = $this->getPointorderStateBySign();
- if ($pointorder_info['point_orderstate'] == $pointorderstate_arr['waitship'][0]) {
- return array('state' => true);
- } else {
- return array('state' => false);
- }
- }
- /**
- * 是否可以发货
- * @access public
- * @author csdeshang
- * @param array $pointorder_info 兑换订单详情
- * @return array
- */
- public function allowPointorderDelete($pointorder_info) {
- if (!$pointorder_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- $pointorderstate_arr = $this->getPointorderStateBySign();
- if ($pointorder_info['point_orderstate'] == $pointorderstate_arr['canceled'][0]) {
- return array('state' => true);
- } else {
- return array('state' => false);
- }
- }
- /**
- * 积分礼品兑换订单信息修改
- * @access public
- * @author csdeshang
- * @param array $data 修改信息数组
- * @param array $condition 条件
- * @return bool
- */
- public function editPointorder($condition, $data) {
- if (empty($data)) {
- return false;
- }
- return Db::name('pointsorder')->where($condition)->update($data);
- }
- /**
- * 取消兑换商品订单
- * @access public
- * @author csdeshang
- * @param type $point_orderid 积分订单ID
- * @param type $member_id 会员ID
- * @return type
- */
- public function cancelPointorder($point_orderid, $member_id = 0) {
- $point_orderid = intval($point_orderid);
- if ($point_orderid <= 0) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- //获取订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- $where = array();
- $where[] = array('point_orderid','=',$point_orderid);
- if ($member_id > 0) {
- $where[] = array('point_buyerid','=',$member_id);
- }
- $where[] = array('point_orderstate','=',$pointorderstate_arr['waitship'][0]); //未发货时可取消
- //查询兑换信息
- $order_info = $this->getPointorderInfo($where, 'point_orderid,point_ordersn,point_buyerid,point_buyername,point_allpoint,point_orderstate');
- if (!$order_info) {
- return array(
- 'state' => false,
- 'msg' => '兑换订单信息错误'
- );
- }
- $result = $this->editPointorder(array(
- 'point_orderid' => $order_info['point_orderid'],
- 'point_buyerid' => $order_info['point_buyerid']
- ), array('point_orderstate' => $pointorderstate_arr['canceled'][0]));
- if ($result) {
- //更新会员缓存
- wcache($order_info['point_buyerid'], array('pointordercount' => null), 'm_pointorder');
- //退还会员积分
- $insert_arr = array();
- $insert_arr['pl_memberid'] = $order_info['point_buyerid'];
- $insert_arr['pl_membername'] = $order_info['point_buyername'];
- $insert_arr['pl_points'] = $order_info['point_allpoint'];
- $insert_arr['point_ordersn'] = $order_info['point_ordersn'];
- $insert_arr['pl_desc'] = lang('member_pointorder_cancel_tip1') . $order_info['point_ordersn'] . lang('member_pointorder_cancel_tip2');
- model('points')->savePointslog('pointorder', $insert_arr, true);
- //更改兑换礼品库存
- $prod_list = $this->getPointorderAndGoodsList(array('pointsordergoods.pointog_orderid' => $order_info['point_orderid']), 'pointog_goodsid,pointog_goodsnum');
- if ($prod_list) {
- $pointprod_model = model('pointprod');
- foreach ($prod_list as $v) {
- $update_arr = array();
- $update_arr['pgoods_storage'] = Db::raw('pgoods_storage+'.$v['pointog_goodsnum']);
- $update_arr['pgoods_salenum'] = Db::raw('pgoods_salenum-'.$v['pointog_goodsnum']);
- $pointprod_model->editPointProd($update_arr, array('pgoods_id' => $v['pointog_goodsid']));
- unset($update_arr);
- }
- }
- return array(
- 'state' => true,
- 'data' => array('order_info' => $order_info)
- );
- } else {
- return array(
- 'state' => true,
- 'msg' => '取消失败'
- );
- }
- }
- /**
- * 兑换订单确认收货
- * @access public
- * @author csdeshang
- * @param type $point_orderid 积分订单ID
- * @param type $member_id 会员ID
- * @return type
- */
- public function receivingPointorder($point_orderid, $member_id = 0) {
- $point_orderid = intval($point_orderid);
- if ($point_orderid <= 0) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- //获取订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- $where = array();
- $where[] = array('point_orderid','=',$point_orderid);
- if ($member_id > 0) {
- $where[] = array('point_buyerid','=',$member_id);
- }
- $where[] = array('point_orderstate','=',$pointorderstate_arr['waitreceiving'][0]); //已发货待收货
- //更新运费
- $result = $this->editPointorder($where, array(
- 'point_orderstate' => $pointorderstate_arr['finished'][0],
- 'point_finnshedtime' => TIMESTAMP
- ));
- if ($result) {
- return array('state' => true);
- } else {
- return array(
- 'state' => true,
- 'msg' => '确认收货失败'
- );
- }
- }
- /**
- * 查询兑换订单总数
- * @access public
- * @author csdeshang
- * @param array $condition 条件
- * @return int
- */
- public function getPointorderCount($condition) {
- return Db::name('pointsorder')->where($condition)->count();
- }
- /**
- * 查询积分兑换商品订单及商品列表
- * @access public
- * @author csdeshang
- * @param array $where 条件
- * @param string $field 字段
- * @param string $order 排序
- * @return array
- */
- public function getPointorderAndGoodsList($where, $field = '*', $order = '',$pagesize='') {
- if($pagesize){
- $order_list = Db::name('pointsordergoods')->alias('pointsordergoods')->field($field)->join('pointsorder pointsorder','pointsordergoods.pointog_orderid=pointsorder.point_orderid')->where($where)->order($order)->paginate(['list_rows'=>$pagesize,'query' => request()->param()],false);
- $this->page_info = $order_list;
- $order_list = $order_list->items();
- return $order_list;
- }else{
- return Db::name('pointsordergoods')->alias('pointsordergoods')->field($field)->join('pointsorder pointsorder','pointsordergoods.pointog_orderid=pointsorder.point_orderid')->where($where)->order($order)->select()->toArray();
- }
- }
- /**
- * 查询积分兑换商品订单及商品详细
- * @access public
- * @author csdeshang
- * @param array $where 条件
- * @param str $field 字段
- * @param str $order 排序
- * @param str $group 分组
- * @return array
- */
- public function getPointorderAndGoodsInfo($where, $field = '*', $order = '', $group = '') {
- return Db::name('pointsordergoods')->alias('pointsordergoods')->field($field)->join('pointsorder pointsorder','pointsordergoods.pointog_orderid=pointsorder.point_orderid')->where($where)->group($group)->order($order)->find();
- }
- /**
- * 查询会员已经兑换商品数
- * @access public
- * @author csdeshang
- * @param int $member_id 会员编号
- * @return int
- */
- public function getMemberPointsOrderGoodsCount($member_id) {
- $info = rcache($member_id, 'm_pointorder');
- if (!isset($info['pointordercount']) || $info['pointordercount'] !== 0) {
- //获取兑换订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- $where = array();
- $where[] = array('point_buyerid','=',$member_id);
- $where[] = array('point_orderstate','<>',$pointorderstate_arr['canceled'][0]);
- $list = $this->getPointorderAndGoodsList($where, 'SUM(pointog_goodsnum) as goodsnum');
- $pointordercount = 0;
- if ($list) {
- $pointordercount = intval($list[0]['goodsnum']);
- }
- wcache($member_id, array('pointordercount' => $pointordercount), 'm_pointorder');
- } else {
- $pointordercount = intval($info['pointordercount']);
- }
- return $pointordercount;
- }
- /**
- * 创建积分礼品兑换订单
- * @access public
- * @author csdeshang
- * @param type $post_arr 数据数组
- * @param type $pointprod_arr 积分数组
- * @param type $member_info 会员信息
- * @return type
- */
- public function createOrder($post_arr, $pointprod_arr, $member_info) {
- //验证是否存在收货地址
- $address_options = intval($post_arr['address_options']);
- if ($address_options <= 0) {
- return array(
- 'state' => false,
- 'msg' => '请选择收货人地址'
- );
- }
- $address_info = model('address')->getOneAddress($address_options);
- if (empty($address_info) || $member_info['member_id']!=$address_info['member_id']) {
- return array(
- 'state' => false,
- 'msg' => '收货人地址信息错误'
- );
- }
- //获取兑换订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- //新增兑换订单
- $order_array = array();
- $order_array['point_ordersn'] = makePaySn($member_info['member_id']);
- $order_array['point_buyerid'] = $member_info['member_id'];
- $order_array['point_buyername'] = $member_info['member_name'];
- $order_array['point_buyeremail'] = $member_info['member_email'];
- $order_array['point_addtime'] = TIMESTAMP;
- $order_array['point_allpoint'] = $pointprod_arr['pgoods_pointall'];
- $order_array['point_ordermessage'] = isset($post_arr['pcart_message'])?trim($post_arr['pcart_message']):'';
- $order_array['point_orderstate'] = $pointorderstate_arr['waitship'][0];
- $order_id = $this->addPointorder($order_array);
- if (!$order_id) {
- return array(
- 'state' => false,
- 'msg' => '兑换操作失败'
- );
- }
- //扣除会员积分
- $insert_arr = array();
- $insert_arr['pl_memberid'] = $member_info['member_id'];
- $insert_arr['pl_membername'] = $member_info['member_name'];
- $insert_arr['pl_points'] = -$pointprod_arr['pgoods_pointall'];
- $insert_arr['point_ordersn'] = $order_array['point_ordersn'];
- model('points')->savePointslog('pointorder', $insert_arr, true);
- //添加订单中的礼品信息
- $pointprod_model = model('pointprod');
- if ($pointprod_arr['pointprod_list']) {
- $output_goods_name = array(); //输出显示的对话礼品名称数组
- foreach ($pointprod_arr['pointprod_list'] as $v) {
- $tmp = array();
- $tmp['pointog_orderid'] = $order_id;
- $tmp['pointog_goodsid'] = $v['pgoods_id'];
- $tmp['pointog_goodsname'] = $v['pgoods_name'];
- $tmp['pointog_goodspoints'] = $v['pgoods_points'];
- $tmp['pointog_goodsnum'] = $v['quantity'];
- $tmp['pointog_goodsimage'] = $v['pgoods_image_old'];
- $order_goods_array[] = $tmp;
- //输出显示前3个兑换礼品名称
- if (count($output_goods_name) < 3) {
- $output_goods_name[] = $v['pgoods_name'];
- }
- unset($tmp);
- //更新积分礼品库存
- $tmp = array();
- $tmp['pgoods_id'] = $v['pgoods_id'];
- $tmp['pgoods_storage'] = Db::raw('pgoods_storage-'.$v['quantity']);
- $tmp['pgoods_salenum'] = Db::raw('pgoods_salenum+'.$v['quantity']);
- $pointprod_uparr[] = $tmp;
- unset($tmp);
- }
- //批量新增兑换订单礼品
- $this->addPointorderProdAll($order_goods_array);
- //更新兑换礼品库存
- foreach ($pointprod_uparr as $v) {
- $pointprod_model->editPointProd($v, array('pgoods_id' => $v['pgoods_id']));
- }
- }
- //清除购物车信息
- model('pointcart')->delPointcart(array('pmember_id' => $member_info['member_id']), $member_info['member_id']);
- //保存买家收货地址,添加订单收货地址
- if ($address_info) {
- $address_array = array();
- $address_array['pointoa_orderid'] = $order_id;
- $address_array['pointoa_truename'] = $address_info['address_realname'];
- $address_array['pointoa_areaid'] = $address_info['area_id'];
- $address_array['pointoa_areainfo'] = $address_info['area_info'];
- $address_array['pointoa_address'] = $address_info['address_detail'];
- $address_array['pointoa_zipcode'] = (isset($address_info['zip_code'])) ? $address_info['zip_code'] : '';
- $address_array['pointoa_telphone'] = $address_info['address_tel_phone'];
- $address_array['pointoa_mobphone'] = $address_info['address_mob_phone'];
- $this->addPointorderAddress($address_array);
- }
- return array(
- 'state' => true,
- 'data' => array('order_id' => $order_id)
- );
- }
- /**
- * 删除兑换订单
- * @access public
- * @author csdeshang
- * @param type $order_id 订单ID
- * @return type
- */
- public function delPointorderByOrderID($order_id) {
- $order_id = intval($order_id);
- if ($order_id <= 0) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- //获取订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- //删除操作
- $where = array();
- $where[] = array('point_orderid','=',$order_id);
- $where[] = array('point_orderstate','=',$pointorderstate_arr['canceled'][0]); //只有取消的订单才能删除
- $result = $this->delPointorder($where);
- if ($result) {
- //删除兑换礼品信息
- $this->delPointordergoods(array('pointog_orderid' => $order_id));
- //删除兑换地址信息
- $this->delPointorderAddress(array('pointoa_orderid' => $order_id));
- return array('state' => true);
- } else {
- return array(
- 'state' => false,
- 'msg' => '删除失败'
- );
- }
- }
- /**
- * 兑换订单发货
- * @access public
- * @author csdeshang
- * @param type $order_id 订单id
- * @param type $postarr 数组
- * @param type $order_info 会员
- * @return type
- */
- public function shippingPointorder($order_id, $postarr, $order_info = array()) {
- $order_id = intval($order_id);
- if ($order_id <= 0) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- //获取订单状态
- $pointorderstate_arr = $this->getPointorderStateBySign();
- //查询订单信息
- $where = array();
- $where[] = array('point_orderid','=',$order_id);
- $where[] = array(
- 'point_orderstate', 'in',
- array(
- $pointorderstate_arr['waitship'][0],
- $pointorderstate_arr['waitreceiving'][0]
- )
- );
- //待发货和已经发货状态
- //如果订单详情不存在,则查询
- if (!$order_info) {
- $order_info = $this->getPointorderInfo($where, 'point_orderstate');
- }
- if (!$order_info) {
- return array(
- 'state' => false,
- 'msg' => '参数错误'
- );
- }
- //更新发货信息
- $update_arr = array();
- if ($order_info['point_orderstate'] == $pointorderstate_arr['waitship'][0]) {
- $update_arr['point_shippingtime'] = TIMESTAMP;
- $update_arr['point_orderstate'] = $pointorderstate_arr['waitreceiving'][0]; //已经发货,待收货
- }
- $update_arr['point_shippingcode'] = $postarr['shippingcode'];
- $update_arr['point_shipping_ecode'] = $postarr['express_code'];
- $result = $this->editPointorder($where, $update_arr);
- if ($result) {
- return array('state' => true);
- } else {
- return array(
- 'state' => false,
- 'msg' => '发货修改失败'
- );
- }
- }
- }
|