|
@@ -4,10 +4,12 @@ use App\Models\Behavior;
|
|
|
use App\Models\BehaviorOperationLog;
|
|
|
use App\Models\CommentRecord;
|
|
|
use App\Models\GeneralRecord;
|
|
|
+use App\Models\Post;
|
|
|
use App\Models\RegisteredRecord;
|
|
|
use App\Models\ReleaseRecord;
|
|
|
use GuzzleHttp\Client;
|
|
|
use GuzzleHttp\Exception\RequestException;
|
|
|
+use Illuminate\Support\Carbon;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
use Tymon\JWTAuth\Facades\JWTAuth;
|
|
@@ -24,9 +26,9 @@ use Illuminate\Database\QueryException;
|
|
|
|
|
|
class BehaviorRepository
|
|
|
{
|
|
|
- public function __construct(Behavior $behavior,BehaviorOperationLog $behaviorOperationLog,
|
|
|
- RegisteredRecord $registeredRecord,CommentRecord $commentRecord,
|
|
|
- GeneralRecord $generalRecord,ReleaseRecord $releaseRecord)
|
|
|
+ public function __construct(Behavior $behavior, BehaviorOperationLog $behaviorOperationLog,
|
|
|
+ RegisteredRecord $registeredRecord, CommentRecord $commentRecord,
|
|
|
+ GeneralRecord $generalRecord, ReleaseRecord $releaseRecord)
|
|
|
{
|
|
|
$this->behavior = $behavior;
|
|
|
$this->behaviorOperationLog = $behaviorOperationLog;
|
|
@@ -60,53 +62,53 @@ class BehaviorRepository
|
|
|
]);
|
|
|
$res = json_decode($response->getBody()->getContents(), true);
|
|
|
$res = $res ? $res['behaviors'] : [];
|
|
|
- }catch (RequestException $exception){
|
|
|
+ } catch (RequestException $exception) {
|
|
|
$res = [
|
|
|
'returnCode' => '-1',
|
|
|
- 'errMsg' => '网络超时'.$exception->getMessage()
|
|
|
+ 'errMsg' => '网络超时' . $exception->getMessage()
|
|
|
];
|
|
|
- Log::debug('获取virus行为列表:'.$exception->getMessage());
|
|
|
+ Log::debug('获取virus行为列表:' . $exception->getMessage());
|
|
|
}
|
|
|
//已登记行为
|
|
|
$registered_bahavior = $this->behavior->get();
|
|
|
$registered_bahaviors = $registered_bahavior->toArray();
|
|
|
|
|
|
- foreach ($registered_bahaviors as $key=>$val){
|
|
|
+ foreach ($registered_bahaviors as $key => $val) {
|
|
|
$registered_bahaviors[$key]['behavior_status'] = 1;//已登记
|
|
|
}
|
|
|
- $virus_behavior_id = array_column($registered_bahaviors,'virus_behavior_id');
|
|
|
+ $virus_behavior_id = array_column($registered_bahaviors, 'virus_behavior_id');
|
|
|
|
|
|
$new_res = [];
|
|
|
//行为列表去重
|
|
|
- foreach ($res as $k=>$v) {
|
|
|
- if (isset($v['_id']) && !empty($virus_behavior_id)){
|
|
|
- $res[$k]['behavior_status'] = 0;//未登记
|
|
|
- $res[$k]['behavior_flag'] = $v['behavior_flag'];
|
|
|
- $res[$k]['behavior_identification'] = $v['behavior_flag'];
|
|
|
- unset($res[$k]['behavior_flag']);
|
|
|
+ foreach ($res as $k => $v) {
|
|
|
+ if (isset($v['_id']) && !empty($virus_behavior_id)) {
|
|
|
+ $res[$k]['behavior_status'] = 0;//未登记
|
|
|
+ $res[$k]['behavior_flag'] = $v['behavior_flag'];
|
|
|
+ $res[$k]['behavior_identification'] = $v['behavior_flag'];
|
|
|
+ unset($res[$k]['behavior_flag']);
|
|
|
if (in_array($v['_id'], $virus_behavior_id)) {
|
|
|
unset($res[$k]);
|
|
|
}
|
|
|
- $new_res = array_merge($res, $registered_bahaviors);
|
|
|
+ $new_res = array_merge($res, $registered_bahaviors);
|
|
|
|
|
|
- }elseif (!isset($v['_id']) && $virus_behavior_id) {
|
|
|
- $new_res = $registered_bahaviors;
|
|
|
- }elseif (isset($v['_id']) && empty($virus_behavior_id)){
|
|
|
- $res[$k]['behavior_status'] = 0;//未登记
|
|
|
- $res[$k]['behavior_flag'] = $v['behavior_flag'];
|
|
|
- $res[$k]['behavior_identification'] = $v['behavior_flag'];
|
|
|
- unset($res[$k]['behavior_flag']);
|
|
|
- $new_res = $res;
|
|
|
+ } elseif (!isset($v['_id']) && $virus_behavior_id) {
|
|
|
+ $new_res = $registered_bahaviors;
|
|
|
+ } elseif (isset($v['_id']) && empty($virus_behavior_id)) {
|
|
|
+ $res[$k]['behavior_status'] = 0;//未登记
|
|
|
+ $res[$k]['behavior_flag'] = $v['behavior_flag'];
|
|
|
+ $res[$k]['behavior_identification'] = $v['behavior_flag'];
|
|
|
+ unset($res[$k]['behavior_flag']);
|
|
|
+ $new_res = $res;
|
|
|
}
|
|
|
}
|
|
|
$new_re = [];
|
|
|
//根据行为ID筛选
|
|
|
- if (isset($request['virus_behavior_id'])){
|
|
|
- foreach ($new_res as $k=>$v){
|
|
|
- if (isset($v['id']) && $v['id'] != $request['virus_behavior_id']){
|
|
|
+ if (isset($request['virus_behavior_id'])) {
|
|
|
+ foreach ($new_res as $k => $v) {
|
|
|
+ if (isset($v['id']) && $v['id'] != $request['virus_behavior_id']) {
|
|
|
unset($new_res[$k]);
|
|
|
$new_re = array_merge($new_res);
|
|
|
- }elseif (isset($v['_id']) && $v['_id'] != $request['virus_behavior_id']){
|
|
|
+ } elseif (isset($v['_id']) && $v['_id'] != $request['virus_behavior_id']) {
|
|
|
unset($new_res[$k]);
|
|
|
$new_re = array_merge($new_res);
|
|
|
}
|
|
@@ -114,9 +116,9 @@ class BehaviorRepository
|
|
|
return $new_re;
|
|
|
}
|
|
|
//根据行为状态(类型)筛选
|
|
|
- if (isset($request['behavior_status'])){
|
|
|
- foreach ($new_res as $kk=>$vv){
|
|
|
- if (isset($vv['behavior_status']) && $vv['behavior_status'] != $request['behavior_status']){
|
|
|
+ if (isset($request['behavior_status'])) {
|
|
|
+ foreach ($new_res as $kk => $vv) {
|
|
|
+ if (isset($vv['behavior_status']) && $vv['behavior_status'] != $request['behavior_status']) {
|
|
|
unset($new_res[$kk]);
|
|
|
$new_re = array_merge($new_res);
|
|
|
}
|
|
@@ -137,12 +139,12 @@ class BehaviorRepository
|
|
|
// return $new_re;
|
|
|
// }
|
|
|
//根据行为名称筛选
|
|
|
- if (isset($request['name'])){
|
|
|
+ if (isset($request['name'])) {
|
|
|
foreach ($new_res as $key => $val) {
|
|
|
- if (isset($val['name']) && strpos($val['name'],$request['name']) !== false) {
|
|
|
+ if (isset($val['name']) && strpos($val['name'], $request['name']) !== false) {
|
|
|
$new_re[] = $new_res[$key];
|
|
|
}
|
|
|
- if (isset($val['behavior_name']) && strpos($val['behavior_name'],$request['name']) !== false ) {
|
|
|
+ if (isset($val['behavior_name']) && strpos($val['behavior_name'], $request['name']) !== false) {
|
|
|
$new_re[] = $new_res[$key];
|
|
|
}
|
|
|
}
|
|
@@ -158,20 +160,20 @@ class BehaviorRepository
|
|
|
throw new HttpException(500, '该行为已存在');
|
|
|
}
|
|
|
|
|
|
- if(isset($request['allotted_quantity_rule']) && isset($request['rainbow_beans'])) {
|
|
|
+ if (isset($request['allotted_quantity_rule']) && isset($request['rainbow_beans'])) {
|
|
|
$rule = $request['allotted_quantity_rule'];
|
|
|
$rainbow_beans = $request['rainbow_beans'];
|
|
|
$count = 0;
|
|
|
if (count($rule) == count($rule, 1)) {
|
|
|
$count = array_sum($rule);
|
|
|
- if ($count > $rainbow_beans){
|
|
|
+ if ($count > $rainbow_beans) {
|
|
|
throw new HttpException(500, '唯一行为-分配总数不能大于行为生成彩虹豆总数');
|
|
|
}
|
|
|
} else {
|
|
|
- foreach ($rule as $value){
|
|
|
+ foreach ($rule as $value) {
|
|
|
$count += $value['bean'];
|
|
|
}
|
|
|
- if ($count > $rainbow_beans){
|
|
|
+ if ($count > $rainbow_beans) {
|
|
|
throw new HttpException(500, '多级行为-分配总数不能大于行为生成彩虹豆总数');
|
|
|
}
|
|
|
}
|
|
@@ -203,14 +205,14 @@ class BehaviorRepository
|
|
|
try {
|
|
|
$res = $this->behavior->create($data);
|
|
|
if ($res) {
|
|
|
- $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
+ $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
$uid = $token['user']->id;
|
|
|
$username = $token['user']->username;
|
|
|
$cerate_bahavior_data = [
|
|
|
'operator_id' => $uid,
|
|
|
'behavior_id' => $res['id'],
|
|
|
'username' => $username,
|
|
|
- 'content' => '创建'.$request['name'].'行为',
|
|
|
+ 'content' => '创建' . $request['name'] . '行为',
|
|
|
'type' => 0,
|
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
@@ -225,7 +227,7 @@ class BehaviorRepository
|
|
|
|
|
|
} catch (QueryException $exception) {
|
|
|
DB::rollBack();
|
|
|
- Log::debug('注册行为:'.$exception->getMessage());
|
|
|
+ Log::debug('注册行为:' . $exception->getMessage());
|
|
|
return Response::create([
|
|
|
'message' => '添加失败,请重试',
|
|
|
'error' => $exception->getMessage(),
|
|
@@ -237,7 +239,7 @@ class BehaviorRepository
|
|
|
public function edit($request)
|
|
|
{
|
|
|
$behavior_id = $this->behavior->find($request['id']);
|
|
|
- if ($behavior_id->is_open == 1){
|
|
|
+ if ($behavior_id->is_open == 1) {
|
|
|
throw new HttpException(500, '无法编辑已经在记录的行为');
|
|
|
}
|
|
|
$update_bahavior = [
|
|
@@ -261,40 +263,40 @@ class BehaviorRepository
|
|
|
'relative_series' => isset($request['relative_series']) ? $request['relative_series'] : 0,
|
|
|
'absolute_progression' => isset($request['absolute_progression']) ? $request['absolute_progression'] : 0,
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
- ];
|
|
|
+ ];
|
|
|
DB::beginTransaction();
|
|
|
- try{
|
|
|
- $res = $this->behavior->where('id',$request['id'])->update($update_bahavior);
|
|
|
- if ($res) {
|
|
|
- $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
- $uid = $token['user']->id;
|
|
|
- $username = $token['user']->username;
|
|
|
- $cerate_bahavior_data = [
|
|
|
- 'operator_id' => $uid,
|
|
|
- 'behavior_id' => $request['id'],
|
|
|
- 'username' => $username,
|
|
|
- 'content' => json_encode($update_bahavior),
|
|
|
- 'type' => 1,
|
|
|
- 'created_at' => date('Y-m-d H:i:s'),
|
|
|
- 'updated_at' => date('Y-m-d H:i:s')
|
|
|
- ];
|
|
|
- $result = $this->behaviorOperationLog->insert($cerate_bahavior_data);
|
|
|
- if (!$result) {
|
|
|
- throw new HttpException(500, '操作日志记录失败');
|
|
|
- }
|
|
|
+ try {
|
|
|
+ $res = $this->behavior->where('id', $request['id'])->update($update_bahavior);
|
|
|
+ if ($res) {
|
|
|
+ $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
+ $uid = $token['user']->id;
|
|
|
+ $username = $token['user']->username;
|
|
|
+ $cerate_bahavior_data = [
|
|
|
+ 'operator_id' => $uid,
|
|
|
+ 'behavior_id' => $request['id'],
|
|
|
+ 'username' => $username,
|
|
|
+ 'content' => json_encode($update_bahavior),
|
|
|
+ 'type' => 1,
|
|
|
+ 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
+ ];
|
|
|
+ $result = $this->behaviorOperationLog->insert($cerate_bahavior_data);
|
|
|
+ if (!$result) {
|
|
|
+ throw new HttpException(500, '操作日志记录失败');
|
|
|
}
|
|
|
- DB::commit();
|
|
|
- return Response::create();
|
|
|
-
|
|
|
- } catch (QueryException $exception) {
|
|
|
- DB::rollBack();
|
|
|
- Log::debug('编辑行为:'.$exception->getMessage());
|
|
|
- return Response::create([
|
|
|
- 'message' => '编辑失败,请重试',
|
|
|
- 'error' => $exception->getMessage(),
|
|
|
- 'status_code' => 500
|
|
|
- ]);
|
|
|
}
|
|
|
+ DB::commit();
|
|
|
+ return Response::create();
|
|
|
+
|
|
|
+ } catch (QueryException $exception) {
|
|
|
+ DB::rollBack();
|
|
|
+ Log::debug('编辑行为:' . $exception->getMessage());
|
|
|
+ return Response::create([
|
|
|
+ 'message' => '编辑失败,请重试',
|
|
|
+ 'error' => $exception->getMessage(),
|
|
|
+ 'status_code' => 500
|
|
|
+ ]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function editStatus($request)
|
|
@@ -305,25 +307,25 @@ class BehaviorRepository
|
|
|
'is_open' => $request['is_open'],
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
];
|
|
|
- if ($request['is_open'] == 0){
|
|
|
+ if ($request['is_open'] == 0) {
|
|
|
$is_open = '关闭';
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$is_open = '开启';
|
|
|
}
|
|
|
$behavior_name = $behavior->name;
|
|
|
|
|
|
DB::beginTransaction();
|
|
|
try {
|
|
|
- $res = $behavior->where('id',$request['id'])->update($behavior_array);
|
|
|
+ $res = $behavior->where('id', $request['id'])->update($behavior_array);
|
|
|
if ($res) {
|
|
|
- $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
+ $token = JWTAuth::decode(JWTAuth::getToken());
|
|
|
$uid = $token['user']->id;
|
|
|
$username = $token['user']->username;
|
|
|
$cerate_bahavior_data = [
|
|
|
'operator_id' => $uid,
|
|
|
'behavior_id' => $request['id'],
|
|
|
'username' => $username,
|
|
|
- 'content' => $is_open.'了'.$behavior_name.'行为',
|
|
|
+ 'content' => $is_open . '了' . $behavior_name . '行为',
|
|
|
'type' => 2,
|
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
@@ -364,39 +366,28 @@ class BehaviorRepository
|
|
|
if(isset($request['name'])){
|
|
|
$where[] = ['name', 'like', "%{$request['name']}%"];
|
|
|
}
|
|
|
- //触发次数由多到少-由少到多筛选
|
|
|
- if (isset($request['trigger_times']) && $request['trigger_times'] == 0){
|
|
|
- return $this->behavior->orderBy('trigger_times','desc')->paginate($perPage);
|
|
|
- }elseif (isset($request['trigger_times']) && $request['trigger_times'] == 1){
|
|
|
- return $this->behavior->orderBy('trigger_times','asc')->paginate($perPage);
|
|
|
- }
|
|
|
- //有效触发由多到少-由少到多筛选
|
|
|
- if (isset($request['effective_trigger']) && $request['effective_trigger'] == 0){
|
|
|
- return $this->behavior->orderBy('effective_trigger','desc')->paginate($perPage);
|
|
|
- }elseif (isset($request['effective_trigger']) && $request['effective_trigger'] == 1){
|
|
|
- return $this->behavior->orderBy('effective_trigger','asc')->paginate($perPage);
|
|
|
- }
|
|
|
- //绝对级数由多到少-由少到多筛选
|
|
|
- if (isset($request['absolute_progression']) && $request['absolute_progression'] == 0){
|
|
|
- return $this->behavior->orderBy('absolute_progression','desc')->paginate($perPage);
|
|
|
- }elseif (isset($request['absolute_progression']) && $request['absolute_progression'] == 1){
|
|
|
- return $this->behavior->orderBy('absolute_progression','asc')->paginate($perPage);
|
|
|
- }
|
|
|
- //耗费体力值由多到少-由少到多筛选
|
|
|
- if (isset($request['physical_strength']) && $request['physical_strength'] == 0){
|
|
|
- return $this->behavior->orderBy('physical_strength','desc')->paginate($perPage);
|
|
|
- }elseif (isset($request['physical_strength']) && $request['physical_strength'] == 1){
|
|
|
- return $this->behavior->orderBy('physical_strength','asc')->paginate($perPage);
|
|
|
- }
|
|
|
- //发放彩虹豆由多到少-由少到多筛选
|
|
|
- if (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 0){
|
|
|
- return $this->behavior->orderBy('grant_rainbow_beans','desc')->paginate($perPage);
|
|
|
- }elseif (isset($request['grant_rainbow_beans']) && $request['grant_rainbow_beans'] == 1){
|
|
|
- return $this->behavior->orderBy('grant_rainbow_beans','asc')->paginate($perPage);
|
|
|
- }
|
|
|
|
|
|
- return $this->behavior->where($where)->paginate($perPage);
|
|
|
+ if(isset($request['trigger_times'])){//触发次数由多到少-由少到多筛选
|
|
|
+ $filed = 'trigger_times';
|
|
|
+ $sort = $request['trigger_times'] == 0 ? 'desc' : 'asc';
|
|
|
+ }elseif(isset($request['effective_trigger'])){//有效触发由多到少-由少到多筛选
|
|
|
+ $filed = 'effective_trigger';
|
|
|
+ $sort=$request['effective_trigger'] == 0 ? 'desc' : 'asc';
|
|
|
+ }elseif (isset($request['absolute_progression'])){////绝对级数由多到少-由少到多筛选
|
|
|
+ $filed = 'absolute_progression';
|
|
|
+ $sort=$request['absolute_progression'] == 0 ? 'desc' : 'asc';
|
|
|
+ }elseif (isset($request['physical_strength'])){//耗费体力值由多到少-由少到多筛选
|
|
|
+ $filed = 'physical_strength';
|
|
|
+ $sort=$request['physical_strength'] == 0 ? 'desc' : 'asc';
|
|
|
+ }elseif (isset($request['grant_rainbow_beans'])) {//发放彩虹豆由多到少-由少到多筛选
|
|
|
+ $filed = 'grant_rainbow_beans';
|
|
|
+ $sort = $request['grant_rainbow_beans'] == 0 ? 'desc' : 'asc';
|
|
|
+ }else{
|
|
|
+ $sort = 'id';
|
|
|
+ $filed = 'desc';
|
|
|
+ }
|
|
|
|
|
|
+ return $this->behavior->where($where)->orderBy($filed,$sort)->paginate($perPage);
|
|
|
}
|
|
|
|
|
|
}
|