zhanglinxin 1 年之前
父节点
当前提交
abe541fe36

+ 5 - 4
application/api/controller/Approve.php

@@ -115,7 +115,7 @@ class Approve extends Base
         $params = compact("id", "status", "remark");
         Db::startTrans();
         try {
-            ApproveService::make($id, $params, $this->user,'audit');
+            ApproveService::make($id, $params, $this->user, 'audit');
             Db::commit();
         } catch (Exception $e) {
             Db::rollback();
@@ -145,11 +145,12 @@ class Approve extends Base
      *     @Apidoc\Param("desc", type="string", require=false, desc="备注"),
      * )
      **/
-    public function edit(){
+    public function edit()
+    {
         $id = input('approve_id');
         $module = input('module');
         $reason = input('reason');
-        $desc = input('desc','');
+        $desc = input('desc', '');
         $start_time = input('start_time');
         $end_time = input('end_time');
         $document = input('document');
@@ -161,7 +162,7 @@ class Approve extends Base
         $params = compact("id", "module", "reason", "desc", "start_time", "end_time", "document", "images", "type", "is_who", "remark", "peer_user");
         Db::startTrans();
         try {
-            ApproveService::make($id,$params, $this->user,'edit');
+            ApproveService::make($id, $params, $this->user, 'edit');
             Db::commit();
         } catch (Exception $e) {
             Db::rollback();

+ 3 - 1
application/api/controller/Common.php

@@ -30,6 +30,7 @@ class Common extends Base
      * @Apidoc\Returned("module_list", type="array", desc="模块列表")
      * @Apidoc\Returned("degree_list", type="array", desc="缓急程度列表")
      * @Apidoc\Returned("pay_type_list", type="array", desc="采购支付方式列表")
+     * @Apidoc\Returned("time_list", type="array", desc="请假周期列表")
      * @Apidoc\Returned("data1", type="array", desc="采购类型列表")
      * @Apidoc\Returned("data2", type="array", desc="呈批类型列表")
      * @Apidoc\Returned("data5", type="array", desc="出差类型列表")
@@ -42,13 +43,14 @@ class Common extends Base
         $module_list = get_one_two_array(CommonConstant::get_module_list(), 'id', 'name');
         $degree_list = get_one_two_array(OfferConstant::get_degree_list(), 'id', 'name');
         $pay_type_list = get_one_two_array(ApplyConstant::get_pay_type_list(), 'id', 'name');
+        $time_list = get_one_two_array(LeaveConstant::get_time_list(), 'id', 'name');
         $data1 = get_one_two_array(ApplyConstant::get_type_list(), 'id', 'name');
         $data2 = get_one_two_array(OfferConstant::get_type_list(), 'id', 'name');
         $data5 = get_one_two_array(EvectionConstant::get_type_list(), 'id', 'name');
         $data6 = get_one_two_array(LeaveConstant::get_type_list(), 'id', 'name');
         $data8 = get_one_two_array(MaintainConstant::get_type_list(), 'id', 'name');
         $data9 = get_one_two_array(ContractConstant::get_type_list(), 'id', 'name');
-        $data = compact("module_list", "degree_list", "pay_type_list", "data1", "data2", "data5", "data6", "data8", "data9");
+        $data = compact("module_list", "degree_list", "pay_type_list", "time_list", "data1", "data2", "data5", "data6", "data8", "data9");
         $this->success('类型列表', $data);
     }
 

+ 55 - 34
application/api/controller/Member.php

@@ -2,12 +2,12 @@
 
 namespace app\api\controller;
 
-use think\Db;
-use app\common\model\User;
+use app\common\model\Department;
+use app\common\service\ApproveService;
 use hg\apidoc\annotation as Apidoc;
 
 /**
- * @Apidoc\Title("个人中心")
+ * @Apidoc\Title("我的")
  * @Apidoc\Group("api")
  * @Apidoc\Sort("2")
  */
@@ -23,61 +23,82 @@ class Member extends Base
      * 获取个人信息
      *
      * @Apidoc\Method("POST")
-     * @Apidoc\Returned("phone", type="int", desc="手机号")
-     * @Apidoc\Returned("name", type="string", desc="姓名")
+     * @Apidoc\Returned("avatar", type="string", desc="头像地址")
      * @Apidoc\Returned("nickname", type="string", desc="昵称")
-     * @Apidoc\Returned("headimg", type="string", desc="头像地址")
-     * @Apidoc\Returned("title", type="string", desc="职称")
+     * @Apidoc\Returned("name", type="string", desc="姓名")
+     * @Apidoc\Returned("mobile", type="string", desc="手机号码")
      * @Apidoc\Returned("department", type="string", desc="部门(多个部门以逗号分隔)")
+     * @Apidoc\Returned("title", type="string", desc="职位")
      * @Apidoc\Returned("signature", type="string", desc="个人签名")
+     * @Apidoc\Returned("department_list", type="array", desc="部门列表")
      */
     public function user_info()
     {
         $user = $this->user;
-        $this->success('获取成功',$user);
+        $info['avatar'] = $user['avatar'];
+        $info['nickname'] = $user['nickname'];
+        $info['name'] = $user['name'];
+        $info['mobile'] = $user['mobile'];
+        $info['department'] = $user['department'];
+        $info['title'] = $user['title'];
+        $info['signature'] = $user['signature'];
+        $info['department_list'] = Department::field('dept_id,name')->where('dept_id', 'in', $user['department'])->select();
+        $this->success('获取成功', $info);
     }
 
     /**
      * 编辑个人信息
      *
      * @Apidoc\Method("POST")
-     * @Apidoc\Param("type", type="int", require=true, desc="修改的类型(1:昵称,2:签名,3:手机号)")
-     * @Apidoc\Param("nickname", type="string", desc="昵称")
-     * @Apidoc\Param("signature", type="string", desc="签名")
-     * @Apidoc\Param("phone", type="string", desc="手机号")
+     * @Apidoc\Param("avatar", type="string", require=false, desc="头像地址")
+     * @Apidoc\Param("nickname", type="string", require=false, desc="昵称")
+     * @Apidoc\Param("mobile", type="string", require=false, desc="手机号码")
+     * @Apidoc\Param("signature", type="string", require=false, desc="签名")
      */
     public function edit()
     {
-        $uid = $this->user_id;
-        $type = input('type');
+        $avatar = input('avatar');
         $nickname = input('nickname');
+        $mobile = input('mobile');
         $signature = input('signature');
-        $phone = input('phone');
-        if(!in_array($type,[1,2,3])){
-            $this->error('参数错误');
+
+        $data = [];
+        if ($avatar) {
+            $data['avatar'] = $avatar;
         }
-        if($type == 1){
-            if(empty($nickname)){
-                $this->error('参数错误');
-            }
-            $update_data['nickname'] = $nickname;
-        }elseif ($type == 2){
-            if(empty($signature)){
-                $this->error('参数错误');
-            }
-            $update_data['signature'] = $signature;
-        }elseif ($type == 2){
-            if(empty($phone)){
-                $this->error('参数错误');
-            }
-            if(!preg_match("/^1[23456789]\d{9}$/", $phone)){
+        if ($nickname) {
+            $data['nickname'] = $nickname;
+        }
+        if (!empty($mobile)) {
+            if (!preg_match("/^1[23456789]\d{9}$/", $mobile)) {
                 $this->error('手机号格式不正确');
             }
-            $update_data['phone'] = $phone;
+            $data['mobile'] = $mobile;
+        }
+        if ($signature) {
+            $data['signature'] = $signature;
+        }
+
+        if ($data) {
+            $user = $this->user;
+            $user->save($data);
         }
-        Db::name('store_member')->where('id',$uid)->update($update_data);
         $this->success('编辑成功');
     }
+
+    /**
+     * 审批待处理统计
+     *
+     * @Apidoc\Method("POST")
+     * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
+     * @Apidoc\Returned("module_text", type="string", desc="模块类型描述")
+     * @Apidoc\Returned("number", type="integer", desc="待处理数量")
+     **/
+    public function get_count(){
+        $user = $this->user;
+        $data = ApproveService::get_count($user);
+        $this->success('审批待处理统计', $data);
+    }
 }
 
 

+ 1 - 1
application/common/service/ApproveInfoService.php

@@ -486,7 +486,7 @@ class ApproveInfoService
                     throw new Exception('其他人已操作');
                 }
 
-                // 钉钉接口 TODO
+                // TODO 待对接钉钉接口
                 break;
             case 'cancel':
                 if ($info->status != CommonConstant::STATUS_4) {

+ 46 - 3
application/common/service/ApproveService.php

@@ -4,6 +4,7 @@ namespace app\common\service;
 
 use app\common\constant\CommonConstant;
 use app\common\model\Approve;
+use app\common\model\ApproveInfo;
 use app\common\model\User;
 use think\Db;
 use think\Exception;
@@ -15,6 +16,47 @@ class ApproveService
 {
 
     /**
+     * 审批待处理统计
+     *
+     * @param mixed $user 用户信息
+     **/
+    public static function get_count(User $user)
+    {
+        $get_module_list = CommonConstant::get_module_list();
+        $modules = array_keys($get_module_list);
+
+        $userid = $user['userid'];
+        $ids = Approve::where('status', CommonConstant::STATUS_2)
+            ->where('is_deleted', CommonConstant::IS_DELETED_0)
+            ->where('approve_user', $userid)
+            ->column('info_id');
+        $object = [];
+        if ($ids) {
+            $list = ApproveInfo::field('module,count(id) as number')
+                ->where('id', 'in', $ids)
+                ->where('is_deleted', CommonConstant::IS_DELETED_0)
+                ->where('module', 'in', $modules)
+                ->where('status', CommonConstant::STATUS_2)
+                ->group('module')
+                ->select();
+            $object = $list ? array_column($list->toArray(), null, 'module') : [];
+        }
+
+        $data = [];
+        foreach ($get_module_list as $module => $value) {
+            $module_text = $value;
+            $number = 0;
+            if (array_key_exists($module, $object)) {
+                $number = $object[$module]['number'];
+            }
+
+            $params = compact('module', "module_text", 'number');
+            $data[] = $params;
+        }
+        return $data;
+    }
+
+    /**
      * 审批列表
      *
      * @param integer $status 处理状态
@@ -154,7 +196,8 @@ class ApproveService
      * @param mixed $user 用户信息
      * @param string $type 类型:audit=审批,edit=修改
      **/
-    public static function make($id,$params, $user,$type){
+    public static function make($id, $params, $user, $type)
+    {
         $userid = $user['userid'];
         $info = Approve::field('id,info_id,status,approve_flow,approve_time')
             ->where('approve_user', $userid)
@@ -181,10 +224,10 @@ class ApproveService
 
         switch ($type) {
             case 'audit':
-                self::audit($info,$params['status'],$params['remark']);
+                self::audit($info, $params['status'], $params['remark']);
                 break;
             case 'edit':
-                self::edit($info,$params['module'],$params);
+                self::edit($info, $params['module'], $params);
                 break;
         }
     }