Browse Source

Merge branch 'master' of http://gitlab.frkj.cc/php/zhjwxt

master
于宏哲PHP 10 months ago
parent
commit
708d33efe5
  1. 7
      niucloud/app/api/controller/apiController/CustomerResources.php
  2. 90
      niucloud/app/api/controller/apiController/TeachingResearch.php
  3. 8
      niucloud/app/api/controller/upload/Upload.php
  4. 6
      niucloud/app/api/route/route.php
  5. 4
      niucloud/app/model/chat_friends/ChatFriends.php
  6. 7
      niucloud/app/service/api/apiService/ChatService.php
  7. 41
      niucloud/app/service/api/apiService/CustomerResourcesService.php
  8. 6
      niucloud/app/service/api/apiService/ResourceSharingService.php
  9. 4
      niucloud/app/service/api/upload/UploadService.php

7
niucloud/app/api/controller/apiController/CustomerResources.php

@ -131,6 +131,9 @@ class CustomerResources extends BaseApiService
"distance" => $request->param('distance', ''),//距离 "distance" => $request->param('distance', ''),//距离
"communication" => $request->param('communication', ''),//沟通备注 "communication" => $request->param('communication', ''),//沟通备注
"staff_id" => $request->param('staff_id', ''),//人员ID "staff_id" => $request->param('staff_id', ''),//人员ID
"first_visit_status" => $request->param('first_visit_status', null),//一访情况
"second_visit_status" => $request->param('second_visit_status', null),//二访情况
]; ];
foreach($customer_resources_data as $k=>$v){ foreach($customer_resources_data as $k=>$v){
@ -139,6 +142,10 @@ class CustomerResources extends BaseApiService
} }
} }
foreach($six_speed_data as $k=>$v){ foreach($six_speed_data as $k=>$v){
// 排除 first_visit_status 和 second_visit_status 的必填校验
if (in_array($k, ['first_visit_status', 'second_visit_status'])) {
continue;
}
if(!isset($v) || $v === ''){ if(!isset($v) || $v === ''){
return fail("缺少必填项{$k}"); return fail("缺少必填项{$k}");
} }

90
niucloud/app/api/controller/apiController/TeachingResearch.php

@ -12,6 +12,10 @@
namespace app\api\controller\apiController; namespace app\api\controller\apiController;
use app\dict\member\MemberLoginTypeDict; use app\dict\member\MemberLoginTypeDict;
use app\model\exam_papers\ExamPapers;
use app\model\exam_questions\ExamQuestions;
use app\model\lesson_course_teaching\LessonCourseTeaching;
use app\model\exam_answers\ExamAnswers;
use app\Request; use app\Request;
use app\service\api\apiService\PersonnelService; use app\service\api\apiService\PersonnelService;
use app\service\api\apiService\TeachingResearchService; use app\service\api\apiService\TeachingResearchService;
@ -49,4 +53,90 @@ class TeachingResearch extends BaseApiService
return success((new TeachingResearchService())->lookType($id)); return success((new TeachingResearchService())->lookType($id));
} }
//获取试卷
public function teachingTestPaper(){
$data = $this->request->params([
["exam_papers_id",0]
]);
$ExamPapers = new ExamPapers();
$ExamQuestions = new ExamQuestions();
$exam_papers_id = $data['exam_papers_id'];
$res = $ExamPapers->where('id',$exam_papers_id)->find();
$textArr = $this->safeExplode($res['questions_ids']);
$res['count'] = count($textArr);
$arrayText = [];
foreach ($textArr as $v){
$resText = $ExamQuestions->where('id', $v)->find();
array_push($arrayText,$resText);
}
$res['resText'] = $arrayText;
return success('SUCCESS', $res);
}
//处理字符串
public function safeExplode($value, $delimiter = ',') {
if (is_array($value)) {
return $value;
}
if (is_string($value) && trim($value) !== '') {
return explode($delimiter, $value);
}
return [];
}
//提交试卷
public function submitTestPaper(){
$data = $this->request->params([
["optionList",0],
["testPaperId",0],
["id",0],
]);
$ExamPapers = new ExamPapers();
$ExamQuestions = new ExamQuestions();
$optionList = $data['optionList'];
$testPaperId = $data['testPaperId'];
$res = $ExamPapers->where('id',$testPaperId)->find();
$textArr = $this->safeExplode($res['questions_ids']);
$optionArr = json_decode($optionList, true);
$textArr = array_filter($textArr);
$optionArr = array_filter($optionArr);
if (count($textArr) !== count($optionArr)) {
return fail('请填写全部问题', []);
}
$result = array_map(function($id, $value) {
return ['ids' => (int)$id, 'value' => $value];
}, $textArr, $optionArr);
$where = [
'id'=>$this->member_id,
];
$userRes = (new PersonnelService())->info($where);
$LessonCourseTeaching = new LessonCourseTeaching();
$resLessonTeaching = $LessonCourseTeaching->where('id',$data['id'])->find();
if ($resLessonTeaching['answers_num'] >= $res['number_answers']) {
return fail('已超过答题次数', []);
} else {
foreach ($result as &$v){
$v['user_id'] = $userRes['data']['id'];
$v['question_id'] = $v['ids'];
$v['campus_id'] = 0;
$v['answer'] = $v['value'];
$resEq = $ExamQuestions->where('id',$v['ids'])->find();
if ($resEq['correct_answer'] == $v['value']){
$v['is_correct'] = 1;
} else {
$v['is_correct'] = 0;
}
$ExamAnswers = new ExamAnswers();
$ress = $ExamAnswers->create($v);
}
$LessonCourseTeaching->where('id',$data['id'])->update(['answers_num'=>$resLessonTeaching['answers_num'] + 1]);
$correct = array_filter($result, function($item) {
return $item['is_correct'] == 1;
});
$incorrect = array_filter($result, function($item) {
return $item['is_correct'] == 0;
});
return success('SUCCESS', ['success'=>count($correct),'error'=>count($incorrect),'num'=>(count($correct) * $res['every_score'])]);
}
}
} }

8
niucloud/app/api/controller/upload/Upload.php

@ -15,6 +15,7 @@ use app\service\api\upload\Base64Service;
use app\service\api\upload\FetchService; use app\service\api\upload\FetchService;
use app\service\api\upload\UploadService; use app\service\api\upload\UploadService;
use core\base\BaseApiController; use core\base\BaseApiController;
use think\Request;
use think\Response; use think\Response;
class Upload extends BaseApiController class Upload extends BaseApiController
@ -24,12 +25,15 @@ class Upload extends BaseApiController
* 图片上传 * 图片上传
* @return Response * @return Response
*/ */
public function image(){ public function image(Request $request){
$extraData = $request->all();
$data = $this->request->params([ $data = $this->request->params([
['file', 'file'], ['file', 'file'],
]); ]);
$upload_service = new UploadService(); $upload_service = new UploadService();
return success($upload_service->image($data['file'])); return success($upload_service->image($data['file'],$extraData));
} }
/** /**

6
niucloud/app/api/route/route.php

@ -201,7 +201,7 @@ Route::group(function () {
//需要token验证的 //需要token验证的
Route::group(function () { Route::group(function () {
//上传图片 //员工端-上传图片
Route::post('uploadImage', 'upload.Upload/image'); Route::post('uploadImage', 'upload.Upload/image');
//员工端详情 //员工端详情
Route::get('personnel/info', 'apiController.Personnel/info'); Route::get('personnel/info', 'apiController.Personnel/info');
@ -283,6 +283,10 @@ Route::group(function () {
Route::get('teachingResearch/info/:id', 'apiController.teachingResearch/info'); Route::get('teachingResearch/info/:id', 'apiController.teachingResearch/info');
//获取能看的教研管理类型 //获取能看的教研管理类型
Route::get('teachingResearch/lookType', 'apiController.teachingResearch/lookType'); Route::get('teachingResearch/lookType', 'apiController.teachingResearch/lookType');
//获取试卷
Route::get('teachingResearch/teachingTestPaper', 'apiController.teachingResearch/teachingTestPaper');
//提交试卷
Route::get('teachingResearch/submitTestPaper', 'apiController.teachingResearch/submitTestPaper');
})->middleware(ApiChannel::class) })->middleware(ApiChannel::class)
->middleware(ApiPersonnelCheckToken::class, true) ->middleware(ApiPersonnelCheckToken::class, true)
->middleware(ApiLog::class); ->middleware(ApiLog::class);

4
niucloud/app/model/chat_friends/ChatFriends.php

@ -80,8 +80,8 @@ class ChatFriends extends BaseModel
} }
public function campus(){ public function customer(){
return $this->hasOne(CustomerResources::class, 'id', 'customer_resources_id')->joinType('left')->withField('name,id')->bind(['customer_resources_id'=>'name']); return $this->hasOne(CustomerResources::class, 'id', 'customer_resources_id')->joinType('left')->withField('name,id')->bind(['customer_resources_id_name'=>'name']);
} }
public function personnel(){ public function personnel(){

7
niucloud/app/service/api/apiService/ChatService.php

@ -48,7 +48,12 @@ class ChatService extends BaseApiService
$model = $model->where('customer_resources_id', $where['customer_resources_id']); $model = $model->where('customer_resources_id', $where['customer_resources_id']);
} }
$data = $model->paginate([ $data = $model
->with([
'personnel',
'customer',
])
->paginate([
'list_rows' => $limit, 'list_rows' => $limit,
'page' => $page, 'page' => $page,
])->toArray(); ])->toArray();

41
niucloud/app/service/api/apiService/CustomerResourcesService.php

@ -15,6 +15,7 @@ use app\model\campus_person_role\CampusPersonRole;
use app\model\customer_resource_changes\CustomerResourceChanges; use app\model\customer_resource_changes\CustomerResourceChanges;
use app\model\customer_resources\CustomerResources; use app\model\customer_resources\CustomerResources;
use app\model\dict\Dict; use app\model\dict\Dict;
use app\model\member\Member;
use app\model\personnel\Personnel; use app\model\personnel\Personnel;
use app\model\resource_sharing\ResourceSharing; use app\model\resource_sharing\ResourceSharing;
use app\model\six_speed\SixSpeed; use app\model\six_speed\SixSpeed;
@ -122,10 +123,47 @@ class CustomerResourcesService extends BaseApiService
//开启事物 //开启事物
Db::startTrans(); Db::startTrans();
try { try {
$customer_resources = CustomerResources::where('id', $where['id'])->find(); $customer_resources = CustomerResources::where('id', $where['id'])->find();
$six_speed = SixSpeed::where('resource_id', $where['id'])->find();
if ($customer_resources) { if ($customer_resources) {
$customer_resources = $customer_resources->toArray(); $customer_resources = $customer_resources->toArray();
if(!$customer_resources['member_id'] && $six_speed){
//新数据存在一访问 或者旧数据存在一访的情况 && 这用户没注册过member账号的情况下才给他创建member账号
if(!empty($six_speed_data['first_visit_status']) || $six_speed['first_visit_status']){
$sex = 0;
switch ($customer_resources_data['gender']) {
case 'male'://男
$sex = 1;
break;
case 'female'://女
$sex = 2;
break;
default://其他
$sex = 0;
break;
}
$password = create_password($customer_resources_data['phone_number']);//创建密码
//给用户创建member账号
$member_id = Member::insertGetId([
'username'=>$customer_resources_data['phone_number'],//会员用户名
'mobile'=>$customer_resources_data['phone_number'],//手机号
'password'=>$password,//会员密码
'nickname'=>$customer_resources_data['name'],//会员昵称
'sex'=>$sex,//性别 0保密 1男 2女
'member_time'=>time(),//成为会员时间
]);
if($member_id){
$customer_resources_data['member_id'] = $member_id;
}else{
Db::rollback();
$res['msg'] = '创建用户账号失败';
return $res;
}
}
}
} }
$update_1 = CustomerResources::where('id', $where['id'])->update($customer_resources_data);//客户资源表 $update_1 = CustomerResources::where('id', $where['id'])->update($customer_resources_data);//客户资源表
if (!$update_1) { if (!$update_1) {
@ -157,7 +195,6 @@ class CustomerResourcesService extends BaseApiService
$six_speed_data['resource_id'] = $where['id']; $six_speed_data['resource_id'] = $where['id'];
//查六要素是否存在 //查六要素是否存在
$six_speed = SixSpeed::where('resource_id', $where['id'])->find();
if ($six_speed) { if ($six_speed) {
$six_speed = $six_speed->toArray(); $six_speed = $six_speed->toArray();
//更新六要素 //更新六要素

6
niucloud/app/service/api/apiService/ResourceSharingService.php

@ -115,15 +115,19 @@ class ResourceSharingService extends BaseApiService
]); ]);
} }
])->field($field)->find(); ])->field($field)->find();
if($data){
$data = $data->toArray();
}
if (!empty($data['customerResource'])) { if (!empty($data['customerResource'])) {
$data['customerResource']['cj_count'] = OrderTable::where('resource_id', $data['customerResource']['id']) $data['customerResource']['cj_count'] = OrderTable::where('resource_id', $data['customerResource']['id'])
->where('order_status', 'paid') ->where('order_status', 'paid')
->count();//成交次数 ->count();//成交次数
} }
// dd(123123,$data);
if ($data) { if ($data) {
$res['code'] = 1; $res['code'] = 1;
$res['msg'] = '操作成功'; $res['msg'] = '操作成功';
$res['data'] = $data->toArray(); $res['data'] = $data;
} else { } else {
$res['code'] = 0; $res['code'] = 0;

4
niucloud/app/service/api/upload/UploadService.php

@ -34,9 +34,9 @@ class UploadService extends BaseApiService
* @return array * @return array
* @throws Exception * @throws Exception
*/ */
public function image($file) public function image($file,array $extraData = [])
{ {
$dir = $this->root_path . '/' . 'image' . '/' . date('Ym') . '/' . date('d'); $dir = $this->root_path . '/' . 'image' . '/' . date('Ym') . '/' . date('d');//打印结果 例如=file/image/202505/29
$core_upload_service = new CoreUploadService(); $core_upload_service = new CoreUploadService();
return $core_upload_service->image($file, $dir, $this->cate_id); return $core_upload_service->image($file, $dir, $this->cate_id);
} }

Loading…
Cancel
Save