如何使用ChatGPT修改小程序代码 | 为小程序增加百度内容审核
作者:FancyPig | 发布时间: | 更新时间:
相关阅读
data-postsbox="{"id":30192,"title":"使用ChatGPT修改WPOSS插件代码 | 新增判断 支持GIF图片加载","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/01/20230111013651539.gif","cover_video":"","views":1520,"comment_count":11,"category":"project","is_forum_post":false}">{"id":30192,"title":"使用ChatGPT修改WPOSS插件代码 | 新增判断 支持GIF图片加载","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/01/20230111013651539.gif","cover_video":"","views":1520,"comment_count":11,"category":"project","is_forum_post":false}
data-postsbox="{"id":30130,"title":"使用ChatGPT写一个二次元动漫图片爬虫","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/01/20230110152749493.png","cover_video":"","views":1730,"comment_count":5,"category":"knowledge","is_forum_post":false}">{"id":30130,"title":"使用ChatGPT写一个二次元动漫图片爬虫","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/01/20230110152749493.png","cover_video":"","views":1730,"comment_count":5,"category":"knowledge","is_forum_post":false}
data-postsbox="{"id":31554,"title":"我用ChatGPT写了一个射击游戏 | ChatGPT玩法介绍","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/02/20230131163521695.png","cover_video":"https://v.pigsec.cn/I%20Made%20a%20Game%20with%20ChatGPT..._ts.m3u8","views":3824,"comment_count":5,"category":"knowledge","is_forum_post":false}">{"id":31554,"title":"我用ChatGPT写了一个射击游戏 | ChatGPT玩法介绍","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/02/20230131163521695.png","cover_video":"https://v.pigsec.cn/I%20Made%20a%20Game%20with%20ChatGPT..._ts.m3u8","views":3824,"comment_count":5,"category":"knowledge","is_forum_post":false}
杂谈
最近,热心网友让我帮忙看一看他的小程序

需求就是在发布内容之前加入一个百度审核的功能

我们将详细分享如何使用ChatGPT来修改代码,支持百度内容审核。
代码定位
要修改代码,首先我们应该定位到代码的位置,通常情况下,这里可以看到是发布动态触发的发布功能。
因此,我们可以尝试在vscode里搜索下关键词,如发布、发帖等
如果你不知道也可以去看下Nginx日志,可以看到请求接口,进一步定位

我们这里通过搜索就找到了相关代码的位置

可以找到相关代码
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status']==1)
{
return error(false,'你被禁言了');
}
//images tags_ids cate_id content
$site = xn_cfg('base');
if (isset($site['add_goods_sh']) && $site['add_goods_sh'] == 1) {
$param['is_sh'] = 1;
$msg="发布成功";
}else{
$param['is_sh'] = 0;
$msg="发布成功,请等待审核";
}
$param['create_time'] = time();
$param['tags_ids'] = ','.$param['tags_ids'].',';
$param['user_id'] = $request->loginInfo['id'];
$res = Db::name('goods')->strict(false)->insertGetId($param);
if ($res) {
Db::name('category')->where('id',$param['cate_id'])->inc('goods_num')->update();
Db::name('tags')->where('id',$param['tags_ids'])->inc('goods_num')->update();
//closedoig();
addAfterLevel($request->loginInfo,'goods');//处理等级
addAfterMedal($request->loginInfo,'goods');//处理勋章
return success([],$msg);
}
return error($res,'发布失败');
}

百度内容审核API
之后,我们需要看下百度内容审核API文档,这里可以复制相关代码
<?php
class Sample {
const API_KEY = "百度内容审核API_KEY";
const SECRET_KEY = "百度内容审核SECRET_KEY";
public function run() {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token={$this->getAccessToken()}",
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'text=%E4%BD%A0%E5%A6%B9%E7%9A%84',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
/**
* 使用 AK,SK 生成鉴权签名(Access Token)
* @return string 鉴权签名信息(Access Token)
*/
private function getAccessToken(){
$curl = curl_init();
$postData = array(
'grant_type' => 'client_credentials',
'client_id' => self::API_KEY,
'client_secret' => self::SECRET_KEY
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query($postData)
));
$response = curl_exec($curl);
curl_close($curl);
$rtn = json_decode($response);
return $rtn->access_token;
}
}
$rtn = (new Sample())->run();
print_r($rtn);
注意这里复制到的会将输入内容也携带上,后面我们需要将内容修改为发帖携带的变量内容
CURLOPT_POSTFIELDS => 'text=%E4%BD%A0%E5%A6%B9%E7%9A%84',

并且我们需要进行调试,看下成功应该返回什么,失败应该返回什么
我这里尝试输入一句话骂人的话你妹的,可以看到响应内容
{
"conclusion": "不合规",
"log_id": "16870111916138307",
"data": [
{
"msg": "存在低俗辱骂不合规",
"conclusion": "不合规",
"hits": [
{
"wordHitPositions": [],
"probability": 1,
"datasetName": "百度默认文本反作弊库",
"words": [],
"modelHitPositions": [
[
0,
2,
1
]
]
}
],
"subType": 5,
"conclusionType": 2,
"type": 12
}
],
"isHitMd5": false,
"conclusionType": 2
}

再试下正常词的返回结果

如何让ChatGPT帮助我们修改代码
提供发布帖子代码,并提供百度内容审核API以及要修改的需求
请在下面的代码基础上修改,并增加百度内容审核API,先确定提交内容合规再发布,如果不合规则返回内容不合规
```
class User extends Base
{
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status']==1)
{
return error(false,'你被禁言了');
}
//images tags_ids cate_id content
$site = xn_cfg('base');
if (isset($site['add_goods_sh']) && $site['add_goods_sh'] == 1) {
$param['is_sh'] = 1;
$msg="发布成功";
}else{
$param['is_sh'] = 0;
$msg="发布成功,请等待审核";
}
$param['create_time'] = time();
$param['tags_ids'] = ','.$param['tags_ids'].',';
$param['user_id'] = $request->loginInfo['id'];
$res = Db::name('goods')->strict(false)->insertGetId($param);
if ($res) {
Db::name('category')->where('id',$param['cate_id'])->inc('goods_num')->update();
Db::name('tags')->where('id',$param['tags_ids'])->inc('goods_num')->update();
//closedoig();
addAfterLevel($request->loginInfo,'goods');//处理等级
addAfterMedal($request->loginInfo,'goods');//处理勋章
return success([],$msg);
}
return error($res,'发布失败');
}
```
百度内容审核API接口如下
```
<?php
class Sample {
const API_KEY = "751f1l****2kWpRA";
const SECRET_KEY = "n3bBuB****CiwNLZ";
public function run() {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token={$this->getAccessToken()}",
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
/**
* 使用 AK,SK 生成鉴权签名(Access Token)
* @return string 鉴权签名信息(Access Token)
*/
private function getAccessToken(){
$curl = curl_init();
$postData = array(
'grant_type' => 'client_credentials',
'client_id' => self::API_KEY,
'client_secret' => self::SECRET_KEY
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query($postData)
));
$response = curl_exec($curl);
curl_close($curl);
$rtn = json_decode($response);
return $rtn->access_token;
}
}
$rtn = (new Sample())->run();
print_r($rtn);
```
如果合规通常返回
```
{
"log_id": 15556561295920002,
"conclusion": "合规",
"conclusionType": 1
}
或者
{
"log_id": 15572142621780024,
"conclusion": "合规",
"conclusionType": 1,
"data": [{
"type": 14,
"subType": 0,
"conclusion": "合规",
"conclusionType": 1,
"msg": "自定义文本白名单审核通过",
"hits": [{
"datasetName": "SLK-测试-自定义文本白名单",
"words": ["张三"]
}]
}]
}
```
如果不合规则返回
```
{
"log_id": 15656780617612718,
"conclusion": "不合规",
"conclusionType": 2,
"data": [{
"type": 11,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在百度官方默认违禁词库不合规",
"hits": [{
"datasetName": "百度默认黑词库",
"words": ["免费翻墙"]
}]
}, {
"type": 12,
"subType": 2,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在文本色情不合规",
"hits": [{
"datasetName": "百度默认文本反作弊库",
"probability": 1.0,
"words": ["电话 找小姐"]
}]
}, {
"type": 12,
"subType": 3,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在文本色情不合规",
"hits": [
{
"modelHitPositions":[
[
0,
6,
0.9998
]
],
"wordHitPositions":[
{
"keyword":"找小姐",
"positions":[
[
0,
2
]
],
"label":"201102"
}
],
"probability":"1.0",
"datasetName":"百度默认文本反作弊库",
"words":[
"找小姐"
]
}
]
}, {
"type": 12,
"subType": 4,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在恶意推广不合规",
"hits": [{
"probability": 1.0,
"datasetName": "百度默认文本反作弊库",
"words": [""]
}]
}, {
"type": 13,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "SLK-测试-自定义黑名单",
"words": ["我是你爹", "他妈的"]
}]
}]
}
```
如果失败响应则返回
```
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg":"configId error"
}
```
下面是ChatGPT返回的
首先,我们需要将百度内容审核API的代码封装成一个方法,以便在发布帖子的代码中调用。为此,在`User`类中添加一个名为`contentReview`的方法,如下所示:
```php
private function contentReview($content)
{
// 百度内容审核API代码
}
```
接下来,将提供的百度内容审核API代码复制到`contentReview`方法中,并修改`run`方法为以下内容:
```php
public function contentReview($content)
{
// ...
// 将 CURLOPT_POSTFIELDS 替换为以下内容
CURLOPT_POSTFIELDS => http_build_query(array('text' => $content)),
}
```
接下来,在`addNewGoods`方法中,我们需要在发布帖子前调用`contentReview`方法检查内容是否合规。只有在内容合规的情况下,才进行进一步的发布操作。
```php
public function addNewGoods(Request $request)
{
$param = $request->param();
// ...
// 在发布帖子前调用 contentReview 方法检查内容是否合规
$reviewResult = $this->contentReview($param['content']);
$reviewResult = json_decode($reviewResult, true);
if ($reviewResult['conclusionType'] != 1) {
return error(false, '内容不合规');
}
// ...
}
```
将上述修改后的代码应用到您的`User`类中,最终代码如下:
```php
class User extends Base
{
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status']==1)
{
return error(false,'你被禁言了');
}
// 在发布帖子前调用 contentReview 方法检查内容是否合规
$reviewResult = $this->contentReview($param['content']);
$reviewResult = json_decode($reviewResult, true);
if ($reviewResult['conclusionType'] != 1) {
return error(false, '内容不合规');
}
// ...
}
private function contentReview($content)
{
// 百度内容审核API代码
}
}
```
现在,当调用`addNewGoods`方法发布帖子时,将首先检查帖子内容是否合规。如果内容合规,将继续发布;如果不合规,将返回错误信息“内容不合规”。
之后我们改完代码发现,点击发布按钮,什么效果都没有了,这时我们继续提问
目前并不会返回任何结果了,发布没有任何提示,也不会进入下一个页面,请继续修改代码
ChatGPT进行回复
抱歉,我之前的回答可能导致了一些问题。让我们通过以下步骤解决这个问题:
1. 将`contentReview`方法移动到`User`类外部,并将其改为`public`。
2. 在`User`类的`addNewGoods`方法中创建`ContentReview`类的实例并调用`contentReview`方法。
修改后的代码如下:
```php
class ContentReview
{
const API_KEY = "751f1l****2kWpRA";
const SECRET_KEY = "n3bBuB****CiwNLZ";
public function contentReview($content)
{
// 百度内容审核API代码
}
// ...
}
class User extends Base
{
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status'] == 1) {
return error(false, '你被禁言了');
}
// 在发布帖子前调用 contentReview 方法检查内容是否合规
$contentReview = new ContentReview();
$reviewResult = $contentReview->contentReview($param['content']);
$reviewResult = json_decode($reviewResult, true);
if ($reviewResult['conclusionType'] != 1) {
return error(false, '内容不合规');
}
// ...
}
}
```
请尝试使用此修改后的代码,并告诉我是否解决了问题。如果仍然有问题,请提供更多详细信息,以便我更好地了解您的问题。
我这里怀疑是自己复制代码的时候弄错了,因此让他输出完整的代码
请将ContentReview及百度内容审核API完整代码进行输出
ChatGPT继续输出
以下是将`ContentReview`类与百度内容审核API的完整代码集成在一起的示例:
```php
class ContentReview
{
const API_KEY = "your_api_key";
const SECRET_KEY = "your_secret_key";
public function contentReview($content)
{
$url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined';
$params = [
'text' => $content,
];
$response = $this->requestPost($url, $params, $this->getAccessToken());
return $response;
}
private function getAccessToken()
{
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$params = [
'grant_type' => 'client_credentials',
'client_id' => self::API_KEY,
'client_secret' => self::SECRET_KEY,
];
$response = json_decode($this->requestPost($url, $params), true);
return $response['access_token'];
}
private function requestPost($url = '', $params = [], $access_token = '')
{
$headers = [
'Content-Type: application/x-www-form-urlencoded',
];
if ($access_token) {
array_push($headers, 'Authorization: Bearer ' . $access_token);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
```
请将`your_api_key`和`your_secret_key`替换为您的百度API密钥和秘密密钥。现在,您可以在其他类中创建`ContentReview`类的实例,并使用`contentReview`方法对文本进行内容审核。
结果发现依旧点击发布没响应,这个时候,我想起来可以让ChatGPT添加一些调试信息,继续发送
能否输出一些调试内容,目前点击发布按钮一直在转,似乎并没有提交成功
ChatGPT的回复
当然可以。我们可以在`User`类的`addNewGoods`方法中添加一些调试信息以便更好地了解问题。在`addNewGoods`方法中添加`error_log`函数来记录关键步骤的调试信息。修改后的代码如下:
```php
class User extends Base
{
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status'] == 1) {
return error(false, '你被禁言了');
}
// 在发布帖子前调用 contentReview 方法检查内容是否合规
$contentReview = new ContentReview();
$reviewResult = $contentReview->contentReview($param['content']);
$reviewResult = json_decode($reviewResult, true);
// 添加调试信息
error_log("Review result: " . print_r($reviewResult, true));
if ($reviewResult['conclusionType'] != 1) {
return error(false, '内容不合规');
}
// 在此处添加发布帖子的代码
// ...
// 添加调试信息以确认帖子已发布
error_log("帖子已发布");
}
}
```
现在,当您点击发布按钮时,调试信息将被记录到PHP错误日志中。您可以查看错误日志以了解详细信息。如果您无法找到错误日志,请查看您的PHP配置以确定日志文件的位置。通常,错误日志文件可以在以下位置找到:
- Apache:`/var/log/apache2/error.log`
- Nginx:`/var/log/nginx/error.log`
- PHP-FPM:`/var/log/php-fpm.log`
请注意,这些文件路径可能因系统和配置而异。如果您仍然无法解决问题,请提供错误日志中的详细信息,以便我更好地了解您的问题。
添加之后,我去看了下Nginx日志,我感觉应该是请求接口的时候出现的问题

然后继续将上面的问题反馈给ChatGPT
报错日志为
```
2023/06/17 22:09:27 [error] 26893#0: *22924 FastCGI sent in stderr: "PHP message: Review result: Array
(
[error_code] => 14
[error_msg] => IAM Certification failed
)"
```
我重新检查了下百度内容安全审核API文档,代码如下
```
<?php
class Sample {
const API_KEY = "751f1l****2kWpRA";
const SECRET_KEY = "n3bBuB****CiwNLZ";
public function run() {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token={$this->getAccessToken()}",
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'text=123',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
/**
* 使用 AK,SK 生成鉴权签名(Access Token)
* @return string 鉴权签名信息(Access Token)
*/
private function getAccessToken(){
$curl = curl_init();
$postData = array(
'grant_type' => 'client_credentials',
'client_id' => self::API_KEY,
'client_secret' => self::SECRET_KEY
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query($postData)
));
$response = curl_exec($curl);
curl_close($curl);
$rtn = json_decode($response);
return $rtn->access_token;
}
}
$rtn = (new Sample())->run();
print_r($rtn);
```
返回值如果合规为
```
{
"conclusion": "合规",
"log_id": "16870111024832167",
"isHitMd5": false,
"conclusionType": 1
}
```
如果失败则返回
```
{
"conclusion": "不合规",
"log_id": "16870111916138307",
"data": [
{
"msg": "存在低俗辱骂不合规",
"conclusion": "不合规",
"hits": [
{
"wordHitPositions": [],
"probability": 1,
"datasetName": "百度默认文本反作弊库",
"words": [],
"modelHitPositions": [
[
0,
2,
1
]
]
}
],
"subType": 5,
"conclusionType": 2,
"type": 12
}
],
"isHitMd5": false,
"conclusionType": 2
}
```
请继续修改代码
这次ChatGPT的回复就解决了代码上的问题
根据您提供的错误日志和百度内容审核API代码示例,我发现问题可能在于`ContentReview`类中的`requestPost`方法。在您的示例代码中,仅在URL中传递了`access_token`,而不是在请求头中传递。让我们修改`ContentReview`类以应用这一变更。
```php
class ContentReview
{
const API_KEY = "751f1l****2kWpRA";
const SECRET_KEY = "n3bBuB****CiwNLZ";
public function contentReview($content)
{
$url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined';
$params = [
'text' => $content,
];
$accessToken = $this->getAccessToken();
$url .= "?access_token={$accessToken}";
$response = $this->requestPost($url, $params);
return $response;
}
// ...
private function requestPost($url = '', $params = [])
{
$headers = [
'Content-Type: application/x-www-form-urlencoded',
'Accept: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
```
现在`ContentReview`类应该正常工作。使用这个修改后的代码,您应该能够正常发布帖子并获取内容审核结果。如果您仍然遇到问题,请告诉我。
按照ChatGPT的上面代码修改之后可以看到已经生效了

修改后的部分核心代码
class ContentReview
{
const API_KEY = "百度内容审核API_KEY";
const SECRET_KEY = "百度内容审核SECRET_KEY";
public function contentReview($content)
{
$url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined';
$params = [
'text' => $content,
];
$accessToken = $this->getAccessToken();
$url .= "?access_token={$accessToken}";
$response = $this->requestPost($url, $params);
return $response;
}
private function getAccessToken()
{
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$params = [
'grant_type' => 'client_credentials',
'client_id' => self::API_KEY,
'client_secret' => self::SECRET_KEY,
];
$response = json_decode($this->requestPost($url, $params), true);
return $response['access_token'];
}
private function requestPost($url = '', $params = [])
{
$headers = [
'Content-Type: application/x-www-form-urlencoded',
'Accept: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
class User extends Base
{
// public function __construct(Request $request)
// {
// //如果有JWT则自动获取用户id
// $jwt = $request->header('token');
// if (!$jwt) {
// $jwt = $request->param['token'];
// }
// if ($jwt) {
// $jwtDecode = Jwt::decode($jwt, Config::get('jwt.key'), ['HS256']);
// $request->userInfo = Db::name('user')->where('id', $jwtDecode->uid)->find();
// if (!empty($request->userInfo)) {
// $request->loginInfo = $request->userInfo;
// $request->userId = $jwtDecode->uid;
// }
// }
// }
//发布帖子
public function addNewGoods(Request $request)
{
$param = $request->param();
if ($request->loginInfo['status']==1)
{
return error(false,'你被禁言了');
}
//images tags_ids cate_id content
// 在发布帖子前调用 contentReview 方法检查内容是否合规
$contentReview = new ContentReview();
$reviewResult = $contentReview->contentReview($param['content']);
$reviewResult = json_decode($reviewResult, true);
if ($reviewResult['conclusionType'] != 1) {
return error(false, '内容不合规');
}
$site = xn_cfg('base');
if (isset($site['add_goods_sh']) && $site['add_goods_sh'] == 1) {
$param['is_sh'] = 1;
$msg="发布成功";
}else{
$param['is_sh'] = 0;
$msg="发布成功,请等待审核";
}
$param['create_time'] = time();
$param['tags_ids'] = ','.$param['tags_ids'].',';
$param['user_id'] = $request->loginInfo['id'];
$res = Db::name('goods')->strict(false)->insertGetId($param);
if ($res) {
Db::name('category')->where('id',$param['cate_id'])->inc('goods_num')->update();
Db::name('tags')->where('id',$param['tags_ids'])->inc('goods_num')->update();
//closedoig();
addAfterLevel($request->loginInfo,'goods');//处理等级
addAfterMedal($request->loginInfo,'goods');//处理勋章
return success([],$msg);
}
return error($res,'发布失败');
}
总结
使用ChatGPT修改代码,是不是蛮有意思的,其实你只要描述清楚需求,描述好相关第三方接口的请求与响应,ChatGPT就可以帮你生成相关代码,融合第三方API能力。