$avatar, 'real_name' => $params['real_name'], 'nickname' => $params['nickname'], 'account' => $params['account'], 'password' => $password, 'mobile' => $params['mobile'], 'sex' => $params['sex'], 'is_disable' => $params['is_disable'], ]); Db::commit(); return $res; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } public static function StoreAdd(array $params) { $user_ship=$params['user_ship']??0; if($user_ship==2){ if(!isset($params['village'])){ self::setError('请设置村参数'); return false; } $arr=User::where('user_ship',$user_ship)->column('id'); if($arr){ $find=UserAddress::where('uid','in',$arr)->where('village',$params['village'])->find(); if($find){ self::setError('该区域已有村长请重新选择'); return false; } } }elseif($user_ship==3){ if(!isset($params['brigade'])){ self::setError('请设置队参数'); return false; } $arr=User::where('user_ship',$user_ship)->column('id'); if($arr){ $find=UserAddress::where('uid','in',$arr)->where('village',$params['village'])->where('brigade',$params['brigade'])->find(); if($find){ self::setError('该区域已有队长请重新选择'); return false; } } } $passwordSalt = Config::get('project.unique_identification'); $password = create_password(123456, $passwordSalt); $defaultAvatar = config('project.default_image.admin_avatar'); $avatar = !empty($params['avatar']) ? FileService::setFileUrl($params['avatar']) : $defaultAvatar; Db::startTrans(); try { $data=[ 'avatar' => $avatar, 'real_name' => $params['real_name']??"", 'nickname' => '用户'.time(), 'account' => $params['mobile'], 'password' => $password, 'mobile' => $params['mobile'], 'label_id' => $params['label_id']??0, 'store_id' => $params['store_id']??0, ]; if(isset($params['user_ship']) &&$params['user_ship']==4){ $data['user_ship']=4; } $res=User::create($data); UserCreateLog::create([ 'uid' => $res['id'], 'create_uid' => $params['create_uid']??0, 'store_id' => $params['store_id']??0, 'staff_id' => $params['staff_id']??0, 'user_ship' => $data['user_ship']??0, ]); UserAddress::create([ 'uid' => $res['id'], 'real_name' => $params['real_name']??"", 'mobile' => $params['mobile']??'', 'province' => $params['province']??'', 'city' => $params['city']??'', 'area' => $params['area']??'', 'street' => $params['street']??'', 'village' => $params['village']??'', 'brigade' => $params['brigade']??'', 'is_default' => 1, ]); Db::commit(); return $res; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑用户列表 * @param array $params * @return bool * @author likeadmin * @date 2024/04/25 10:20 */ public static function edit(array $params): bool { Db::startTrans(); try { User::where('id', $params['id'])->update([ // 'avatar' => $params['avatar'] ?? '', // 'real_name' => $params['real_name'], // 'nickname' => $params['nickname'], // 'account' => $params['account'], // 'password' => $params['password'] ?? '', // 'mobile' => $params['mobile'] ?? '', // 'sex' => $params['sex'] ?? 0, // 'is_disable' => $params['is_disable'] ?? 0, 'label_id'=>$params['label_id'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 用户详情 * @param int $userId * @return array * @author 乔峰 * @date 2022/9/22 16:32 */ public static function detail(int $userId): array { $field = [ 'id', 'account', 'nickname', 'avatar', 'real_name','integral','label_id','user_ship', 'sex', 'mobile', 'create_time', 'login_time', 'channel','now_money','purchase_funds' ]; $user = User::where(['id' => $userId])->field($field) ->findOrEmpty(); $user['channel'] = UserTerminalEnum::getTermInalDesc($user['channel']); $user->sex = $user->getData('sex'); $user['number']=StoreFinanceFlow::where('other_uid',$userId)->where(['status'=>0,'financial_pm'=>1,'type'=>1])->sum('number'); $user['user_ship_name']=$user->user_ship>0?UserShip::where('id',$user->user_ship)->value('title'):"一般用户"; return $user->toArray(); } /** * @notes 更新用户信息 * @param array $params * @return User * @author 乔峰 * @date 2022/9/22 16:38 */ public static function setUserInfo(array $params) { return User::update([ 'id' => $params['id'], $params['field'] => $params['value'] ]); } public static function dealDetails($params) { switch ($params['type']){ case 1: //采购款明细 $categories = ['user_balance_recharge', 'user_order_purchase_pay','system_purchase_add','user_balance_recharge_refund']; $query = CapitalFlow::where('uid', $params['id']) ->whereIn('category', $categories); $count = $query->count(); $data = $query ->page($params['page_no'],$params['page_size']) ->order('id','desc') ->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'); } } break; case 2: //余额明细 $category = ['system_balance_add','user_order_balance_pay']; $query = CapitalFlow::where('uid', $params['id']) ->whereIn('category', $category); $count = $query->count(); $data = $query ->page($params['page_no'],$params['page_size']) ->order('id','desc') ->select()->toArray(); foreach ($data as &$value){ $value['order_sn'] = StoreOrder::where('id',$value['link_id'])->value('order_id'); } break; case 3: //礼品券明细 $query = UserSign::where(['uid'=>$params['id']]); $count = $query->count(); $data =$query ->page($params['page_no'],$params['page_size']) ->order('id','desc') ->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']) ->order('id','desc') ->select()->toArray(); break; default: $data = []; $count = 0; } return [ 'lists' => $data, 'count' => $count ]; } public static function giftList($uid,$params) { $query = StoreProductGift::with(['store','user','goodsName'])->where('uid',$uid); $count = $query->count(); $list = $query->page($params['page_no'],$params['page_size']) ->order('id','desc') ->select()->toArray(); return [ 'lists' => $list, 'count' => $count ]; } }