member_vorder.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?php
  2. /**
  3. * 我的订单
  4. *
  5. *
  6. *
  7. *
  8. */
  9. //use Shopnc\Tpl;
  10. defined('InShopNC') or exit('Access Invalid!');
  11. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  12. require_once(BASE_ROOT_PATH . '/helper/session.php');
  13. require_once(BASE_ROOT_PATH . '/helper/login_helper.php');
  14. class member_vorderControl extends mbMemberControl
  15. {
  16. public function __construct(){
  17. parent::__construct();
  18. }
  19. public function listOp()
  20. {
  21. $model_vr_order = Model('vr_order');
  22. $order_list = $model_vr_order->getOrderList(['buyer_id' => session_helper::memberid()], $this->page_size, '*', 'order_id desc');
  23. $page_count = $model_vr_order->gettotalpage();
  24. $helper = new vorder_helper($order_list);
  25. $result = $helper->format();
  26. return self::outsuccess(['vorders' => $result, 'mobile_page' => mobile_page($page_count)], mobile_page($page_count));
  27. }
  28. public function infoOp()
  29. {
  30. $condition = [];
  31. if (isset($_GET['order_id'])) {
  32. $condition['order_id'] = intval($_GET['order_id']);
  33. }
  34. if (isset($_GET['pay_sn'])) {
  35. $condition['order_sn'] = $_GET['pay_sn'];
  36. }
  37. if (empty($condition)) {
  38. return self::outerr(errcode::ErrParamter);
  39. }
  40. $order = $this->get_order($condition);
  41. if($order == false) {
  42. return self::outerr(errcode::ErrOrder);
  43. } else {
  44. return self::outsuccess(array('order' => $order));
  45. }
  46. }
  47. public function change_stateOp()
  48. {
  49. $act_type = $_GET['act_type'];
  50. $order_id = intval($_GET['order_id']);
  51. $state_type = $this->state_type($act_type);
  52. if($state_type == false || $order_id <= 0) {
  53. return self::outerr(errcode::ErrParamter);
  54. }
  55. $vorder_action = new vorder_action();
  56. $fOk = $vorder_action->change_state($state_type,$order_id);
  57. if($fOk == true)
  58. {
  59. $order = $this->get_order(array("buyer_id" => session_helper::memberid(),'order_id' => $order_id));
  60. if($order == false) {
  61. $order = null;
  62. }
  63. return self::outsuccess(array("act_type" => $act_type,"order_id" => $order_id, "order" => $order));
  64. }
  65. else {
  66. return self::outerr(errcode::ErrOrder);
  67. }
  68. }
  69. public function payOp()
  70. {
  71. $pay_sn = $_GET['pay_sn'];
  72. $payment = $_GET['payment'];
  73. if(empty($pay_sn) || empty($payment)) {
  74. return self::outerr(errcode::ErrParamter,"支付号或者支付类型错误");
  75. }
  76. $payer = new pay_helper($pay_sn);
  77. $out_put = $payer->pay($payment,false,$err);
  78. if($out_put == false) {
  79. return self::outerr($err['code'],$err['msg']);
  80. } else {
  81. $out_put['payment'] = $payment;
  82. $out_put['pay_sn'] = $pay_sn;
  83. return self::outsuccess($out_put);
  84. }
  85. }
  86. public function pay_infoOp()
  87. {
  88. $order_sn = $_GET['pay_sn'];
  89. if(empty($order_sn)) {
  90. return self::outerr(errcode::ErrParamter);
  91. }
  92. $order = $this->get_order(array("buyer_id" => session_helper::memberid(),'order_sn' => $order_sn));
  93. $pay_ments = pay_helper::pay_types();
  94. if($order == false) {
  95. return self::outerr(errcode::ErrOrder);
  96. } else {
  97. return self::outsuccess(array('order' => $order,"paytype" => $pay_ments));
  98. }
  99. }
  100. private function get_order($condition)
  101. {
  102. $model_vr_order = Model('vr_order');
  103. $order_list = $model_vr_order->getOrderList($condition);
  104. $helper = new vorder_helper($order_list);
  105. $orders = $helper->format();
  106. //$model_vr_order->cls();
  107. if(!empty($orders)) {
  108. return $orders[0];
  109. } else {
  110. return false;
  111. }
  112. }
  113. private function state_type($act_type)
  114. {
  115. if($act_type == "if_cancel") return "order_cancel";
  116. if($act_type == "if_delete") return "order_delete";
  117. if($act_type == "if_receive") return "order_receive";
  118. return false;
  119. }
  120. public function indate_code_listOp() {
  121. $order_id = intval($_POST['order_id']);
  122. if ($order_id <= 0) {
  123. output_error('订单不存在');
  124. }
  125. $model_vr_order = Model('vr_order');
  126. $condition = array();
  127. $condition['order_id'] = $order_id;
  128. $condition['buyer_id'] = session_helper::memberid();
  129. $order_info = $model_vr_order->getOrderInfo($condition);
  130. if (empty($order_info) || $order_info['delete_state'] == ORDER_DEL_STATE_DROP) {
  131. output_error('订单不存在');
  132. }
  133. $order_list = array();
  134. $order_list[$order_id] = $order_info;
  135. $order_list = $model_vr_order->getCodeRefundList($order_list);//没有使用的兑换码列表
  136. $code_list = array();
  137. if(!empty($order_list[$order_id]['code_list'])) {
  138. foreach ($order_list[$order_id]['code_list'] as $value) {
  139. $code = array();
  140. $code['vr_code'] = $value['vr_code'];
  141. $code['vr_indate'] = $value['vr_indate'];
  142. $code_list[] = $code;
  143. }
  144. }
  145. output_data(array('code_list' => $code_list));
  146. }
  147. public function upload_certOp(){
  148. $member_id = session_helper::memberid();
  149. $order_sn = $_GET['order_sn'];
  150. $phone = $_GET['phone'];
  151. $code = $_GET['code'];
  152. $cert_account = $_GET['ali_account'];
  153. $contract_img = $_GET['contract_img'];
  154. $invoice_img = $_GET['invoice_img'];
  155. $liences_img = $_GET['license_img'];
  156. $contract_img = explode(",", $contract_img);
  157. $invoice_img = explode(",", $invoice_img);
  158. $liences_img = explode(",", $liences_img);
  159. // 输入内容判断
  160. $validator = new Validator();
  161. $validator->setValidate(Validator::verify_mobile($phone));
  162. $err = $validator->validate();
  163. if ($err != '') {
  164. return self::outerr(errcode::ErrInputParam,$err);
  165. }
  166. //校验验证码
  167. $ret = sms_helper::check_code(Sms::register_code,$code,$phone);
  168. if(is_array($ret)) {
  169. return self::outerr($ret['code'], $ret['msg']);
  170. }
  171. //校验本人订单
  172. $mod = Model();
  173. $orderinfo = $mod->table('vr_order')->where(['buyer_id'=>$member_id,'order_sn'=>$order_sn])->find();
  174. if(empty($orderinfo)){
  175. Log::record("orderSn:{$order_sn} buyer_id:{$member_id} member_id:{$member_id}",Log::DEBUG);
  176. return self::outerr(errcode::ErrMemberRight,"非本人不能操作");
  177. }
  178. if($phone != $orderinfo['buyer_phone']){
  179. return self::outerr(errcode::ErrOrderMobile,"验证手机与订单手机不同");
  180. }
  181. //已经上传过了 cert_state 0:未上传 1:等待审核 2:同意 3:拒绝 4:已打款
  182. if(!($orderinfo['cert_state'] <= 0 || $orderinfo['cert_state'] == 3)){
  183. return self::outerr(errcode::ErrHasOrderCert,"不可重复上传过凭证");
  184. }
  185. //移动图片
  186. $save_root_path = BASE_UPLOAD_PATH;
  187. $contract_path = '/contract/';
  188. $save_path = $save_root_path.$contract_path;
  189. //下载图片至临时目录
  190. if(! is_dir($save_path)) {
  191. if (! mkdir($save_path)) {
  192. return false;
  193. }
  194. @chmod($save_path, 0777);
  195. }
  196. $image_need_mv = [
  197. 'img_contract'=> $contract_img,
  198. 'img_invoice' => $invoice_img,
  199. 'img_license' => $liences_img,
  200. ];
  201. foreach ($image_need_mv as $key=>$v)
  202. {
  203. $tmp_arr = [];
  204. foreach ($v as $k =>$value){
  205. $arr = explode('.',$value);
  206. $ext = end($arr);
  207. $newfileName = md5(time().$value).'.'.$ext;
  208. @unlink($save_path.$newfileName);
  209. $move = copy($value,$save_path.$newfileName);
  210. if($move != true){
  211. return self::outerr(errcode::ErrOrder,"凭证上传失败,请稍后再试");
  212. }
  213. @unlink($value);
  214. $tmp_arr[] = $newfileName;
  215. }
  216. $image_need_mv[$key] = implode(",", $tmp_arr);
  217. unset($tmp_arr);
  218. }
  219. //上传凭证
  220. $order_id = intval($orderinfo['order_id']);
  221. $update = [
  222. 'cert_state' => 1,
  223. 'pay_account' => $cert_account,
  224. 'img_contract'=> $image_need_mv['img_contract'],
  225. 'img_invoice'=> $image_need_mv['img_invoice'],
  226. 'img_license' =>$image_need_mv['img_license']
  227. ];
  228. $res = $mod->table('vr_order')->where(['order_id'=>$order_id,'cert_state'=>['in','0,3']])->update($update);
  229. if($res) {
  230. $this->add_track_log($order_id,$member_id);
  231. return self::outsuccess(array('success' => true));
  232. } else {
  233. return self::outsuccess(array('success' => false));
  234. }
  235. }
  236. private function add_track_log($order_id,$buyer_id){
  237. $data['order_id'] = $order_id;
  238. $data['log_type'] = "上传凭证";
  239. $data['log_time'] = time();
  240. $data['log_msg'] = "";
  241. $data['log_role'] = "用户";
  242. $data['log_user'] = $buyer_id;
  243. $data['log_username'] = "";
  244. $data['ip'] = getIp();
  245. return Model('vr_order_track_log')->insert($data);
  246. }
  247. }