Procházet zdrojové kódy

feat(main): 增加岗位查询和学生模块功能

- 新增企业列表获取接口供小程序使用
- 实现岗位分页查询并支持学生屏蔽功能
- 添加岗位详情查询和企业名称补全功能
- 增加学生教育、经历、项目管理功能
- 实现小程序端岗位查询和屏蔽接口
- 添加字典数据翻译功能支持
- 优化租户查询权限控制
西格玛许 před 1 týdnem
rodič
revize
0854ea4fbf

+ 13 - 2
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/controller/miniapp/miniappAuthController.java

@@ -1,10 +1,13 @@
 package org.dromara.main.controller.miniapp;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.stp.StpUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.main.domain.bo.MainAgreementBo;
 import org.dromara.main.domain.vo.MainAgreementVo;
 import org.dromara.main.domain.vo.MiniappLoginVo;
 import org.dromara.main.service.IMainAgreementService;
@@ -16,14 +19,22 @@ import java.util.Map;
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/miniapp/auth")
-public class miniappAuthController {
+public class miniappAuthController extends BaseController {
     private final IMainAgreementService agreementService;
     private final IMainStudentService studentService;
+
     @SaIgnore
     @GetMapping("/agreement")
-    public R<MainAgreementVo> getAgreement(@RequestParam String type) {
+    public R<MainAgreementVo> getAgreement(@RequestParam("type") String type) {
         return R.ok(agreementService.selectByType(type));
     }
+
+    @SaCheckPermission("main:agreement:edit")
+    @PostMapping("/edit")
+    public R<Void> update(@RequestBody MainAgreementBo bo){
+        return toAjax(agreementService.update(bo));
+    }
+
     /**
      * 微信小程序一键登录
      */

+ 41 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/domain/bo/MainAgreementBo.java

@@ -0,0 +1,41 @@
+package org.dromara.main.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("main_agreement")
+public class MainAgreementBo {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 协议标题
+     */
+    private String title;
+
+    /**
+     * 协议富文本内容
+     */
+    private String content;
+
+    /**
+     * 协议类型: service-服务协议, privacy-隐私政策
+     */
+    private String type;
+
+    /**
+     * 协议版本号
+     */
+    private String version;
+
+}

+ 2 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/domain/vo/MainAgreementVo.java

@@ -9,6 +9,8 @@ import java.io.Serializable;
 @Data
 @AutoMapper(target = MainAgreement.class)
 public class MainAgreementVo implements Serializable {
+
+    private long id;
     private String title;
     private String content;
     private String version;

+ 10 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/domain/vo/MainStudentVo.java

@@ -2,6 +2,8 @@ package org.dromara.main.domain.vo;
 
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
 import org.dromara.main.domain.MainStudent;
 import org.dromara.main.domain.MainStudentEducation;
 import org.dromara.main.domain.MainStudentExperience;
@@ -64,11 +66,17 @@ public class MainStudentVo implements Serializable {
      */
     private Long avatar;
 
+    @Translation(type=TransConstant.OSS_ID_TO_URL)
+    private String avatarUrl;
+
     /**
      * 用户类型(1付费用户 2普通用户 3黑名单)
      */
     private String userType;
 
+    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "userType", other = "main_student_type")
+    private String userTypeLabel;
+
     /**
      * 历史累计消费金额
      */
@@ -136,6 +144,8 @@ public class MainStudentVo implements Serializable {
 
 
 
+
+
     /**
      * 教育经历列表
      */

+ 4 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/service/IMainAgreementService.java

@@ -1,5 +1,7 @@
 package org.dromara.main.service;
 
+import org.dromara.main.domain.MainAgreement;
+import org.dromara.main.domain.bo.MainAgreementBo;
 import org.dromara.main.domain.vo.MainAgreementVo;
 
 public interface IMainAgreementService {
@@ -7,4 +9,6 @@ public interface IMainAgreementService {
      * 根据类型查询协议
      */
     MainAgreementVo selectByType(String type);
+
+    Boolean update(MainAgreementBo bo);
 }

+ 18 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/service/impl/MainAgreementServiceImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.main.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import org.dromara.main.domain.MainAgreement;
+import org.dromara.main.domain.bo.MainAgreementBo;
 import org.dromara.main.domain.vo.MainAgreementVo;
 import org.dromara.main.mapper.MainAgreementMapper;
 import org.dromara.main.service.IMainAgreementService;
@@ -18,4 +20,20 @@ public class MainAgreementServiceImpl implements IMainAgreementService {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<MainAgreement>()
             .eq(MainAgreement::getType, type));
     }
+
+//    @Override
+//    public Boolean update(MainAgreementBo bo) {
+//        MainAgreement agreement= BeanUtil.toBean(bo, MainAgreement.class);
+//        return baseMapper.updateById( agreement)>0;
+//    }
+
+    @Override
+    public Boolean update(MainAgreementBo bo) {
+        MainAgreement agreement = BeanUtil.toBean(bo, MainAgreement.class);
+        // 判断如果有id那就是更新,如果没有那就是首次给这个类型新增协议记录
+        if (agreement.getId() == null) {
+            return baseMapper.insert(agreement) > 0;
+        }
+        return baseMapper.updateById(agreement) > 0;
+    }
 }