diff --git a/app/api/controller/LiuController.php b/app/api/controller/LiuController.php deleted file mode 100644 index 1560f7d58..000000000 --- a/app/api/controller/LiuController.php +++ /dev/null @@ -1,1368 +0,0 @@ -=', $startTime) - ->where('create_time', '<', $endTime) - ->where('pay_type',$pay_type)->select()->toArray(); - if($pay_type == 18){ - $category_title = 'system_purchase_add'; - $title ='系统增加采购款'; - $mark ='系统增加采购款'; - $filed = 'purchase_funds'; - }else{ - $category_title = 'system_balance_add'; - $title ='系统增加余额'; - $mark ='系统反余额冻结'; - $filed = 'now_money'; - } - - $newArr = []; - foreach ($vipFrozen as $k =>$value){ - $user_funds = User::where('id',$value['user_id'])->value($filed); - $newArr[$k]['uid'] = $value['user_id']; - $newArr[$k]['category'] = $category_title; - $newArr[$k]['link_type'] = 'order'; - $newArr[$k]['link_id'] = $value['order_id']; - $newArr[$k]['amount'] = $value['number']; - $newArr[$k]['before_balance'] =$user_funds; - $newArr[$k]['balance'] = bcadd($user_funds, $value['number'], 2); - $newArr[$k]['create_time'] = date('Y-m-d H:i:s'); - $newArr[$k]['type'] = 'in'; - $newArr[$k]['title'] = $title."{$value['number']}元"; - $newArr[$k]['mark'] = $mark; - } - (new CapitalFlow())->saveAll($newArr); - - } - - - public function test() - { - - - $page_no = (int)$this->request->get('page_no', 1); - $page_size = (int)$this->request->get('page_size', 15); - $params = $this->request->get(); - $params['page_no'] = $page_no > 0 ? $page_no : 1; - $params['page_size'] = $page_size > 0 ? $page_size : 15; - $res = UserLogic::dealDetails($params,20); - $res['page_no'] = $params['page_no']; - $res['page_size'] = $params['page_size']; - return $this->success('ok', $res); - - - - - - -// $res = (new StoreOrderLogic)->refund('PF1719023023405552',180,180); -// d($res); - /** - * 加入确认表 - */ - /* $startTime = 1717171200; // 开始时间 - $endTime = 1719676800; // 结束时间 - //对平台来说 - $data = StoreFinanceFlow:: - whereBetween('create_time', [$startTime, $endTime]) - ->field(' - CONCAT("第", LPAD(YEAR(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 4, "0"), "-", LPAD(WEEK(FROM_UNIXTIME(create_time, "%Y-%m-%d"), 3), 2, "0"), "周(", LPAD(MONTH(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 2, "0"), "月)") as remark_time, - SUM(CASE WHEN financial_pm = 1 THEN number ELSE 0 END) as income, - SUM(CASE WHEN financial_pm = 0 THEN number ELSE 0 END) as money, - store_id - ') - ->where('financial_pm', 0) - ->group('remark_time,store_id') - ->order('remark_time', 'desc') - ->select() - // ->each(function ($item) { - // $item['name'] = '周账单'; - // $item['enter']=bcdiv($item['income'],$item['expenditure'],2); - // return $item; - // }) - ->toArray(); - // foreach ($data as &$v) { - // $v['admin_id'] =$this->adminId; - // } - - (new FinancialTransfers())->saveAll($data); - - - d($data);*/ - - - //反钱 - //读取前3天的值 按照用户id和类型分下 加到对应的钱 - $startTime = strtotime(date('Y-m-d', strtotime('-3 days'))); - $endTime = strtotime(date('Y-m-d')); - - // 使用模型查询 - $result = VipFlow::where('create_time', '>=', $startTime) - ->where('create_time', '<', $endTime) - ->group('user_id, pay_type') - ->field('user_id, pay_type, COUNT(*) as transaction_count, SUM(number) as total_amount') - ->select()->toArray(); - - // 遍历查询结果并分类 现金不进入反的逻辑 - //3余额 18采购款 7微信小程序 9微信条码 13 支付宝条码支付 - $Balance = []; - $Procurement = []; - $WechatMiniPay = []; - $WechatBarcodePay = []; - $AliBarcodePay = []; - foreach ($result as $row) { - $payType = $row['pay_type']; - $userId = $row['user_id']; - $totalAmount = $row['total_amount']; - switch ($payType) { - case 3: - $user_now_money =User::where( - [ - 'id'=>$userId - ] - )->withTrashed()->value('now_money'); - $Balance[] = [ - 'id' => $userId, - 'now_money' => bcadd($user_now_money,$totalAmount,2), - ]; - break; - case 7: - $WechatMiniPay[] = [ - 'id' => $userId, - 'total_amount' => $totalAmount, - ]; - break; - case 9: - $WechatBarcodePay[] = [ - 'id' => $userId, - 'total_amount' => $totalAmount, - ]; - break; - case 13: - $AliBarcodePay[] = [ - 'id' => $userId, - 'total_amount' => $totalAmount, - ]; - break; - case 18: - $purchase_funds_money =User::where( - [ - 'id'=>$userId - ] - )->withTrashed()->value('purchase_funds'); - $Procurement[] = [ - 'id' => $userId, -// '111' => $totalAmount, - 'purchase_funds' => bcadd($purchase_funds_money,$totalAmount,2), - ]; - break; - } -// // 如果分类数组中还没有这个 pay_type,初始化一个空数组 -// if (!isset($classifiedResult[$payType])) { -// $classifiedResult[$payType] = []; -// } -// -// // 将用户信息添加到对应的 pay_type 分类中 -// $classifiedResult[$payType][] = [ -// 'uid' => $userId, -// 'total_amount' => $totalAmount, -// ]; - } - - //入记录表的话查询后便利入 3余额 18采购款 -// if($Balance){ - //记录 -// (new User())->saveAll($Balance); -// $this->dealCapital($startTime,$endTime,3); -// } -// if($Procurement){ -// (new User())->saveAll($Procurement); -// $this->dealCapital($startTime,$endTime,18); -// } - //7微信小程序 9微信条码 13 支付宝条码支付 - d($Balance,$Procurement,$WechatMiniPay,$WechatBarcodePay,$AliBarcodePay); - - - - - $result = array_reduce($result, function ($carry, $item) { - $user_id = $item['user_id']; - $pay_type = $item['pay_type']; - $total_amount = $item['total_amount']; - - if (!isset($carry[$user_id])) { - $carry[$user_id] = []; - } - - if (!isset($carry[$user_id][$pay_type])) { - $carry[$user_id][$pay_type] = [ - 'uid' => $user_id, - 'transaction_count' => 0, - 'total_amount' => 0 - ]; - } - - $carry[$user_id][$pay_type]['transaction_count'] += $item['transaction_count']; - $carry[$user_id][$pay_type]['total_amount'] += $item['total_amount']; - - return $carry; - }, []); - d($result); - - //3余额 17现金 18采购款 7微信小程序 9微信条码 13 支付宝条码支付 - foreach ($result as $value) { - switch ($value['pay_type']) { - - case 3: - echo 2; - break; - - case 7: - case 9: - echo 1; - break; - - case 13: - echo 13; - break; - - case 17: - echo 17; - break; - - case 18: - echo 18; - break; - } - d($value); - } - - d($result); - - - $params = (new \app\api\validate\UserValidate())->post()->goCheck('setPayPassword'); - - //匹配验证码正确 - - if ($params['repassword'] !== $params['password']) - return $this->fail('两次密码不一致'); - - $password = payPassword($params['password']); - - User::where('id', $params['id'])->update(['pay_password' => $password]); - - - d($params); - - - d(password_hash(123456, PASSWORD_BCRYPT)); -// $updateData = []; -// $goods_list = StoreOrderCartInfo::where('oid',473)->select()->toArray(); -// -// foreach ($goods_list as $v) { -// $StoreBranchProduct =StoreBranchProduct::where( -// [ -// 'store_id'=>$v['store_id'], -// 'product_id'=>$v['product_id'], -// ] -// )->withTrashed()->find(); -// $updateData[] = [ -// 'id' => $StoreBranchProduct['id'], -// 'stock' => $StoreBranchProduct['stock']-$v['cart_num'], -// 'sales' => ['inc', $v['cart_num']] -// ]; -// -// } -// -// (new StoreBranchProduct())->saveAll($updateData); -// -// -// d($updateData); - - - $dateRange = $this->request->get('date'); - // 拆分日期范围 - if ($dateRange) { - list($startDate, $endDate) = explode('-', $dateRange); - $startTime = str_replace('/', '-', $startDate); - $endTime = str_replace('/', '-', $endDate); - } else { - $startTime = ''; - } - - if (empty($startTime)) { - $startTime = strtotime(date('Y-m-d')); - $endTime = $startTime + 86400; - } - $where = [ - ['create_time', 'between', [$startTime, $endTime]], - ['store_id', '=', 23] - ]; - - $workbench = WorkbenchLogic::get_product_ranking($where); - return $this->data($workbench); - - - $order = StoreOrder::where('order_id', 'PF1718873590826700')->findOrEmpty(); -// -// $store_id = $order['store_id']; -// $cart_id = $order['cart_id']; -// $uid = $order['uid']; -// if($uid && $cart_id && $store_id){ -// $cart_id = explode(',',$cart_id); -// $productLog = StoreProductLog::where([ -// 'uid'=>$uid -// ])->whereIn('cart_id',$cart_id) -// ->select()->toArray(); -// -// foreach ($productLog as &$value){ -// $value['pay_uid'] = $uid; -// $value['oid'] = $order['id']; -// $cart_info = StoreOrderCartInfo::where([ -// 'uid'=>$uid,'old_cart_id'=>$value['cart_id'],'store_id'=>$store_id -// ])->find(); -// $value['order_num'] = $cart_info['cart_num']??1; -// $value['pay_num'] = $cart_info['cart_num']??1; -// $value['pay_price'] = $cart_info['price']??0; -// $value['cost_price'] = $cart_info['cart_info']['cost']??0; -// $value['update_time'] = time(); -// unset($value['create_time'],$value['delete_time']); -// } -// -// (new StoreProductLog())->saveAll($productLog); -// } - - -// foreach ($cart_id as &$value){ -// -// } - - - d($store_id, $cart_id, $uid); - - - $cart = Cart::create([ - 'uid' => 777, - 'type' => $params['type'] ?? '', - 'product_id' => 12, - 'store_id' => 2 ?? 0, - 'staff_id' => $params['staff_id'] ?? 0, - 'product_attr_unique' => '', - 'cart_num' => 1, - 'is_new' => 1 ?? 0, - ]); - - d($cart, $cart['id']); - - - //处理类型变更 - $order = StoreOrder::where('pay_type', 3)->field('id')->select()->toArray(); - $new = array_column($order, 'id'); -// d($new,$order); - - $dd = CapitalFlow::where('category', 'user_order_pay') - ->whereIn('link_id', $new) - ->select()->toArray(); - - foreach ($dd as $value) { - CapitalFlow::where('id', $value['id'])->update(['category' => 'user_order_balance_pay']); - } - - - d($dd); - - - $categories = ['user_balance_recharge', 'user_order_purchase_pay']; - $query = CapitalFlow::where('uid', 17) - ->whereIn('category', $categories); - $count = $query->count(); - $data = $query - ->page(1, 15) - ->select()->toArray(); - - foreach ($data as &$value) { - if ($value['category'] == 'user_order_purchase_pay') { - $value['order_sn'] = StoreOrder::where('id', $value['link_id'])->value('order_id'); - } elseif ($value['category'] == 'user_balance_recharge') { - $value['order_sn'] = UserRecharge::where('id', $value['link_id'])->value('order_id'); - } - } - - - d($data); - - - // - (new UserValidate())->post()->goCheck('fund'); - $page_no = (int)$this->request->post('page_no', 1); - $page_size = (int)$this->request->post('page_size', 15); - $params = $this->request->post(); - $params['page_no'] = $page_no > 0 ? $page_no : 1; - $params['page_size'] = $page_size > 0 ? $page_size : 15; - - switch ($params['type']) { - case 1: - //采购款明细 - $query = CapitalFlow::where(['uid' => $params['id']]); - $count = $query->count(); - $data = $query - ->page($params['page_no'], $params['page_size']) - ->select()->toArray(); - break; - case 2: - //余额明细 - - $query = StoreFinanceFlow::with(['store']) - ->where([ - 'other_uid' => $params['id'], 'financial_type' => OrderEnum::VIP_ORDER_OBTAINS, - 'financial_pm' => YesNoEnum::YES - ]); - $count = $query->count(); - $data = $query - ->page($params['page_no'], $params['page_size']) - ->select()->toArray(); - - break; - case 3: - //礼品券明细 - $query = UserSign::where(['uid' => $params['id']]); - $count = $query->count(); - $data = $query - ->page($params['page_no'], $params['page_size']) - ->select()->toArray(); - break; - case 4: - //返还金明细 -todo back - $query = VipFlow::with('store')->where(['user_id' => $params['id']]); - $count = $query->count(); - $data = $query - ->page($params['page_no'], $params['page_size']) - ->select()->toArray(); - break; - default: - $data = []; - $count = 0; - } -// d($data,$count); - - $res = [ - 'list' => $data, - 'count' => $count - ]; - -// d($params); - - $res['page_no'] = $params['page_no']; - $res['page_size'] = $params['page_size']; - return $this->success('ok', $res); - - $field = "id,nickname,real_name,sex,avatar,account,mobile,channel,create_time,purchase_funds,user_ship, - label_id,integral"; - $lists = User:: - with(['user_ship', 'user_label']) - ->field($field) - ->page(1, 50) - ->order('id desc') - ->select()->each(function ($data) { - $data['sex_text'] = $data->sex_text; - })->toArray(); - foreach ($lists as &$item) { - //返还金、采购款明细、余额明细、礼品券明细、返还金明细 - $item['channel'] = UserTerminalEnum::getTermInalDesc($item['channel']); - $item['user_address'] = UserAddress::where([ - 'uid' => $item['id'], 'is_default' => YesNoEnum::YES - ])->value('detail'); - if ($item['vip_name'] == null) { - $item['vip_name'] = '普通会员'; - } - if ($item['label_name'] == null) { - $item['label_name'] = '无'; - } - $item['return_money'] = VipFlow:: - where(['user_id' => $item['id'], 'status' => 0]) - ->sum('number') ?? 0; - - - } - - d($lists); - - - $params = [ - 'id' => 460 - ]; - - $order = StoreOrder::with(['user', 'staff', 'product' => function ($query) { - $query->field(['id', 'oid', 'product_id', 'cart_info']); - }])->where($params)->find(); - if (empty($order)) { - throw new \Exception('订单不存在'); - } - $order['pay_time'] = $order['pay_time'] > 0 ? date('Y-m-d H:i:s', $order['pay_time']) : ''; - $order['status_name'] = OrderEnum::getOrderType($order['status']) ?? ''; - $order['refund_status_name'] = OrderEnum::refundStatus($order['refund_status']) ?? ''; - $order['refund_type_name'] = OrderEnum::refundType($order['refund_type']) ?? ''; - $order['pay_type_name'] = PayEnum::getPaySceneDesc($order['pay_type']) ?? ''; - - $detail = StoreOrderCartInfo::where('oid', $order['id'])->find()->toArray(); - $vip = 0; - if (isset($detail['cart_info']['vip']) && $detail['cart_info']['vip'] == 1) { - $vip = 1; - } - $order['vip'] = $vip; - $a = $order->toArray(); - - d($a); - - - $detail = StoreOrderCartInfo::where('oid', 460)->find()->toArray(); - $vip = 0; - if (isset($detail['cart_info']['vip']) && $detail['cart_info']['vip'] == 1) { - $vip = 1; - } - - - d($detail, $vip); - - - PayNotifyLogic::cash_pay('PF1718775365804124'); - d(222); - - - $params = [ - 'verify_code' => '4-00347', - 'store_id' => 5, - 'staff_id' => 2, - ]; - - $res = OrderLogic::writeOff($params); - d($res); - - - return $this->dataLists(new StoreOrderLists()); - - - $order = StoreOrder::where('id', 428)->find(); - - - if ($order['spread_uid'] > 0) { - $oldUser = User::where('id', $order['spread_uid'])->field('purchase_funds,user_ship')->find(); - if ($oldUser && $oldUser['user_ship'] == 1) { - if ($oldUser['purchase_funds'] < $order['pay_price']) { - $order['pay_price'] = $oldUser['purchase_funds']; - } - } - } - d($order['pay_price']); - - - PayNotifyLogic::afterPay($order); - - $order_id = (int)$this->request->get('order_id'); - $lat = $this->request->get('lat', ''); - $lng = $this->request->get('long', ''); - $where = [ - 'id' => $order_id, - 'uid' => $this->userId, - ]; - $url = 'https://' . $this->request->host(true); - $parm = [ - 'lat' => $lat, - 'long' => $lng - ]; - $order = OrderLogic::detail($where, $url, $parm); - if ($order) { - return $this->data($order); - } else { - return $this->fail('订单不存在'); - } - - - $order = StoreOrder::where('id', 392)->find(); - $vipFrozenAmount = 0; - if ($order['uid'] > 0) { - // 结算金额 要支付的钱减去冻结得钱去走后面得逻辑 发得兑换券也要去减去 - $vipFrozenAmount = self::dealFrozenPrice($order['id']); - $order['pay_price'] = bcsub($order['pay_price'], $vipFrozenAmount, 2); - $user_number = bcmul($order['pay_price'], '0.10', 2); - $sing = [ - 'uid' => $order['uid'], - 'order_id' => $order['order_id'], - 'title' => '购买商品获得兑换券', - 'store_id' => $order['store_id'], - 'number' => $user_number, - ]; -// d($sing); -// $user_sing->save($sing); -// User::where('id', $order['uid'])->inc('integral', $user_number)->update(); - } - - d($vipFrozenAmount, $order['pay_price'], $sing); - - - d($order); - if ($order['uid'] > 0) { - // 结算金额 要支付的钱减去冻结得钱去走后面得逻辑 发得兑换券也要去减去 - $vipFrozenAmount = self::dealFrozenPrice($order['id']); - $order['pay_price'] = bcsub($order['pay_price'], $vipFrozenAmount, 2); - //用户下单该用户等级为1得时候才处理冻结金额 - $user = User::where('id', $order['uid'])->find(); - if ($user['user_ship'] == 1) { - self::dealVipAmount($order, $order['pay_type']); - } - $user_number = bcmul($order['pay_price'], '0.10', 2); - $sing = [ - 'uid' => $order['uid'], - 'order_id' => $order['order_id'], - 'title' => '购买商品获得兑换券', - 'store_id' => $order['store_id'], - 'number' => $user_number, - ]; - $user_sing->save($sing); - User::where('id', $order['uid'])->inc('integral', $user_number)->update(); - } - - - // 使用聚合函数直接计算总和 -// $total_vip = StoreOrderCartInfo::where('oid', 334) -// ->sum(DB::raw('cart_info->>"$.vip_frozen_price"')); - -// $total_vip = StoreOrderCartInfo::where('oid', 334) -// ->sum(DB::raw('json_extract(cart_info, "$.vip_frozen_price")')); - - $total_vip = StoreOrderCartInfo::where('oid', 334) - ->field('cart_info->vip_frozen_price as vip_frozen_price') -// ->find() - ->pluck('vip_frozen_price') - ->sum(); - - d($total_vip); - - d($total_vip); - - - // 假设 cart_info 是一个 JSON 字段 - $detail = StoreOrderCartInfo::where('oid', $order['id']) - ->select('cart_info->vip_frozen_price as vip_frozen_price') - ->get() - ->pluck('vip_frozen_price') - ->sum(); - - - $redis = local_redis(1); - - $luaScript = <<= quantity then - redis.call('decrby', product_key, quantity) - return 1 -- 成功 -else - return 0 -- 失败 -end -LUA; - $productKey = 'kk'; - $quantity = 1; // 假设每次抢购一个商品 - - $result = $redis->eval($luaScript, [$productKey, $quantity], 1); - - if ($result == 1) { - d("抢购成功!"); - } else { - d("抢购失败,库存不足。"); - } - - -// Lua脚本,原子操作增加值 - $luaScript = <<eval($luaScript, $args, $numKeys); - - - d("Incremented value for '{$key}': {$result}"); - - - $redis->set('kk', 111); - d(1); - - $cost_all = CapitalFlow:: - where(['category' => 'user_order_balance_pay']) - ->sum('amount'); - - - //查询数据 -// $dd =Db::name('store_cash_finance_flow') - - $startTimeDefault = date('Y-m-d', time()); - $endTimeDefault = date('Y-m-d', strtotime($startTimeDefault) + 86400); - - $data = StoreCashFinanceFlow:: - where(['store_id' => 5])->order('id', 'desc') -// ->whereBetweenTime('create_time',$startTimeDefault,$endTimeDefault) - ->whereDay('create_time') - ->sum('receivable'); - d($data); - -// ->select()->toArray(); -// $sum = array_sum(array_column($data, 'receivable')); -// d($sum); - $cash_today = StoreCashFinanceFlow::where('store_id', 5) - ->whereDay('create_time') - ->where('status', YesNoEnum::YES) - ->fetchSql() - ->sum('receipts'); - d($cash_today); - - - d(StoreFinanceFlow:: - where(['other_uid' => 17, 'type' => 0, 'status' => 0]) - ->sum('number')); - $user = User::where('id', 15)->find()->toArray(); - $data = OrderLogic::cartIdByOrderInfo([1], 0, $user, ['store_id' => 2]); - d($data); - - - $data = StoreBranchProduct::field('id,product_id,cost,purchase')->withTrashed()->select()->toArray(); - - foreach ($data as $value) { - $one = StoreProduct::where('id', $value['product_id'])->field('cost,purchase')->withTrashed() - ->find()->toArray(); - - StoreBranchProduct::where('id', $value['id']) - ->update([ - 'cost' => $one['cost'], - 'purchase' => $one['purchase'], - ]); - } - - - d($data); - - - $template = getenv('SMS_TEMPLATE'); - - $check = (new SmsService())->client(18715753257, $template, 9527); - - - d($check); - - - $cartId = (array)$this->request->post('cart_id', []); - if (empty($cartId)) { - return $this->fail('缺失购物车数据'); - } - $uid = Cart::where('id', $cartId[0])->value('uid'); - d($uid); - - - $params = (new StoreOrderValidate())->post()->goCheck('check'); - $res = (new StoreOrderLogic())->dealSendSms($params); - if ($res) { - return $this->success('发送成功', [], 1, 1); - } else { - return $this->fail('发送失败'); - } - - - $template = getenv('SMS_TEMPLATE'); - d($template); - - $params = $this->request->post(); - $remark = '5_smsPay1'; - $code = Cache::get($remark); - - if ($code && isset($params['code']) && $code !== $params['code']) { - throw new Exception('验证码错误'); - } - - - d($code); - - - //发短信 - $phone = 18715753257; - $code = generateRandomCode(); - - Cache::set($remark, $code, 5 * 60); - d($code); - - $config = [ - // HTTP 请求的超时时间(秒) - 'timeout' => 5.0, - // 默认发送配置 - 'default' => [ - // 网关调用策略,默认:顺序调用 - 'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class, - // 默认可用的发送网关 - 'gateways' => [ - 'aliyun', - ], - ], - // 可用的网关配置 - 'gateways' => [ - 'errorlog' => [ -// 'file' => '/tmp/easy-sms.log', - 'file' => runtime_path() . '/logs/alipay.log', - ], - 'aliyun' => [ - 'access_key_id' => 'LTAI5t7mhH3ij2cNWs1zhPmv', - 'access_key_secret' => 'gqo2wMpvi8h5bDBmCpMje6BaiXvcPu', - 'sign_name' => '里海科技', - ], - ], - ]; - - - try { - $easySms = new EasySms($config); - $res = $easySms->send($phone, [ - 'content' => '您的验证码为:' . $code, - 'template' => 'SMS_263810014', - 'data' => [ - 'code' => $code - ], - ]); - - if ($res && $res['aliyun']['status'] == 'success') { - return true; - } - - } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { - throw new \Exception(json_encode($exception->getExceptions())); -// return false; - } - - - d($res); - - - $user = User::where('id', \request()->userId)->find(); - - -// $wechat = new PayService(1); -// $order = [ -// 'out_trade_no' => time().'', -// 'description' => 'subject-测试', -// 'amount' => [ -// 'total' => 1, -// ], -// ]; -// -// $res = $wechat->wechat->scan($order); - - - $startTime = 1714492800; // 开始时间 - $endTime = 1717171199; // 结束时间 - //对平台来说 - $data = StoreFinanceFlow:: - whereBetween('create_time', [$startTime, $endTime]) - ->field(' - CONCAT("第", LPAD(YEAR(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 4, "0"), "-", LPAD(WEEK(FROM_UNIXTIME(create_time, "%Y-%m-%d"), 3), 2, "0"), "周(", LPAD(MONTH(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 2, "0"), "月)") as remark_time, - SUM(CASE WHEN financial_pm = 1 THEN number ELSE 0 END) as income, - SUM(CASE WHEN financial_pm = 0 THEN number ELSE 0 END) as money, - store_id - ') - ->where('financial_pm', 0) - ->group('remark_time,store_id') - ->order('remark_time', 'desc') - ->select() -// ->each(function ($item) { -// $item['name'] = '周账单'; -// $item['enter']=bcdiv($item['income'],$item['expenditure'],2); -// return $item; -// }) - ->toArray(); - -// foreach ($data as &$v) { -// $v['admin_id'] =$this->adminId; -// } - - (new FinancialTransfers())->saveAll($data); - - - d($data); - - - $data = SystemStore::where('store_money', '>', 0) - ->field('id store_id,name,store_money money') - ->select()->toArray(); - - - $now = new \DateTime(); - $lastMonth = $now->modify('first day of last month'); - foreach ($data as &$v) { - $v['remark_time'] = $lastMonth->format('Y-m'); - } - - (new FinancialTransfers())->saveAll($data); - - - d($data); - - - return StoreFinanceFlow::whereBetweenTime('create_time', ['1714492800', '1717171199']) - ->field(' - CONCAT("第", LPAD(YEAR(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 4, "0"), "-", LPAD(WEEK(FROM_UNIXTIME(create_time, "%Y-%m-%d"), 3), 2, "0"), "周(", LPAD(MONTH(FROM_UNIXTIME(create_time, "%Y-%m-%d")), 2, "0"), "月)") as date, - SUM(CASE WHEN financial_pm = 1 THEN number ELSE 0 END) as income, - SUM(CASE WHEN financial_pm = 0 THEN number ELSE 0 END) as expenditure,store_id - ') -// ->limit($this->limitOffset, $this->limitLength) - ->where('financial_pm', 0) - ->group('date,store_id') - ->order('date', 'desc') - ->select()->each(function ($item) { - $item['name'] = '周账单'; -// $item['enter']=bcdiv($item['income'],$item['expenditure'],2); - return $item; - }) - ->toArray(); - - - $wechat = new PayService(1); - $order = [ - 'out_trade_no' => 'PF1717729550406928', - 'out_refund_no' => time(), - 'amount' => [ - 'refund' => 1, - 'total' => 1, - 'currency' => 'CNY', - ], - // '_action' => 'jsapi', // jsapi 退款,默认 - // '_action' => 'app', // app 退款 - // '_action' => 'combine', // 合单退款 - // '_action' => 'h5', // h5 退款 - // '_action' => 'miniapp', // 小程序退款 - // '_action' => 'native', // native 退款 - - ]; - - $res = $wechat->wechat->transfer($order); - - - //生成条形码 - $generator = new BarcodeGeneratorPNG(); - $barcode = $generator->getBarcode('9-11476', $generator::TYPE_CODE_128); -// 指定保存路径 -// $savePath = 'qr/barcode.png'; - $savePath = 'public/image/barcode/barcode2.png'; -// 保存条形码到文件 - file_put_contents($savePath, $barcode); - -// echo ''; - d(111); - - - $user = new StoreBranchProduct(); - $list = [ - [ - 'id' => 14, - 'stock' => ['dec', 2], - 'sales' => ['inc', 2] -// 'stock' => 1017, - ], - [ - 'id' => 15, - 'stock' => ['dec', 1], - 'sales' => ['inc', 1] -// 'stock' => 10, - ] - ]; -// -// $updateData[] = [ -// 'id' => 14, -//// 'stock' => ['dec', $v['cart_num']] -// 'stock' => 10186 -// ]; - - - $user->withTrashed()->saveAll($list); - - d(1); - - - $code = '8-1717845671'; - $verify_code = createCode($code); - - d($verify_code); - $orderPickupCode = str_pad(rand(0, 99999), 5, '0', STR_PAD_LEFT); - - d($orderPickupCode); - $order_id = getNewOrderId('PF'); - - - d($order_id); - - - /*$order['pay_price'] = 0.01; - $order['store_id'] = 2; - $order['profit'] = "0.00"; - $fees = bcdiv(bcmul($order['pay_price'], '0.02', 2), 1, 2); - - - - $frozen = bcsub($order['profit'] , $fees, 2); - - - $money_limt = SystemStore::where('id', $order['store_id'])->field('paid_deposit,security_deposit')->find(); - $deposit = bcsub($money_limt['security_deposit'], $money_limt['paid_deposit'], 2); - d($fees,$frozen,$deposit); - - - - $a = 'PF1717494034927974-1'; - $check = StoreOrder::where('order_id',$a)->count(); - d($check);*/ - //付款 - $j = '{"id":"12c29662-eba0-532a-832e-12ddc30aa5ac","create_time":"2024-06-06T15:47:20+08:00","resource_type":"encrypt-resource","event_type":"TRANSACTION.SUCCESS","summary":"\u652f\u4ed8\u6210\u529f","resource":{"original_type":"transaction","algorithm":"AEAD_AES_256_GCM","ciphertext":{"mchid":"1654274867","appid":"wxdee751952c8c2027","out_trade_no":"PF1718073229145240","transaction_id":"4200002220202406064425693065","trade_type":"JSAPI","trade_state":"SUCCESS","trade_state_desc":"\u652f\u4ed8\u6210\u529f","bank_type":"ABC_DEBIT","attach":"wechat_common","success_time":"2024-06-06T15:47:20+08:00","payer":{"openid":"onoIP7c1qgjfIr2ce7GJAAmVGcL0"},"amount":{"total":1,"payer_total":1,"currency":"CNY","payer_currency":"CNY"}},"associated_data":"transaction","nonce":"blQOXyAUGK4K"}}'; - - - //退款 - /* $j = '{"id":"1841a014-0829-5c12-82d0-ab211d6c06e3","create_time":"2024-06-06T09:53:59+08:00","resource_type":"encrypt-resource","event_type":"REFUND.SUCCESS","summary":"\u9000\u6b3e\u6210\u529f","resource":{"original_type":"refund","algorithm":"AEAD_AES_256_GCM","ciphertext":{"mchid":"1654274867","out_trade_no":"PF1717558027664507","transaction_id":"4200002211202406058608104458","out_refund_no":"BO1717638826","refund_id":"50303409732024060648234415101","refund_status":"SUCCESS","success_time":"2024-06-06T09:53:59+08:00","amount":{"total":1,"refund":1,"payer_total":1,"payer_refund":1},"user_received_account":"\u652f\u4ed8\u7528\u6237\u96f6\u94b1"},"associated_data":"refund","nonce":"yteRBBbAwfdE"}}';*/ - - - $result = json_decode($j, true); - $ciphertext = $result['resource']['ciphertext']; - - PayNotifyLogic::handle('wechat_common', $ciphertext['out_trade_no'], $ciphertext); - - - d(1); - - - $order = StoreOrder::where('id', 80)->findOrEmpty(); -// d($order); - - $transaction_id = 12121212121212; - $financeLogic = new StoreFinanceFlowLogic(); - $financeLogic->order = $order; - $financeLogic->user = ['uid' => $order['uid']]; - if ($order->pay_type != 9 || $order->pay_type != 10) { - - $financeLogic->in($transaction_id, $order['pay_price'], OrderEnum::USER_ORDER_PAY); //用户单入账 - //商户应该获得的钱 每个商品的price-ot_price 利润 - if ($order->profit !== "0.00") { - //手续费 - $fees = bcdiv(bcmul($order['pay_price'], '0.02', 2), 1, 2); - $financeLogic->in($transaction_id, $fees, OrderEnum::ORDER_COMMITION, $order['store_id']); //手续费入账 - - $financeLogic->out($transaction_id, $order['profit'], OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0);//商户获得的 - //冻结金额的 - $frozen = bcsub($order->profit, $fees, 2); - //缴纳齐全了就加商户没有就加到平台 - $money_limt = SystemStore::where('id', $order['store_id'])->field('paid_deposit,security_deposit')->find(); - $deposit = bcsub($money_limt['security_deposit'], $money_limt['paid_deposit'], 2);//剩余额度 - if ($deposit > 0 && $frozen > 0) { - $amount = min($deposit, $frozen); - $financeLogic->in($transaction_id, $amount, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id']); - } - - //当前商户得冻结金额如果缴纳满足了就加到商户余额中 - - } - $financeLogic->save(); - } - d(1); - - - $result = json_decode($j, true); - $ciphertext = $result['resource']['ciphertext']; - PayNotifyLogic::handle('refund', $ciphertext['out_trade_no'], $ciphertext); - - d($result); - - - if ($result && $result->event_type == 'REFUND.SUCCESS') { - $ciphertext = $result->resource['ciphertext']; - if ($ciphertext['refund_status'] === 'SUCCESS') { - //处理订单 -1判断是退的一单还是拆分的订单 - PayNotifyLogic::handle('refund', $ciphertext['out_trade_no'], $ciphertext); - $app->wechat->success(); - - } - } - - -// d(1511); - - //退款 - $wechat = new PayService(1); - $order = [ - 'out_trade_no' => 'PF1717729550406928', - 'out_refund_no' => time(), - 'amount' => [ - 'refund' => 1, - 'total' => 1, - 'currency' => 'CNY', - ], - // '_action' => 'jsapi', // jsapi 退款,默认 - // '_action' => 'app', // app 退款 - // '_action' => 'combine', // 合单退款 - // '_action' => 'h5', // h5 退款 - // '_action' => 'miniapp', // 小程序退款 - // '_action' => 'native', // native 退款 - - ]; - - $res = $wechat->wechat->refund($order); - d($res); - - //支付 - - $j = '{"id":"89b226d6-e305-5a83-9e7e-29b688cc3b10","create_time":"2024-06-05T11:27:21+08:00","resource_type":"encrypt-resource","event_type":"TRANSACTION.SUCCESS","summary":"\u652f\u4ed8\u6210\u529f","resource":{"original_type":"transaction","algorithm":"AEAD_AES_256_GCM","ciphertext":{"mchid":"1654274867","appid":"wxdee751952c8c2027","out_trade_no":"PF1717556761663487","transaction_id":"4200002211202406058608104458","trade_type":"JSAPI","trade_state":"SUCCESS","trade_state_desc":"\u652f\u4ed8\u6210\u529f","bank_type":"OTHERS","attach":"recharge","success_time":"2024-06-05T11:27:21+08:00","payer":{"openid":"onoIP7TFXN_106JkCMInwOTPCsD4"},"amount":{"total":1,"payer_total":1,"currency":"CNY","payer_currency":"CNY"}},"associated_data":"transaction","nonce":"4i7rmOABdwV3"}}'; - $result = json_decode($j, true); - $ciphertext = $result['resource']['ciphertext']; - - PayNotifyLogic::handle('wechat_common', $ciphertext['out_trade_no'], $ciphertext); - d(1); - - - $all = UserShip::field('id,title,limit')->select()->toArray(); - - $new = $this->getNextArrayByID($all, 1); - d($new); - d($all); - - - \support\Log::info('fasfsaf'); -// Log::info('fdadsdadasd'); - - d(6323); -// d($this->getAccessToken()); - $a = (new WeChatMnpService())->getAccessToken(); -// $a = (new WeChatMnpService())->getUserPhoneNumber('a5c44554ce7caf35d3cf2196da96f7ab735deaf674d639ecb482ce618fa82ee6'); - - d($a); - - - throw new MyBusinessException('缺失经纬度'); - - return $this->success('success', UserLogic::info(8)); - throw new Exception('缺失经纬度'); - $params = [ - 'pay_type' => 1, - 'mer_id' => 1, - ]; - self::$total = 0; - $order = [ - 'add_time' => time(), - 'create_time' => time(), - 'order_id' => getNewOrderId('PF'), - 'total_price' => self::$total,//总价 - 'total_num' => 1,//总数 - 'pay_type' => $params['pay_type'] ?? 0, - 'cart_id' => implode(',', [1, 2, 3]), -// 'delivery_msg'=>' 预计48小时发货 ' - ]; - - $_order = $order; - $_order['deduction_price'] = 0; - $_order['merchant'] = $params['mer_id']; - $_order['uid'] = request()->userId; - $_order['money'] = 0; - $_order['user'] = request()->userId; - $_order['account'] = 0; - $_order['payinfo'] = ''; - $_order['type'] = 0; - $_order['source'] = 0; - $_order['actual'] = $_order['total_price']; -// d($_order); -// if($addressId>0){ -// $address=UserAddress::where(['address_id'=>$addressId,'uid'=>Request()->userId])->find(); -// if($address){ -// $_order['real_name'] = $address['real_name']; -// $_order['user_phone'] = $address['phone']; -// $_order['user_address'] = $address['detail']; -// $_order['address_id'] = $addressId; -// } -// } - - -// if($params['pay_type']==PayEnum::WECHAT_PAY_BARCODE){ -// $_order['source']=1; -// } -// if($params['pay_type']==PayEnum::CASH_PAY){ -// $_order['money']=$_order['total']; -// } - - $order = StoreOrder::create($_order); - - - d($order); - - - } - - - public static function show() - { - //处理分类缺失 - $store_id = 23; - $data = StoreBranchProduct::where('store_id', $store_id) - ->field('cate_id,store_id') - ->select()->toArray(); - foreach ($data as $value) { - self::updateGoodsclass($value['cate_id'], $value['store_id']); - } - - d($data); - - - } - - - public static function dealFrozenPrice($oid) - { - $detail = StoreOrderCartInfo::where('oid', $oid)->select()->toArray(); - $total_vip = 0; - foreach ($detail as $value) { - $total_vip += $value['cart_info']['vip_frozen_price']; - } - return $total_vip; - } - - - public function getAccessToken() - { - // 微信接口地址 - $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxdee751952c8c2027&secret=2c46d77df53cd942a7ff608247ea0ccd"; - - // 发送 HTTP GET 请求 - $response = file_get_contents($url); - - // 解析 JSON 响应 - $responseData = json_decode($response, true); - - // 检查是否成功获取 access_token - if (isset($responseData['access_token'])) { - return $responseData['access_token']; - } else { - // 获取 access_token 失败,可以记录错误信息 - error_log("Failed to get access_token: " . $response); - return null; - } - } - - - function getNextArrayByID($arr, $id) - { - // 遍历数组 - foreach ($arr as $key => $value) { - // 检查当前数组的id是否与传入的id匹配 - if ($value['id'] == $id) { - // 如果当前数组不是最后一个,则返回下一个数组 - if ($key + 1 < count($arr)) { - return $arr[$key + 1]; - } - // 如果当前数组是最后一个,则返回null或空数组 - return null; - } - } - // 如果没有找到匹配的id,则返回null或空数组 - return null; - } - - - public static function updateGoodsclass($cate_id, $store_id = 0, $type = 0) - { - $one = StoreCategory::where('id', $cate_id)->find(); - if ($one) { - //查二级分类 - $two = StoreCategory::where('id', $one['pid'])->find(); - if ($two) { - if ($two['pid'] != 0) { - self::cate_update($cate_id, $two['id'], $store_id, 3); - self::cate_update($two['id'], $two['pid'], $store_id, 2); - self::cate_update($two['pid'], 0, $store_id, 1); - } else { - if ($one['pid'] == 0) { - self::cate_update($one['id'], 0, $store_id, 1); - } else { - self::cate_update($one['id'], $one['pid'], $store_id, 2); - self::cate_update($one['pid'], 0, $store_id, 1); - } - } - } - } - } - - public static function cate_update($cate_id = 0, $pid = 0, $store_id = 0, $level = 1) - { - $find = Db::name('store_product_cate')->where(['store_id' => $store_id, 'cate_id' => $cate_id, 'level' => $level])->find(); - if ($find) { - Db::name('store_product_cate')->where('id', $find['id'])->inc('count', 1)->update(); - } else { - Db::name('store_product_cate')->insert(['pid' => $pid, 'store_id' => $store_id, 'cate_id' => $cate_id, 'count' => 1, 'level' => $level, 'create_time' => time(), 'update_time' => time()]); - } - } - - -} \ No newline at end of file diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 0b9131fb0..bafe12c95 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -475,7 +475,7 @@ class PayNotifyLogic extends BaseLogic /** * 现金支付 */ - public static function cash_pay($orderSn,$extra =[]) + public static function cash_pay($orderSn) { $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty(); @@ -503,11 +503,11 @@ class PayNotifyLogic extends BaseLogic self::descStock($order['id']); } - if ($extra && $extra['store_id'] && $order['reservation'] !=1) { + if ($order && $order['store_id'] && $order['reservation'] !=1) { $params = [ 'verify_code' => $order['verify_code'], - 'store_id' => $extra['store_id'], - 'staff_id' => $extra['staff_id'] + 'store_id' => $order['store_id'], + 'staff_id' => $order['staff_id'] ]; OrderLogic::writeOff($params); }