Forráskód Böngészése

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_java

caoliqin 5 napja
szülő
commit
d5dd54c333

+ 24 - 0
fs-company-app/src/main/java/com/fs/app/controller/CompanyTagController.java

@@ -6,8 +6,11 @@ import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.CompanyTag;
+import com.fs.company.domain.CompanyTagUser;
 import com.fs.company.service.ICompanyTagService;
 import com.fs.company.service.ICompanyTagUserService;
+import com.fs.company.vo.CompanyTagUserVO;
+import com.fs.store.vo.h5.CompanyUserTagListVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
@@ -86,4 +89,25 @@ public class CompanyTagController extends AppBaseController {
         params.put("companyId", getCompanyId());
         return R.ok().put("data", companyTagUserService.selectUserListByMap(params));
     }
+
+    @Login
+    @GetMapping("/getTagByUser")
+    @ApiOperation("会员的标签")
+    public R getTagByUser(@RequestParam("userId") Long userId) {
+        CompanyTagUser map = new CompanyTagUser();
+        map.setUserId(userId);
+        map.setCompanyId(getCompanyId());
+        map.setCompanyUserId(Long.valueOf(getUserId()));
+        List<CompanyUserTagListVO> vos = companyTagUserService.getTagByUser(map);
+        StringBuilder tags = new StringBuilder();
+        if (vos != null && !vos.isEmpty()) {
+            for (CompanyUserTagListVO vo : vos) {
+                tags.append(vo.getTagName()).append(",");
+            }
+            if (tags.length() > 0) {
+                tags.deleteCharAt(tags.length() - 1);
+            }
+        }
+        return R.ok().put("data",tags.length()>0?tags.toString():null);
+    }
 }

+ 62 - 0
fs-company-app/src/main/java/com/fs/app/controller/FsUserOperationLogController.java

@@ -0,0 +1,62 @@
+package com.fs.app.controller;
+
+import java.util.List;
+
+import com.fs.app.annotation.Login;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.ResponseResult;
+import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
+import com.fs.his.param.FsUserOperationLogQueryParam;
+import com.fs.his.vo.FsUserOperationLogPageVo;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.his.domain.FsUserOperationLog;
+import com.fs.his.service.IFsUserOperationLogService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 用户操作日志Controller
+ *
+ * @author fs
+ * @date 2025-07-04
+ */
+@RestController
+@RequestMapping("/app/operationLog")
+public class FsUserOperationLogController extends AppBaseController
+{
+    @Autowired
+    private IFsUserOperationLogService fsUserOperationLogService;
+
+    /**
+     * 查询用户操作日志列表
+     */
+    @PostMapping("/page")
+    @Login
+    public ResponseResult<PageInfo<FsUserOperationLogPageVo>> list(@RequestBody FsUserOperationLogQueryParam param)
+    {
+        if (param.getUserId() == null){
+            return ResponseResult.fail(500,"未选择会员");
+        }
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+        List<FsUserOperationLogPageVo> list = fsUserOperationLogService.selectFsUserOperationLogList(param);
+        PageInfo<FsUserOperationLogPageVo> pageInfo = new PageInfo<>(list);
+        return ResponseResult.ok(pageInfo);
+    }
+
+
+}

+ 2 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyTagUserMapper.java

@@ -79,4 +79,6 @@ public interface CompanyTagUserMapper
      * @param params    条件
      */
     void deleteCompanyTagUserByMap(@Param("params") Map<String, Object> params);
+
+    List<CompanyUserTagListVO> getTagByUser(@Param("params")CompanyTagUser param);
 }

+ 7 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyTagUserService.java

@@ -84,4 +84,11 @@ public interface ICompanyTagUserService
      * @param tagIds   标签ID集合
      */
     void changeUserTags(List<Long> fsUserIds, List<Long> tagIds);
+
+    /**
+     * 查询会员标签
+     * @param param 分页参数
+     * @return
+     */
+    List<CompanyUserTagListVO> getTagByUser(CompanyTagUser param);
 }

+ 11 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyTagUserServiceImpl.java

@@ -176,4 +176,15 @@ public class CompanyTagUserServiceImpl implements ICompanyTagUserService
             }
         });
     }
+
+    @Override
+    public List<CompanyUserTagListVO> getTagByUser(CompanyTagUser param) {
+        // 判断是否是管理员
+        CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
+        if (companyUser.isAdmin()) {
+            param.setCompanyUserId(null);
+        }
+
+        return companyTagUserMapper.getTagByUser(param);
+    }
 }

+ 10 - 8
fs-service/src/main/java/com/fs/his/mapper/FsUserOperationLogMapper.java

@@ -3,17 +3,19 @@ package com.fs.his.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.his.domain.FsUserOperationLog;
+import com.fs.his.param.FsUserOperationLogQueryParam;
+import com.fs.his.vo.FsUserOperationLogPageVo;
 
 /**
  * 用户操作日志Mapper接口
- * 
+ *
  * @author fs
  * @date 2025-07-04
  */
 public interface FsUserOperationLogMapper extends BaseMapper<FsUserOperationLog>{
     /**
      * 查询用户操作日志
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 用户操作日志
      */
@@ -21,15 +23,15 @@ public interface FsUserOperationLogMapper extends BaseMapper<FsUserOperationLog>
 
     /**
      * 查询用户操作日志列表
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 用户操作日志集合
      */
-    List<FsUserOperationLog> selectFsUserOperationLogList(FsUserOperationLog fsUserOperationLog);
+    List<FsUserOperationLog> selectFsUserOperationLogList(FsUserOperationLogQueryParam fsUserOperationLog);
 
     /**
      * 新增用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -37,7 +39,7 @@ public interface FsUserOperationLogMapper extends BaseMapper<FsUserOperationLog>
 
     /**
      * 修改用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -45,7 +47,7 @@ public interface FsUserOperationLogMapper extends BaseMapper<FsUserOperationLog>
 
     /**
      * 删除用户操作日志
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 结果
      */
@@ -53,7 +55,7 @@ public interface FsUserOperationLogMapper extends BaseMapper<FsUserOperationLog>
 
     /**
      * 批量删除用户操作日志
-     * 
+     *
      * @param logIds 需要删除的数据主键集合
      * @return 结果
      */

+ 20 - 0
fs-service/src/main/java/com/fs/his/param/FsUserOperationLogQueryParam.java

@@ -0,0 +1,20 @@
+package com.fs.his.param;
+
+import com.fs.common.param.BaseQueryParam;
+import lombok.Data;
+
+@Data
+public class FsUserOperationLogQueryParam extends BaseQueryParam {
+    /** 用户id */
+    private Long userId;
+
+    /** 操作类型 */
+    private String operationType;
+
+    /** 详情 */
+    private String details;
+
+    private Long companyId;
+
+    private Long companyUserId;
+}

+ 10 - 8
fs-service/src/main/java/com/fs/his/service/IFsUserOperationLogService.java

@@ -3,17 +3,19 @@ package com.fs.his.service;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.his.domain.FsUserOperationLog;
+import com.fs.his.param.FsUserOperationLogQueryParam;
+import com.fs.his.vo.FsUserOperationLogPageVo;
 
 /**
  * 用户操作日志Service接口
- * 
+ *
  * @author fs
  * @date 2025-07-04
  */
 public interface IFsUserOperationLogService extends IService<FsUserOperationLog>{
     /**
      * 查询用户操作日志
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 用户操作日志
      */
@@ -21,15 +23,15 @@ public interface IFsUserOperationLogService extends IService<FsUserOperationLog>
 
     /**
      * 查询用户操作日志列表
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 用户操作日志集合
      */
-    List<FsUserOperationLog> selectFsUserOperationLogList(FsUserOperationLog fsUserOperationLog);
+    List<FsUserOperationLogPageVo> selectFsUserOperationLogList(FsUserOperationLogQueryParam fsUserOperationLog);
 
     /**
      * 新增用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -37,7 +39,7 @@ public interface IFsUserOperationLogService extends IService<FsUserOperationLog>
 
     /**
      * 修改用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -45,7 +47,7 @@ public interface IFsUserOperationLogService extends IService<FsUserOperationLog>
 
     /**
      * 批量删除用户操作日志
-     * 
+     *
      * @param logIds 需要删除的用户操作日志主键集合
      * @return 结果
      */
@@ -53,7 +55,7 @@ public interface IFsUserOperationLogService extends IService<FsUserOperationLog>
 
     /**
      * 删除用户操作日志信息
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 结果
      */

+ 51 - 9
fs-service/src/main/java/com/fs/his/service/impl/FsUserOperationLogServiceImpl.java

@@ -1,8 +1,16 @@
 package com.fs.his.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import com.alibaba.fastjson.JSON;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.common.utils.StringUtils;
+import com.fs.course.vo.FsUserCourseVO;
+import com.fs.his.param.FsUserOperationLogQueryParam;
+import com.fs.his.vo.FsUserOperationLogPageVo;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.fs.his.mapper.FsUserOperationLogMapper;
@@ -11,7 +19,7 @@ import com.fs.his.service.IFsUserOperationLogService;
 
 /**
  * 用户操作日志Service业务层处理
- * 
+ *
  * @author fs
  * @date 2025-07-04
  */
@@ -20,7 +28,7 @@ public class FsUserOperationLogServiceImpl extends ServiceImpl<FsUserOperationLo
 
     /**
      * 查询用户操作日志
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 用户操作日志
      */
@@ -32,19 +40,53 @@ public class FsUserOperationLogServiceImpl extends ServiceImpl<FsUserOperationLo
 
     /**
      * 查询用户操作日志列表
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 用户操作日志
      */
     @Override
-    public List<FsUserOperationLog> selectFsUserOperationLogList(FsUserOperationLog fsUserOperationLog)
+    public List<FsUserOperationLogPageVo> selectFsUserOperationLogList(FsUserOperationLogQueryParam fsUserOperationLog)
     {
-        return baseMapper.selectFsUserOperationLogList(fsUserOperationLog);
+        List<FsUserOperationLog> logs = baseMapper.selectFsUserOperationLogList(fsUserOperationLog);
+        ArrayList<FsUserOperationLogPageVo> vos = new ArrayList<>();
+        if(logs!=null&& !logs.isEmpty()){
+            for (FsUserOperationLog log : logs) {
+                FsUserOperationLogPageVo vo = new FsUserOperationLogPageVo();
+                BeanUtils.copyProperties(log, vo);
+                StringBuilder richText = new StringBuilder();
+                richText.append("<div>")
+                        .append("<div style='font-weight: bold;'>")
+                        .append(log.getOperationType())
+                        .append("<div>");
+                String param = log.getParam();
+                if (StringUtils.isNotBlank(param)){
+                    FsUserCourseVO courseVO = JSON.parseObject(param, FsUserCourseVO.class);
+                    if(courseVO!=null){
+                        if (StringUtils.isNotBlank(courseVO.getCourseName())){
+                            richText.append("<div style='font-weight: bold;'>").append("课节名称").append("</div>");
+                            richText.append("<p>").append(courseVO.getCourseName()).append("<p>");
+                        }
+                        if (StringUtils.isNotBlank(courseVO.getTrainingCampName())){
+                            richText.append("<div style='font-weight: bold;'>").append("所属训练营").append("</div>");
+                            richText.append("<p>").append(courseVO.getTrainingCampName()).append("<p>");
+                        }
+                        if (StringUtils.isNotBlank(courseVO.getTrainingCampName())){
+                            richText.append("<div style='font-weight: bold;'>").append("营期名称").append("</div>");
+                            richText.append("<p>").append(courseVO.getPeriodName()).append("<p>");
+                        }
+                    }
+                }
+                richText.append("</div>");
+                vo.setText(richText.toString());
+                vos.add(vo);
+            }
+        }
+        return vos;
     }
 
     /**
      * 新增用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -57,7 +99,7 @@ public class FsUserOperationLogServiceImpl extends ServiceImpl<FsUserOperationLo
 
     /**
      * 修改用户操作日志
-     * 
+     *
      * @param fsUserOperationLog 用户操作日志
      * @return 结果
      */
@@ -69,7 +111,7 @@ public class FsUserOperationLogServiceImpl extends ServiceImpl<FsUserOperationLo
 
     /**
      * 批量删除用户操作日志
-     * 
+     *
      * @param logIds 需要删除的用户操作日志主键
      * @return 结果
      */
@@ -81,7 +123,7 @@ public class FsUserOperationLogServiceImpl extends ServiceImpl<FsUserOperationLo
 
     /**
      * 删除用户操作日志信息
-     * 
+     *
      * @param logId 用户操作日志主键
      * @return 结果
      */

+ 31 - 0
fs-service/src/main/java/com/fs/his/vo/FsUserOperationLogPageVo.java

@@ -0,0 +1,31 @@
+package com.fs.his.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class FsUserOperationLogPageVo {
+    private Long logId;
+
+
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operationType;
+
+    /** 详情 */
+    @Excel(name = "详情")
+    private String details;
+
+    @Excel(name = "参数")
+    private String param;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+
+    private String text;
+}

+ 15 - 0
fs-service/src/main/resources/mapper/company/CompanyTagUserMapper.xml

@@ -113,5 +113,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             find_in_set(#{tagId}, ctu.tag_ids)
         </foreach>
     </select>
+    <select id="getTagByUser" resultType="com.fs.store.vo.h5.CompanyUserTagListVO">
+        SELECT distinct
+        company_tag.tag as tagName,
+        company_tag.tag_id
+        FROM
+        company_tag_user
+        right JOIN company_tag ON FIND_IN_SET( company_tag.tag_id, company_tag_user.tag_ids ) > 0
+        where company_tag_user.user_id = #{params.userId}
+            <if test="params.companyId != null">
+                and company_tag_user.company_id = #{params.companyId}
+            </if>
+            <if test="params.companyUserId != null">
+                and company_tag_user.company_user_id = #{params.companyUserId}
+            </if>
+    </select>
 
 </mapper>

+ 1 - 0
fs-service/src/main/resources/mapper/his/FsUserOperationLogMapper.xml

@@ -24,6 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="operationType != null  and operationType != ''"> and operation_type = #{operationType}</if>
             <if test="details != null  and details != ''"> and details = #{details}</if>
         </where>
+        order by create_time desc
     </select>
 
     <select id="selectFsUserOperationLogByLogId" parameterType="Long" resultMap="FsUserOperationLogResult">