Browse Source

Update 后端代码更新调整

Yue 2 years ago
parent
commit
4efde5cdc2
19 changed files with 319 additions and 98 deletions
  1. 13 1
      SERVER/YanZhongXYH/script/sql/Add.sql
  2. 98 68
      SERVER/YanZhongXYH/script/sql/XYHSQL.sql
  3. 27 0
      SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/controller/BaseController.java
  4. 4 0
      SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/domain/dto/UserOnlineDTO.java
  5. 6 0
      SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/domain/model/LoginUser.java
  6. 1 1
      SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/enums/UserType.java
  7. 15 6
      SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/helper/LoginHelper.java
  8. 20 13
      SERVER/YanZhongXYH/xyh-framework/src/main/java/cn/xyh/framework/listener/UserActionListener.java
  9. 2 2
      SERVER/YanZhongXYH/xyh-framework/src/main/java/cn/xyh/framework/satoken/service/SaPermissionImpl.java
  10. 33 6
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/controller/alumnus/AmAlumnusController.java
  11. 1 1
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/controller/system/SysUserController.java
  12. 9 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/domain/AmAlumnus.java
  13. 22 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/domain/vo/AmAlumnusVo.java
  14. 6 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/mapper/AmAlumnusMapper.java
  15. 1 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/permissions/PermissionName.java
  16. 10 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/IAmAlumnusService.java
  17. 4 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/SysLoginService.java
  18. 22 0
      SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/impl/AmAlumnusServiceImpl.java
  19. 25 0
      SERVER/YanZhongXYH/xyh-system/src/main/resources/mapper/system/AmAlumnusMapper.xml

+ 13 - 1
SERVER/YanZhongXYH/script/sql/Add.sql

@@ -36,6 +36,12 @@ insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component,
 values (2006, '校友导出', 2001, '5', '#', '', 1, 0, 'F', '0', '0', 'system:alumnus:export', 'cloud-download',
         'btn btn-light-info', 'handleExport', 'admin', sysdate(), '', null, '');
 
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible,
+                      status, perms, icon, btn_class, btn_script, create_by, create_time, update_by, update_time,
+                      remark)
+values (2007, '校友审核', 2001, '5', '#', '', 1, 0, 'F', '0', '0', 'system:alumnus:audit', 'cloud-download',
+        'btn btn-light-info', 'handleAudit', 'admin', sysdate(), '', null, '');
+
 insert into sys_role_menu
 values ('1', 2001);
 insert into sys_role_menu
@@ -48,6 +54,8 @@ insert into sys_role_menu
 values ('1', 2005);
 insert into sys_role_menu
 values ('1', 2006);
+insert into sys_role_menu
+values ('1', 2007);
 
 insert into sys_role_menu
 values ('2', 2001);
@@ -61,6 +69,10 @@ insert into sys_role_menu
 values ('2', 2005);
 insert into sys_role_menu
 values ('2', 2006);
+insert into sys_role_menu
+values ('2', 2007);
 
 insert into sys_role_menu
-values ('3', 2004);
+values ('3', 2003);
+insert into sys_role_menu
+values ('3', 2004);

+ 98 - 68
SERVER/YanZhongXYH/script/sql/XYHSQL.sql

@@ -13,20 +13,22 @@ create table am_alumnus
     user_id       bigint(20)  not null comment '用户id',
     name          varchar(30) not null comment '姓名',
     gender        char(1)     default 0 comment '性别',
-    birthday      date                   comment '出生日期',
+    birthday      date comment '出生日期',
     type          char(1)     default '0' comment '校友身份(0校友 1教职工 2校友及教职工 3其他)',
-    enrol_year    char(4)                 comment '入学年份',
-    graduate_year char(4)                 comment '毕业年份',
-    am_class      varchar(15)             comment '班级',
+    enrol_year    char(4) comment '入学年份',
+    graduate_year char(4) comment '毕业年份',
+    am_class      varchar(15) comment '班级',
     audit_status  char(1)     default '0' comment '审核状态 0未审核 1已通过 2未通过',
+    audit_id      bigint(20) comment '审核人ID',
+    audit_time    datetime comment '审核时间',
     education     varchar(30) default '' comment '最高学历',
-    province      varchar(10)            comment '省份',
-    city          varchar(10)            comment '城市',
-    district      varchar(10)            comment '区县',
-    native_place  varchar(10)            comment '籍贯',
-    email         varchar(50)            comment '邮箱',
-    qq            varchar(15)            comment 'QQ',
-    wechat        varchar(30)            comment '微信',
+    province      varchar(10) comment '省份',
+    city          varchar(10) comment '城市',
+    district      varchar(10) comment '区县',
+    native_place  varchar(10) comment '籍贯',
+    email         varchar(50) comment '邮箱',
+    qq            varchar(15) comment 'QQ',
+    wechat        varchar(30) comment '微信',
     am_public     char(1)     default '0' comment '信息公开标志(0不公开 1好友公开 2全部公开)',
     industry      varchar(10) default '' comment '行业',
     industry_area varchar(10) default '' comment '行业领域',
@@ -47,8 +49,8 @@ create table am_alumnus
 drop table if exists am_alumnus_ex;
 create table am_alumnus_ex
 (
-    am_id             bigint(20)   not null comment '校友id',
-    user_id           bigint(20)   not null comment '用户id',
+    am_id             bigint(20) not null comment '校友id',
+    user_id           bigint(20) not null comment '用户id',
     address           varchar(100) default '' comment '详细地址',
     work_unit_more    varchar(50)  default '' comment '工作单位介绍',
     industry_more     varchar(500) default '' comment '行业说明',
@@ -56,11 +58,11 @@ create table am_alumnus_ex
     resources         varchar(500) default '' comment '能提供的资源',
     create_by         varchar(64)  default '' comment '创建者',
     create_time       datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by         varchar(64)  default '' comment '更新者',
+    update_time       datetime comment '更新时间',
     remark            varchar(500) default null comment '备注',
     primary key (am_id)
-) engine = innodb  comment = '校友扩展信息';
+) engine = innodb comment = '校友扩展信息';
 
 -- ----------------------------
 -- 3、学习经历信息
@@ -68,7 +70,7 @@ create table am_alumnus_ex
 drop table if exists am_study;
 create table am_study
 (
-    study_id         bigint(20)  not null comment '校友id',
+    study_id      bigint(20)  not null comment '校友id',
     am_id         bigint(20)  not null comment '校友id',
     study         varchar(30) not null comment '专业名称',
     enrol_year    char(4)     not null comment '入学年份',
@@ -92,8 +94,8 @@ create table am_friends
     status      char(4)      default 0 comment '状态(0好友 1黑名单)',
     create_by   varchar(64)  default '' comment '创建者',
     create_time datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (am_id, friend_id)
 ) engine = innodb
@@ -111,8 +113,8 @@ create table am_friends_apply
     status      char(4)      default 0 comment '状态(0申请中 1通过 2拒绝)',
     create_by   varchar(64)  default '' comment '创建者',
     create_time datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (apply_id)
 ) engine = innodb
@@ -133,8 +135,8 @@ create table am_news
     isHead      char(1)      default '0' comment '是否头条(0否 1是)',
     create_by   varchar(64)  default '' comment '创建者',
     create_time datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (news_id)
 ) engine = innodb comment = '资讯信息';
@@ -158,7 +160,7 @@ create table am_activity
     status        char(4)      default 0 comment '状态(0草稿 1申请中 2通过 3拒绝)',
     create_by     varchar(64)  default '' comment '创建者',
     create_time   datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
+    update_by     varchar(64)  default '' comment '更新者',
     update_time   datetime comment '更新时间',
     remark        varchar(500) default null comment '备注',
     primary key (activity_id)
@@ -180,8 +182,8 @@ create table am_activity_apply
     cost_time    datetime       default null comment '创建时间',
     create_by    varchar(64)    default '' comment '创建者',
     create_time  datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by    varchar(64)    default '' comment '更新者',
+    update_time  datetime comment '更新时间',
     remark       varchar(500)   default null comment '备注',
     primary key (apply_id, activity_id)
 ) engine = innodb
@@ -202,8 +204,8 @@ create table am_help
     status      char(4)      default 0 comment '状态(0草稿 1申请中 2通过 3拒绝)',
     create_by   varchar(64)  default '' comment '创建者',
     create_time datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (help_id)
 ) engine = innodb comment = '互助信息';
@@ -244,8 +246,8 @@ create table am_attach
     file_name   varchar(255) not null comment '附件名称',
     create_by   varchar(64)  default '' comment '创建者',
     create_time datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (att_id)
 ) engine = innodb
@@ -265,8 +267,8 @@ create table am_statistics
     favorite_status char(1)      default '0' comment '收藏状态(0未收藏 1收藏)',
     create_by       varchar(64)  default '' comment '创建者',
     create_time     datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    update_by       varchar(64)  default '' comment '更新者',
+    update_time     datetime comment '更新时间',
     remark          varchar(500) default null comment '备注',
     primary key (am_id, source_id)
 ) engine = innodb comment = '统计信息';
@@ -281,10 +283,10 @@ create table am_follow
     follow_id   bigint(20) not null comment '关注id',
     status      char(1)      default '0' comment '关注状态(0未关注 1关注)',
     follow_time datetime comment '关注时间',
-    create_by       varchar(64)  default '' comment '创建者',
-    create_time     datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
-    update_time   datetime comment '更新时间',
+    create_by   varchar(64)  default '' comment '创建者',
+    create_time datetime comment '创建时间',
+    update_by   varchar(64)  default '' comment '更新者',
+    update_time datetime comment '更新时间',
     remark      varchar(500) default null comment '备注',
     primary key (am_id, follow_id)
 ) engine = innodb comment = '关注信息';
@@ -299,46 +301,74 @@ create table sys_category
     parent_id     bigint(20)   default '0' comment '父类别id',
     category_name varchar(20) not null comment '类别名称',
     category_type char(4)     not null comment '类别类型',
-    sort  int(4)   default 0 comment '类别排序',
+    sort          int(4)       default 0 comment '类别排序',
     status        char(1)      default '0' comment '类别状态(0禁用 1启用)',
-    create_by       varchar(64)  default '' comment '创建者',
-    create_time     datetime comment '创建时间',
-    update_by     varchar(64) default '' comment '更新者',
+    create_by     varchar(64)  default '' comment '创建者',
+    create_time   datetime comment '创建时间',
+    update_by     varchar(64)  default '' comment '更新者',
     update_time   datetime comment '更新时间',
     remark        varchar(500) default null comment '备注',
     primary key (category_id)
 ) engine = innodb comment = '类别信息';
 
-insert into sys_category values (1, 0, '要闻', 'N', 1,'1', null,null, null,null, null);
-insert into sys_category values (2, 0, '通知', 'N', 2,'1', null,null, null,null, null);
-insert into sys_category values (3, 0, '校友风采', 'N', 3,'1', null,null, null,null, null);
-insert into sys_category values (4, 0, '校企展示', 'N', 4,'1', null,null, null,null, null);
-insert into sys_category values (5, 0, '盐中新闻', 'N', 5,'1', null,null, null,null, null);
-insert into sys_category values (6, 0, '其他', 'A', 6,'1', null,null, null,null, null);
+insert into sys_category
+values (1, 0, '要闻', 'N', 1, '1', null, null, null, null, null);
+insert into sys_category
+values (2, 0, '通知', 'N', 2, '1', null, null, null, null, null);
+insert into sys_category
+values (3, 0, '校友风采', 'N', 3, '1', null, null, null, null, null);
+insert into sys_category
+values (4, 0, '校企展示', 'N', 4, '1', null, null, null, null, null);
+insert into sys_category
+values (5, 0, '盐中新闻', 'N', 5, '1', null, null, null, null, null);
+insert into sys_category
+values (6, 0, '其他', 'A', 6, '1', null, null, null, null, null);
 
-insert into sys_category values (20, 0, '文体娱乐', 'A', 1,'1', null,null, null,null, null);
-insert into sys_category values (21, 0, '户外活动', 'A', 2,'1', null,null, null,null, null);
-insert into sys_category values (22, 0, '闲聊小聚', 'A', 3,'1', null,null, null,null, null);
-insert into sys_category values (23, 0, '创业碰撞', 'A', 4,'1', null,null, null,null, null);
-insert into sys_category values (24, 0, '公益活动', 'A', 5,'1', null,null, null,null, null);
-insert into sys_category values (25, 0, '旅游度假', 'A', 6,'1', null,null, null,null, null);
-insert into sys_category values (26, 0, '摄影摄像', 'A', 7,'1', null,null, null,null, null);
-insert into sys_category values (27, 0, '校友聚会', 'A', 8,'1', null,null, null,null, null);
-insert into sys_category values (28, 0, '教育培训', 'A', 9,'1', null,null, null,null, null);
-insert into sys_category values (29, 0, '学术活动', 'A', 10,'1', null,null, null,null, null);
-insert into sys_category values (30, 0, '游戏动漫', 'A', 11,'1', null,null, null,null, null);
-insert into sys_category values (31, 0, '线上会议', 'A', 12,'1', null,null, null,null, null);
-insert into sys_category values (32, 0, '其他', 'A', 13,'1', null,null, null,null, null);
+insert into sys_category
+values (20, 0, '文体娱乐', 'A', 1, '1', null, null, null, null, null);
+insert into sys_category
+values (21, 0, '户外活动', 'A', 2, '1', null, null, null, null, null);
+insert into sys_category
+values (22, 0, '闲聊小聚', 'A', 3, '1', null, null, null, null, null);
+insert into sys_category
+values (23, 0, '创业碰撞', 'A', 4, '1', null, null, null, null, null);
+insert into sys_category
+values (24, 0, '公益活动', 'A', 5, '1', null, null, null, null, null);
+insert into sys_category
+values (25, 0, '旅游度假', 'A', 6, '1', null, null, null, null, null);
+insert into sys_category
+values (26, 0, '摄影摄像', 'A', 7, '1', null, null, null, null, null);
+insert into sys_category
+values (27, 0, '校友聚会', 'A', 8, '1', null, null, null, null, null);
+insert into sys_category
+values (28, 0, '教育培训', 'A', 9, '1', null, null, null, null, null);
+insert into sys_category
+values (29, 0, '学术活动', 'A', 10, '1', null, null, null, null, null);
+insert into sys_category
+values (30, 0, '游戏动漫', 'A', 11, '1', null, null, null, null, null);
+insert into sys_category
+values (31, 0, '线上会议', 'A', 12, '1', null, null, null, null, null);
+insert into sys_category
+values (32, 0, '其他', 'A', 13, '1', null, null, null, null, null);
 
-insert into sys_category values (50, 0, '创业合作', 'H', 1,'1', null,null, null,null, null);
-insert into sys_category values (51, 0, '资源合作', 'H', 2,'1', null,null, null,null, null);
-insert into sys_category values (52, 0, '招聘求职', 'H', 3,'1', null,null, null,null, null);
-insert into sys_category values (53, 0, '企业推介', 'H', 4,'1', null,null, null,null, null);
-insert into sys_category values (54, 0, '供应采购', 'H', 5,'1', null,null, null,null, null);
-insert into sys_category values (55, 0, '商务合作', 'H', 6,'1', null,null, null,null, null);
-insert into sys_category values (56, 0, '服务咨询', 'H', 7,'1', null,null, null,null, null);
-insert into sys_category values (57, 0, '二手交易', 'H', 8,'1', null,null, null,null, null);
-insert into sys_category values (58, 0, '其他', 'H', 9,'1', null,null, null,null, null);
+insert into sys_category
+values (50, 0, '创业合作', 'H', 1, '1', null, null, null, null, null);
+insert into sys_category
+values (51, 0, '资源合作', 'H', 2, '1', null, null, null, null, null);
+insert into sys_category
+values (52, 0, '招聘求职', 'H', 3, '1', null, null, null, null, null);
+insert into sys_category
+values (53, 0, '企业推介', 'H', 4, '1', null, null, null, null, null);
+insert into sys_category
+values (54, 0, '供应采购', 'H', 5, '1', null, null, null, null, null);
+insert into sys_category
+values (55, 0, '商务合作', 'H', 6, '1', null, null, null, null, null);
+insert into sys_category
+values (56, 0, '服务咨询', 'H', 7, '1', null, null, null, null, null);
+insert into sys_category
+values (57, 0, '二手交易', 'H', 8, '1', null, null, null, null, null);
+insert into sys_category
+values (58, 0, '其他', 'H', 9, '1', null, null, null, null, null);
 
 
 SET FOREIGN_KEY_CHECKS = 1;

+ 27 - 0
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/controller/BaseController.java

@@ -2,6 +2,7 @@ package cn.xyh.common.core.controller;
 
 import cn.xyh.common.core.domain.R;
 import cn.xyh.common.core.domain.model.LoginUser;
+import cn.xyh.common.enums.UserType;
 import cn.xyh.common.helper.LoginHelper;
 import cn.xyh.common.utils.StringUtils;
 
@@ -33,6 +34,16 @@ public class BaseController {
         return result ? R.ok() : R.fail();
     }
 
+    /**
+     * 响应返回结果
+     *
+     * @param result 结果
+     * @return 操作结果
+     */
+    protected R<Void> toAjax(boolean result, String message) {
+        return result ? R.ok(message) : R.fail(message);
+    }
+
     /**
      * 页面跳转
      */
@@ -67,4 +78,20 @@ public class BaseController {
     public String getUsername() {
         return LoginHelper.getUsername();
     }
+
+    /**
+     * 获取登录Amid
+     */
+    public Long getAmId() {
+        return LoginHelper.getAmId();
+    }
+
+    /**
+     * 是否为校友
+     *
+     * @return
+     */
+    public Boolean isAlumnus() {
+        return UserType.getUserType(getLoginUser().getUserType()) == UserType.AM_USER;
+    }
 }

+ 4 - 0
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/domain/dto/UserOnlineDTO.java

@@ -56,5 +56,9 @@ public class UserOnlineDTO implements Serializable {
      * 登录时间
      */
     private Long loginTime;
+    /**
+     * 校友Id
+     */
+    private Long amId;
 
 }

+ 6 - 0
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/domain/model/LoginUser.java

@@ -23,6 +23,11 @@ public class LoginUser implements Serializable {
      */
     private Long userId;
 
+    /**
+     * 校友Id
+     */
+    private Long amId;
+
     /**
      * 组织结构ID
      */
@@ -98,6 +103,7 @@ public class LoginUser implements Serializable {
      */
     private Long roleId;
 
+
     /**
      * 获取登录id
      */

+ 1 - 1
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/enums/UserType.java

@@ -22,7 +22,7 @@ public enum UserType {
     /**
      * 校友用户
      */
-    APP_USER("am");
+    AM_USER("am");
 
     private final String userType;
 

+ 15 - 6
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/helper/LoginHelper.java

@@ -54,15 +54,17 @@ public class LoginHelper {
         SaLoginModel model = new SaLoginModel();
         if (ObjectUtil.isNotNull(deviceType)) {
             model.setDevice(deviceType.getDevice());
+
         }
         // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
         // 例如: 后台用户30分钟过期 app用户1天过期
-//        UserType userType = UserType.getUserType(loginUser.getUserType());
-//        if (userType == UserType.SYS_USER) {
-//            model.setTimeout(86400).setActiveTimeout(1800);
-//        } else if (userType == UserType.APP_USER) {
-//            model.setTimeout(86400).setActiveTimeout(1800);
-//        }
+        // UserType userType = UserType.getUserType(loginUser.getUserType());
+        // if (userType == UserType.SYS_USER) {
+        //   model.setTimeout(86400).setActiveTimeout(1800);
+        // }
+        if (deviceType == DeviceType.XCX) {
+            model.setTimeout(86400).setActiveTimeout(1800);
+        }
         StpUtil.login(loginUser.getLoginId(), model.setExtra(USER_KEY, loginUser.getUserId()));
         StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
     }
@@ -112,6 +114,13 @@ public class LoginHelper {
         return userId;
     }
 
+    /**
+     * 获取用户校友id
+     */
+    public static Long getAmId() {
+        return getLoginUser().getAmId();
+    }
+    
     /**
      * 获取部门ID
      */

+ 20 - 13
SERVER/YanZhongXYH/xyh-framework/src/main/java/cn/xyh/framework/listener/UserActionListener.java

@@ -37,27 +37,34 @@ public class UserActionListener implements SaTokenListener {
     @Override
     public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginModel loginModel) {
         UserType userType = UserType.getUserType(loginId.toString());
+        UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent"));
+        String ip = ServletUtils.getClientIP();
+        LoginUser user = LoginHelper.getLoginUser();
+        UserOnlineDTO dto = new UserOnlineDTO();
+        dto.setIpaddr(ip);
+        dto.setLoginLocation(AddressUtils.getRealAddressByIP(ip));
+        dto.setBrowser(userAgent.getBrowser().getName());
+        dto.setOs(userAgent.getOs().getName());
+        dto.setLoginTime(System.currentTimeMillis());
+        dto.setTokenId(tokenValue);
+        dto.setUserName(user.getUsername());
+        dto.setOrgName(user.getOrgName());
         if (userType == UserType.SYS_USER) {
-            UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent"));
-            String ip = ServletUtils.getClientIP();
-            LoginUser user = LoginHelper.getLoginUser();
-            UserOnlineDTO dto = new UserOnlineDTO();
-            dto.setIpaddr(ip);
-            dto.setLoginLocation(AddressUtils.getRealAddressByIP(ip));
-            dto.setBrowser(userAgent.getBrowser().getName());
-            dto.setOs(userAgent.getOs().getName());
-            dto.setLoginTime(System.currentTimeMillis());
-            dto.setTokenId(tokenValue);
-            dto.setUserName(user.getUsername());
-            dto.setOrgName(user.getOrgName());
             if (tokenConfig.getTimeout() == -1) {
                 RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto);
             } else {
                 RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(tokenConfig.getTimeout()));
             }
             log.info("user doLogin, userId:{}, token:{}", loginId, tokenValue);
-        } else if (userType == UserType.APP_USER) {
+        } else if (userType == UserType.AM_USER) {
             // app端 自行根据业务编写
+            dto.setAmId(user.getAmId());
+            if (tokenConfig.getTimeout() == -1) {
+                RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto);
+            } else {
+                RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(tokenConfig.getTimeout()));
+            }
+            log.info("amUser doLogin, userId:{}, token:{}", loginId, tokenValue);
         }
     }
 

+ 2 - 2
SERVER/YanZhongXYH/xyh-framework/src/main/java/cn/xyh/framework/satoken/service/SaPermissionImpl.java

@@ -24,7 +24,7 @@ public class SaPermissionImpl implements StpInterface {
         UserType userType = UserType.getUserType(loginUser.getUserType());
         if (userType == UserType.SYS_USER) {
             return new ArrayList<>(loginUser.getMenuPermission());
-        } else if (userType == UserType.APP_USER) {
+        } else if (userType == UserType.AM_USER) {
             // 其他端 自行根据业务编写
             return new ArrayList<>(loginUser.getMenuPermission());
         }
@@ -40,7 +40,7 @@ public class SaPermissionImpl implements StpInterface {
         UserType userType = UserType.getUserType(loginUser.getUserType());
         if (userType == UserType.SYS_USER) {
             return new ArrayList<>(loginUser.getRolePermission());
-        } else if (userType == UserType.APP_USER) {
+        } else if (userType == UserType.AM_USER) {
             // 其他端 自行根据业务编写
             return new ArrayList<>(loginUser.getMenuPermission());
         }

+ 33 - 6
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/controller/alumnus/AmAlumnusController.java

@@ -1,6 +1,7 @@
 package cn.xyh.system.controller.alumnus;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.annotation.SaMode;
 import cn.xyh.common.annotation.Log;
 import cn.xyh.common.annotation.RepeatSubmit;
 import cn.xyh.common.core.controller.BaseController;
@@ -42,12 +43,13 @@ public class AmAlumnusController extends BaseController {
     /**
      * 查询校友信息列表
      */
-    @SaCheckPermission(PermissionName.SystemAlumnus)
+    @SaCheckPermission(value = {PermissionName.SystemAlumnus, PermissionName.SystemAlumnusQuery}, mode = SaMode.OR)
     @GetMapping("/list")
-    public TableDataInfo<AmAlumnusVo> list(AmAlumnusBo bo, PageQuery pageQuery) {
-        return iAmAlumnusService.queryPageList(bo, pageQuery);
+    public TableDataInfo<AmAlumnusVo> list(AmAlumnusBo query, PageQuery pageQuery) {
+        return iAmAlumnusService.queryPageList(query, pageQuery);
     }
 
+
     /**
      * 导出校友信息列表
      */
@@ -64,9 +66,9 @@ public class AmAlumnusController extends BaseController {
      *
      * @param amId 主键
      */
+    @SaCheckPermission(PermissionName.SystemAlumnusQuery)
     @GetMapping("/{amId}")
-    public R<AmAlumnusVo> getInfo(@NotNull(message = "主键不能为空")
-                                  @PathVariable Long amId) {
+    public R<AmAlumnusVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long amId) {
         return R.ok(iAmAlumnusService.queryById(amId));
     }
 
@@ -85,11 +87,14 @@ public class AmAlumnusController extends BaseController {
     /**
      * 修改校友信息
      */
-    //@SaCheckPermission(PermissionName.SystemAlumnusEdit)
+    @SaCheckPermission(PermissionName.SystemAlumnusEdit)
     @Log(title = "校友信息", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
     public R<Void> edit(@Validated(EditGroup.class) @RequestBody AmAlumnusBo bo) {
+        if (isAlumnus() && !getAmId().equals(bo.getAmId())) {
+            return toAjax(false, "不能修改其他用户的校友信息");
+        }
         return toAjax(iAmAlumnusService.updateByBo(bo));
     }
 
@@ -105,4 +110,26 @@ public class AmAlumnusController extends BaseController {
                           @PathVariable Long[] amIds) {
         return toAjax(iAmAlumnusService.deleteWithValidByIds(Arrays.asList(amIds), true));
     }
+
+    /**
+     * 修改校友隐私设置
+     */
+    @Log(title = "修改校友隐私设置", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PostMapping("updatePrivacy/{amPublic}")
+    public R<Void> updatePrivacy(@Validated(EditGroup.class) @PathVariable String amPublic) {
+        return toAjax(iAmAlumnusService.updatePrivacy(amPublic, getUserId()));
+    }
+
+    /**
+     * 修改校友审核状态
+     */
+    @SaCheckPermission(PermissionName.SystemAlumnusAudit)
+    @Log(title = "修改校友审核状态", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PostMapping("audit/{amId}/{status}")
+    public R<Void> updateAuditStatus(@Validated(EditGroup.class) @PathVariable Long amId, @Validated(EditGroup.class) @PathVariable String status) {
+        return toAjax(iAmAlumnusService.updateAuditStatus(status, amId, getUserId()));
+    }
+
 }

+ 1 - 1
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/controller/system/SysUserController.java

@@ -60,7 +60,7 @@ public class SysUserController extends BaseController {
     /**
      * 获取用户列表
      */
-    @SaCheckPermission(PermissionName.SystemUser)
+    //@SaCheckPermission(PermissionName.SystemUser)
     @GetMapping("/list")
     public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) {
         return userService.selectPageUserList(user, pageQuery);

+ 9 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/domain/AmAlumnus.java

@@ -64,6 +64,15 @@ public class AmAlumnus extends BaseEntity {
      */
     private String auditStatus;
 
+    /**
+     * 审核人id
+     */
+    private Long auditId;
+    /**
+     * 审核时间
+     */
+    private Date auditTime;
+
     /**
      * 最高学历
      */

+ 22 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/domain/vo/AmAlumnusVo.java

@@ -1,6 +1,8 @@
 package cn.xyh.system.domain.vo;
 
 import cn.xyh.common.annotation.ExcelDictFormat;
+import cn.xyh.common.annotation.Translation;
+import cn.xyh.common.constant.TransConstant;
 import cn.xyh.common.convert.ExcelDictConvert;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
@@ -35,9 +37,25 @@ public class AmAlumnusVo implements Serializable {
     private Long userId;
 
     private Long orgId;
+    @ExcelProperty(value = "校友会")
     private String orgName;
+    @ExcelProperty(value = "手机号码")
     private String phonenumber;
     private String userType;
+
+    /**
+     * 最后登录IP
+     */
+    @ExcelProperty(value = "最后登录IP")
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    @ExcelProperty(value = "最后登录时间")
+    private Date loginDate;
+
+
     /**
      * 姓名
      */
@@ -145,6 +163,9 @@ public class AmAlumnusVo implements Serializable {
     @ExcelDictFormat(dictType = "alumnus_audit_status")
     private String auditStatus;
 
+    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "auditStatus", other = "alumnus_audit_status")
+    private String auditStatusName;
+
     /**
      * 行业
      */
@@ -206,3 +227,4 @@ public class AmAlumnusVo implements Serializable {
     private String remark;
 
 }
+

+ 6 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/mapper/AmAlumnusMapper.java

@@ -3,6 +3,10 @@ package cn.xyh.system.mapper;
 import cn.xyh.common.core.mapper.BaseMapperPlus;
 import cn.xyh.system.domain.AmAlumnus;
 import cn.xyh.system.domain.vo.AmAlumnusVo;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -16,4 +20,6 @@ public interface AmAlumnusMapper extends BaseMapperPlus<AmAlumnusMapper, AmAlumn
     AmAlumnusVo selectDetailById(Long amId);
 
     AmAlumnus selectVoByUserId(Long userId);
+
+    Page<AmAlumnusVo> selectAlumnusPage(@Param("page") Page<AmAlumnus> page, @Param(Constants.WRAPPER) Wrapper<AmAlumnus> queryWrapper);
 }

+ 1 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/permissions/PermissionName.java

@@ -85,6 +85,7 @@ public class PermissionName {
     public static final String SystemAlumnusEdit = "system:alumnus:edit";
     public static final String SystemAlumnusRemove = "system:alumnus:remove";
     public static final String SystemAlumnusExport = "system:alumnus:export";
+    public static final String SystemAlumnusAudit = "system:alumnus:audit";
 }
 
 

+ 10 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/IAmAlumnusService.java

@@ -60,4 +60,14 @@ public interface IAmAlumnusService {
      * 校验并批量删除校友信息信息
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 更新隐私设置
+     */
+    Boolean updatePrivacy(String amPublic, Long userId);
+
+    /**
+     * 更新审核状态
+     */
+    Boolean updateAuditStatus(String status, Long amId, Long userId);
 }

+ 4 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/SysLoginService.java

@@ -30,6 +30,7 @@ import cn.xyh.common.utils.ServletUtils;
 import cn.xyh.common.utils.StringUtils;
 import cn.xyh.common.utils.redis.RedisUtils;
 import cn.xyh.common.utils.spring.SpringUtils;
+import cn.xyh.system.domain.vo.AmAlumnusVo;
 import cn.xyh.system.mapper.SysUserMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
@@ -55,6 +56,7 @@ public class SysLoginService {
     private final ISysConfigService configService;
     private final SysPermissionService permissionService;
     private final ISysUserService userService;
+    private final IAmAlumnusService amAlumnusService;
     private final WxAppConfig wxAppConfig;
 
     @Value("${user.password.maxRetryCount}")
@@ -134,6 +136,8 @@ public class SysLoginService {
         }
         // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
         XcxLoginUser loginUser = buildXcxLoginUser(user);
+        AmAlumnusVo amAlumnusVo = amAlumnusService.queryByUserId(user.getUserId());
+        loginUser.setAmId(amAlumnusVo.getAmId());
         loginUser.setOpenid(xcxLoginDto.getOpenid());
         loginUser.setUnionId(xcxLoginDto.getUnionid());
         // 生成token

+ 22 - 0
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/impl/AmAlumnusServiceImpl.java

@@ -21,6 +21,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -224,6 +225,25 @@ public class AmAlumnusServiceImpl implements IAmAlumnusService {
         return flag;
     }
 
+    @Override
+    public Boolean updatePrivacy(String amPublic, Long userId) {
+        AmAlumnus amAlumnus = baseMapper.selectOne(new LambdaQueryWrapper<AmAlumnus>().eq(AmAlumnus::getUserId, userId));
+        amAlumnus.setAmPublic(amPublic);
+        return baseMapper.updateById(amAlumnus) > 0;
+    }
+
+    /**
+     * 更新审核状态
+     */
+    @Override
+    public Boolean updateAuditStatus(String status, Long amId, Long userId) {
+        AmAlumnus amAlumnus = baseMapper.selectById(amId);
+        amAlumnus.setAuditStatus(status);
+        amAlumnus.setAuditId(userId);
+        amAlumnus.setAuditTime(new Date());
+        return baseMapper.updateById(amAlumnus) > 0;
+    }
+
     /**
      * 保存前的数据校验
      */
@@ -252,4 +272,6 @@ public class AmAlumnusServiceImpl implements IAmAlumnusService {
         flag = baseExMapper.deleteBatchIds(ids) > 0;
         return flag;
     }
+
+
 }

+ 25 - 0
SERVER/YanZhongXYH/xyh-system/src/main/resources/mapper/system/AmAlumnusMapper.xml

@@ -122,4 +122,29 @@
                  LEFT JOIN sys_org AS o ON u.org_id = o.org_id
         WHERE am.am_id = #{userId}
     </select>
+
+    <select id="selectAlumnusPage" resultMap="AmAlumnusVoResult">
+        SELECT am.am_id,
+               am.user_id,
+               am.`name`,
+               am.gender,
+               am.type,
+               am.graduate_year,
+               am.am_class,
+               am.audit_status,
+               am.industry,
+               am.industry_area,
+               am.work_unit,
+               am.position,
+               am.city,
+               am.province,
+               am.district,
+               u.avatar,
+               u.login_date,
+               u.login_ip
+        FROM am_alumnus AS am
+                 LEFT JOIN sys_user AS u ON am.user_id = u.user_id
+            ${ew.getCustomSqlSegment}
+    </select>
+
 </mapper>