MySQL - 信贷业务报表

表结构与字段解释

注册表 u_user
  • id:自增主键,唯一标识用户。
  • username:用户名。
  • mobile:手机号。
  • password:用户密码。
  • nickname:用户昵称。
  • role_type:角色类型(-1:普通用户)。
  • type:用户类型(0:借款用户, 1: 资金账户用户)。
  • status:用户状态。
  • on_off:开关(0:关闭, 1:开启)。
  • inserttime:插入时间。
  • updatetime:更新时间。
  • isactive:逻辑删除标识(1: 有效)。
用户信息表 u_personal_info
  • id:自增主键。
  • user_id:用户ID。
  • loan_purpose:借款目的。
  • sex:性别(0:男 1:女)。
  • birthdate:出生日期。
  • birthplace:出生地。
  • religion:宗教。
  • education:教育程度。
  • nation:民族。
  • tribe:部落。
  • living_state:居住状态。
  • province:居住省。
  • city:居住市。
  • district:居住区。
  • address:居住详细地址。
  • children_number:孩子数量。
  • number_of_provide:需供养人数。
  • phone_use_duration:当前手机使用时长。
  • address_live_duration:当前地址居住时长。
  • credit_card_number:信用卡数量。
  • house_status:住房状态。
  • other_phone_no:其他电话号码。
  • email:邮箱。
  • zalo_id:Zalo ID。
  • facebook_id:Facebook ID。
  • inserttime:插入时间。
  • updatetime:更新时间。
  • isactive:逻辑删除标识(1: 不删除)。
  • app_version:应用版本。
借款表 loan_list
  • id:自增主键。
  • borrower_id:借款人ID。
  • apply_amount:用户申请的额度。
  • period_no:期数。
  • term_quantity:每期贷款时长。
  • term_unit:时长单位。
  • product_id:产品ID。
  • prod_type:产品类型(1=PDL, 2=INSTALLMENT)。
  • interest:利息。
  • interest_rate:借款利率。
  • service_fee:应收服务费。
  • service_fee_discount:服务费优惠减免。
  • service_rate:借款服务费率。
  • service_fee_type:服务费是否分期(1是不分,2是分)。
  • overdue_penalty_rate:逾期罚息费率。
  • overdue_notify_rate:逾期催收费率。
  • overdue_fixed_charge:滞纳金。
  • withdraw_adjust_amount:提现调整金额。
  • status:标的状态。
  • stage:生命周期阶段。
  • current_stage_status:当前生命周期状态。
  • list_title:列表标题。
  • list_desc:列表描述。
  • ass_type:攒标类型。
  • agreement_id:借款协议ID。
  • loan_title:借款标题。
  • loan_purpose_code:借款目的代码。
  • audit_time:审核时间。
  • full_bid_time:成标时间。
  • effective_time:生效时间。
  • inserttime:插入时间。
  • updatetime:更新时间。
  • isactive:逻辑删除标识。
  • risk_pass_time:风控通过时间。
  • amount:借款金额。
  • risk_level:风险等级。
  • result:结果。
放款表 loan_debt
  • id:自增主键。
  • list_id:标的ID。
  • list_amount:标的金额。
  • agreement_id:借款协议ID。
  • borrower_id:借款人ID。
  • due_date:应还时间。
  • period_no:分期期数。
  • period_seq:第几期。
  • principal:本金。
  • interest:利息。
  • service_fee:服务费。
  • pre_service_fee:前置服务费。
  • penalty_fee:罚息。
  • overdue_notify_fee:催收费。
  • amount:债务总额。
  • status:债务状态。
  • repay_code_status:还款码状态。
  • repay_code_time:还款码时间。
  • owing_principal:未付本金。
  • owing_interest:未付利息。
  • owing_service_fee:未付服务费。
  • owing_penalty_fee:未付罚息。
  • owing_overdue_notify_fee:未付催费。
  • overdue_day:违约天数。
  • owing_amount:未付债务总额。
  • payment_time:还款时间。
  • payment_amount:已付总额。
  • overdue_fixed_charge:滞纳金。
  • user_actual_payment_time:用户实际还款时间。
  • version:版本。
  • inserttime:插入时间。
  • updatetime:更新时间。
  • isactive:逻辑删除标识。
  • init_due_date:初始应还时间。
  • delay_count:成功展期次数。
还款表 tb_repayment_slave_order
  • id:自增主键。
  • master_order_id:主订单ID。
  • borrower_id:借款人ID。
  • debt_id:债务ID。
  • principal:还款中的本金。
  • interest:还款中的利息。
  • penalty_fee:还款中的罚息。
  • overdue_notify_fee:还款中的催费。
  • service_fee:还款中的手续费。
  • inserttime:插入时间。
  • updatetime:更新时间。
  • isactive:逻辑删除标识(1: 未删除)。

业务分析及SQL

贷款管理
  1. 查询所有借款成功且放款的用户信息,包括用户名、手机号、借款金额、借款期数。
SELECT u.username, u.mobile, l.apply_amount, l.period_no
FROM u_user u
JOIN loan_list l ON u.id = l.borrower_id
WHERE l.stage >= 70 AND l.isactive = 1;
  1. 查询某一时间段内所有申请的借款记录及其审核状态。
SELECT l.borrower_id, l.apply_amount, l.status, l.audit_time
FROM loan_list l
WHERE l.inserttime BETWEEN '2024-01-01' AND '2024-01-31';
  1. 查询所有分期贷款(prod_type=2)的总金额和平均利率。
SELECT SUM(l.apply_amount) AS total_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM loan_list l
WHERE l.prod_type = 2;
  1. 查询用户每次借款的还款状态和逾期天数。
SELECT l.borrower_id, d.status, d.overdue_day
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE l.isactive = 1;
  1. 查询所有未还款的借款列表及其应还金额。
SELECT l.id, l.borrower_id, d.owing_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE d.status = 0;
客户分析
  1. 查询每个省的借款用户数量。
SELECT p.province, COUNT(*) AS user_count
FROM u_personal_info p
GROUP BY p.province;
  1. 查询各年龄段的用户借款分布情况。
SELECTCASEWHEN TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) BETWEEN 18 AND 25 THEN '18-25'WHEN TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) BETWEEN 26 AND 35 THEN '26-35'WHEN TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) BETWEEN 36 AND 45 THEN '36-45'WHEN TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) > 45 THEN '46+'ELSE 'unknown'END AS age_group,COUNT(*) AS user_count
FROM u_personal_info p
JOIN u_user u ON p.user_id = u.id
GROUP BY age_group;
  1. 查询所有借款用户的平均借款金额及其借款次数。
SELECT l.borrower_id, AVG(l.apply_amount) AS avg_amount, COUNT(*)AS loan_count
FROM loan_list l
GROUP BY l.borrower_id;
  1. 查询拥有信用卡数量超过3张的用户信息。
SELECT p.user_id, p.credit_card_number
FROM u_personal_info p
WHERE p.credit_card_number > 3;
  1. 查询所有女性用户的借款情况。
SELECT p.user_id, l.apply_amount, l.status
FROM u_personal_info p
JOIN loan_list l ON p.user_id = l.borrower_id
WHERE p.sex = '1';
交易分析
  1. 查询每月的借款申请总金额。
SELECT DATE_FORMAT(l.inserttime, '%Y-%m') AS month, SUM(l.apply_amount) AS total_amount
FROM loan_list l
GROUP BY month;
  1. 查询每个借款产品的申请总金额和平均利率。
SELECT l.product_id, SUM(l.apply_amount) AS total_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM loan_list l
GROUP BY l.product_id;
  1. 查询每个借款产品的借款用户数量。
SELECT l.product_id, COUNT(DISTINCT l.borrower_id) AS user_count
FROM loan_list l
GROUP BY l.product_id;
  1. 查询每个省的借款总金额和平均利率。
SELECT p.province, SUM(l.apply_amount) AS total_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM u_personal_info p
JOIN loan_list l ON p.user_id = l.borrower_id
GROUP BY p.province;
  1. 查询每月的还款总金额。
SELECT DATE_FORMAT(d.payment_time, '%Y-%m') AS month, SUM(d.payment_amount) AS total_amount
FROM loan_debt d
GROUP BY month;
风险管理
  1. 查询逾期超过30天的用户及其逾期天数。
SELECT l.borrower_id, d.overdue_day
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE d.overdue_day > 30;
  1. 查询每个风险等级的借款总金额和逾期金额。
SELECT l.risk_level, SUM(l.apply_amount) AS total_loan_amount, SUM(d.owing_amount) AS total_overdue_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE d.status = 3
GROUP BY l.risk_level;
  1. 查询每个用户的逾期记录及其逾期总金额。
SELECT l.borrower_id, SUM(d.owing_amount) AS total_overdue_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE d.status = 3
GROUP BY l.borrower_id;
  1. 查询某一时间段内的逾期贷款总金额。
SELECT SUM(d.owing_amount) AS total_overdue_amount
FROM loan_debt d
WHERE d.due_date BETWEEN '2024-01-01' AND '2024-01-31' AND d.status = 3;
  1. 查询每个产品的逾期率。
SELECT l.product_id, COUNT(*) AS total_loans, SUM(CASE WHEN d.status = 3 THEN 1 ELSE 0 END) AS overdue_loans, (SUM(CASE WHEN d.status = 3 THEN 1 ELSE 0 END) / COUNT(*)) * 100 AS overdue_rate
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.product_id;
财务绩效
  1. 查询每月的利息收入总金额。
SELECT DATE_FORMAT(d.payment_time, '%Y-%m') AS month, SUM(d.interest) AS total_interest
FROM loan_debt d
GROUP BY month;
  1. 查询每个借款产品的服务费收入总金额。
SELECT l.product_id, SUM(d.service_fee) AS total_service_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.product_id;
  1. 查询每个用户的累计借款金额和累计还款金额。
SELECT l.borrower_id, SUM(l.apply_amount) AS total_loan_amount, SUM(d.payment_amount) AS total_payment_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每个借款期数的平均利息和服务费。
SELECT l.period_no, AVG(d.interest) AS avg_interest, AVG(d.service_fee) AS avg_service_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.period_no;
  1. 查询每个用户的逾期罚息收入。
SELECT l.borrower_id, SUM(d.penalty_fee) AS total_penalty_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
WHERE d.status = 3
GROUP BY l.borrower_id;
  1. 查询每月的罚息收入总金额。
SELECT DATE_FORMAT(d.payment_time, '%Y-%m') AS month, SUM(d.penalty_fee) AS total_penalty_fee
FROM loan_debt d
GROUP BY month;
  1. 查询每个借款产品的平均贷款时长和平均服务费率。
SELECT l.product_id, AVG(l.term_quantity) AS avg_term_quantity, AVG(l.service_rate) AS avg_service_rate
FROM loan_list l
GROUP BY l.product_id;
  1. 查询每个借款期数的平均还款金额和未还金额。
SELECT l.period_no, AVG(d.payment_amount) AS avg_payment_amount, AVG(d.owing_amount) AS avg_owing_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.period_no;
  1. 查询所有借款用户的总借款金额和总还款金额。
SELECT SUM(l.apply_amount) AS total_loan_amount, SUM(d.payment_amount) AS total_payment_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id;
  1. 查询每个风险等级的总借款金额和平均利率。
SELECT l.risk_level, SUM(l.apply_amount) AS total_loan_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM loan_list l
GROUP BY l.risk_level;
综合分析
  1. 查询每个用户的借款次数、总借款金额及其平均借款金额。
SELECT l.borrower_id, COUNT(*) AS loan_count, SUM(l.apply_amount) AS total_loan_amount, AVG(l.apply_amount) AS avg_loan_amount
FROM loan_list l
GROUP BY l.borrower_id;
  1. 查询每个借款用户的还款次数、总还款金额及其平均还款金额。
SELECT d.borrower_id, COUNT(*) AS payment_count, SUM(d.payment_amount) AS total_payment_amount, AVG(d.payment_amount) AS avg_payment_amount
FROM loan_debt d
GROUP BY d.borrower_id;
  1. 查询每月的借款申请数量和借款成功数量。
SELECT DATE_FORMAT(l.inserttime, '%Y-%m') AS month, COUNT(*) AS apply_count, SUM(CASE WHEN l.stage >= 70 THEN 1 ELSE 0 END) AS success_count
FROM loan_list l
GROUP BY month;
  1. 查询每个产品的逾期用户数量及其逾期率。
SELECT l.product_id, COUNT(DISTINCT CASE WHEN d.status = 3 THEN d.borrower_id ELSE NULL END) AS overdue_user_count, (COUNT(DISTINCT CASE WHEN d.status = 3 THEN d.borrower_id ELSE NULL END) / COUNT(DISTINCT l.borrower_id)) * 100 AS overdue_rate
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.product_id;
  1. 查询每个用户的累计借款金额、累计还款金额及其还款率。
SELECT l.borrower_id, SUM(l.apply_amount) AS total_loan_amount, SUM(d.payment_amount) AS total_payment_amount, (SUM(d.payment_amount) / SUM(l.apply_amount)) * 100 AS payment_rate
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每个用户的平均借款金额及其利率。
SELECT l.borrower_id, AVG(l.apply_amount) AS avg_loan_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM loan_list l
GROUP BY l.borrower_id;
  1. 查询每个用户的累计服务费收入。
SELECT l.borrower_id, SUM(d.service_fee) AS total_service_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每月的逾期贷款数量及其总金额。
SELECT DATE_FORMAT(d.due_date, '%Y-%m') AS month, COUNT(*) AS overdue_loan_count, SUM(d.owing_amount) AS total_overdue_amount
FROM loan_debt d
WHERE d.status = 3
GROUP BY month;
  1. 查询每个借款期数的平均还款金额及其逾期金额。
SELECT l.period_no, AVG(d.payment_amount) AS avg_payment_amount, AVG(CASE WHEN d.status = 3 THEN d.owing_amount ELSE 0 END) AS avg_overdue_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.period_no;
  1. 查询每个用户的累计罚息收入。
SELECT l.borrower_id, SUM(d.penalty_fee) AS total_penalty_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每个借款产品的累计借款金额及其利率。
SELECT l.product_id, SUM(l.apply_amount) AS total_loan_amount, AVG(l.interest_rate) AS avg_interest_rate
FROM loan_list l
GROUP BY l.product_id;
  1. 查询每个借款产品的累计服务费收入及其服务费率。
SELECT l.product_id, SUM(d.service_fee) AS total_service_fee, AVG(d.service_fee / d.list_amount) * 100 AS avg_service_rate
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.product_id;
  1. 查询每个用户的累计借款金额、累计还款金额及其逾期金额。
SELECT l.borrower_id, SUM(l.apply_amount) AS total_loan_amount, SUM(d.payment_amount) AS total_payment_amount, SUM(CASE WHEN d.status = 3 THEN d.owing_amount ELSE 0 END) AS total_overdue_amount
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每个用户的累计借款金额及其平均借款金额。
SELECT l.borrower_id, SUM(l.apply_amount) AS total_loan_amount, AVG(l.apply_amount) AS avg_loan_amount
FROM loan_list l
GROUP BY l.borrower_id;
  1. 查询每个用户的累计还款金额及其平均还款金额。
SELECT d.borrower_id, SUM(d.payment_amount) AS total_payment_amount, AVG(d.payment_amount) AS avg_payment_amount
FROM loan_debt d
GROUP BY d.borrower_id;
  1. 查询每个用户的累计罚息收入及其平均罚息。
SELECT l.borrower_id, SUM(d.penalty_fee) AS total_penalty_fee, AVG(d.penalty_fee) AS avg_penalty_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每个借款产品的累计逾期金额及其逾期率。
SELECT l.product_id, SUM(CASE WHEN d.status = 3 THEN d.owing_amount ELSE 0 END) AS total_overdue_amount, (SUM(CASE WHEN d.status = 3 THEN d.owing_amount ELSE 0 END) / SUM(l.apply_amount)) * 100 AS overdue_rate
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.product_id;
  1. 查询每个用户的累计服务费收入及其平均服务费。
SELECT l.borrower_id, SUM(d.service_fee) AS total_service_fee, AVG(d.service_fee) AS avg_service_fee
FROM loan_list l
JOIN loan_debt d ON l.id = d.list_id
GROUP BY l.borrower_id;
  1. 查询每月的累计借款金额及其平均借款金额。
SELECT DATE_FORMAT(l.inserttime, '%Y-%m') AS month, SUM(l.apply_amount) AS total_loan_amount, AVG(l.apply_amount) AS avg_loan_amount
FROM loan_list l
GROUP BY month;
  1. 查询每个省的累计借款金额及其逾期金额。
SELECT p.province, SUM(l.apply_amount) AS total_loan_amount, SUM(CASE WHEN d.status = 3 THEN d.owing_amount ELSE 0 END) AS total_overdue_amount
FROM u_personal_info p
JOIN loan_list l ON p.user_id = l.borrower_id
JOIN loan_debt d ON l.id = d.list_id
GROUP BY p.province;

更多问题咨询

Cos机器人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS 源码概述

FreeRTOS 目录结构 使用 STM32CubeMX 创建的 FreeRTOS 工程中,FreeRTOS 相关的源码如下: 主要涉及2个目录: Core Inc 目录下的 FreeRTOSConfig.h 是配置文件 Src 目录下的 freertos.c 是 STM32CubeMX 创建的默认任务 Middlewares\Third_Party…

mac M3芯片 goland 2022.1 断点调试失败(frames are not available)问题,亲测有效

遇到如上问题,解法 步骤1:下载dlv文件 执行 go install github.com/go-delve/delve/cmd/dlvlatest 然后在 $GOPATH/bin里发现多了一个dlv文件 (找不到gopath? 执行 go env 可以看到) 步骤2:配置dlv 将这个dlv文件移到 /Applications/G…

go recover

recover 可以中止 panic 造成的程序崩溃。它是一个只能在 defer 中发挥作用的函数,在其他作用域中调用不会发挥作用。 // A _panic holds information about an active panic. // // A _panic value must only ever live on the stack. // // The argp and link fi…

【前端学习——react坑】useState使用

问题 使用useState 时,例如 const [selectedId, setSelectedId] useState([false,true,false]);这样直接利用,无法引发使用selectedId状态的组件的变化,但是selectedId是修改了的 let tempselectedId;temp[toggledId]selectedId[toggledId…

Cloudflare Worker 部署bingai

Cloudflare Worker 部署 1. 注册 Cloudflare 账号 2. 一键部署 登录账户后, 点击下面链接 https://deploy.workers.cloudflare.com/?urlhttps://github.com/Harry-zklcdc/go-proxy-bingai 点击「Authorize Workers」, 登录 Github 账号授权 Cloudflare 点击「I have a ac…

Flutter 中的 Tooltip 小部件:全面指南

Flutter 中的 Tooltip 小部件:全面指南 在用户界面设计中,提示信息是一种常见的交互元素,用于向用户提供额外的信息或对界面元素的说明。Flutter 的 Tooltip 小部件正是为此目的而设计,它在用户长按或悬停在某个元素上时显示一段…

React18+TypeScript搭建通用中后台项目实战03 自定义加载状态组件

拦截器 请求拦截器 修改 src/api/request.ts 核心代码: req.interceptors.request.use(// 拦截配置并更新配置config > {// 获取登录tokenconst token localStorage.getItem("token")// 使用 JWT Tokenif (token) {config.headers.Authorization …

kubernetes集群pod理论介绍

前言 在 Kubernetes 中,Pod 是最小的可部署单元,它是一个或多个容器的集合,这些容器共享网络和存储资源,并在同一主机上运行。在本文中,我们将进一步探讨 Kubernetes 集群中的 Pod,包括 Pod 的定义、调度管…

C++成员函数 - 析构函数

析构函数 析构函数 是特殊的成员函数,其 特征 如下: 1. 析构函数名是在类名前加上字符 ~ 。 2. 无参数无返回值类型。 3. 一个类只能有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。注意:析构函数不能重 载 …

组成aim的方法数2(无限多张)

题目描述:arr是面值数组,其中的值都是正数且没有重复,再给定一个正数aim,每个值都认为是一种面值,且认为张数是无线的,返回组成aim的方法数。例如,arr[1,2],aim4,方法有&…

Mysql基础(七)DQL之select 语句(二)

一 select 语句续 WHERE子句后面跟着的是一个或多个条件,用于指定需要检索的行COUNT(): 多少条数据 where 11 和 count(1) 与 count(*) count(1)、count(*)和count(指定字段)之间的区别 ① order by 排序 mysql 之数据排序扩展 1、使用 order by 语句来实现排序2、排序可…

洛谷P3574 [POI2014] FAR-FarmCraft(树形dp)

洛谷 P 3574 [ P O I 2014 ] F A R − F a r m C r a f t (树形 d p ) \Huge{洛谷P3574 [POI2014] FAR-FarmCraft(树形dp)} 洛谷P3574[POI2014]FAR−FarmCraft(树形dp) 文章目录 题意题目说明 思路标程 题目…

nuxt: generate打包后访问资源404问题

现象 使用Nuxt.js开发的个人页面,部署到nginx服务器中,/_nuxt/*.js、/_nuxt/*.css等静态问题不能访问,提示404错误。 而我们的这些资源文件是存在的。 解决方法 加上此处代码进行上下文配置 baseURL: /nuxt/ 此时在nginx配置 /nuxt 代理 lo…

【Maven打包将resources/lib/下的jar也打包进jar包中】

Maven打包将resources/lib/下的jar也打包进jar包中 &#xff01;&#xff01;&#xff01;少走弯路 第一步 resources/lib/下引入jar ftp4j-1.7.2.jar替换为自己jar包的名称 <dependency><groupId>it.sauronsoftware.ftp4j</groupId><artifactId>ft…

张大哥笔记:穷人都在拼命挣钱,而富人都在努力让自己更值钱

最近行业大佬&#xff0c;纷纷网红化&#xff0c;比如周鸿祎&#xff0c;雷军&#xff0c;刘强东纷纷下场&#xff01; 大佬当网红&#xff0c;图啥&#xff1f;当然是图钱了。 大佬都很精的&#xff0c;他们老早就运用媒体的传播杠杆&#xff0c;把自己热度炒起来。 在不断…

hyperf 多对多关联模型

这里使用到三张表&#xff0c;一张是用户&#xff08;users&#xff09;&#xff0c;一张是角色(roles)&#xff0c;一张是用户角色关联表(users_roles)&#xff0c; 首先创建用户模型、角色模型 php bin/hyperf.php gen:model users php bin/hyperf.php gen:model rolesusers…

屎山代码SSM转换Springboot

SSM项目转Springboot项目 最近很多人可能是在网上买的那种屎山代码&#xff0c;数据库都是拼音的那种 比如项目如下所示&#xff1a; 这种屎山代码我改过太多了&#xff0c;很多人可能无从下手&#xff0c;因为代码结构太混乱了&#xff0c;但是我改过太多这种代码&#xff0…

[BT]小迪安全2023学习笔记(第29天:Web攻防-SQL盲注)

第29天 盲注 基于布尔 ?id1 and length(database())7通过AND&#xff0c;当数据库名字长度等于7时返回正常页面&#xff0c;否则返回其他&#xff08;或错误&#xff09;页面 其他函数&#xff1a; left(databse(),a)&#xff1a;截取数据库名的左侧前a位字符 substr(a,b,c…

Spring Boot:将文件推送到 FTP 服务器

在企业应用中&#xff0c;将文件推送到 FTP 服务器是一个常见的需求。本文将介绍如何在 Spring Boot 项目中实现将文件推送到 FTP 服务器&#xff0c;包括引入依赖、自定义配置和编写代码示例。 1. 引入依赖 首先&#xff0c;在 Spring Boot 项目的 pom.xml 文件中引入 Apach…

QGraphicsView中鼠标位置图像缩放时不变

设置QGraphicsView的变换锚和调整尺寸锚到鼠标下面的操作&#xff0c;是一个很常见的模式&#xff0c;尤其在实现图形视图的缩放和滚动功能时。这两行代码的作用是提高用户与图形界面交互的直观性和效率。 setTransformationAnchor(QGraphicsView::AnchorUnderMouse)&#xff1…