123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- // +----------------------------------------------------------------------
- // | A3Mall
- // +----------------------------------------------------------------------
- // | Copyright (c) 2020 http://www.a3-mall.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Author: xzncit <158373108@qq.com>
- // +----------------------------------------------------------------------
- namespace app\admin\service\users;
- use app\admin\service\Service;
- use app\common\models\users\Users as UsersModel;
- use app\admin\model\users\UsersLog as UsersLogModel;
- use app\admin\model\users\UsersWithdrawLog as UsersWithdrawLogModel;
- class Finance extends Service {
- private static $type = ["1"=>"银行卡","2"=>"支付宝","3"=>"微信"];
- private static $status = ["0"=>"审核中","1"=>"已提现","2"=>"未通过"];
- /**
- * 获取列表数据
- * @param $data
- * @param array $condition
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public static function getList($data,$condition=[]){
- $count = UsersLogModel::withJoin("users")->where($condition)->count();
- $result = UsersLogModel::withJoin("users")->where($condition)->page($data["page"]??1,$data["limit"]??10)->order("users_log.id","desc")->select()->toArray();
- return [ "count"=>$count, "data"=> array_map(function ($res){
- $res["username"] = getUserName($res);
- return $res;
- },$result) ];
- }
- /**
- * 提现申请
- * @param $data
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public static function apply($data){
- $key = $data["key"]??[];
- $condition = [];
- if(isset($key["status"])){
- if(in_array($key["status"],[1,2,3])){
- $condition[] = ["users_withdraw_log.status","=",$key["status"]-1];
- }
- }
- $count = UsersWithdrawLogModel::withJoin("users")->where($condition)->count();
- $result = UsersWithdrawLogModel::withJoin("users")->where($condition)->page($data["page"]??1,$data["limit"]??10)->order("id","desc")->select()->toArray();
- return [ "count"=>$count, "data"=>$data = array_map(function ($res){
- $res["username"] = getUserName($res);
- $res["type_name"] = self::getType($res["type"]);
- $res["status_name"] = self::getStatus($res["status"]);
- $str = '';
- if($res["type"] == 1){
- $str .= "<p>类型:" . ($res["withdraw_type"]==0?"佣金":"余额") . '</p>';
- $str .= "<p>卡号:" . $res["code"] . '</p>';
- $str .= "<p>开户地址:" . $res["address"] . '</p>';
- $str .= "<p>银行:" . $res["bank_name"] . '</p>';
- }else if($res["type"] == 2){
- $str .= "<p>用户名:" . $res["username"] . '</p>';
- $str .= "<p>支付宝:" . $res["account"] . '</p>';
- }else if($res["type"] == 3){
- $str .= "<p>用户名:" . $res["username"] . '</p>';
- $str .= "<p>微信:" . $res["account"] . '</p>';
- }
- $res["string"] = $str;
- return $res;
- },$result) ];
- }
- public static function detail($id){
- $row = UsersWithdrawLogModel::where(["id"=>$id])->find();
- if(empty($row)){
- throw new \Exception("您要访问的内容不存在",0);
- }
- $str = ' ';
- if($row["type"] == 1){
- $str .= "<span>卡号:" . $row["code"] . '</span> ';
- $str .= "<span>开户地址:" . $row["address"] . '</span> ';
- $str .= "<span>银行:" . $row["bank_name"] . '</span> ';
- }else if($row["type"] == 2){
- $str .= "<span>用户名:" . $row["username"] . '</span> ';
- $str .= "<span>支付宝:" . $row["account"] . '</span> ';
- }else if($row["type"] == 3){
- $str .= "<span>用户名:" . $row["username"] . '</span> ';
- $str .= "<span>微信:" . $row["account"] . '</span> ';
- }
- $row["string"] = $str;
- $user = UsersModel::where(["id"=>$row["user_id"]])->find();
- $user["username"] = getUserName($user);
- return [ "id"=>$id,"user"=>$user,"row"=>$row ];
- }
- /**
- * 保存数据
- * @param $data
- * @return bool
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public static function save($data){
- $row = UsersWithdrawLogModel::where(["id"=>$data["id"]])->find();
- if(empty($row)){
- throw new \Exception("您要访问的内容不存在",0);
- }
- $u = UsersModel::where(["id"=>$row["user_id"]])->find();
- if($row["withdraw_type"] == 1){
- if($u["amount"] < $row["price"]){
- throw new \Exception("操作失败,余额不足!",0);
- }
- }else{
- if($u["spread_amount"] < $row["price"]){
- throw new \Exception("操作失败,余额不足!",0);
- }
- }
- try{
- UsersWithdrawLogModel::startTrans();
- UsersWithdrawLogModel::where(["id"=>$data["id"]])->save([ "msg"=>$data["msg"], "status"=>$data["status"], "update_time"=>time() ]);
- if($data["status"] == 1) {
- if ($row["withdraw_type"] == 1) {
- UsersModel::where(["id" => $row["user_id"]])->dec("amount", $row["price"])->update();
- } else {
- UsersModel::where(["id" => $row["user_id"]])->dec("spread_amount", $row["price"])->update();
- }
- }
- UsersWithdrawLogModel::commit();
- return true;
- }catch (\Exception $ex){
- UsersWithdrawLogModel::rollback();
- throw new \Exception($ex->getMessage(),$ex->getCode());
- }
- }
- /**
- * 获取支付方式
- * @param $type
- * @return string
- */
- public static function getType($type){
- return self::$type[$type];
- }
- /**
- * 获取状态
- * @param $status
- * @return string
- */
- public static function getStatus($status){
- return self::$status[$status];
- }
- }
|