You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

133 lines
5.2 KiB

// 查询用户入驻相关数据
require('dotenv').config();
const { Sequelize } = require('sequelize');
// 创建数据库连接
const sequelize = new Sequelize(
process.env.DB_DATABASE || 'wechat_app',
process.env.DB_USER || 'root',
process.env.DB_PASSWORD === undefined ? null : process.env.DB_PASSWORD,
{
host: process.env.DB_HOST || 'localhost',
port: process.env.DB_PORT || 3306,
dialect: 'mysql',
timezone: '+08:00'
}
);
async function checkSettlementData() {
try {
await sequelize.authenticate();
console.log('✅ 数据库连接成功\n');
// 1. 查询所有用户的基本信息和入驻状态
console.log('=== 用户入驻状态检查 ===\n');
const users = await sequelize.query(`
SELECT
id, userId, openid, name, phoneNumber, type,
collaborationid, cooperation, company,
province, city, district, detailedaddress,
businesslicenseurl, proofurl, brandurl,
partnerstatus, reasonforfailure,
created_at, updated_at
FROM users
ORDER BY updated_at DESC
LIMIT 50
`, { type: Sequelize.QueryTypes.SELECT });
console.log(`找到 ${users.length} 个用户记录\n`);
// 2. 按入驻状态分组统计
const statusCount = {};
users.forEach(u => {
const status = u.partnerstatus || '未申请';
statusCount[status] = (statusCount[status] || 0) + 1;
});
console.log('📊 入驻状态统计:');
Object.entries(statusCount).forEach(([status, count]) => {
console.log(` ${status}: ${count}`);
});
console.log();
// 3. 显示每个用户的详细信息
console.log('👥 用户详细信息:');
console.log('='.repeat(100));
users.forEach((user, index) => {
console.log(`\n【用户 ${index + 1}`);
console.log(` ID: ${user.id}`);
console.log(` userId: ${user.userId}`);
console.log(` openid: ${user.openid ? user.openid.substring(0, 20) + '...' : '空'}`);
console.log(` 姓名: ${user.name || '空'}`);
console.log(` 手机号: ${user.phoneNumber || '空'}`);
console.log(` 用户类型: ${user.type || '空'}`);
console.log(` ───── 入驻信息 ─────`);
console.log(` 合作商身份(collaborationid): ${user.collaborationid || '空'}`);
console.log(` 合作模式(cooperation): ${user.cooperation || '空'}`);
console.log(` 公司名称(company): ${user.company || '空'}`);
console.log(` 省份: ${user.province || '空'}`);
console.log(` 城市: ${user.city || '空'}`);
console.log(` 区县: ${user.district || '空'}`);
console.log(` 详细地址: ${user.detailedaddress || '空'}`);
console.log(` 营业执照: ${user.businesslicenseurl ? '已上传' : '空'}`);
console.log(` 证明材料: ${user.proofurl ? '已上传' : '空'}`);
console.log(` 品牌授权: ${user.brandurl ? '已上传' : '空'}`);
console.log(` ───── 审核状态 ─────`);
console.log(` 入驻状态(partnerstatus): ${user.partnerstatus || '空'}`);
console.log(` 失败原因: ${user.reasonforfailure || '空'}`);
console.log(` 创建时间: ${user.created_at}`);
console.log(` 更新时间: ${user.updated_at}`);
});
// 4. 特别检查有openid但partnerstatus为空的记录
console.log('\n\n=== 重点检查:已登录但未提交入驻的用户 ===\n');
const notApplied = users.filter(u => u.openid && !u.partnerstatus);
console.log(`${notApplied.length} 个用户已登录但未提交入驻申请`);
if (notApplied.length > 0) {
console.log('\n这些用户的openid:');
notApplied.forEach(u => {
console.log(` - userId: ${u.userId}, openid: ${u.openid.substring(0, 30)}...`);
});
}
// 5. 检查是否有审核中的用户
console.log('\n\n=== 审核中的用户 ===\n');
const underReview = users.filter(u => u.partnerstatus === 'underreview');
console.log(`${underReview.length} 个用户正在审核中`);
if (underReview.length > 0) {
underReview.forEach(u => {
console.log(` - userId: ${u.userId}, 公司: ${u.company || '空'}, 身份: ${u.collaborationid || '空'}`);
});
}
// 6. 检查users表的字段结构
console.log('\n\n=== users表字段结构 ===\n');
const tableStructure = await sequelize.query('DESCRIBE users', { type: Sequelize.QueryTypes.SELECT });
const settlementFields = [
'collaborationid', 'cooperation', 'company', 'province', 'city', 'district',
'detailedaddress', 'businesslicenseurl', 'proofurl', 'brandurl',
'partnerstatus', 'reasonforfailure'
];
console.log('入驻相关字段:');
tableStructure.forEach(field => {
if (settlementFields.includes(field.Field)) {
console.log(` ${field.Field}: ${field.Type} ${field.Null === 'NO' ? 'NOT NULL' : ''} Default: ${field.Default || '无'}`);
}
});
} catch (error) {
console.error('❌ 查询失败:', error.message);
console.error(error.stack);
} finally {
await sequelize.close();
console.log('\n✅ 查询完成');
}
}
checkSettlementData();