getOneData([ ['uid', '=', $this->mid], ['user_id', '=', $user_id] ],'id,user_id,integral,total_integral'); // 如果用户没有初始化则初始化,再重新获取用户数据 if (empty($my)) { $my_data = [ 'uid' => $this->mid, 'user_id' => $user_id, 'integral' => 0, 'total_integral' => 0 ]; $res = $my_model->dataUpdate($my_data); if (!$res) { return sendErrorArray(2002, '平台初始化失败'); } // 查找我的信息 $my = $my_model->getOneData([ ['uid', '=', $this->mid], ['user_id', '=', $user_id] ],'id,user_id,integral,total_integral'); } // 不可减为负数 if ($integral < 0 && abs($integral) > $my['integral']) { return sendErrorArray(2003, '您的积分不足'); } // 更新我的积分表 $my_update = [ 'id' => $my['id'], 'user_id' => $user_id, 'integral' => Db::raw('integral + ' . $integral) ]; if (in_array($type, $log_model->getJoinStatisticsTypes())) { $my_update['total_integral'] = Db::raw('total_integral + ' . $integral); $my_update['total_integral_change_time'] = time(); } $res = $my_model->dataUpdate($my_update); if (!$res) { return sendErrorArray(2004, '用户积分更新失败'); } // 更新LOG表 $my_log_data = [ 'uid' => $this->mid, 'user_id' => $user_id, 'type' => $type, 'integral' => $integral, 'after_integral' => $my['integral'] + $integral, 'show_text' => $show_text, 'relation_order_number' => $relation_order_number, 'remark' => $remark ]; $res = $log_model->dataUpdate($my_log_data); if (!$res) { return sendErrorArray(2005, '用户积分日志更新失败'); } return sendSuccessArray(); } }