按钮列表

  • 删除按钮
  • 重新分享按钮
  • 取消分享按钮
  • 分享按钮

    1、删除物料

    接口地址

    1. http://localhost:9090/service/com.apexsoft.protocol.material.library.frontPage.FrontPageInfoService/operMaterialInfo

    关联数据表

    T_MATL_INFO【物料基本表】:存储物料基本信息,在列表可支持上传单个制品文件和批量制品、下载、分享、关联、打标签、上架、下架等操作;
    T_MATL_ATT【物料附件表】:存储附件信息
    T_MATL_OPER_HIS【操作历史记录表】:存储操作记录

    需求分析

  1. 支持多选物料后逻辑删除物料条目,删除后只能在回收站可见;
  2. 操作记录保存;
  3. 提供 物料id 和 操作类型标识符2个入参

    业务逻辑

  4. 记录操作,插入此次操作录到操作历史记录表;

  5. 逻辑删除物料信息,删除该条物料在物料基本表的记录;
  6. 查询该条物料包含的附件,并执行删除附件操作(后续看代码,同事修改的);
  7. 更改物料的状态

    测试结果

    测试入参:

    1. {
    2. "materialId": "3077",
    3. "operType": "3"
    4. }

    image.png

    bug解决

    问题描述:
    image.png
    原因:
    在数据表中没有这个字段名称,所以sql中写了也插入不进去
    解决方案:
    删除sql中多余的字段名称
    image.png
    image.png
    总结:
    mybatis中的标识符无效、无效的类型1111 等报错,一般按照提示查找对应字段和数据库表中的字段是否对应。

    2、重新分享

    接口地址

    1. http://localhost:9090/service/com.apexsoft.protocol.material.library.frontPage.FrontPageInfoService/operAgainShareMaterialInfo

    关联数据表

    CRM.T_MATL_SHR【物料分享表】:存储分享物料的记录信息

    需求分析

  8. 支持选中单个或多个物料信息,重新分享已分享的物料;

  9. 若为单选,则会带出已分享物料的信息,若为多选,则不会,需要重新指定。

    业务逻辑

    重新分享的物料列表都是分享表中的记录,因此,选中之后,将state操作为state=3

  10. 接口提供物料id参数,支持单选、多选;

  11. 单选物料,通过物料id将页面上的信息提供出来,并且更改分享表的状态为“已分享”;
  12. 多选物料,只需要更改分享表的状态为“已分享”;

TODO:
单选物料时,无法确定分享表中的唯一记录!
原始xml代码:

  1. <update id="operAgainShareMaterialInfo" parameterType="java.util.Map">
  2. UPDATE CRM.T_MATL_SHR
  3. SET
  4. <if test="materialIds != null and materialIds != '' and materialIds.length() > 1 and materialIds.indexOf(',') != -1">
  5. SHR_AUTH = #{shrAuth},
  6. SHR_TO = #{shrTo},
  7. ST_TM = #{stTime},
  8. EXP_TM = #{expTime},
  9. </if>
  10. STATE = 1
  11. WHERE MATL_ID =
  12. (SELECT COLUMN_VALUE MATL_IDS FROM TABLE(SPLIT(#{materialIds})))
  13. </update>

3、分享物料

接口地址

  1. http://localhost:9000/api/service/com.apexsoft.protocol.material.library.frontPage.FrontPageInfoService/operShareMaterialInfo

关联数据表

CRM.T_MATL_SHR【物料分享表】:存储分享物料的记录信息
STATE:1-已分享;2-已取消分享;3-重新分享

需求分析

  1. 支持单选或者多选物料(物料id支持多个);
  2. 被分享人也支持单个或者多个(shareUser);
  3. 支持单选或者多选分享权限;
  4. 如果多选物料,并且多选被分享人,应当按照物料数目来决定分享表记录数;

    业务逻辑

    image.png

  5. 入参物料id应该以字符串形式,逗号分割;

    测试结果

    单个物料多个被分享人

    image.png
    image.png

    多个物料多个被分享人

    image.png
    这里有个不算bug的bug,物料入参 “3142,,3137”
    image.png
    结果数据确实写入了!
    毕竟物料是通过勾选来确定的,所以不算bug。
    那么如果是被分享人呢?
    image.png
    image.png
    这个bug待处理【TODO】
    思路:对该参数进行分割并且判空,然后再拼接??
    如果

    4、取消分享

    疑问?
    入参的shareId是指分享表里面的记录ID?目前代码是这么写的!

5、详情页