2 커밋 66a4e662e1 ... 2953f8cdd1

작성자 SHA1 메시지 날짜
  罗永浩 2953f8cdd1 Merge branch 'master' of http://git.derkj.com:9095/waibao/NN2025112501 3 달 전
  罗永浩 58bfc6cde7 充值订单按照数据表字段优化显示 3 달 전

+ 1 - 1
addons/admin/src/config/setting.js

@@ -5,7 +5,7 @@ export default {
     version: '1.0',
     name: '后台管理系统',  // 项目名称
     loginName: '后台登录',  // 项目名称
-    // baseURL: 'https://dshmp.derkj.com/',  // 本地接口地址
+    // baseURL: 'https://adm.gxlmcs.com/',  // 本地接口地址
     baseURL: 'http://129.204.44.254:8001/',  // 本地接口地址
     signKey: 'dshApp&688', // 签名密钥
     whiteList: ['/login', '/forget'],  // 路由白名单(不需要登录的)

+ 102 - 253
addons/admin/src/views/financial/accountLog.vue

@@ -8,52 +8,56 @@
 						<span><i class="el-icon-s-order"></i> 全部</span>
 					</template>
 				</el-tab-pane>
-				<el-tab-pane label="待审核" name="1">
+				<el-tab-pane label="已完成" name="1">
 					<template slot="label">
-						<span><i class="el-icon-loading"></i> 待审核</span>
+						<span><i class="el-icon-success"></i> 已完成</span>
 					</template>
 				</el-tab-pane>
-				<el-tab-pane label="已审核/到账" name="2">
+				<el-tab-pane label="待处理" name="2">
 					<template slot="label">
-						<span><i class="el-icon-success"></i> 已审核/到账</span>
+						<span><i class="el-icon-loading"></i> 待处理</span>
 					</template>
 				</el-tab-pane>
-				<el-tab-pane label="审核失败" name="3">
+				<el-tab-pane label="失败/取消" name="3">
 					<template slot="label">
-						<span><i class="el-icon-circle-close"></i> 审核失败</span>
-					</template>
-				</el-tab-pane>
-				<el-tab-pane label="已取消" name="-1">
-					<template slot="label">
-						<span><i class="el-icon-remove"></i> 已取消</span>
+						<span><i class="el-icon-circle-close"></i> 失败/取消</span>
 					</template>
 				</el-tab-pane>
 			</el-tabs>
 
 			<!-- 搜索表单 -->
-			<el-form :model="table.where" label-width="90px" class="ele-form-search" @keyup.enter.native="$refs.table.reload()" @submit.native.prevent>
+			<el-form :model="table.where" label-width="90px" class="ele-form-search"
+				@keyup.enter.native="$refs.table.reload()" @submit.native.prevent>
 				<el-row :gutter="15">
 					<el-col :md="5" :sm="12">
 						<el-form-item label="交易类型:">
 							<el-select v-model="table.where.type" placeholder="请选择交易类型" clearable class="ele-fluid">
-								<el-option label="充值" :value="1"/>
-								<el-option label="提现" :value="2"/>
+								<el-option label="商城消费" :value="1" />
+								<el-option label="充值缴费" :value="2" />
+								<el-option label="商城退款" :value="3" />
+								<el-option label="佣金提现" :value="4" />
+								<el-option label="提现驳回" :value="5" />
+								<el-option label="平台入款" :value="6" />
+								<el-option label="商家佣金" :value="7" />
+								<el-option label="代理收益" :value="8" />
+								<el-option label="推广收益" :value="9" />
 							</el-select>
 						</el-form-item>
 					</el-col>
 					<el-col :md="6" :sm="12">
 						<el-form-item label="关键词:">
-							<el-input v-model="table.where.keyword" placeholder="用户昵称/手机号" clearable/>
+							<el-input v-model="table.where.keyword" placeholder="用户昵称/手机号" clearable />
 						</el-form-item>
 					</el-col>
 					<el-col :md="6" :sm="12">
 						<el-form-item label="订单号:">
-							<el-input v-model="table.where.order_no" placeholder="请输入订单号" clearable/>
+							<el-input v-model="table.where.order_no" placeholder="请输入订单号" clearable />
 						</el-form-item>
 					</el-col>
 					<el-col :md="7" :sm="12">
 						<div class="ele-form-actions">
-							<el-button type="primary" @click="$refs.table.reload()" icon="el-icon-search" class="ele-btn-icon">查询</el-button>
+							<el-button type="primary" @click="$refs.table.reload()" icon="el-icon-search"
+								class="ele-btn-icon">查询</el-button>
 							<el-button @click="handleReset">重置</el-button>
 						</div>
 					</el-col>
@@ -79,175 +83,95 @@
 			</div>
 
 			<!-- 数据表格 -->
-			<ele-data-table
-				ref="table"
-				:config="table"
-				:choose.sync="selection"
-				:parse-data="parseData"
+			<ele-data-table ref="table" :config="table" :choose.sync="selection" :parse-data="parseData"
 				height="calc(100vh - 400px)">
 				<template slot-scope="{index}">
-					<el-table-column type="selection" width="45" align="center" fixed="left"/>
-					<el-table-column prop="id" label="ID" width="60" align="center" sortable="custom"/>
-					<el-table-column prop="order_no" label="订单号" min-width="180" align="center" show-overflow-tooltip/>
-					<el-table-column prop="realname" label="姓名" min-width="100" align="center"/>
-					<el-table-column label="账户类型" width="100" align="center">
-						<template slot-scope="{row}">
-							<el-tag v-if="row.account_type === 1" type="success" size="mini">会员</el-tag>
-							<el-tag v-else-if="row.account_type === 2" type="warning" size="mini">代理</el-tag>
-							<el-tag v-else-if="row.account_type === 3" type="info" size="mini">商户</el-tag>
-						</template>
-					</el-table-column>
-
-					<!-- 类型 -->
-					<el-table-column label="类型" width="80" align="center">
+					<el-table-column type="selection" width="45" align="center" fixed="left" />
+					<el-table-column prop="id" label="ID" width="60" align="center" sortable="custom" />
+					<el-table-column prop="source_order_no" label="订单号" min-width="180" align="center" show-overflow-tooltip />
+					<el-table-column prop="nickname" label="用户昵称" min-width="100" align="center" />
+					<el-table-column prop="mobile" label="手机号" min-width="120" align="center" />
+
+					<!-- 交易类型 -->
+					<el-table-column label="交易类型" width="100" align="center">
 						<template slot-scope="{row}">
-							<el-tag v-if="row.type === 1" type="success" size="mini">充值</el-tag>
-							<el-tag v-else-if="row.type === 2" type="primary" size="mini">提现</el-tag>
+							<el-tag v-if="row.type === 1" type="success" size="mini">商城消费</el-tag>
+							<el-tag v-else-if="row.type === 2" type="primary" size="mini">充值缴费</el-tag>
+							<el-tag v-else-if="row.type === 3" type="info" size="mini">商城退款</el-tag>
+							<el-tag v-else-if="row.type === 4" type="warning" size="mini">佣金提现</el-tag>
+							<el-tag v-else-if="row.type === 5" type="danger" size="mini">提现驳回</el-tag>
+							<el-tag v-else-if="row.type === 6" type="success" size="mini">平台入款</el-tag>
+							<el-tag v-else-if="row.type === 7" type="warning" size="mini">商家佣金</el-tag>
+							<el-tag v-else-if="row.type === 8" type="info" size="mini">代理收益</el-tag>
+							<el-tag v-else-if="row.type === 9" type="success" size="mini">推广收益</el-tag>
 						</template>
 					</el-table-column>
 
 					<!-- 金额 -->
 					<el-table-column label="金额" width="120" align="center">
 						<template slot-scope="{row}">
-							<span :style="{color: row.type === 1 ? '#67C23A' : '#F56C6C', fontWeight: 'bold'}">
-								{{ row.type === 1 ? '+' : '-' }}¥{{ row.money }}
-							</span>
-						</template>
-					</el-table-column>
-
-					<el-table-column label="实际到账" width="120" align="center">
-						<template slot-scope="{row}">
-							<span style="color: #409EFF; font-weight: bold;">¥{{ row.actual_money }}</span>
+							<span style="font-weight: bold;">¥{{ row.money }}</span>
 						</template>
 					</el-table-column>
 
-					<!-- 支付方式 -->
-					<el-table-column label="支付方式" width="100" align="center">
+					<!-- 变更前金额 -->
+					<el-table-column label="变更前金额" width="120" align="center">
 						<template slot-scope="{row}">
-							<el-tag v-if="row.pay_type === 10" type="success" size="mini">微信</el-tag>
-							<el-tag v-else-if="row.pay_type === 20" type="primary" size="mini">支付宝</el-tag>
-							<el-tag v-else-if="row.pay_type === 50" type="info" size="mini">银行卡</el-tag>
+							<span style="color: #909399;">¥{{ row.before_money }}</span>
 						</template>
 					</el-table-column>
 
 					<!-- 状态 -->
-					<el-table-column label="状态" width="120" align="center">
+					<el-table-column label="状态" width="100" align="center">
 						<template slot-scope="{row}">
-							<el-tag v-if="row.status === -1" type="info" size="mini">已取消</el-tag>
-							<el-tag v-else-if="row.status === 1" type="warning" size="mini">待审核</el-tag>
-							<el-tag v-else-if="row.status === 2" type="success" size="mini">已审核/到账</el-tag>
-							<el-tag v-else-if="row.status === 3" type="danger" size="mini">审核失败</el-tag>
+							<el-tag v-if="row.status === 1" type="success" size="mini">已完成</el-tag>
+							<el-tag v-else-if="row.status === 2" type="warning" size="mini">待处理</el-tag>
+							<el-tag v-else-if="row.status === 3" type="danger" size="mini">失败/取消</el-tag>
 						</template>
 					</el-table-column>
 
-					<el-table-column prop="create_time_text" label="申请时间" min-width="160" align="center" show-overflow-tooltip/>
+					<el-table-column prop="create_time_text" label="创建时间" min-width="160" align="center" show-overflow-tooltip />
 
 					<!-- 操作 -->
-					<el-table-column label="操作" width="180" align="center" fixed="right">
+					<el-table-column label="操作" width="100" align="center" fixed="right">
 						<template slot-scope="{row}">
 							<el-link @click="viewDetail(row)" icon="el-icon-view" type="primary" :underline="false">查看</el-link>
-							<!-- 只有总后台可以审核 -->
-							<el-divider direction="vertical" v-if="row.status === 1 && !isStoreUser"></el-divider>
-							<el-link v-if="row.status === 1 && !isStoreUser" @click="handleApprove(row)" icon="el-icon-check" type="success" :underline="false">通过</el-link>
-							<el-divider direction="vertical" v-if="row.status === 1 && !isStoreUser"></el-divider>
-							<el-link v-if="row.status === 1 && !isStoreUser" @click="handleReject(row)" icon="el-icon-close" type="danger" :underline="false">驳回</el-link>
 						</template>
 					</el-table-column>
 				</template>
 			</ele-data-table>
 		</el-card>
 
-		<!-- 审核弹窗 -->
-		<el-dialog
-			:title="auditData.status === 2 ? '审核通过' : '审核驳回'"
-			:visible.sync="auditVisible"
-			width="600px"
-			:destroy-on-close="true"
-			:close-on-click-modal="false"
-			custom-class="audit-dialog">
-
-			<el-form :model="auditData" label-width="120px" ref="auditForm">
-				<el-form-item label="实际到账金额:" required>
-					<el-input-number
-						v-model="auditData.actual_money"
-						:precision="2"
-						:step="0.01"
-						:min="0"
-						class="ele-fluid">
-					</el-input-number>
-				</el-form-item>
-
-				<el-form-item v-if="auditData.status === 2" label="审核备注:">
-					<el-input
-						v-model="auditData.confirm_remark"
-						type="textarea"
-						:rows="3"
-						placeholder="请输入审核备注(可选)">
-					</el-input>
-				</el-form-item>
-
-				<el-form-item v-if="auditData.status === 3" label="驳回理由:" required>
-					<el-input
-						v-model="auditData.confirm_remark"
-						type="textarea"
-						:rows="3"
-						placeholder="请输入驳回理由">
-					</el-input>
-				</el-form-item>
-
-				<el-form-item v-if="auditData.status === 2" label="打款凭证:">
-					<el-upload
-						action="/upload"
-						:on-success="handleUploadSuccess"
-						:on-error="handleUploadError"
-						:limit="1"
-						accept="image/*"
-						list-type="picture-card">
-						<i class="el-icon-plus"></i>
-					</el-upload>
-				</el-form-item>
-			</el-form>
-
-			<div slot="footer" class="dialog-footer">
-				<el-button @click="auditVisible = false">取消</el-button>
-				<el-button
-					:type="auditData.status === 2 ? 'success' : 'danger'"
-					@click="submitAudit"
-					:loading="auditLoading">
-					{{ auditData.status === 2 ? '通过' : '驳回' }}
-				</el-button>
-			</div>
-		</el-dialog>
-
 		<!-- 查看详情弹窗 -->
-		<el-dialog
-			title="财务明细详情"
-			:visible.sync="detailVisible"
-			width="700px"
-			:destroy-on-close="true"
-			:close-on-click-modal="false"
-			custom-class="account-detail-dialog">
+		<el-dialog title="财务明细详情" :visible.sync="detailVisible" width="700px" :destroy-on-close="true"
+			:close-on-click-modal="false" custom-class="account-detail-dialog">
 
 			<!-- 头部信息卡片 -->
 			<div class="detail-header">
 				<div class="header-item">
-					<div class="header-label">订单ID</div>
+					<div class="header-label">记录ID</div>
 					<div class="header-value">#{{ detailData.id }}</div>
 				</div>
 				<div class="header-item">
-					<div class="header-label">类型</div>
+					<div class="header-label">交易类型</div>
 					<div class="header-value">
-						<el-tag v-if="detailData.type === 1" type="success" size="medium">充值</el-tag>
-						<el-tag v-else-if="detailData.type === 2" type="primary" size="medium">提现</el-tag>
+						<el-tag v-if="detailData.type === 1" type="success" size="medium">商城消费</el-tag>
+						<el-tag v-else-if="detailData.type === 2" type="primary" size="medium">充值缴费</el-tag>
+						<el-tag v-else-if="detailData.type === 3" type="info" size="medium">商城退款</el-tag>
+						<el-tag v-else-if="detailData.type === 4" type="warning" size="medium">佣金提现</el-tag>
+						<el-tag v-else-if="detailData.type === 5" type="danger" size="medium">提现驳回</el-tag>
+						<el-tag v-else-if="detailData.type === 6" type="success" size="medium">平台入款</el-tag>
+						<el-tag v-else-if="detailData.type === 7" type="warning" size="medium">商家佣金</el-tag>
+						<el-tag v-else-if="detailData.type === 8" type="info" size="medium">代理收益</el-tag>
+						<el-tag v-else-if="detailData.type === 9" type="success" size="medium">推广收益</el-tag>
 					</div>
 				</div>
 				<div class="header-item">
 					<div class="header-label">状态</div>
 					<div class="header-value">
-						<el-tag v-if="detailData.status === -1" type="info" size="medium">已取消</el-tag>
-						<el-tag v-else-if="detailData.status === 1" type="warning" size="medium">待审核</el-tag>
-						<el-tag v-else-if="detailData.status === 2" type="success" size="medium">已审核/到账</el-tag>
-						<el-tag v-else-if="detailData.status === 3" type="danger" size="medium">审核失败</el-tag>
+						<el-tag v-if="detailData.status === 1" type="success" size="medium">已完成</el-tag>
+						<el-tag v-else-if="detailData.status === 2" type="warning" size="medium">待处理</el-tag>
+						<el-tag v-else-if="detailData.status === 3" type="danger" size="medium">失败/取消</el-tag>
 					</div>
 				</div>
 			</div>
@@ -255,14 +179,14 @@
 			<!-- 金额信息 -->
 			<div class="amount-section">
 				<div class="amount-card main-amount">
-					<div class="amount-label">金额</div>
+					<div class="amount-label">交易金额</div>
 					<div class="amount-value">
-						{{ detailData.type === 1 ? '+' : '-' }}¥{{ detailData.money }}
+						¥{{ detailData.money }}
 					</div>
 				</div>
 				<div class="amount-card">
-					<div class="amount-label">实际到账金额</div>
-					<div class="amount-value secondary">¥{{ detailData.actual_money }}</div>
+					<div class="amount-label">变更前金额</div>
+					<div class="amount-value secondary">¥{{ detailData.before_money }}</div>
 				</div>
 			</div>
 
@@ -272,50 +196,39 @@
 					<i class="el-icon-user"></i> 基本信息
 				</div>
 				<el-descriptions :column="2" border size="medium">
-					<el-descriptions-item label="订单号" :span="2">
-						<span class="order-no">{{ detailData.order_no || '-' }}</span>
+					<el-descriptions-item label="关联订单号" :span="2">
+						<span class="order-no">{{ detailData.source_order_no || '-' }}</span>
 					</el-descriptions-item>
-					<el-descriptions-item label="姓名">{{ detailData.realname || '-' }}</el-descriptions-item>
-					<el-descriptions-item label="账户类型">
-						<el-tag v-if="detailData.account_type === 1" type="success" size="mini">会员</el-tag>
-						<el-tag v-else-if="detailData.account_type === 2" type="warning" size="mini">代理</el-tag>
-						<el-tag v-else-if="detailData.account_type === 3" type="info" size="mini">商户</el-tag>
-					</el-descriptions-item>
-					<el-descriptions-item label="支付方式">
-						<el-tag v-if="detailData.pay_type === 10" type="success" size="mini">微信</el-tag>
-						<el-tag v-else-if="detailData.pay_type === 20" type="primary" size="mini">支付宝</el-tag>
-						<el-tag v-else-if="detailData.pay_type === 50" type="info" size="mini">银行卡</el-tag>
-					</el-descriptions-item>
-					<el-descriptions-item label="支付状态">
-						<el-tag v-if="detailData.pay_status === 10" type="warning" size="mini">待支付</el-tag>
-						<el-tag v-else-if="detailData.pay_status === 20" type="success" size="mini">已支付</el-tag>
+					<el-descriptions-item label="用户ID">{{ detailData.user_id || '-' }}</el-descriptions-item>
+					<el-descriptions-item label="用户昵称">{{ detailData.nickname || '-' }}</el-descriptions-item>
+					<el-descriptions-item label="手机号">{{ detailData.mobile || '-' }}</el-descriptions-item>
+					<el-descriptions-item label="交易类型" :span="2">
+						<span>{{ getTypeText(detailData.type) }}</span>
 					</el-descriptions-item>
 				</el-descriptions>
 			</div>
 
-			<div class="detail-section" v-if="detailData.type === 2">
-				<div class="section-title">
-					<i class="el-icon-bank-card"></i> 提现信息
-				</div>
-				<el-descriptions :column="2" border size="medium">
-					<el-descriptions-item label="提现账号" :span="2">{{ detailData.account || '-' }}</el-descriptions-item>
-					<el-descriptions-item label="账号备注" :span="2">{{ detailData.account_remark || '-' }}</el-descriptions-item>
-				</el-descriptions>
-			</div>
-
 			<div class="detail-section">
 				<div class="section-title">
 					<i class="el-icon-time"></i> 时间信息
 				</div>
 				<el-descriptions :column="2" border size="medium">
-					<el-descriptions-item label="申请时间">
+					<el-descriptions-item label="创建时间">
 						<i class="el-icon-time"></i> {{ detailData.create_time_text }}
 					</el-descriptions-item>
 					<el-descriptions-item label="更新时间">
 						<i class="el-icon-time"></i> {{ detailData.update_time_text }}
 					</el-descriptions-item>
-					<el-descriptions-item label="审核备注" :span="2" v-if="detailData.confirm_remark">
-						<div class="remark-text">{{ detailData.confirm_remark }}</div>
+				</el-descriptions>
+			</div>
+
+			<div class="detail-section" v-if="detailData.remark">
+				<div class="section-title">
+					<i class="el-icon-document"></i> 备注
+				</div>
+				<el-descriptions :column="1" border size="medium">
+					<el-descriptions-item label="备注" :span="1">
+						<div class="remark-text">{{ detailData.remark }}</div>
 					</el-descriptions-item>
 				</el-descriptions>
 			</div>
@@ -357,16 +270,7 @@ export default {
 			selection: [], // 表格选中数据
 			counts: null, // 统计数据
 			detailVisible: false, // 是否显示详情弹窗
-			detailData: {}, // 详情数据
-			auditVisible: false, // 是否显示审核弹窗
-			auditData: {
-				id: '',
-				status: 2, // 2-通过,3-驳回
-				actual_money: '',
-				confirm_remark: '',
-				pay_img: ''
-			},
-			auditLoading: false // 审核加载状态
+			detailData: {} // 详情数据
 		};
 	},
 	methods: {
@@ -408,75 +312,20 @@ export default {
 			this.detailVisible = true;
 		},
 
-		/* 审核通过 */
-		handleApprove(row) {
-			this.$confirm('确定要通过该申请吗?', '提示', {
-				confirmButtonText: '确定',
-				cancelButtonText: '取消',
-				type: 'success'
-			}).then(() => {
-				this.auditData = {
-					id: row.id,
-					status: 2,
-					actual_money: row.money,
-					confirm_remark: '审核通过',
-					pay_img: ''
-				};
-				this.auditVisible = true;
-			}).catch(() => {});
-		},
-
-		/* 审核驳回 */
-		handleReject(row) {
-			this.$confirm('确定要驳回该申请吗?', '提示', {
-				confirmButtonText: '确定',
-				cancelButtonText: '取消',
-				type: 'warning'
-			}).then(() => {
-				this.auditData = {
-					id: row.id,
-					status: 3,
-					actual_money: row.money,
-					confirm_remark: '',
-					pay_img: ''
-				};
-				this.auditVisible = true;
-			}).catch(() => {});
-		},
-
-		/* 提交审核 */
-		submitAudit() {
-			// 验证驳回时必须填写理由
-			if (this.auditData.status === 3 && !this.auditData.confirm_remark) {
-				this.$message.error('驳回时必须填写驳回理由');
-				return;
-			}
-
-			this.auditLoading = true;
-			this.$http.post('/account/audit', this.auditData).then(res => {
-				this.$message.success(res.msg || '审核成功');
-				this.auditVisible = false;
-				this.$refs.table.reload();
-			}).catch(err => {
-				this.$message.error(err.msg || '审核失败');
-			}).finally(() => {
-				this.auditLoading = false;
-			});
-		},
-
-		/* 上传成功 */
-		handleUploadSuccess(response, file, fileList) {
-			if (response.code === 0) {
-				this.auditData.pay_img = response.data.url;
-				this.$message.success('上传成功');
-			} else {
-				this.$message.error(response.msg || '上传失败');
-			}
-		},
-
-		/* 上传失败 */
-		handleUploadError(err, file, fileList) {
-			this.$message.error('上传失败,请重试');
+		/* 获取交易类型文本 */
+		getTypeText(type) {
+			const typeMap = {
+				1: '商城消费',
+				2: '充值缴费',
+				3: '商城退款',
+				4: '佣金提现',
+				5: '提现驳回',
+				6: '平台入款',
+				7: '商家佣金',
+				8: '代理收益',
+				9: '推广收益'
+			};
+			return typeMap[type] || '未知';
 		}
 	}
 };

+ 30 - 30
addons/admin/src/views/jobs/jobs.vue

@@ -13,34 +13,33 @@
 			<!-- 搜索表单 -->
 			<el-form :model="table.where" label-width="90px" class="ele-form-search"
 				@keyup.enter.native="$refs.table.reload()" @submit.native.prevent>
-			<!-- 搜索表单 -->
-			<el-form :model="where" label-width="90px" class="ele-form-search" @keyup.enter.native="query"
-				@submit.native.prevent>
-				<el-row :gutter="15">
-					<el-col :md="6" :sm="12">
-						<el-form-item label="关键词:">
-							<el-input v-model="where.keyword" placeholder="职位/公司名称" clearable />
-						</el-form-item>
-					</el-col>
-					<el-col :md="6" :sm="12">
-						<el-form-item label="分类:">
-							<el-select v-model="where.category_id" placeholder="请选择分类" class="ele-fluid" clearable>
-								<el-option label="全部" :value="0" />
-								<el-option v-for="item in categories" :key="item.id" :label="item.name" :value="item.id" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :md="6" :sm="12">
-						<div class="ele-form-actions">
-							<el-button type="primary" @click="query" icon="el-icon-search"
-								class="ele-btn-icon">查询</el-button>
-							<el-button @click="handleReset()">重置</el-button>
-							<el-button @click="add()" type="primary" icon="el-icon-plus" class="ele-btn-icon"
-								v-if="permission.includes('sys:jobs:add')">添加招聘</el-button>
-						</div>
-					</el-col>
-				</el-row>
-			</el-form>
+				<!-- 搜索表单 -->
+				<el-form :model="where" label-width="90px" class="ele-form-search" @keyup.enter.native="query"
+					@submit.native.prevent>
+					<el-row :gutter="15">
+						<el-col :md="6" :sm="12">
+							<el-form-item label="关键词:">
+								<el-input v-model="where.keyword" placeholder="职位/公司名称" clearable />
+							</el-form-item>
+						</el-col>
+						<el-col :md="6" :sm="12">
+							<el-form-item label="分类:">
+								<el-select v-model="where.category_id" placeholder="请选择分类" class="ele-fluid" clearable>
+									<el-option label="全部" :value="0" />
+									<el-option v-for="item in categories" :key="item.id" :label="item.name" :value="item.id" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+						<el-col :md="6" :sm="12">
+							<div class="ele-form-actions">
+								<el-button type="primary" @click="query" icon="el-icon-search" class="ele-btn-icon">查询</el-button>
+								<el-button @click="handleReset()">重置</el-button>
+								<el-button @click="add()" type="primary" icon="el-icon-plus" class="ele-btn-icon"
+									v-if="permission.includes('sys:jobs:add')">添加招聘</el-button>
+							</div>
+						</el-col>
+					</el-row>
+				</el-form>
 			</el-form>
 			<!-- 数据表格 -->
 			<ele-data-table ref="table" :config="table" :choose.sync="choose" height="calc(100vh - 380px)"
@@ -57,7 +56,8 @@
 					<el-table-column label="审核状态" width="150" align="center">
 						<template slot-scope="{row}">
 							<!-- 已发布和待发布可以互转 -->
-							<el-switch v-if="row.status === 1 || row.status === 2" v-model="row.status" @change="editStatus(row)" :active-value="1" :inactive-value="2" active-color="#13ce66" inactive-color="#ff4949" />
+							<el-switch v-if="row.status === 1 || row.status === 2" v-model="row.status" @change="editStatus(row)"
+								:active-value="1" :inactive-value="2" active-color="#13ce66" inactive-color="#ff4949" />
 							<!-- 其他状态显示标签 -->
 							<span v-else>{{ row.audit_status_text }}</span>
 						</template>
@@ -116,7 +116,7 @@
 					<upload-image v-model="editForm.logo" :limit="1" />
 				</el-form-item>
 				<el-form-item label="公司介绍:">
-					<el-input v-model="editForm.company_desc" type="textarea" :rows="3" placeholder="请输入公司介绍" />
+					<tinymce-editor v-model="editForm.company_desc" :init="editCompanyDesc" />
 				</el-form-item>
 				<el-row :gutter="15">
 					<el-col :span="12">

+ 6 - 4
addons/admin/src/views/pay/components/MealsManage.vue

@@ -69,8 +69,9 @@
 					</el-table-column>
 					<el-table-column v-if="type === 2" prop="electric_type" label="电网类型" width="100" align="center">
 						<template slot-scope="{row}">
-							<el-tag v-if="row.electric_type === 1" type="primary" size="mini">国网</el-tag>
-							<el-tag v-else-if="row.electric_type === 2" type="success" size="mini">南网</el-tag>
+							<el-tag v-if="row.electric_type === 1" type="info" size="mini">小米</el-tag>
+							<el-tag v-else-if="row.electric_type === 2" type="primary" size="mini">国网</el-tag>
+							<el-tag v-else-if="row.electric_type === 3" type="success" size="mini">南网</el-tag>
 							<span v-else>-</span>
 						</template>
 					</el-table-column>
@@ -145,8 +146,9 @@
 				</el-form-item>
 				<el-form-item v-if="type === 2" label="电网类型:" prop="electric_type" required>
 					<el-radio-group v-model="editForm.electric_type">
-						<el-radio :label="1">国网</el-radio>
-						<el-radio :label="2">南网</el-radio>
+						<el-radio :label="1">小米</el-radio>
+						<el-radio :label="2">国网</el-radio>
+						<el-radio :label="3">南网</el-radio>
 					</el-radio-group>
 				</el-form-item>
 				<el-form-item v-if="type === 3" label="燃气服务商:" prop="gas_type" required>

+ 70 - 4
addons/admin/src/views/pay/components/OrdersManage.vue

@@ -97,12 +97,12 @@
 						</template>
 					</el-table-column>
 					<el-table-column prop="create_time_text" label="创建时间" min-width="160" align="center" show-overflow-tooltip/>
-					
+
 					<!-- 操作 -->
 					<el-table-column label="操作" width="180" align="center" fixed="right">
 						<template slot-scope="{row}">
 							<el-link @click="openDetail(row)" icon="el-icon-view" type="primary" :underline="false" style="margin-right: 10px;">查看</el-link>
-							<el-popconfirm title="确定要删除此记录吗?" @confirm="remove(row)" 
+							<el-popconfirm title="确定要删除此记录吗?" @confirm="remove(row)"
 								v-if="permission.includes(permissionPrefix + ':delete')">
 								<el-link slot="reference" icon="el-icon-delete" type="danger" :underline="false">删除</el-link>
 							</el-popconfirm>
@@ -127,7 +127,7 @@
 								<el-tag v-else-if="detailData.status === 4" type="success" size="medium">充值成功</el-tag>
 								<el-tag v-else-if="detailData.status === 5" type="danger" size="medium">充值失败</el-tag>
 								<el-tag v-else-if="detailData.status === 6" type="" size="medium">部分成功</el-tag>
-								
+
 								<el-tag v-if="detailData.refund_status == 1" type="success" size="medium">退款成功</el-tag>
 								<el-tag v-else-if="detailData.refund_status == 2" type="warning" size="medium">待退款</el-tag>
 								<el-tag v-else-if="detailData.refund_status == 3" type="danger" size="medium">退款失败</el-tag>
@@ -264,8 +264,41 @@
 					</el-row>
 				</el-card>
 
+				<!-- 电费信息(南网电费相关) -->
+				<el-card shadow="hover" class="info-card" v-if="detailData.area || detailData.city || detailData.ytype">
+					<div slot="header" class="card-title">
+						<i class="el-icon-office-building"></i> 电费信息
+					</div>
+					<el-row :gutter="20">
+						<el-col :span="8" v-if="detailData.area">
+							<div class="info-item">
+								<span class="label">省份:</span>
+								<span class="value">{{ detailData.area }}</span>
+							</div>
+						</el-col>
+						<el-col :span="8" v-if="detailData.city">
+							<div class="info-item">
+								<span class="label">城市:</span>
+								<span class="value">{{ detailData.city }}</span>
+							</div>
+						</el-col>
+						<el-col :span="8" v-if="detailData.ytype">
+							<div class="info-item">
+								<span class="label">验证方式:</span>
+								<span class="value">{{ detailData.ytype_text || '-' }}</span>
+							</div>
+						</el-col>
+						<el-col :span="12" v-if="detailData.id_card_no">
+							<div class="info-item">
+								<span class="label">验证号码:</span>
+								<span class="value">{{ detailData.id_card_no }}</span>
+							</div>
+						</el-col>
+					</el-row>
+				</el-card>
+
 				<!-- 备注信息 -->
-				<el-card shadow="hover" class="info-card" v-if="detailData.remark || detailData.failed_remark">
+				<el-card shadow="hover" class="info-card" v-if="detailData.remark || detailData.failed_remark || detailData.refund_remark || detailData.result">
 					<div slot="header" class="card-title">
 						<i class="el-icon-chat-line-square"></i> 备注信息
 					</div>
@@ -277,6 +310,14 @@
 						<span class="label">失败原因:</span>
 						<span class="value">{{ detailData.failed_remark }}</span>
 					</div>
+					<div v-if="detailData.refund_remark" class="remark-item failed">
+						<span class="label">退款备注:</span>
+						<span class="value">{{ detailData.refund_remark }}</span>
+					</div>
+					<div v-if="detailData.result" class="remark-item">
+						<span class="label">调用结果:</span>
+						<pre class="value result-json">{{ formatResult(detailData.result) }}</pre>
+					</div>
 				</el-card>
 			</div>
 			<div slot="footer">
@@ -369,6 +410,19 @@ export default {
 					this.$message.error(res.data.msg);
 				}
 			});
+		},
+		/* 格式化调用结果 */
+		formatResult(result) {
+			if (!result) return '-';
+			try {
+				if (typeof result === 'string') {
+					const obj = JSON.parse(result);
+					return JSON.stringify(obj, null, 2);
+				}
+				return JSON.stringify(result, null, 2);
+			} catch (e) {
+				return result;
+			}
 		}
 	}
 }
@@ -531,6 +585,18 @@ export default {
 	font-weight: 500;
 }
 
+.result-json {
+	background: #f5f7fa;
+	padding: 10px;
+	border-radius: 4px;
+	font-size: 12px;
+	max-height: 200px;
+	overflow-y: auto;
+	white-space: pre-wrap;
+	word-break: break-all;
+	margin: 0;
+}
+
 /* 滚动条样式 */
 .order-detail-container::-webkit-scrollbar {
 	width: 6px;

+ 23 - 19
app/Http/Controllers/Admin/AccountController.php

@@ -11,10 +11,10 @@
 
 namespace App\Http\Controllers\Admin;
 
-use App\Services\Common\BalanceLogsService;
+use App\Services\Common\AccountService;
 
 /**
- * 财务明细管理-控制器(基于 balance_logs 表)
+ * 财务明细管理-控制器(基于 account_logs 表)
  * @author laravel开发员
  * @since 2020/11/11
  * Class AccountController
@@ -23,13 +23,13 @@ use App\Services\Common\BalanceLogsService;
 class AccountController extends Backend
 {
     /**
-     * 获取商家对应的 member_id(用于数据隔离)
+     * 获取商家对应的 user_id(用于数据隔离)
      * @return int|null
      */
-    private function getMemberId()
+    private function getUserId()
     {
         if ($this->storeId > 0) {
-            // 如果是商家登录,获取商家对应的 member_id
+            // 如果是商家登录,获取商家对应的 user_id
             $storeModel = new \App\Models\StoreModel();
             $storeInfo = $storeModel->find($this->storeId);
             return $storeInfo ? $storeInfo->user_id : null;
@@ -38,28 +38,32 @@ class AccountController extends Backend
     }
 
     /**
-     * 列表(基于 balance_logs 表)
+     * 列表
      */
     public function index()
     {
-        $service = new BalanceLogsService();
+        $service = new AccountService();
         $params = request()->all();
-        
-        // 获取商家对应的 member_id 用于数据隔离
-        $memberId = $this->getMemberId();
-        
-        $result = $service->getList($params, $memberId);
-        
+
+        // 获取商家对应的 user_id 用于数据隔离
+        $userId = $this->getUserId();
+        if ($userId) {
+            $params['user_id'] = $userId;
+        }
+
+        $result = $service->getDataList($params, $params['limit']);
+
         return [
             "msg" => $result['msg'] ?? '操作成功',
             "code" => $result['code'] ?? 0,
             "data" => $result['data'] ?? [],
             "count" => $result['count'] ?? 0,
+            "counts" => $result['counts'] ?? []
         ];
     }
 
     /**
-     * 获取详情(基于 balance_logs 表)
+     * 获取详情
      */
     public function read()
     {
@@ -67,16 +71,16 @@ class AccountController extends Backend
         if (empty($id)) {
             return showJson('参数错误', false);
         }
-        
-        $service = new BalanceLogsService();
-        $result = $service->getInfo($id, $this->getMemberId());
-        
+
+        $service = new AccountService();
+        $result = $service->getInfo($id);
+
         return showJson($result['msg'], $result['code'] == 0, $result['data'] ?? []);
     }
 
     // 财务明细只能查看,不能修改、添加、删除
     // 以下方法已禁用
-    
+
     // /**
     //  * 添加
     //  */

+ 6 - 6
app/Models/BaseModel.php

@@ -163,22 +163,22 @@ class BaseModel extends CacheModel
                 if ($field == "id") {
                     continue;
                 }
-                //对强制
-                if (isset($data[$field])) {
+                // 检查字段是否存在于请求数据中(支持空字符串、0等假值)
+                if (array_key_exists($field, $data)) {
                     if ($fieldInfo['Type'] == "int") {
                         $item_data[$field] = (int)$data[$field];
                     } else {
                         $item_data[$field] = (string)$data[$field];
                     }
                 }
-                if (!isset($data[$field]) && in_array($field, array('update_time', 'create_time'))) {
+                if (!array_key_exists($field, $data) && in_array($field, array('update_time', 'create_time'))) {
                     continue;
                 }
-                //插入数据-设置默认值
-                if (!$id && !isset($data[$field])) {
+                // 插入数据-设置默认值(仅当字段不存在时)
+                if (!$id && !array_key_exists($field, $data)) {
                     $item_data[$field] = $fieldInfo['Default'];
                 }
-                if (isset($item_data[$field])) {
+                if (array_key_exists($field, $item_data)) {
                     $temp_data[$field] = $item_data[$field];
                 }
             }

+ 1 - 1
app/Models/OrderGoodsModel.php

@@ -32,6 +32,6 @@ class OrderGoodsModel extends BaseModel
     public function sku()
     {
         return $this->hasOne(GoodsSkuModel::class, 'id', 'sku_id')
-            ->select(['id','sku_name','price']);
+            ->select(['id', 'sku_name', 'price']);
     }
 }

+ 4 - 0
app/Models/PayMealsModel.php

@@ -14,7 +14,11 @@ class PayMealsModel extends BaseModel
         'money',
         'discount',
         'remark',
+        'gas_type',
         'type',
+        'electric_type',
+        'phone_type',
+        'phone_service',
         'sort',
         'create_time',
         'update_time',

+ 6 - 0
app/Models/PayOrdersModel.php

@@ -24,12 +24,18 @@ class PayOrdersModel extends BaseModel
         'product_id',
         'out_trade_no',
         'charge_kami',
+        'area',
+        'ytype',
+        'id_card_no',
+        'city',
         'remark',
+        'result',
         'failed_remark',
         'create_time',
         'update_time',
         'refund_status',
         'refund_money',
+        'refund_remark',
         'status',
         'mark'
     ];

+ 30 - 8
app/Services/Common/AccountService.php

@@ -119,25 +119,28 @@ class AccountService extends BaseService
             ->orderBy('a.create_time', 'desc')
             ->orderBy('a.id', 'desc')
             ->paginate($pageSize > 0 ? $pageSize : 9999999);
-        
+
         $list = $list ? $list->toArray() : [];
 
         // 格式化数据
         if ($list && isset($list['data'])) {
-            $accountTypes = config('payment.accountTypes', [
+            $accountTypes = [
                 1 => '商城消费',
                 2 => '充值缴费',
                 3 => '商城退款',
                 4 => '佣金提现',
                 5 => '提现驳回',
-                6 => '平台入款'
-            ]);
+                6 => '平台入款',
+                7 => '商家佣金',
+                8 => '代理收益',
+                9 => '推广收益'
+            ];
 
             foreach ($list['data'] as &$item) {
-                $item['create_time'] = $item['create_time'] ? datetime($item['create_time'], 'Y-m-d H.i.s') : '';
                 $item['create_time_text'] = date('Y-m-d H:i:s', (int)$item['create_time']);
+                $item['update_time_text'] = date('Y-m-d H:i:s', (int)$item['update_time']);
                 $type = isset($item['type']) ? intval($item['type']) : 0;
-                $item['type_text'] = $item['remark'] ?: ($accountTypes[$type] ?? '收支明细');
+                $item['type_text'] = $accountTypes[$type] ?? '未知';
                 $item['money'] = number_format($item['money'], 2, '.', '');
                 $item['before_money'] = number_format($item['before_money'], 2, '.', '');
                 $item['status_text'] = ['', '已完成', '待处理', '失败/取消'][$item['status']] ?? '未知';
@@ -145,10 +148,13 @@ class AccountService extends BaseService
         }
 
         return [
+            'msg' => '操作成功',
+            'code' => 0,
             'pageSize' => $pageSize,
             'total' => isset($list['total']) ? $list['total'] : 0,
             'counts' => $counts,
-            'list' => isset($list['data']) ? $list['data'] : []
+            'data' => isset($list['data']) ? $list['data'] : [],
+            'count' => isset($list['total']) ? $list['total'] : 0
         ];
     }
 
@@ -216,7 +222,6 @@ class AccountService extends BaseService
     public function getList()
     {
         $params = request()->all();
-
         $page = $params['page'] ?? 1;
         $limit = $params['limit'] ?? 20;
         $status = $params['status'] ?? '';
@@ -334,6 +339,23 @@ class AccountService extends BaseService
 
         $info = $info->toArray();
         $info['create_time_text'] = date('Y-m-d H:i:s', (int)$info['create_time']);
+        $info['update_time_text'] = date('Y-m-d H:i:s', (int)$info['update_time']);
+
+        $accountTypes = [
+            1 => '商城消费',
+            2 => '充值缴费',
+            3 => '商城退款',
+            4 => '佣金提现',
+            5 => '提现驳回',
+            6 => '平台入款',
+            7 => '商家佣金',
+            8 => '代理收益',
+            9 => '推广收益'
+        ];
+        $type = isset($info['type']) ? intval($info['type']) : 0;
+        $info['type_text'] = $accountTypes[$type] ?? '未知';
+        $info['status_text'] = ['', '已完成', '待处理', '失败/取消'][$info['status']] ?? '未知';
+
         $info['money'] = number_format($info['money'], 2, '.', '');
         $info['before_money'] = number_format($info['before_money'], 2, '.', '');
 

+ 50 - 11
app/Services/Common/JobsService.php

@@ -143,10 +143,23 @@ class JobsService extends BaseService
             $data['sort'] = 0;
         }
 
-        // 确保所有字段都存在
-        $fields = ['tags', 'company_desc', 'content', 'recruiter_position', 'remark'];
-        foreach ($fields as $field) {
-            if (!isset($data[$field])) {
+        // 确保所有可为空的字符串字段都存在,即使为空字符串也要保存
+        $stringFields = [
+            'job_title',
+            'salary',
+            'num',
+            'recruiter',
+            'recruiter_position',
+            'recruiter_phone',
+            'company',
+            'logo',
+            'company_desc',
+            'content',
+            'tags',
+            'remark'
+        ];
+        foreach ($stringFields as $field) {
+            if (!array_key_exists($field, $data)) {
                 $data[$field] = '';
             }
         }
@@ -183,22 +196,48 @@ class JobsService extends BaseService
             }
         }
 
-        // 确保所有字段都存在,即使为空字符串
-        $fields = ['tags', 'company_desc', 'content', 'recruiter_position', 'remark', 'logo'];
-        foreach ($fields as $field) {
-            if (!isset($data[$field])) {
+        // 确保所有可为空的字符串字段都存在,即使为空字符串也要保存
+        $stringFields = [
+            'job_title',
+            'salary',
+            'num',
+            'recruiter',
+            'recruiter_position',
+            'recruiter_phone',
+            'company',
+            'logo',
+            'company_desc',
+            'content',
+            'tags',
+        ];
+        foreach ($stringFields as $field) {
+            // 如果字段存在于请求中(包括空字符串),保持原值;否则设为空字符串
+            if (!array_key_exists($field, $data)) {
                 $data[$field] = '';
             }
         }
 
-        $data['update_time'] = time();
-        if (empty($data['id'])) {
-            $data['create_time'] = time();
+        // 图片处理
+        if (isset($data['logo']) && $data['logo']) {
+            $data['logo'] = get_image_path($data['logo']);
         }
 
+        $data['update_time'] = time();
+
         ActionLogModel::setTitle("编辑招聘信息");
         ActionLogModel::record();
 
+        // 编辑现有记录:直接使用 Eloquent update 确保空字符串能被保存
+        if (!empty($data['id'])) {
+            $id = $data['id'];
+            unset($data['id']);
+            unset($data['create_time']); // 编辑时不更新创建时间
+            $this->model->where('id', $id)->update($data);
+            return ['code' => 0, 'msg' => '编辑成功', 'data' => ['id' => $id]];
+        }
+
+        // 新增记录
+        $data['create_time'] = time();
         return parent::edit($data);
     }
 

+ 1 - 4
app/Services/Common/OrderService.php

@@ -117,11 +117,8 @@ class OrderService extends BaseService
                 $item['update_time'] = $item['update_time'] ? date('Y-m-d H:i:s', strtotime($item['update_time'])) : '';
                 $item['user'] = $item['user'] ?? [];
                 $item['store'] = $item['store'] ?? [];
-                // 获取第一个商品信息
+                // 获取第一个商品信息(thumb已通过Model访问器处理)
                 $item['goods'] = isset($item['order_goods'][0]) ? $item['order_goods'][0] : null;
-                if ($item['goods']) {
-                    $item['goods']['thumb'] = $item['goods']['thumb'] ? get_image_url($item['goods']['thumb']) : '';
-                }
             }
         }
 

+ 49 - 45
app/Services/Common/PayOrdersService.php

@@ -31,7 +31,7 @@ class PayOrdersService extends BaseService
     public function getList()
     {
         $params = request()->all();
-        
+
         $page = $params['page'] ?? 1;
         $limit = $params['limit'] ?? 20;
         $type = $params['type'] ?? '';
@@ -54,14 +54,14 @@ class PayOrdersService extends BaseService
 
         // 关键词搜索
         if (!empty($keyword)) {
-            $query->where(function($q) use ($keyword) {
+            $query->where(function ($q) use ($keyword) {
                 $q->where('order_no', 'like', "%{$keyword}%")
-                  ->orWhere('account', 'like', "%{$keyword}%")
-                  ->orWhere('transaction_id', 'like', "%{$keyword}%")
-                  ->orWhereHas('user', function($sq) use ($keyword) {
-                      $sq->where('nickname', 'like', "%{$keyword}%")
-                        ->orWhere('mobile', 'like', "%{$keyword}%");
-                  });
+                    ->orWhere('account', 'like', "%{$keyword}%")
+                    ->orWhere('transaction_id', 'like', "%{$keyword}%")
+                    ->orWhereHas('user', function ($sq) use ($keyword) {
+                        $sq->where('nickname', 'like', "%{$keyword}%")
+                            ->orWhere('mobile', 'like', "%{$keyword}%");
+                    });
             });
         }
 
@@ -91,7 +91,7 @@ class PayOrdersService extends BaseService
             $item['create_time_text'] = date('Y-m-d H:i:s', (int)$item['create_time']);
             $item['update_time_text'] = date('Y-m-d H:i:s', (int)$item['update_time']);
             $item['pay_at_text'] = $item['pay_at'] ? date('Y-m-d H:i:s', strtotime($item['pay_at'])) : '-';
-            
+
             // 用户信息
             if (isset($item['user'])) {
                 $item['user_nickname'] = $item['user']['nickname'] ?? '';
@@ -115,7 +115,7 @@ class PayOrdersService extends BaseService
         if ($id === null) {
             $id = request()->input('id');
         }
-        
+
         $info = PayOrdersModel::where('id', $id)
             ->where('mark', 1)
             ->with(['user:id,nickname,mobile', 'meal'])
@@ -134,7 +134,11 @@ class PayOrdersService extends BaseService
         $info['create_time_text'] = date('Y-m-d H:i:s', (int)$info['create_time']);
         $info['update_time_text'] = date('Y-m-d H:i:s', (int)$info['update_time']);
         $info['pay_at_text'] = $info['pay_at'] ? date('Y-m-d H:i:s', strtotime($info['pay_at'])) : '-';
-        
+
+        // 三要素验证方式文本
+        $ytypeMap = [1 => '身份证后6位', 2 => '银行卡后6位', 3 => '营业执照后6位'];
+        $info['ytype_text'] = $ytypeMap[$info['ytype'] ?? 0] ?? '-';
+
         // 用户信息
         if (isset($info['user'])) {
             $info['user_nickname'] = $info['user']['nickname'] ?? '';
@@ -154,7 +158,7 @@ class PayOrdersService extends BaseService
     public function delete()
     {
         $id = request()->input('id');
-        
+
         $order = PayOrdersModel::where('id', $id)
             ->where('mark', 1)
             ->first();
@@ -177,7 +181,7 @@ class PayOrdersService extends BaseService
         if ($ids === null) {
             $ids = request()->input('ids', []);
         }
-        
+
         $count = PayOrdersModel::whereIn('id', $ids)
             ->where('mark', 1)
             ->update(['mark' => 0]);
@@ -196,21 +200,21 @@ class PayOrdersService extends BaseService
     {
         $cacheKey = "caches:orders:payCheckList";
         $datas = RedisService::get($cacheKey);
-        if($datas){
+        if ($datas) {
             return $datas;
         }
 
-        $datas = $this->model->where(['mark'=>1])
-            ->whereIn('status',[2,3])
-            ->select(['id','order_no','transaction_id','total as money','status'])
-            ->orderBy('id','desc')
+        $datas = $this->model->where(['mark' => 1])
+            ->whereIn('status', [2, 3])
+            ->select(['id', 'order_no', 'transaction_id', 'total as money', 'status'])
+            ->orderBy('id', 'desc')
             ->limit(500)
             ->get()
             ->keyBy('order_no');
-        $datas = $datas? $datas->toArray() : [];
-        if($datas){
+        $datas = $datas ? $datas->toArray() : [];
+        if ($datas) {
             $datas = array_chunk($datas, 100);
-            RedisService::set($cacheKey, $datas, rand(20,30));
+            RedisService::set($cacheKey, $datas, rand(20, 30));
         }
 
         return $datas;
@@ -230,29 +234,29 @@ class PayOrdersService extends BaseService
         $noStr = implode(',', $nos);
 
         $result = DyrPayService::make()->query($noStr);
-        $datas = isset($result['data'])?$result['data']:[];
+        $datas = isset($result['data']) ? $result['data'] : [];
 
         $errors = [];
         $success = [];
-        if($datas){
-            foreach($datas as $item){
-                $no = isset($item['out_trade_num'])?$item['out_trade_num']:'';
-                $remark = isset($item['remark'])?$item['remark']:'充值失败';
-                $order_number = isset($item['order_number'])?$item['order_number']:'';
-                $charge_amount = isset($item['charge_amount'])?$item['charge_amount']:0;
-                $charge_kami = isset($item['charge_kami'])?$item['charge_kami']:'';
-                $state = isset($item['state'])?$item['state']:-1;
-                if(in_array($state, [1,3])){
-                    $success[$no]= $state;
-                    $updateData = ['status'=> $state==3?6:4,'order_trade_no'=>$order_number,'charge_kami'=>$charge_kami,'charge_amount'=>$charge_amount,'update_time'=>time()];
-                    if(!PayOrdersModel::where(['order_no'=>$no])->update($updateData)){
+        if ($datas) {
+            foreach ($datas as $item) {
+                $no = isset($item['out_trade_num']) ? $item['out_trade_num'] : '';
+                $remark = isset($item['remark']) ? $item['remark'] : '充值失败';
+                $order_number = isset($item['order_number']) ? $item['order_number'] : '';
+                $charge_amount = isset($item['charge_amount']) ? $item['charge_amount'] : 0;
+                $charge_kami = isset($item['charge_kami']) ? $item['charge_kami'] : '';
+                $state = isset($item['state']) ? $item['state'] : -1;
+                if (in_array($state, [1, 3])) {
+                    $success[$no] = $state;
+                    $updateData = ['status' => $state == 3 ? 6 : 4, 'order_trade_no' => $order_number, 'charge_kami' => $charge_kami, 'charge_amount' => $charge_amount, 'update_time' => time()];
+                    if (!PayOrdersModel::where(['order_no' => $no])->update($updateData)) {
                         $errors[$no] = '充值失败退款处理失败';
                     }
                     unset($orders[$no]);
-                }else if($state == 0){
+                } else if ($state == 0) {
                     unset($orders[$no]);
                     $errors[$no] = '充值中';
-                }else{
+                } else {
                     $errors[$no] = $remark;
                 }
 
@@ -261,15 +265,15 @@ class PayOrdersService extends BaseService
         }
 
         // 未查询到充值记录,批量退款
-        if($orders){
-            foreach($orders as $order){
-                $total = isset($order['money'])?$order['money']:0;
-                $refundStatus = PaymentService::make()->refund($order,'pay');
-                $updateData = ['refund_status'=> $refundStatus?1:3,'status'=>5,'failed_remark'=> '充值失败原路退款','refund_money'=>$refundStatus?$total:0,'update_time'=>time()];
-                if(!PayOrdersModel::where(['id'=>$order['id']])->update($updateData)){
+        if ($orders) {
+            foreach ($orders as $order) {
+                $total = isset($order['money']) ? $order['money'] : 0;
+                $refundStatus = PaymentService::make()->refund($order, 'pay');
+                $updateData = ['refund_status' => $refundStatus ? 1 : 3, 'status' => 5, 'failed_remark' => '充值失败原路退款', 'refund_money' => $refundStatus ? $total : 0, 'update_time' => time()];
+                if (!PayOrdersModel::where(['id' => $order['id']])->update($updateData)) {
                     $errors[$order['order_no']] = '充值失败退款处理失败';
-                }else{
-                    $errors[$order['order_no']] = $refundStatus?'充值失败原路退款':'充值失败退款失败';
+                } else {
+                    $errors[$order['order_no']] = $refundStatus ? '充值失败原路退款' : '充值失败退款失败';
                 }
 
                 sleep(2);
@@ -277,6 +281,6 @@ class PayOrdersService extends BaseService
         }
 
         $this->error = '订单状态验证处理成功';
-        return ['success'=>$success,'errors'=>$errors];
+        return ['success' => $success, 'errors' => $errors];
     }
 }