// 查询用户入驻相关数据 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();