Kaynağa Gözat

添加分享素材点击记录

wjj 2 gün önce
ebeveyn
işleme
9a538d92ce

+ 55 - 0
fs-service/src/main/java/com/fs/his/domain/FsShareMaterialClickRecord.java

@@ -0,0 +1,55 @@
+package com.fs.his.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 分享素材点击统计对象 fs_share_material_click_record
+ *
+ * @author fs
+ * @date 2026-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FsShareMaterialClickRecord extends BaseEntity{
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 销售id */
+    @Excel(name = "销售id")
+    private Long companyUserId;
+
+    /** 微信union_id */
+    @Excel(name = "微信union_id")
+    private String unionId;
+
+    /** 素材id */
+    @Excel(name = "素材id")
+    private Long materialId;
+
+    /** 用户头像 */
+    @Excel(name = "用户头像")
+    private String avatar;
+
+    /** 用户名称 */
+    @Excel(name = "用户名称")
+    private String userName;
+
+    /** 销售名称 */
+    @Excel(name = "销售名称")
+    private String companyUserName;
+
+    /** 销售公司 */
+    @Excel(name = "销售公司")
+    private Long companyId;
+
+
+}

+ 61 - 0
fs-service/src/main/java/com/fs/his/mapper/FsShareMaterialClickRecordMapper.java

@@ -0,0 +1,61 @@
+package com.fs.his.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.his.domain.FsShareMaterialClickRecord;
+
+/**
+ * 分享素材点击统计Mapper接口
+ * 
+ * @author fs
+ * @date 2026-06-25
+ */
+public interface FsShareMaterialClickRecordMapper extends BaseMapper<FsShareMaterialClickRecord>{
+    /**
+     * 查询分享素材点击统计
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 分享素材点击统计
+     */
+    FsShareMaterialClickRecord selectFsShareMaterialClickRecordById(Long id);
+
+    /**
+     * 查询分享素材点击统计列表
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 分享素材点击统计集合
+     */
+    List<FsShareMaterialClickRecord> selectFsShareMaterialClickRecordList(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 新增分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    int insertFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 修改分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    int updateFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 删除分享素材点击统计
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 结果
+     */
+    int deleteFsShareMaterialClickRecordById(Long id);
+
+    /**
+     * 批量删除分享素材点击统计
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteFsShareMaterialClickRecordByIds(Long[] ids);
+}

+ 11 - 0
fs-service/src/main/java/com/fs/his/param/ShareMaterialClickRecordUParam.java

@@ -0,0 +1,11 @@
+package com.fs.his.param;
+
+import lombok.Data;
+
+@Data
+public class ShareMaterialClickRecordUParam {
+    private Long shareMaterialId;
+    private Long userId;
+    private String unionId;
+    private Long companyUserId;
+}

+ 65 - 0
fs-service/src/main/java/com/fs/his/service/IFsShareMaterialClickRecordService.java

@@ -0,0 +1,65 @@
+package com.fs.his.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.common.core.domain.R;
+import com.fs.his.domain.FsShareMaterialClickRecord;
+import com.fs.his.param.ShareMaterialClickRecordUParam;
+
+/**
+ * 分享素材点击统计Service接口
+ * 
+ * @author fs
+ * @date 2026-06-25
+ */
+public interface IFsShareMaterialClickRecordService extends IService<FsShareMaterialClickRecord>{
+    /**
+     * 查询分享素材点击统计
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 分享素材点击统计
+     */
+    FsShareMaterialClickRecord selectFsShareMaterialClickRecordById(Long id);
+
+    /**
+     * 查询分享素材点击统计列表
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 分享素材点击统计集合
+     */
+    List<FsShareMaterialClickRecord> selectFsShareMaterialClickRecordList(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 新增分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    int insertFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 修改分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    int updateFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord);
+
+    /**
+     * 批量删除分享素材点击统计
+     * 
+     * @param ids 需要删除的分享素材点击统计主键集合
+     * @return 结果
+     */
+    int deleteFsShareMaterialClickRecordByIds(Long[] ids);
+
+    /**
+     * 删除分享素材点击统计信息
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 结果
+     */
+    int deleteFsShareMaterialClickRecordById(Long id);
+
+    R addShareMaterialClickRecord(ShareMaterialClickRecordUParam param);
+}

+ 151 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsShareMaterialClickRecordServiceImpl.java

@@ -0,0 +1,151 @@
+package com.fs.his.service.impl;
+
+import java.util.List;
+
+import com.fs.common.core.domain.R;
+import com.fs.common.utils.DateUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.mapper.CompanyUserMapper;
+import com.fs.course.domain.FsUserCompanyUser;
+import com.fs.course.mapper.FsUserCompanyUserMapper;
+import com.fs.his.domain.FsShareMaterial;
+import com.fs.his.domain.FsUser;
+import com.fs.his.mapper.FsShareMaterialMapper;
+import com.fs.his.mapper.FsUserMapper;
+import com.fs.his.param.ShareMaterialClickRecordUParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.fs.his.mapper.FsShareMaterialClickRecordMapper;
+import com.fs.his.domain.FsShareMaterialClickRecord;
+import com.fs.his.service.IFsShareMaterialClickRecordService;
+
+/**
+ * 分享素材点击统计Service业务层处理
+ * 
+ * @author fs
+ * @date 2026-06-25
+ */
+@Service
+public class FsShareMaterialClickRecordServiceImpl extends ServiceImpl<FsShareMaterialClickRecordMapper, FsShareMaterialClickRecord> implements IFsShareMaterialClickRecordService {
+
+    @Autowired
+    private CompanyUserMapper companyUserMapper;
+
+    @Autowired
+    private FsShareMaterialClickRecordMapper fsShareMaterialClickRecordMapper;
+
+    @Autowired
+    private FsShareMaterialMapper fsShareMaterialMapper;
+
+    @Autowired
+    private FsUserMapper userMapper;
+    /**
+     * 查询分享素材点击统计
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 分享素材点击统计
+     */
+    @Override
+    public FsShareMaterialClickRecord selectFsShareMaterialClickRecordById(Long id)
+    {
+        return baseMapper.selectFsShareMaterialClickRecordById(id);
+    }
+
+    /**
+     * 查询分享素材点击统计列表
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 分享素材点击统计
+     */
+    @Override
+    public List<FsShareMaterialClickRecord> selectFsShareMaterialClickRecordList(FsShareMaterialClickRecord fsShareMaterialClickRecord)
+    {
+        return baseMapper.selectFsShareMaterialClickRecordList(fsShareMaterialClickRecord);
+    }
+
+    /**
+     * 新增分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    @Override
+    public int insertFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord)
+    {
+        fsShareMaterialClickRecord.setCreateTime(DateUtils.getNowDate());
+        return baseMapper.insertFsShareMaterialClickRecord(fsShareMaterialClickRecord);
+    }
+
+    /**
+     * 修改分享素材点击统计
+     * 
+     * @param fsShareMaterialClickRecord 分享素材点击统计
+     * @return 结果
+     */
+    @Override
+    public int updateFsShareMaterialClickRecord(FsShareMaterialClickRecord fsShareMaterialClickRecord)
+    {
+        fsShareMaterialClickRecord.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateFsShareMaterialClickRecord(fsShareMaterialClickRecord);
+    }
+
+    /**
+     * 批量删除分享素材点击统计
+     * 
+     * @param ids 需要删除的分享素材点击统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsShareMaterialClickRecordByIds(Long[] ids)
+    {
+        return baseMapper.deleteFsShareMaterialClickRecordByIds(ids);
+    }
+
+    /**
+     * 删除分享素材点击统计信息
+     * 
+     * @param id 分享素材点击统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsShareMaterialClickRecordById(Long id)
+    {
+        return baseMapper.deleteFsShareMaterialClickRecordById(id);
+    }
+
+    @Override
+    public R addShareMaterialClickRecord(ShareMaterialClickRecordUParam param) {
+        FsShareMaterial shareMaterial = fsShareMaterialMapper.selectFsShareMaterialById(param.getShareMaterialId());
+        if(shareMaterial == null){
+            return R.error("分享素材不存在");
+        }
+        CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
+        if(companyUser == null){
+            return R.error("销售不存在");
+        }
+        FsUser user = userMapper.selectFsUserById(param.getUserId());
+        if(user == null){
+            return R.error("用户不存在");
+        }
+        FsShareMaterialClickRecord record = new FsShareMaterialClickRecord();
+        //素材id
+        record.setMaterialId(param.getShareMaterialId());
+        //销售信息和公司id
+        record.setCompanyUserId(companyUser.getUserId());
+        record.setCompanyId(companyUser.getCompanyId());
+        record.setCompanyUserName(companyUser.getNickName());
+        //用户信息
+        record.setUserId(user.getUserId());
+        record.setUserName(user.getNickName());
+        record.setAvatar(user.getAvatar());
+        record.setUnionId(user.getUnionId());
+        record.setCreateTime(DateUtils.getNowDate());
+
+        int insert = fsShareMaterialClickRecordMapper.insert(record);
+        if(insert > 0){
+            return R.ok("添加成功");
+        }
+        return R.error("添加失败");
+    }
+}

+ 100 - 0
fs-service/src/main/resources/mapper/his/FsShareMaterialClickRecordMapper.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.his.mapper.FsShareMaterialClickRecordMapper">
+    
+    <resultMap type="FsShareMaterialClickRecord" id="FsShareMaterialClickRecordResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="companyUserId"    column="company_user_id"    />
+        <result property="unionId"    column="union_id"    />
+        <result property="materialId"    column="material_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="avatar"    column="avatar"    />
+        <result property="userName"    column="user_name"    />
+        <result property="companyUserName"    column="company_user_name"    />
+        <result property="companyId"    column="company_id"    />
+    </resultMap>
+
+    <sql id="selectFsShareMaterialClickRecordVo">
+        select id, user_id, company_user_id, union_id, material_id, create_time, update_time, avatar, user_name, company_user_name, company_id from fs_share_material_click_record
+    </sql>
+
+    <select id="selectFsShareMaterialClickRecordList" parameterType="FsShareMaterialClickRecord" resultMap="FsShareMaterialClickRecordResult">
+        <include refid="selectFsShareMaterialClickRecordVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
+            <if test="unionId != null  and unionId != ''"> and union_id = #{unionId}</if>
+            <if test="materialId != null "> and material_id = #{materialId}</if>
+            <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
+            <if test="avatar != null  and avatar != ''"> and avatar = #{avatar}</if>
+            <if test="userName != null  and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
+            <if test="companyUserName != null  and companyUserName != ''"> and company_user_name like concat('%', #{companyUserName}, '%')</if>
+            <if test="companyId != null "> and company_id = #{companyId}</if>
+        </where>
+    </select>
+    
+    <select id="selectFsShareMaterialClickRecordById" parameterType="Long" resultMap="FsShareMaterialClickRecordResult">
+        <include refid="selectFsShareMaterialClickRecordVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertFsShareMaterialClickRecord" parameterType="FsShareMaterialClickRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into fs_share_material_click_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
+            <if test="unionId != null">union_id,</if>
+            <if test="materialId != null">material_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="avatar != null">avatar,</if>
+            <if test="userName != null">user_name,</if>
+            <if test="companyUserName != null">company_user_name,</if>
+            <if test="companyId != null">company_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
+            <if test="unionId != null">#{unionId},</if>
+            <if test="materialId != null">#{materialId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="avatar != null">#{avatar},</if>
+            <if test="userName != null">#{userName},</if>
+            <if test="companyUserName != null">#{companyUserName},</if>
+            <if test="companyId != null">#{companyId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateFsShareMaterialClickRecord" parameterType="FsShareMaterialClickRecord">
+        update fs_share_material_click_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="unionId != null">union_id = #{unionId},</if>
+            <if test="materialId != null">material_id = #{materialId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="avatar != null">avatar = #{avatar},</if>
+            <if test="userName != null">user_name = #{userName},</if>
+            <if test="companyUserName != null">company_user_name = #{companyUserName},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteFsShareMaterialClickRecordById" parameterType="Long">
+        delete from fs_share_material_click_record where id = #{id}
+    </delete>
+
+    <delete id="deleteFsShareMaterialClickRecordByIds" parameterType="String">
+        delete from fs_share_material_click_record where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 27 - 0
fs-user-app/src/main/java/com/fs/app/controller/ShareMaterialClickRecordController.java

@@ -0,0 +1,27 @@
+package com.fs.app.controller;
+
+import com.fs.common.core.domain.R;
+import com.fs.his.param.ShareMaterialClickRecordUParam;
+import com.fs.his.service.IFsShareMaterialClickRecordService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api("分享素材点击记录接口")
+@RestController
+@RequestMapping(value="/app/shareMaterialClickRecord")
+public class ShareMaterialClickRecordController extends AppBaseController {
+
+    @Autowired
+    private IFsShareMaterialClickRecordService shareMaterialClickRecordService;
+
+    /**
+     * 添加分享素材点击记录
+     */
+    @PostMapping("/addShareMaterialClickRecord")
+    public R addShareMaterialClickRecord(ShareMaterialClickRecordUParam param) {
+        return shareMaterialClickRecordService.addShareMaterialClickRecord(param);
+    }
+}