|
|
@@ -11,6 +11,7 @@
|
|
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
+use App\Models\PracticeLogsModel;
|
|
|
use App\Models\PracticesModel;
|
|
|
|
|
|
/**
|
|
|
@@ -22,6 +23,8 @@ use App\Models\PracticesModel;
|
|
|
*/
|
|
|
class PracticesService extends BaseService
|
|
|
{
|
|
|
+
|
|
|
+ protected static $instance = null;
|
|
|
/**
|
|
|
* 构造函数
|
|
|
* @author wesmiler
|
|
|
@@ -34,12 +37,24 @@ class PracticesService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 静态入口
|
|
|
+ * @return PracticesService|null
|
|
|
+ */
|
|
|
+ public static function make(){
|
|
|
+ if(!self::$instance){
|
|
|
+ self::$instance = new PracticesService();
|
|
|
+ }
|
|
|
+
|
|
|
+ return self::$instance;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取列表
|
|
|
* @return array
|
|
|
* @since 2020/11/11
|
|
|
* @author wesmiler
|
|
|
*/
|
|
|
- public function getDataList()
|
|
|
+ public function getDataList($userId)
|
|
|
{
|
|
|
$params = request()->all();
|
|
|
$page = isset($params['pageSize']) ? intval($params['pageSize']) : PAGE;
|
|
|
@@ -59,10 +74,7 @@ class PracticesService extends BaseService
|
|
|
foreach ($dataList['data'] as &$item) {
|
|
|
$item['thumb'] = $item['thumb'] ? get_image_url($item['thumb']) : '';
|
|
|
$item['create_time'] = $item['create_time'] ? datetime($item['create_time'],'Y-m-d H:i:s') : '';
|
|
|
- $item['complete_status'] = 0;
|
|
|
- if($item['complete_time']>strtotime(date('Y-m-d'))){
|
|
|
- $item['complete_status'] = 1;
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
unset($item);
|
|
|
}
|
|
|
@@ -114,4 +126,41 @@ class PracticesService extends BaseService
|
|
|
return parent::edit($data); // TODO: Change the autogenerated stub
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param $userId
|
|
|
+ * @param $itemId
|
|
|
+ * @param $remark
|
|
|
+ * @return array|false
|
|
|
+ */
|
|
|
+ public function saveLog($userId, $itemId, $remark){
|
|
|
+ $cacheKey ="caches:practices:logs_{$userId}_{$itemId}";
|
|
|
+ if(RedisService::get($cacheKey)){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $logInfo = PracticeLogsModel::where(['item_id'=> $itemId,'user_id'=> $userId,'mark'=> 1,'status'=> 1])
|
|
|
+ ->where('create_time','>',strtotime(date('Y-m-d')))
|
|
|
+ ->select(['id','item_id','user_id','remark'])
|
|
|
+ ->orderBy('create_time','desc')
|
|
|
+ ->first();
|
|
|
+ if($logInfo){
|
|
|
+ RedisService::set($cacheKey, $logInfo, rand(5, 10));
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'item_id'=> $itemId,
|
|
|
+ 'user_id'=> $userId,
|
|
|
+ 'remark'=> $remark,
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'update_time'=> time(),
|
|
|
+ 'status'=> 1,
|
|
|
+ ];
|
|
|
+
|
|
|
+ if(PracticeLogsModel::insertGetId($data)){
|
|
|
+ RedisService::set($cacheKey, $data, rand(5, 10));
|
|
|
+ return message('操作成功', true);
|
|
|
+ }
|
|
|
+ return message('操作失败', false);
|
|
|
+ }
|
|
|
}
|