|
|
@@ -1,761 +0,0 @@
|
|
|
-<?php
|
|
|
-// +----------------------------------------------------------------------
|
|
|
-// | [ WE CAN DO IT MORE SIMPLE ]
|
|
|
-// +----------------------------------------------------------------------
|
|
|
-// | Copyright (c) 2018-2020 rights reserved.
|
|
|
-// +----------------------------------------------------------------------
|
|
|
-// |
|
|
|
-// +----------------------------------------------------------------------
|
|
|
-// | Date: 2020-08-31 20:43
|
|
|
-// +----------------------------------------------------------------------
|
|
|
-
|
|
|
-namespace app\system\controller\v1;
|
|
|
-
|
|
|
-
|
|
|
-use app\BaseController;
|
|
|
-use app\lib\OrderLib;
|
|
|
-use app\model\api\PayTrade;
|
|
|
-use app\model\api\UserShop as UserShopModel;
|
|
|
-use app\model\api\Order as OrderModel;
|
|
|
-use app\model\api\ActivityOrder as ActivityOrderModel;
|
|
|
-use library\utils\weixinPay as wxpayApi;
|
|
|
-use app\model\api\User as UserModel;
|
|
|
-use app\model\api\UserDetail as UserDetailModel;
|
|
|
-use app\model\api\UserScoreDetail as UserScoreDetailModel;
|
|
|
-use library\services\UtilService;
|
|
|
-use app\Request;
|
|
|
-use think\facade\Db;
|
|
|
-
|
|
|
-class Member extends BaseController
|
|
|
-{
|
|
|
- /**
|
|
|
- * 会员列表
|
|
|
- * @param Request $request
|
|
|
- * @return mixed
|
|
|
- */
|
|
|
- public function list(Request $request)
|
|
|
- {
|
|
|
- $pageSize = 50;
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['page',1],
|
|
|
- ['nickname',''],
|
|
|
- ['uip',''],
|
|
|
- ['uid',''],
|
|
|
- ['parent_uid',''],
|
|
|
- ['parent_uip',''],
|
|
|
- ['mobile',''],
|
|
|
- ['status',''],
|
|
|
- ['time',[]],
|
|
|
- ],$request);
|
|
|
- $where = [];
|
|
|
- //创建时间
|
|
|
- $startTime="";
|
|
|
- $endTime="";
|
|
|
- if(!empty($post['time'][0]) && !empty($post['time'][1])) {
|
|
|
- $startTime = strtotime($post['time'][0]);
|
|
|
- $endTime = strtotime($post['time'][1]);
|
|
|
- $where[]=["u.regtime","between","{$startTime},{$endTime}"];
|
|
|
- }
|
|
|
- if(!empty($post['nickname'])){
|
|
|
- $where[]=["u.nickname","like","%{$post['nickname']}%"];
|
|
|
- }
|
|
|
- if(!empty($post['uid'])){
|
|
|
- $where[]=["u.uid","=",$post['uid']];
|
|
|
- }
|
|
|
- if(!empty($post['mobile'])){
|
|
|
- $where[]=["u.mobile","=",$post['mobile']];
|
|
|
- }
|
|
|
- if(!empty($post['uip'])){
|
|
|
- $where[]=["u.uip","=",$post['uip']];
|
|
|
- }
|
|
|
- if(!empty($post['parent_uid'])){
|
|
|
- $where[]=["u.parent_uid","=",$post['parent_uid']];
|
|
|
- }else if(!empty($post['parent_uip'])){
|
|
|
- $m = Db::name("user")->where("uip",$post['parent_uip'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["u.parent_uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- if(in_array((string)$post["status"],['1','0','-1'])){
|
|
|
- $where[]=["u.status","=",(int)$post["status"]];
|
|
|
- }
|
|
|
- $data = (new UserModel)
|
|
|
- ->field("u.uid,u.uip,u.nickname,u.regtime,u.score,u.money,u.status,u.avatar,u.ercode,u.mobile,u.parent_uid"
|
|
|
- . ",s.id as shop_id,s.name as shop_name,s.lx_name as shop_lx_name,s.address as shop_address,s.tel as shop_tel,s.longitude as shop_longitude,s.latitude as shop_latitude,IFNULL(s.is_show,0) as shop_is_show"
|
|
|
- . ",p.nickname as p_nickname,p.mobile as p_mobile,p.uip as p_uip"
|
|
|
- . ",(select count(*) from table_user where parent_uid = u.uid) as branchCount")
|
|
|
- ->alias("u")
|
|
|
- ->leftJoin("user p","p.uid = u.parent_uid")
|
|
|
- ->leftJoin("user_shop s","s.uid = u.uid")
|
|
|
- ->where($where)
|
|
|
- ->page((int)$post["page"], (int)$pageSize)
|
|
|
- ->order("u.uid","desc")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $pageCount = (new UserModel)->alias("u")->where($where)->count();
|
|
|
- $data = empty($data)?[]:$data;
|
|
|
- foreach($data as $k=>$v){
|
|
|
- $data[$k]["regtime"] = date("Y-m-d H:i:s",$v["regtime"]);
|
|
|
- $data[$k]["mobile"] = empty($v["mobile"])?"未绑定":$v["mobile"];
|
|
|
- $data[$k]["p_mobile"] = empty($v["mobile"])?"未绑定":$v["p_mobile"];
|
|
|
- }
|
|
|
- return app('json')->success([
|
|
|
- 'list' => $data,
|
|
|
- 'pageCount' => $pageCount,
|
|
|
- 'pageSize' => $pageSize,
|
|
|
- 'page' => $post["page"],
|
|
|
- ]);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 编辑
|
|
|
- */
|
|
|
- public function save(Request $request){
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['uid','0'],
|
|
|
- ['status',''],
|
|
|
-
|
|
|
- ['shop_name',''],
|
|
|
- ['shop_tel',''],
|
|
|
- ['shop_lx_name',''],
|
|
|
- ['shop_address',''],
|
|
|
- ['shop_longitude',''],
|
|
|
- ['shop_latitude',''],
|
|
|
- ['shop_is_show',''],
|
|
|
- ],$request);
|
|
|
- $uid = (int)$post["uid"];
|
|
|
- if(empty($uid)){
|
|
|
- return app('json')->fail("参数错误");
|
|
|
- }
|
|
|
- unset($post["uid"]);
|
|
|
- $r=0;
|
|
|
- if(!in_array((string)$post["status"],['1','-1'])){
|
|
|
- return app('json')->success("状态错误");
|
|
|
- }
|
|
|
- //开启门店
|
|
|
- $shopData = (new UserShopModel)->where("uid",$uid)->find();
|
|
|
- $shopSave=[
|
|
|
- "name" => $post["shop_name"],
|
|
|
- "tel" => $post["shop_tel"],
|
|
|
- "lx_name" => $post["shop_lx_name"],
|
|
|
- "address" => $post["shop_address"],
|
|
|
- "longitude" => $post["shop_longitude"],
|
|
|
- "latitude" => $post["shop_latitude"],
|
|
|
- "is_show" => $post["shop_is_show"]==1?1:0,
|
|
|
- ];
|
|
|
- if($shopSave["is_show"]==1){
|
|
|
- if(empty($shopSave["name"])){
|
|
|
- return app('json')->fail("请输入门店名称");
|
|
|
- }
|
|
|
- if(empty($shopSave["tel"])){
|
|
|
- return app('json')->fail("请输入门店联系电话");
|
|
|
- }
|
|
|
- if(empty($shopSave["lx_name"])){
|
|
|
- return app('json')->fail("请输入门店联系人");
|
|
|
- }
|
|
|
- if(empty($shopSave["address"])){
|
|
|
- return app('json')->fail("请输入门店地址");
|
|
|
- }
|
|
|
- if(empty($shopData)){
|
|
|
- $shopSave["time"]=time();
|
|
|
- (new UserShopModel)->insert($shopSave);
|
|
|
- }else{
|
|
|
- (new UserShopModel)->where("id",$shopData["id"])->update($shopSave);
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(!empty($shopData)){
|
|
|
- (new UserShopModel)->where("id",$shopData["id"])->update($shopSave);
|
|
|
- }
|
|
|
- }
|
|
|
- //用户信息
|
|
|
- $save=[];
|
|
|
- $save["status"] = $post["status"];
|
|
|
- $r = (new UserModel)->where("uid",$uid)->update($save);
|
|
|
- return app('json')->success("数据保存成功");
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 会员收益明细列表
|
|
|
- * @param Request $request
|
|
|
- * @return mixed
|
|
|
- */
|
|
|
- public function moneyDetail (Request $request)
|
|
|
- {
|
|
|
- $pageSize = 50;
|
|
|
- $post = UtilService::getMore(
|
|
|
- [
|
|
|
- ['page', '1'],
|
|
|
- ['uid', '0'],
|
|
|
- ['uip', ''],
|
|
|
- ['mobile', ''],
|
|
|
- ['time', []],
|
|
|
- ['type', ''],
|
|
|
- ['code', ''],
|
|
|
- ], $request
|
|
|
- );
|
|
|
- $where = [];
|
|
|
- if (!empty($post['uid'])){
|
|
|
- $where[]=["d.uid","=",$post['uid']];
|
|
|
- }
|
|
|
- if (!empty($post['uip'])) {
|
|
|
- $m = Db::name("user")->where("uip",$post['uip'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["d.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- if (!empty($post['mobile'])) {
|
|
|
- $m = Db::name("user")->where("mobile",$post['mobile'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["d.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- $startTime = "";
|
|
|
- $endTime = "";
|
|
|
- if(!empty($post['time'][0]) && !empty($post['time'][1])) {
|
|
|
- $startTime = strtotime($post['time'][0]);
|
|
|
- $endTime = strtotime($post['time'][1]);
|
|
|
- $where[]=["d.time","between","{$startTime},{$endTime}"];
|
|
|
- }
|
|
|
- if (!empty($post['type']) && in_array(strval($post['type']), ["1","-1"])) {
|
|
|
- $where[]=["d.type","=",$post['type']];
|
|
|
- }
|
|
|
- if(!empty($post['code']) && $post['code']!="all"){
|
|
|
- $where[]=["d.code","=",$post['code']];
|
|
|
- }
|
|
|
- $data = (new UserDetailModel)
|
|
|
- ->alias("d")
|
|
|
- ->field("d.*,u.mobile,u.uip")
|
|
|
- ->leftJoin("user u", "u.uid = d.uid")
|
|
|
- ->where($where)
|
|
|
- ->page((int)$post["page"], $pageSize)
|
|
|
- ->order("d.id","desc")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $pageCount = (new UserDetailModel)->alias("d")->where($where)->count();
|
|
|
- foreach($where as $k=>$v){
|
|
|
- if($v[0]=="d.type"){
|
|
|
- array_splice($where,$k,1);
|
|
|
- }
|
|
|
- }
|
|
|
- //收入
|
|
|
- $inWhere = $where;
|
|
|
- $inWhere[]=["d.type","=",1];
|
|
|
- $inTotal = (new UserDetailModel)->alias("d")->where($inWhere)->sum("d.into");
|
|
|
- //支出
|
|
|
- $outWhere = $where;
|
|
|
- $outWhere[]=["d.type","=",-1];
|
|
|
- $outTotal = (new UserDetailModel)->alias("d")->where($outWhere)->sum("d.into");
|
|
|
- $result = UtilService::getParam(
|
|
|
- [
|
|
|
- 'id',
|
|
|
- 'uid',
|
|
|
- 'uip',
|
|
|
- 'mobile',
|
|
|
- 'title',
|
|
|
- 'content',
|
|
|
- 'type',
|
|
|
- 'into',
|
|
|
- 'money',
|
|
|
- ['time', 'time', 'date("Y-m-d H:i:s",$1)'],
|
|
|
- ], $data);
|
|
|
- return app('json')->success([
|
|
|
- 'list' => $result,
|
|
|
- 'pageCount' => $pageCount,
|
|
|
- 'pageSize' => $pageSize,
|
|
|
- 'page' => $post['page'],
|
|
|
- 'inTotal' => empty($inTotal) ? 0 : floatval($inTotal),
|
|
|
- 'outTotal' => empty($outTotal)? 0 : floatval($outTotal),
|
|
|
- ]);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 收益增/减
|
|
|
- * @param Request $request
|
|
|
- */
|
|
|
- public function moneyDetailSave(Request $request)
|
|
|
- {
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['uid', '', 'empty', '参数错误'],
|
|
|
- ['type', '1'],
|
|
|
- ['into', '0', 'gt|0', '输入值错误'],
|
|
|
- ['othen', ''],
|
|
|
- ], $request);
|
|
|
- $userData = (new UserModel)->where("uid",$post["uid"])->find();
|
|
|
- if(empty($userData)){
|
|
|
- $userData = (new UserModel)->where("uip",$post["uip"])->find();
|
|
|
- if(empty($userData)){
|
|
|
- return app('json')->fail('用户不存在,请输入正确的用户uid');
|
|
|
- }
|
|
|
- }
|
|
|
- if(!in_array((string)$post["type"],["1","-1"])){
|
|
|
- return app('json')->fail('请选择增减');
|
|
|
- }
|
|
|
- if ($post['type'] == 1)
|
|
|
- $bool = (new UserDetailModel)->adminAddMoney($userData['uid'], $post['into'], $request->adminInfo['id'],$post['othen']);
|
|
|
-
|
|
|
- if ($post['type'] == -1)
|
|
|
- $bool = (new UserDetailModel)->adminCutMoney($userData['uid'], $post['into'], $request->adminInfo['id'],$post['othen']);
|
|
|
-
|
|
|
- if ($bool)
|
|
|
- return app('json')->success('操作成功');
|
|
|
- else
|
|
|
- return app('json')->fail('操作失败');
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 钻石收益明细列表
|
|
|
- * @param Request $request
|
|
|
- * @return mixed
|
|
|
- */
|
|
|
- public function scoreDetail (Request $request)
|
|
|
- {
|
|
|
- $pageSize = 50;
|
|
|
- $post = UtilService::getMore(
|
|
|
- [
|
|
|
- ['page', '1'],
|
|
|
- ['uid', '0'],
|
|
|
- ['uip', ''],
|
|
|
- ['mobile', ''],
|
|
|
- ['type', ''],
|
|
|
- ['code', ''],
|
|
|
- ['time', []],
|
|
|
- ], $request
|
|
|
- );
|
|
|
- $where = [];
|
|
|
- if (!empty($post['uid'])){
|
|
|
- $where[]=["d.uid","=",$post['uid']];
|
|
|
- }else if (!empty($post['uip'])) {
|
|
|
- $m = Db::name("user")->where("uip",$post['uip'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["d.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }else if (!empty($post['mobile'])) {
|
|
|
- $m = Db::name("user")->where("mobile",$post['mobile'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["d.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- $startTime = "";
|
|
|
- $endTime = "";
|
|
|
- if(!empty($post['time'][0]) && !empty($post['time'][1])) {
|
|
|
- $startTime = strtotime($post['time'][0]);
|
|
|
- $endTime = strtotime($post['time'][1]);
|
|
|
- $where[]=["d.time","between","{$startTime},{$endTime}"];
|
|
|
- }
|
|
|
- if (!empty($post['type']) && in_array(strval($post['type']), ["1","-1"])) {
|
|
|
- $where[]=["d.type","=",$post['type']];
|
|
|
- }
|
|
|
- if (!empty($post['code'])) {
|
|
|
- $where[]=["d.code","=",$post['code']];
|
|
|
- }
|
|
|
- $data = (new UserScoreDetailModel)
|
|
|
- ->alias("d")
|
|
|
- ->field("d.*,u.mobile,u.uip")
|
|
|
- ->leftJoin("user u", "u.uid = d.uid")
|
|
|
- ->where($where)
|
|
|
- ->page((int)$post["page"], $pageSize)
|
|
|
- ->order("d.id","desc")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $pageCount = (new UserScoreDetailModel)->alias("d")->where($where)->count();
|
|
|
- foreach($where as $k=>$v){
|
|
|
- if($v[0]=="d.type"){
|
|
|
- array_splice($where,$k,1);
|
|
|
- }
|
|
|
- }
|
|
|
- //收入
|
|
|
- $inWhere = $where;
|
|
|
- $inWhere[]=["d.type","=",1];
|
|
|
- $inTotal = (new UserScoreDetailModel)->alias("d")->where($inWhere)->sum("d.v");
|
|
|
- //支出
|
|
|
- $outWhere = $where;
|
|
|
- $outWhere[]=["d.type","=",-1];
|
|
|
- $outTotal = (new UserScoreDetailModel)->alias("d")->where($outWhere)->sum("d.v");
|
|
|
- $result = UtilService::getParam(
|
|
|
- [
|
|
|
- 'id',
|
|
|
- 'uid',
|
|
|
- 'uip',
|
|
|
- 'mobile',
|
|
|
- 'title',
|
|
|
- 'content',
|
|
|
- 'type',
|
|
|
- ['into','v'],
|
|
|
- 'money',
|
|
|
- ['time', 'time', 'date("Y-m-d H:i:s",$1)'],
|
|
|
- ], $data);
|
|
|
-
|
|
|
- return app('json')->success([
|
|
|
- 'list' => $result,
|
|
|
- 'pageCount' => $pageCount,
|
|
|
- 'pageSize' => $pageSize,
|
|
|
- 'page' => $post['page'],
|
|
|
- 'inTotal' => empty($inTotal) ? 0 : floatval($inTotal),
|
|
|
- 'outTotal' => empty($outTotal)? 0 : floatval($outTotal),
|
|
|
- ]);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 积分增/减
|
|
|
- * @param Request $request
|
|
|
- */
|
|
|
- public function scoreDetailSave(Request $request)
|
|
|
- {
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['uid', '', 'empty', '参数错误'],
|
|
|
- ['type', '1'],
|
|
|
- ['into', '0', 'gt|0', '输入值错误'],
|
|
|
- ['othen', ''],
|
|
|
- ], $request);
|
|
|
- $userData = (new UserModel)->where("uid",$post["uid"])->find();
|
|
|
- if(empty($userData)){
|
|
|
- $userData = (new UserModel)->where("uip",$post["uid"])->find();
|
|
|
- if(empty($userData)){
|
|
|
- return app('json')->fail('用户不存在,请输入正确的用户uid');
|
|
|
- }
|
|
|
- }
|
|
|
- if ($post['type'] == 1)
|
|
|
- $bool = (new UserScoreDetailModel)->adminAddMoney($userData['uid'], intval($post['into']), $request->adminInfo['id'],$post['othen']);
|
|
|
-
|
|
|
- if ($post['type'] == -1)
|
|
|
- $bool = (new UserScoreDetailModel)->adminCutMoney($userData['uid'], intval($post['into']), $request->adminInfo['id'],$post['othen']);
|
|
|
-
|
|
|
- if ($bool)
|
|
|
- return app('json')->success('操作成功');
|
|
|
- else
|
|
|
- return app('json')->fail('操作失败');
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取会员数据
|
|
|
- * @param Request $request
|
|
|
- * @return mixed
|
|
|
- */
|
|
|
- public function getItem(Request $request)
|
|
|
- {
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['uid', 1],
|
|
|
- ]);
|
|
|
- $data = (new UserModel)
|
|
|
- ->alias("u")
|
|
|
- ->field("u.uid,u.mobile,u.nickname,u.avatar,u.status,u.regtime,u.lasttime,u.parent_uid.p.nickname as parent_nickname")
|
|
|
- ->leftJoin("user p","p.uid = u.parent_uid")
|
|
|
- ->where("u.uid",$post["uid"])
|
|
|
- ->find()
|
|
|
- ->toArray();
|
|
|
- if(!empty($data)){
|
|
|
- $data["regtime"] = date("Y-m-d H:i:s",$data["regtime"]);
|
|
|
- $data["lasttime"] = date("Y-m-d H:i:s",$data["lasttime"]);
|
|
|
- }
|
|
|
- return app('json')->success(empty($data) ? [] : $data);
|
|
|
- }
|
|
|
- public function shopSave(Request $request){
|
|
|
- $post = UtilService::getMore([
|
|
|
- ['id','','empty','参数错误'],
|
|
|
- ['name','','empty','请输入名称'],
|
|
|
- ['tel','','empty','请输入联系电话'],
|
|
|
- ['lx_name','','empty','请输入联系人'],
|
|
|
- ['address','','empty','请输入门店地址'],
|
|
|
- ['longitude',''],
|
|
|
- ['latitude',''],
|
|
|
- ['is_show',''],
|
|
|
- ],$request);
|
|
|
- $id = (int)$post["id"];
|
|
|
- if(empty($id)){
|
|
|
- return app('json')->fail("参数错误");
|
|
|
- }
|
|
|
- unset($post["id"]);
|
|
|
- $shopSave=[
|
|
|
- "name" => $post["name"],
|
|
|
- "tel" => $post["tel"],
|
|
|
- "address" => $post["address"],
|
|
|
- "lx_name" => $post["lx_name"],
|
|
|
- "longitude" => $post["longitude"],
|
|
|
- "latitude" => $post["latitude"],
|
|
|
- "is_show" => $post["is_show"]==1?1:0,
|
|
|
- ];
|
|
|
- if(empty($shopSave["name"])){
|
|
|
- return app('json')->fail("请输入门店名称");
|
|
|
- }
|
|
|
- if(empty($shopSave["tel"])){
|
|
|
- return app('json')->fail("请输入门店联系电话");
|
|
|
- }
|
|
|
- if(empty($shopSave["address"])){
|
|
|
- return app('json')->fail("请输入门店地址");
|
|
|
- }
|
|
|
- if(empty($shopSave["lx_name"])){
|
|
|
- return app('json')->fail("请输入门店联系人");
|
|
|
- }
|
|
|
- (new UserShopModel)->where("id",$id)->update($shopSave);
|
|
|
- return app('json')->success("数据保存成功");
|
|
|
-
|
|
|
- }
|
|
|
- public function shopList(Request $request){
|
|
|
- $pageSize = 50;
|
|
|
- $post = UtilService::getMore(
|
|
|
- [
|
|
|
- ['page', '1'],
|
|
|
- ['uid', ''],
|
|
|
- ['is_show', ''],
|
|
|
- ['mobile', ''],
|
|
|
- ['name', ''],
|
|
|
- ['pageSize', ''],
|
|
|
- ], $request);
|
|
|
- $where = [];
|
|
|
- if(!empty($post["pageSize"]) && $post["pageSize"]>50){
|
|
|
- $pageSize = (int)$post["pageSize"];
|
|
|
- }
|
|
|
- //用户
|
|
|
- if (!empty($post['uid'])){
|
|
|
- $where[]=["t.uid","=",$post['uid']];
|
|
|
- }else if (!empty($post['mobile'])) {
|
|
|
- $m = Db::name("user")->where("mobile",$post['mobile'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["t.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- if(is_numeric($post['is_show']) && in_array((string)$post['is_show'],['0','1'])) {
|
|
|
- $where[]=["t.is_show","=",(int)$post['is_show']];
|
|
|
- }
|
|
|
- if(!empty($post['name'])){
|
|
|
- $where[]=["t.name","like","%{$post['name']}%"];
|
|
|
- }
|
|
|
- $data = (new UserShopModel)
|
|
|
- ->alias("t")
|
|
|
- ->field("t.*,u.nickname as nickname,u.uip as uip")
|
|
|
- ->leftJoin("user u" , "u.uid = t.uid")
|
|
|
- ->where($where)
|
|
|
- ->page((int)$post["page"], $pageSize)
|
|
|
- ->order("t.id","desc")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $pageCount = (new UserShopModel)->alias("t")->where($where)->count();
|
|
|
- $result = UtilService::getParam(
|
|
|
- [
|
|
|
- 'id',
|
|
|
- 'uid',
|
|
|
- 'nickname',
|
|
|
- 'name',
|
|
|
- 'area',
|
|
|
- 'address',
|
|
|
- 'tel',
|
|
|
- 'lx_name',
|
|
|
- 'longitude',
|
|
|
- "latitude",
|
|
|
- 'is_show',
|
|
|
- ['time', 'time', function($item){
|
|
|
- return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
|
|
|
- }],
|
|
|
- ], $data);
|
|
|
- return app('json')->success([
|
|
|
- 'list' => $result,
|
|
|
- 'pageCount' => $pageCount,
|
|
|
- 'pageSize' => $pageSize,
|
|
|
- 'page' => $post['page'],
|
|
|
- ]);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 支付任务列表
|
|
|
- * @param \app\model\api\Request $request
|
|
|
- */
|
|
|
- public function payTradeList(Request $request){
|
|
|
- $pageSize = 50;
|
|
|
- $post = UtilService::getMore(
|
|
|
- [
|
|
|
- ['page', '1'],
|
|
|
- ['uid', ''],
|
|
|
- ['uip', ''],
|
|
|
- ['status', ''],
|
|
|
- ['mobile', ''],
|
|
|
- ['type', ''],
|
|
|
- ['pay_no', ''],
|
|
|
- ['order_id', ''],
|
|
|
- ['time', []],
|
|
|
- ], $request);
|
|
|
- $where = [];
|
|
|
- //用户
|
|
|
- if (!empty($post['uid'])){
|
|
|
- $where[]=["t.uid","=",$post['uid']];
|
|
|
- }else if (!empty($post['uip'])) {
|
|
|
- $m = Db::name("user")->where("uip",$post['uip'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["t.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }else if (!empty($post['mobile'])) {
|
|
|
- $m = Db::name("user")->where("mobile",$post['mobile'])->find();
|
|
|
- if(!empty($m)) {
|
|
|
- $where[]=["t.uid","=",$m['uid']];
|
|
|
- }
|
|
|
- }
|
|
|
- if(is_numeric($post['status']) && in_array((string)$post['status'],['0','1'])) {
|
|
|
- $where[]=["t.status","=",(int)$post['status']];
|
|
|
- }
|
|
|
- if(!empty($post['pay_type']) && in_array($post['pay_type'],['wxpay','system'])) {
|
|
|
- $where[]=["t.pay_type","=",$post['pay_type']];
|
|
|
- }
|
|
|
- if(!empty($post['type']) && in_array($post['type'],['pro','ip','activity'])) {
|
|
|
- $where[]=["t.type","=",$post['type']];
|
|
|
- }
|
|
|
- if(!empty($post['pay_no'])){
|
|
|
- $where[]=["t.pay_no","=",$post['pay_no']];
|
|
|
- }
|
|
|
- if(!empty($post['order_id'])){
|
|
|
- $where[]=["t.order_id","=",$post['order_id']];
|
|
|
- }
|
|
|
-
|
|
|
- $startTime = "";
|
|
|
- $endTime = "";
|
|
|
- if(!empty($post['time'][0]) && !empty($post['time'][1])) {
|
|
|
- $startTime = strtotime($post['time'][0]);
|
|
|
- $endTime = strtotime($post['time'][1]);
|
|
|
- $where[]=["t.time","between","{$startTime},{$endTime}"];
|
|
|
- }
|
|
|
- $data = (new PayTrade)
|
|
|
- ->alias("t")
|
|
|
- ->field("t.*,u.nickname as nickname,u.uip as uip,a.username as admin_name")
|
|
|
- ->leftJoin("user u" , "u.uid = t.uid")
|
|
|
- ->leftJoin("admin a", "a.id = t.admin_id")
|
|
|
- ->where($where)
|
|
|
- ->page((int)$post["page"], $pageSize)
|
|
|
- ->order("t.id","desc")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $pageCount = (new PayTrade)->alias("t")->where($where)->count();
|
|
|
- $result = UtilService::getParam(
|
|
|
- [
|
|
|
- 'id',
|
|
|
- 'uid',
|
|
|
- 'uip',
|
|
|
- 'nickname',
|
|
|
- "admin_id",
|
|
|
- "admin_name",
|
|
|
- 'pay_no',
|
|
|
- 'out_trade_no',
|
|
|
- 'pay_no',
|
|
|
- 'order_id',
|
|
|
- 'pay_type',
|
|
|
- 'type',
|
|
|
- 'money',
|
|
|
- 'content',
|
|
|
- "d_json",
|
|
|
- 'status',
|
|
|
- 'mono',
|
|
|
- ['time', 'time', function($item){
|
|
|
- return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
|
|
|
- }],
|
|
|
- ['pay_time' , 'pay_time', function($item){
|
|
|
- return empty($item) ? "--" : date("Y-m-d H:i:s",$item);
|
|
|
- }],
|
|
|
- ['pay_json', 'pay_json', function($item){
|
|
|
- if(empty($item)){
|
|
|
- return "";
|
|
|
- }
|
|
|
- $payData = json_decode($item,true);
|
|
|
- return $payData;
|
|
|
- }],
|
|
|
- ], $data);
|
|
|
- return app('json')->success([
|
|
|
- 'list' => $result,
|
|
|
- 'pageCount' => $pageCount,
|
|
|
- 'pageSize' => $pageSize,
|
|
|
- 'page' => $post['page'],
|
|
|
- ]);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 搜索交易数据
|
|
|
- * @param Request $request
|
|
|
- */
|
|
|
- public function searchPayTrade(Request $request){
|
|
|
- $post = UtilService::getMore(
|
|
|
- [
|
|
|
- ['id', '','empty',''],
|
|
|
- ], $request);
|
|
|
- $data = (new PayTrade)->where("id",$post["id"])->find();
|
|
|
- if(empty($data)){
|
|
|
- return app("json")->fail("数据不存在");
|
|
|
- }
|
|
|
- if($data["status"]==1 && !empty($data["pay_json"])){
|
|
|
- return app("json")->success("交易支付成功", json_decode($data["pay_json"],true));
|
|
|
- }
|
|
|
- $out_trade_no = $data["out_trade_no"];
|
|
|
- //微信支付
|
|
|
- if($data["pay_type"]=="wxpay"){
|
|
|
- $wxpay = new wxpayApi();
|
|
|
- $res = $wxpay->searchOrder($out_trade_no);
|
|
|
- if(empty($res)){
|
|
|
- return app("json")->fail("查询失败:".$wxpay->errorMsg);
|
|
|
- }
|
|
|
- $resAr = json_decode($res,true);
|
|
|
- if(empty($resAr) || !is_array($resAr)){
|
|
|
- return app("json")->fail("查询失败");
|
|
|
- }
|
|
|
- if(empty($resAr["trade_state"])){
|
|
|
- return app("json")->fail("查询状态错误");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="NOTPAY"){
|
|
|
- return app("json")->fail("未支付");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="REFUND"){
|
|
|
- return app("json")->fail("转入退款");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="CLOSED"){
|
|
|
- return app("json")->fail("已关闭");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="REVOKED"){
|
|
|
- return app("json")->fail("已撤销(付款码支付)");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="USERPAYING"){
|
|
|
- return app("json")->fail("用户支付中(付款码支付)");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="PAYERROR"){
|
|
|
- return app("json")->fail("支付失败(其他原因,如银行返回失败)");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="ACCEPT"){
|
|
|
- return app("json")->fail("已接收,等待扣款");
|
|
|
- }
|
|
|
- if($resAr["trade_state"]=="SUCCESS"){
|
|
|
- if(empty($resAr["amount"]) || empty($resAr["amount"]["total"])){
|
|
|
- return app("json")->fail("交易支付成功,但是查询金额信息");
|
|
|
- }
|
|
|
- $returnData = [
|
|
|
- 'totalMoney' =>$resAr["amount"]["total"]/100,
|
|
|
- 'payMoney' =>empty($resAr["amount"]["payer_total"])?'未返回':$resAr["amount"]["payer_total"]/100,
|
|
|
- 'payTradeNo' =>$resAr["transaction_id"],
|
|
|
- 'outTradeNo' =>$resAr["out_trade_no"],
|
|
|
- "tradeStatus"=>$resAr["trade_state"],
|
|
|
- "payTime" =>$resAr["success_time"],
|
|
|
- ];
|
|
|
- $save=[
|
|
|
- "status"=>1,
|
|
|
- "pay_json"=>json_encode($returnData),
|
|
|
- ];
|
|
|
- if(!empty($returnData["payTime"])){
|
|
|
- $save["pay_time"] = strtotime($returnData["payTime"]);
|
|
|
- }
|
|
|
- (new PayTrade)->where("id",$post["id"])->save($save);
|
|
|
- $saveOrderModel = null;
|
|
|
- if(!empty($data["o_id"]) && $data["status"]!=1){
|
|
|
- if($data["type"]=="activity"){
|
|
|
- $saveOrderModel = new ActivityOrderModel();
|
|
|
- }
|
|
|
- if($data["type"]=="pro" || $data["type"]=="ip"){
|
|
|
- $saveOrderModel = new OrderModel();
|
|
|
- }
|
|
|
- }
|
|
|
- if(!empty($saveOrderModel)){
|
|
|
- $orderData = $saveOrderModel->where("id",$data["o_id"])->find();
|
|
|
- if(!empty($orderData) && $orderData["status"]<1){
|
|
|
- $saveOrderModel->where("id",$data["o_id"])->update(["status"=>1,"pay_time"=>$save["pay_time"]]);
|
|
|
- }
|
|
|
- }
|
|
|
- return app("json")->success("交易支付成功",$returnData);
|
|
|
- }
|
|
|
- return app("json")->fail("支付状态未知");
|
|
|
- }
|
|
|
- return app("json")->fail("查询失败");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-}
|