案例管理

This commit is contained in:
xiezhijun
2021-03-05 20:15:05 +08:00
parent a15e90171b
commit b4d5eabf32
16 changed files with 1147 additions and 49 deletions

View File

@ -23,13 +23,21 @@ public class SysCustomerCase extends BaseEntity
private String name;
/** 案例关键词 */
@Excel(name = "案例关键词")
@Excel(name = "关键词")
private String keyword;
/** 案例所属客户ID */
@Excel(name = "案例所属客户ID")
private Long customerId;
@Excel(name = "所属客户")
private String customerName;
/** 删除标识 0未删除 1已删除默认0 */
private Long delFlag;
//案例文件名称数组
private String[] caseFileName;
//案例文件URL数组
private String[] caseFileUrl;
}

View File

@ -0,0 +1,11 @@
package com.stdiet.custom.dto.request;
import lombok.Data;
@Data
public class FileRequest {
private String fileUrl;
private String fileName;
}

View File

@ -2,6 +2,7 @@ package com.stdiet.custom.mapper;
import java.util.List;
import com.stdiet.custom.domain.SysCustomerCaseFile;
import org.apache.ibatis.annotations.Param;
/**
* 客户案例对应文件管理Mapper接口
@ -58,4 +59,29 @@ public interface SysCustomerCaseFileMapper
* @return 结果
*/
public int deleteSysCustomerCaseFileByIds(Long[] ids);
/**
* 根据案例ID删除该案例下的所有文件记录
* @param caseId
*/
int deleteSysCustomerCaseFileByCaseId(@Param("caseId")Long caseId);
/**
* 根据案例ID批量删除该案例下的所有文件记录
* @param caseIds
*/
int deleteSysCustomerCaseFileByCaseIds(Long[] caseIds);
/**
* 批量插入案例文件记录
* @param list
*/
int insertBatch(List<SysCustomerCaseFile> list);
/**
* 根据案例Id查询案例文件列表
* @param caseId
* @return
*/
List<SysCustomerCaseFile> selectSysCustomerCaseFileListByCaseId(@Param("caseId") Long caseId);
}

View File

@ -2,6 +2,7 @@ package com.stdiet.custom.service;
import java.util.List;
import com.stdiet.custom.domain.SysCustomerCase;
import com.stdiet.custom.domain.SysCustomerCaseFile;
/**
* 客户案例管理Service接口
@ -58,4 +59,11 @@ public interface ISysCustomerCaseService {
*/
public int deleteSysCustomerCaseById(Long id);
/**
* 根据案例ID获取对应文件列表
* @param caseId
* @return
*/
List<SysCustomerCaseFile> getFileListByCaseId(Long caseId);
}

View File

@ -1,12 +1,16 @@
package com.stdiet.custom.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.stdiet.common.utils.DateUtils;
import com.stdiet.custom.domain.SysCustomerCaseFile;
import com.stdiet.custom.mapper.SysCustomerCaseFileMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.stdiet.custom.mapper.SysCustomerCaseMapper;
import com.stdiet.custom.domain.SysCustomerCase;
import com.stdiet.custom.service.ISysCustomerCaseService;
import org.springframework.transaction.annotation.Transactional;
/**
* 客户案例管理Service业务层处理
@ -15,11 +19,15 @@ import com.stdiet.custom.service.ISysCustomerCaseService;
* @date 2021-03-04
*/
@Service
@Transactional
public class SysCustomerCaseServiceImpl implements ISysCustomerCaseService
{
@Autowired
private SysCustomerCaseMapper sysCustomerCaseMapper;
@Autowired
private SysCustomerCaseFileMapper sysCustomerCaseFileMapper;
/**
* 查询客户案例管理
*
@ -54,7 +62,23 @@ public class SysCustomerCaseServiceImpl implements ISysCustomerCaseService
public int insertSysCustomerCase(SysCustomerCase sysCustomerCase)
{
sysCustomerCase.setCreateTime(DateUtils.getNowDate());
return sysCustomerCaseMapper.insertSysCustomerCase(sysCustomerCase);
int rows = sysCustomerCaseMapper.insertSysCustomerCase(sysCustomerCase);
if(rows > 0){
//批量添加文件对应列表
SysCustomerCaseFile caseFile = null;
if(sysCustomerCase.getCaseFileUrl() != null && sysCustomerCase.getCaseFileUrl().length > 0){
List<SysCustomerCaseFile> caseFileList = new ArrayList<>();
for (String url : sysCustomerCase.getCaseFileUrl()) {
caseFile = new SysCustomerCaseFile();
caseFile.setCaseId(sysCustomerCase.getId());
caseFile.setFileName(sysCustomerCase.getCaseFileName()[caseFileList.size()]);
caseFile.setFileUrl(url);
caseFileList.add(caseFile);
}
rows = sysCustomerCaseFileMapper.insertBatch(caseFileList);
}
}
return rows;
}
/**
@ -79,7 +103,11 @@ public class SysCustomerCaseServiceImpl implements ISysCustomerCaseService
@Override
public int deleteSysCustomerCaseByIds(Long[] ids)
{
return sysCustomerCaseMapper.deleteSysCustomerCaseByIds(ids);
int rows = sysCustomerCaseMapper.deleteSysCustomerCaseByIds(ids);
if(rows > 0){
rows = sysCustomerCaseFileMapper.deleteSysCustomerCaseFileByCaseIds(ids);
}
return rows;
}
/**
@ -91,6 +119,19 @@ public class SysCustomerCaseServiceImpl implements ISysCustomerCaseService
@Override
public int deleteSysCustomerCaseById(Long id)
{
return sysCustomerCaseMapper.deleteSysCustomerCaseById(id);
int rows = sysCustomerCaseMapper.deleteSysCustomerCaseById(id);
if(rows > 0){
rows = sysCustomerCaseFileMapper.deleteSysCustomerCaseFileByCaseId(id);
}
return rows;
}
/**
* 根据案例ID获取对应文件列表
* @param caseId
* @return
*/
public List<SysCustomerCaseFile> getFileListByCaseId(Long caseId){
return sysCustomerCaseFileMapper.selectSysCustomerCaseFileListByCaseId(caseId);
}
}

View File

@ -21,14 +21,17 @@
</sql>
<select id="selectSysCustomerCaseFileList" parameterType="SysCustomerCaseFile" resultMap="SysCustomerCaseFileResult">
<include refid="selectSysCustomerCaseFileVo"/>
<where>
</where>
<include refid="selectSysCustomerCaseFileVo"/> where del_flag = 0
</select>
<!-- 根据案例ID查询文件列表 -->
<select id="selectSysCustomerCaseFileListByCaseId" parameterType="Long" resultMap="SysCustomerCaseFileResult">
<include refid="selectSysCustomerCaseFileVo"/> where del_flag = 0 and case_id = #{caseId}
</select>
<select id="selectSysCustomerCaseFileById" parameterType="Long" resultMap="SysCustomerCaseFileResult">
<include refid="selectSysCustomerCaseFileVo"/>
where id = #{id}
where id = #{id} and del_flag = 0
</select>
<insert id="insertSysCustomerCaseFile" parameterType="SysCustomerCaseFile" useGeneratedKeys="true" keyProperty="id">
@ -70,15 +73,39 @@
where id = #{id}
</update>
<delete id="deleteSysCustomerCaseFileById" parameterType="Long">
delete from sys_customer_case_file where id = #{id}
</delete>
<update id="deleteSysCustomerCaseFileById" parameterType="Long">
update sys_customer_case_file set del_flag = 1 where id = #{id}
</update>
<delete id="deleteSysCustomerCaseFileByIds" parameterType="String">
delete from sys_customer_case_file where id in
<update id="deleteSysCustomerCaseFileByIds" parameterType="String">
update sys_customer_case_file set del_flag = 1 where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</update>
<!-- 根据案例ID删除该案例对应的所有文件记录 -->
<update id="deleteSysCustomerCaseFileByCaseId" parameterType="Long">
update sys_customer_case_file set del_flag = 1 where case_id = #{caseId}
</update>
<!-- 根据案例ID批量删除该案例对应的所有文件记录 -->
<update id="deleteSysCustomerCaseFileByCaseIds" parameterType="String">
update sys_customer_case_file set del_flag = 1 where case_id in
<foreach item="caseId" collection="array" open="(" separator="," close=")">
#{caseId}
</foreach>
</update>
<!-- 批量插入案例文件记录 -->
<insert id="insertBatch">
INSERT INTO sys_customer_case_file
(case_id, file_url, file_name)
VALUES
<foreach collection="list" item="caseFile" separator=",">
(#{caseFile.caseId}, #{caseFile.fileUrl}, #{caseFile.fileName})
</foreach>
</insert>
</mapper>

View File

@ -15,20 +15,31 @@
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="delFlag" column="del_flag" />
<result property="customerName" column="customer_name"></result>
</resultMap>
<sql id="selectSysCustomerCaseVo">
select id, name, keyword, remark, customer_id, create_time, create_by, update_time, update_by, del_flag from sys_customer_case
select id, name, keyword, remark, customer_id, create_time from sys_customer_case
</sql>
<select id="selectSysCustomerCaseList" parameterType="SysCustomerCase" resultMap="SysCustomerCaseResult">
<include refid="selectSysCustomerCaseVo"/> where del_flag = 0
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
select scc.id, scc.name, scc.keyword, scc.remark, scc.customer_id, scc.create_time,sc.name as customer_name from sys_customer_case scc
left join sys_customer sc on sc.id = scc.customer_id and sc.del_flag = 0
where scc.del_flag = 0
<if test="name != null and name != ''">
and (scc.name like concat('%', #{name}, '%') OR scc.keyword like concat('%', #{name}, '%') OR scc.remark like concat('%', #{name}, '%'))
</if>
<if test="customerName != null and customerName != ''">
and sc.name like concat('%', #{customerName}, '%')
</if>
order by id desc
</select>
<select id="selectSysCustomerCaseById" parameterType="Long" resultMap="SysCustomerCaseResult">
<include refid="selectSysCustomerCaseVo"/>
where id = #{id} and del_flag = 0
select scc.id, scc.name, scc.keyword, scc.remark, scc.customer_id, scc.create_time,sc.name as customer_name from sys_customer_case scc
left join sys_customer sc on sc.id = scc.customer_id and sc.del_flag = 0
where scc.id = #{id} and scc.del_flag = 0
</select>
<insert id="insertSysCustomerCase" parameterType="SysCustomerCase" useGeneratedKeys="true" keyProperty="id">