‘liusuyi’
2023-07-22 5bf75f909fc56a82be653431f18c134bd32e4430
增加app任务下发
已添加14个文件
1464 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.xml 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.ruoyi.app.task.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.app.task.domain.ArdAppTask;
import com.ruoyi.app.task.service.IArdAppTaskService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * app任务管理Controller
 *
 * @author ard
 * @date 2023-07-22
 */
@RestController
@RequestMapping("/app/task")
public class ArdAppTaskController extends BaseController
{
    @Autowired
    private IArdAppTaskService ardAppTaskService;
    /**
     * æŸ¥è¯¢app任务管理列表
     */
    @PreAuthorize("@ss.hasPermi('app:task:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdAppTask ardAppTask)
    {
        startPage();
        List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºapp任务管理列表
     */
    @PreAuthorize("@ss.hasPermi('app:task:export')")
    @Log(title = "app任务管理", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdAppTask ardAppTask)
    {
        List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask);
        ExcelUtil<ArdAppTask> util = new ExcelUtil<ArdAppTask>(ArdAppTask.class);
        util.exportExcel(response, list, "app任务管理数据");
    }
    /**
     * èŽ·å–app任务管理详细信息
     */
    @PreAuthorize("@ss.hasPermi('app:task:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") String id)
    {
        return success(ardAppTaskService.selectArdAppTaskById(id));
    }
    /**
     * æ–°å¢žapp任务管理
     */
    @PreAuthorize("@ss.hasPermi('app:task:add')")
    @Log(title = "app任务管理", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdAppTask ardAppTask)
    {
        return toAjax(ardAppTaskService.insertArdAppTask(ardAppTask));
    }
    /**
     * ä¿®æ”¹app任务管理
     */
    @PreAuthorize("@ss.hasPermi('app:task:edit')")
    @Log(title = "app任务管理", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdAppTask ardAppTask)
    {
        return toAjax(ardAppTaskService.updateArdAppTask(ardAppTask));
    }
    /**
     * åˆ é™¤app任务管理
     */
    @PreAuthorize("@ss.hasPermi('app:task:remove')")
    @Log(title = "app任务管理", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable String[] ids)
    {
        return toAjax(ardAppTaskService.deleteArdAppTaskByIds(ids));
    }
}
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
package com.ruoyi.app.task.domain;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * app任务管理对象 ard_app_task
 *
 * @author ard
 * @date 2023-07-22
 */
public class ArdAppTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ID */
    private String id;
    /** ä»»åŠ¡åç§° */
    @Excel(name = "任务名称")
    private String name;
    /** ä»»åŠ¡æ–‡æœ¬ */
    @Excel(name = "任务文本")
    private String text;
    /** ä»»åŠ¡è¯­éŸ³ */
    @Excel(name = "任务语音")
    private String voice;
    /** éƒ¨é—¨ID */
    @Excel(name = "部门ID")
    private Integer deptId;
    /** ç”¨æˆ·ID */
    @Excel(name = "用户ID")
    private String userId;
    /** app任务图片信息 */
    private List<ArdAppTaskPic> ardAppTaskPicList;
    /** app任务关联多用户 */
    private List<String> userIds;
    /** app任务详情信息 */
    private List<ArdAppTaskDetail> ardAppTaskDetailList;
    public List<ArdAppTaskPic> getArdAppTaskPicList()
    {
        return ardAppTaskPicList;
    }
    public List<String> getUserIds() {
        return userIds;
    }
    public void setUserIds(List<String> userIds) {
        this.userIds = userIds;
    }
    public void setArdAppTaskPicList(List<ArdAppTaskPic> ardAppTaskPicList)
    {
        this.ardAppTaskPicList = ardAppTaskPicList;
    }
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
    public void setText(String text)
    {
        this.text = text;
    }
    public String getText()
    {
        return text;
    }
    public void setVoice(String voice)
    {
        this.voice = voice;
    }
    public String getVoice()
    {
        return voice;
    }
    public void setDeptId(Integer deptId)
    {
        this.deptId = deptId;
    }
    public Integer getDeptId()
    {
        return deptId;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }
    public String getUserId()
    {
        return userId;
    }
    public List<ArdAppTaskDetail> getArdAppTaskDetailList()
    {
        return ardAppTaskDetailList;
    }
    public void setArdAppTaskDetailList(List<ArdAppTaskDetail> ardAppTaskDetailList)
    {
        this.ardAppTaskDetailList = ardAppTaskDetailList;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("id", getId())
            .append("name", getName())
            .append("text", getText())
            .append("voice", getVoice())
            .append("deptId", getDeptId())
            .append("userId", getUserId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("ardAppTaskDetailList", getArdAppTaskDetailList())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
package com.ruoyi.app.task.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * app任务详情对象 ard_app_task_detail
 *
 * @author ard
 * @date 2023-07-22
 */
public class ArdAppTaskDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ID */
    private String id;
    /** å…´è¶£ç‚¹åç§° */
    @Excel(name = "兴趣点名称")
    private String name;
    /** å…´è¶£ç‚¹ç»åº¦ */
    @Excel(name = "兴趣点经度")
    private String longitude;
    /** å…´è¶£ç‚¹çº¬åº¦ */
    @Excel(name = "兴趣点纬度")
    private String latitude;
    /** å…´è¶£ç‚¹é«˜å±‚ */
    @Excel(name = "兴趣点高层")
    private String altitude;
    /** å…³è”用户ID */
    @Excel(name = "关联用户ID")
    private String userId;
    /** æ‰“卡文本 */
    @Excel(name = "打卡文本")
    private String text;
    /** æ‰“卡语音 */
    @Excel(name = "打卡语音")
    private String voice;
    /** ä»»åŠ¡ID */
    @Excel(name = "任务ID")
    private String taskId;
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
    public void setLongitude(String longitude)
    {
        this.longitude = longitude;
    }
    public String getLongitude()
    {
        return longitude;
    }
    public void setLatitude(String latitude)
    {
        this.latitude = latitude;
    }
    public String getLatitude()
    {
        return latitude;
    }
    public void setAltitude(String altitude)
    {
        this.altitude = altitude;
    }
    public String getAltitude()
    {
        return altitude;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }
    public String getUserId()
    {
        return userId;
    }
    public void setText(String text)
    {
        this.text = text;
    }
    public String getText()
    {
        return text;
    }
    public void setVoice(String voice)
    {
        this.voice = voice;
    }
    public String getVoice()
    {
        return voice;
    }
    public void setTaskId(String taskId)
    {
        this.taskId = taskId;
    }
    public String getTaskId()
    {
        return taskId;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("altitude", getAltitude())
            .append("userId", getUserId())
            .append("text", getText())
            .append("voice", getVoice())
            .append("taskId", getTaskId())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.app.task.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * app任务图片对象 ard_app_task_pic
 *
 * @author ard
 * @date 2023-07-22
 */
public class ArdAppTaskPic extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ID */
    private String id;
    /** app任务ID */
    @Excel(name = "app任务ID")
    private String taskId;
    /** app任务图片url */
    @Excel(name = "app任务图片url")
    private String picUrl;
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
    public void setTaskId(String taskId)
    {
        this.taskId = taskId;
    }
    public String getTaskId()
    {
        return taskId;
    }
    public void setPicUrl(String picUrl)
    {
        this.picUrl = picUrl;
    }
    public String getPicUrl()
    {
        return picUrl;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskId", getTaskId())
            .append("picUrl", getPicUrl())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package com.ruoyi.app.task.mapper;
import java.util.List;
import com.ruoyi.app.task.domain.ArdAppTask;
import com.ruoyi.app.task.domain.ArdAppTaskDetail;
import com.ruoyi.app.task.domain.ArdAppTaskPic;
/**
 * app任务管理Mapper接口
 *
 * @author ard
 * @date 2023-07-22
 */
public interface ArdAppTaskMapper
{
    /**
     * æŸ¥è¯¢app任务管理
     *
     * @param id app任务管理主键
     * @return app任务管理
     */
    public ArdAppTask selectArdAppTaskById(String id);
    /**
     * æŸ¥è¯¢app任务管理列表
     *
     * @param ardAppTask app任务管理
     * @return app任务管理集合
     */
    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask);
    /**
     * æ–°å¢žapp任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    public int insertArdAppTask(ArdAppTask ardAppTask);
    /**
     * ä¿®æ”¹app任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    public int updateArdAppTask(ArdAppTask ardAppTask);
    /**
     * åˆ é™¤app任务管理
     *
     * @param id app任务管理主键
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskById(String id);
    /**
     * æ‰¹é‡åˆ é™¤app任务管理
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskByIds(String[] ids);
    /**
     * æ‰¹é‡åˆ é™¤app任务图片
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskPicByTaskIds(String[] ids);
    /**
     * æ‰¹é‡æ–°å¢žapp任务图片
     *
     * @param ardAppTaskPicList app任务图片列表
     * @return ç»“æžœ
     */
    public int batchArdAppTaskPic(List<ArdAppTaskPic> ardAppTaskPicList);
    /**
     * é€šè¿‡app任务管理主键删除app任务图片信息
     *
     * @param id app任务管理ID
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskPicByTaskId(String id);
    /**
     * æ‰¹é‡åˆ é™¤app任务详情
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskDetailByTaskIds(String[] ids);
    /**
     * æ‰¹é‡æ–°å¢žapp任务详情
     *
     * @param ardAppTaskDetailList app任务详情列表
     * @return ç»“æžœ
     */
    public int batchArdAppTaskDetail(List<ArdAppTaskDetail> ardAppTaskDetailList);
    /**
     * é€šè¿‡app任务管理主键删除app任务详情信息
     *
     * @param id app任务管理ID
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskDetailByTaskId(String id);
}
ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.app.task.service;
import java.util.List;
import com.ruoyi.app.task.domain.ArdAppTask;
/**
 * app任务管理Service接口
 *
 * @author ard
 * @date 2023-07-22
 */
public interface IArdAppTaskService
{
    /**
     * æŸ¥è¯¢app任务管理
     *
     * @param id app任务管理主键
     * @return app任务管理
     */
    public ArdAppTask selectArdAppTaskById(String id);
    /**
     * æŸ¥è¯¢app任务管理列表
     *
     * @param ardAppTask app任务管理
     * @return app任务管理集合
     */
    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask);
    /**
     * æ–°å¢žapp任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    public int insertArdAppTask(ArdAppTask ardAppTask);
    /**
     * ä¿®æ”¹app任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    public int updateArdAppTask(ArdAppTask ardAppTask);
    /**
     * æ‰¹é‡åˆ é™¤app任务管理
     *
     * @param ids éœ€è¦åˆ é™¤çš„app任务管理主键集合
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskByIds(String[] ids);
    /**
     * åˆ é™¤app任务管理信息
     *
     * @param id app任务管理主键
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskById(String id);
}
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,190 @@
package com.ruoyi.app.task.service.impl;
import java.util.List;
import com.ruoyi.app.task.domain.ArdAppTaskDetail;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
import com.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.app.task.domain.ArdAppTaskPic;
import com.ruoyi.app.task.mapper.ArdAppTaskMapper;
import com.ruoyi.app.task.domain.ArdAppTask;
import com.ruoyi.app.task.service.IArdAppTaskService;
import javax.annotation.Resource;
/**
 * app任务管理Service业务层处理
 *
 * @author ard
 * @date 2023-07-22
 */
@Service
public class ArdAppTaskServiceImpl implements IArdAppTaskService {
    @Resource
    private ArdAppTaskMapper ardAppTaskMapper;
    @Resource
    private ArdAppTaskTextMapper ardAppTaskTextMapper;
    /**
     * æŸ¥è¯¢app任务管理
     *
     * @param id app任务管理主键
     * @return app任务管理
     */
    @Override
    public ArdAppTask selectArdAppTaskById(String id) {
        return ardAppTaskMapper.selectArdAppTaskById(id);
    }
    /**
     * æŸ¥è¯¢app任务管理列表
     *
     * @param ardAppTask app任务管理
     * @return app任务管理
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) {
        return ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
    }
    /**
     * æ–°å¢žapp任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int insertArdAppTask(ArdAppTask ardAppTask) {
        ardAppTask.setId(IdUtils.simpleUUID());
        ardAppTask.setUserId(SecurityUtils.getUserId());
        ardAppTask.setCreateBy(SecurityUtils.getUsername());
        ardAppTask.setCreateTime(DateUtils.getNowDate());
        int rows = ardAppTaskMapper.insertArdAppTask(ardAppTask);
        insertArdAppTaskPic(ardAppTask);
        insertArdAppTaskDetail(ardAppTask);
        insertArdAppTaskText(ardAppTask);
        return rows;
    }
    /**
     * ä¿®æ”¹app任务管理
     *
     * @param ardAppTask app任务管理
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int updateArdAppTask(ArdAppTask ardAppTask) {
        ardAppTask.setUpdateBy(SecurityUtils.getUsername());
        ardAppTask.setUpdateTime(DateUtils.getNowDate());
        ardAppTaskMapper.deleteArdAppTaskPicByTaskId(ardAppTask.getId());
        ardAppTaskMapper.deleteArdAppTaskDetailByTaskId(ardAppTask.getId());
        insertArdAppTaskPic(ardAppTask);
        insertArdAppTaskDetail(ardAppTask);
        return ardAppTaskMapper.updateArdAppTask(ardAppTask);
    }
    /**
     * æ‰¹é‡åˆ é™¤app任务管理
     *
     * @param ids éœ€è¦åˆ é™¤çš„app任务管理主键
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int deleteArdAppTaskByIds(String[] ids) {
        ardAppTaskMapper.deleteArdAppTaskPicByTaskIds(ids);
        return ardAppTaskMapper.deleteArdAppTaskByIds(ids);
    }
    /**
     * åˆ é™¤app任务管理信息
     *
     * @param id app任务管理主键
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int deleteArdAppTaskById(String id) {
        ardAppTaskMapper.deleteArdAppTaskPicByTaskId(id);
        return ardAppTaskMapper.deleteArdAppTaskById(id);
    }
    /**
     * æ–°å¢žapp任务图片信息
     *
     * @param ardAppTask app任务管理对象
     */
    public void insertArdAppTaskPic(ArdAppTask ardAppTask) {
        List<ArdAppTaskPic> ardAppTaskPicList = ardAppTask.getArdAppTaskPicList();
        String id = ardAppTask.getId();
        if (StringUtils.isNotNull(ardAppTaskPicList)) {
            List<ArdAppTaskPic> list = new ArrayList<ArdAppTaskPic>();
            for (ArdAppTaskPic ardAppTaskPic :ardAppTaskPicList)
            {
                ardAppTaskPic.setId(IdUtils.simpleUUID());
                ardAppTaskPic.setTaskId(id);
                list.add(ardAppTaskPic);
            }
            if (list.size() > 0) {
                ardAppTaskMapper.batchArdAppTaskPic(list);
            }
        }
    }
    /**
     * æ–°å¢žapp任务详情信息
     *
     * @param ardAppTask app任务管理对象
     */
    public void insertArdAppTaskDetail(ArdAppTask ardAppTask) {
        List<String> userIds = ardAppTask.getUserIds();
        for(String userId:userIds) {
            List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
            String id = ardAppTask.getId();
            if (StringUtils.isNotNull(ardAppTaskDetailList)) {
                List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
                for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
                    ardAppTaskDetail.setId(IdUtils.simpleUUID());
                    ardAppTaskDetail.setTaskId(id);
                    ardAppTaskDetail.setUserId(userId);
                    list.add(ardAppTaskDetail);
                }
                if (list.size() > 0) {
                    ardAppTaskMapper.batchArdAppTaskDetail(list);
                }
            }
        }
    }
    /**
     * æ–°å¢žapp任务描述信息
     *
     * @param ardAppTask app任务管理对象
     */
    public void insertArdAppTaskText(ArdAppTask ardAppTask) {
        String userId = ardAppTask.getUserId();
        String text = ardAppTask.getText();
        ArdAppTaskText ardAppTaskText=new ArdAppTaskText();
        ardAppTaskText.setId(IdUtils.simpleUUID());
        ardAppTaskText.setUserId(userId);
        ardAppTaskText.setText(text);
        List<ArdAppTaskText> ardAppTaskTexts = ardAppTaskTextMapper.selectArdAppTaskTextList(ardAppTaskText);
        if(ardAppTaskTexts.size()==0)
        {
            ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText);
        }
    }
}
ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.ruoyi.app.tasktext.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
import com.ruoyi.app.tasktext.service.IArdAppTaskTextService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * app任务描述Controller
 *
 * @author ard
 * @date 2023-07-22
 */
@RestController
@RequestMapping("/task/text")
public class ArdAppTaskTextController extends BaseController
{
    @Autowired
    private IArdAppTaskTextService ardAppTaskTextService;
    /**
     * æŸ¥è¯¢app任务描述列表
     */
    @PreAuthorize("@ss.hasPermi('task:text:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdAppTaskText ardAppTaskText)
    {
        startPage();
        List<ArdAppTaskText> list = ardAppTaskTextService.selectArdAppTaskTextList(ardAppTaskText);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºapp任务描述列表
     */
    @PreAuthorize("@ss.hasPermi('task:text:export')")
    @Log(title = "app任务描述", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdAppTaskText ardAppTaskText)
    {
        List<ArdAppTaskText> list = ardAppTaskTextService.selectArdAppTaskTextList(ardAppTaskText);
        ExcelUtil<ArdAppTaskText> util = new ExcelUtil<ArdAppTaskText>(ArdAppTaskText.class);
        util.exportExcel(response, list, "app任务描述数据");
    }
    /**
     * èŽ·å–app任务描述详细信息
     */
    @PreAuthorize("@ss.hasPermi('task:text:query')")
    @GetMapping(value = "/{userId}")
    public AjaxResult getInfo(@PathVariable("userId") String userId)
    {
        return success(ardAppTaskTextService.selectArdAppTaskTextByUserId(userId));
    }
    /**
     * æ–°å¢žapp任务描述
     */
    @PreAuthorize("@ss.hasPermi('task:text:add')")
    @Log(title = "app任务描述", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdAppTaskText ardAppTaskText)
    {
        return toAjax(ardAppTaskTextService.insertArdAppTaskText(ardAppTaskText));
    }
    /**
     * ä¿®æ”¹app任务描述
     */
    @PreAuthorize("@ss.hasPermi('task:text:edit')")
    @Log(title = "app任务描述", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdAppTaskText ardAppTaskText)
    {
        return toAjax(ardAppTaskTextService.updateArdAppTaskText(ardAppTaskText));
    }
    /**
     * åˆ é™¤app任务描述
     */
    @PreAuthorize("@ss.hasPermi('task:text:remove')")
    @Log(title = "app任务描述", businessType = BusinessType.DELETE)
    @DeleteMapping("/{userIds}")
    public AjaxResult remove(@PathVariable String[] userIds)
    {
        return toAjax(ardAppTaskTextService.deleteArdAppTaskTextByUserIds(userIds));
    }
}
ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.app.tasktext.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * app任务描述对象 ard_app_task_text
 *
 * @author ard
 * @date 2023-07-22
 */
public class ArdAppTaskText extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ç”¨æˆ·ID */
    @Excel(name = "用户ID")
    private String userId;
    /** app任务描述 */
    @Excel(name = "app任务描述")
    private String text;
    /** ID */
    private String id;
    public void setUserId(String userId)
    {
        this.userId = userId;
    }
    public String getUserId()
    {
        return userId;
    }
    public void setText(String text)
    {
        this.text = text;
    }
    public String getText()
    {
        return text;
    }
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("text", getText())
            .append("id", getId())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.app.tasktext.mapper;
import java.util.List;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
/**
 * app任务描述Mapper接口
 *
 * @author ard
 * @date 2023-07-22
 */
public interface ArdAppTaskTextMapper
{
    /**
     * æŸ¥è¯¢app任务描述
     *
     * @param userId app任务描述主键
     * @return app任务描述
     */
    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId);
    /**
     * æŸ¥è¯¢app任务描述列表
     *
     * @param ardAppTaskText app任务描述
     * @return app任务描述集合
     */
    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText);
    /**
     * æ–°å¢žapp任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText);
    /**
     * ä¿®æ”¹app任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText);
    /**
     * åˆ é™¤app任务描述
     *
     * @param userId app任务描述主键
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskTextByUserId(String userId);
    /**
     * æ‰¹é‡åˆ é™¤app任务描述
     *
     * @param userIds éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskTextByUserIds(String[] userIds);
}
ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.app.tasktext.service;
import java.util.List;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
/**
 * app任务描述Service接口
 *
 * @author ard
 * @date 2023-07-22
 */
public interface IArdAppTaskTextService
{
    /**
     * æŸ¥è¯¢app任务描述
     *
     * @param userId app任务描述主键
     * @return app任务描述
     */
    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId);
    /**
     * æŸ¥è¯¢app任务描述列表
     *
     * @param ardAppTaskText app任务描述
     * @return app任务描述集合
     */
    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText);
    /**
     * æ–°å¢žapp任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText);
    /**
     * ä¿®æ”¹app任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText);
    /**
     * æ‰¹é‡åˆ é™¤app任务描述
     *
     * @param userIds éœ€è¦åˆ é™¤çš„app任务描述主键集合
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskTextByUserIds(String[] userIds);
    /**
     * åˆ é™¤app任务描述信息
     *
     * @param userId app任务描述主键
     * @return ç»“æžœ
     */
    public int deleteArdAppTaskTextByUserId(String userId);
}
ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.ruoyi.app.tasktext.service.impl;
import java.util.List;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
import com.ruoyi.app.tasktext.service.IArdAppTaskTextService;
/**
 * app任务描述Service业务层处理
 *
 * @author ard
 * @date 2023-07-22
 */
@Service
public class ArdAppTaskTextServiceImpl implements IArdAppTaskTextService {
    @Autowired
    private ArdAppTaskTextMapper ardAppTaskTextMapper;
    /**
     * æŸ¥è¯¢app任务描述
     *
     * @param userId app任务描述主键
     * @return app任务描述
     */
    @Override
    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId) {
        return ardAppTaskTextMapper.selectArdAppTaskTextByUserId(userId);
    }
    /**
     * æŸ¥è¯¢app任务描述列表
     *
     * @param ardAppTaskText app任务描述
     * @return app任务描述
     */
    @Override
    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText) {
        return ardAppTaskTextMapper.selectArdAppTaskTextList(ardAppTaskText);
    }
    /**
     * æ–°å¢žapp任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    @Override
    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText) {
                ardAppTaskText.setUserId(SecurityUtils.getUserId());
            return ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText);
    }
    /**
     * ä¿®æ”¹app任务描述
     *
     * @param ardAppTaskText app任务描述
     * @return ç»“æžœ
     */
    @Override
    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText) {
        return ardAppTaskTextMapper.updateArdAppTaskText(ardAppTaskText);
    }
    /**
     * æ‰¹é‡åˆ é™¤app任务描述
     *
     * @param userIds éœ€è¦åˆ é™¤çš„app任务描述主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAppTaskTextByUserIds(String[] userIds) {
        return ardAppTaskTextMapper.deleteArdAppTaskTextByUserIds(userIds);
    }
    /**
     * åˆ é™¤app任务描述信息
     *
     * @param userId app任务描述主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAppTaskTextByUserId(String userId) {
        return ardAppTaskTextMapper.deleteArdAppTaskTextByUserId(userId);
    }
}
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,190 @@
<?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.ruoyi.app.task.mapper.ArdAppTaskMapper">
    <resultMap type="ArdAppTask" id="ArdAppTaskResult">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="text" column="text"/>
        <result property="voice" column="voice"/>
        <result property="deptId" column="dept_id"/>
        <result property="userId" column="user_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <resultMap id="ArdAppTaskArdAppTaskPicResult" type="ArdAppTask" extends="ArdAppTaskResult">
        <collection property="ardAppTaskPicList" notNullColumn="sub_id" javaType="java.util.List"
                    resultMap="ArdAppTaskPicResult"/>
    </resultMap>
    <resultMap id="ArdAppTaskArdAppTaskDetailResult" type="ArdAppTask" extends="ArdAppTaskResult">
        <collection property="ardAppTaskDetailList" notNullColumn="sub_id" javaType="java.util.List"
                    resultMap="ArdAppTaskDetailResult"/>
    </resultMap>
    <resultMap type="ArdAppTaskDetail" id="ArdAppTaskDetailResult">
        <result property="id" column="sub_id"/>
        <result property="name" column="sub_name"/>
        <result property="longitude" column="sub_longitude"/>
        <result property="latitude" column="sub_latitude"/>
        <result property="altitude" column="sub_altitude"/>
        <result property="userId" column="sub_user_id"/>
        <result property="text" column="sub_text"/>
        <result property="voice" column="sub_voice"/>
        <result property="taskId" column="sub_task_id"/>
    </resultMap>
    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
        <result property="id" column="sub_id"/>
        <result property="taskId" column="sub_task_id"/>
        <result property="picUrl" column="sub_pic_url"/>
    </resultMap>
    <sql id="selectArdAppTaskVo">
        select c.id,
               c.name,
               c.text,
               c.voice,
               c.dept_id,
               c.user_id,
               c.create_by,
               c.create_time,
               c.update_by,
               c.update_time
        from ard_app_task c
        left join sys_dept d on d.dept_id = c.dept_id
        left join sys_user u on u.user_id = c.user_id
    </sql>
    <select id="selectArdAppTaskList" parameterType="ArdAppTask" resultMap="ArdAppTaskResult">
        <include refid="selectArdAppTaskVo"/>
        <where>
            <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
            <if test="text != null  and text != ''">and text = #{text}</if>
            <if test="voice != null  and voice != ''">and voice = #{voice}</if>
            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
            </if>
            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
            <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
            ${params.dataScope}
        </where>
    </select>
    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskArdAppTaskPicResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               b.id      as sub_id,
               b.task_id as sub_task_id,
               b.pic_url as sub_pic_url
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
                 left join ard_app_task_detail c on c.task_id = a.id
        where a.id = #{id}
    </select>
    <insert id="insertArdAppTask" parameterType="ArdAppTask">
        insert into ard_app_task
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="name != null">name,</if>
            <if test="text != null">text,</if>
            <if test="voice != null">voice,</if>
            <if test="deptId != null">dept_id,</if>
            <if test="userId != null">user_id,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="name != null">#{name},</if>
            <if test="text != null">#{text},</if>
            <if test="voice != null">#{voice},</if>
            <if test="deptId != null">#{deptId},</if>
            <if test="userId != null">#{userId},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
        </trim>
    </insert>
    <update id="updateArdAppTask" parameterType="ArdAppTask">
        update ard_app_task
        <trim prefix="SET" suffixOverrides=",">
            <if test="name != null">name = #{name},</if>
            <if test="text != null">text = #{text},</if>
            <if test="voice != null">voice = #{voice},</if>
            <if test="deptId != null">dept_id = #{deptId},</if>
            <if test="userId != null">user_id = #{userId},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteArdAppTaskById" parameterType="String">
        delete
        from ard_app_task
        where id = #{id}
    </delete>
    <delete id="deleteArdAppTaskByIds" parameterType="String">
        delete from ard_app_task where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <delete id="deleteArdAppTaskPicByTaskIds" parameterType="String">
        delete from ard_app_task_pic where task_id in
        <foreach item="taskId" collection="array" open="(" separator="," close=")">
            #{taskId}
        </foreach>
    </delete>
    <delete id="deleteArdAppTaskPicByTaskId" parameterType="String">
        delete
        from ard_app_task_pic
        where task_id = #{taskId}
    </delete>
    <insert id="batchArdAppTaskPic">
        insert into ard_app_task_pic( id, task_id, pic_url) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.id}, #{item.taskId}, #{item.picUrl})
        </foreach>
    </insert>
    <delete id="deleteArdAppTaskDetailByTaskIds" parameterType="String">
        delete from ard_app_task_detail where task_id in
        <foreach item="taskId" collection="array" open="(" separator="," close=")">
            #{taskId}
        </foreach>
    </delete>
    <delete id="deleteArdAppTaskDetailByTaskId" parameterType="String">
        delete from ard_app_task_detail where task_id = #{taskId}
    </delete>
    <insert id="batchArdAppTaskDetail">
        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.id}, #{item.name}, #{item.longitude}, #{item.latitude}, #{item.altitude}, #{item.userId}, #{item.text}, #{item.voice}, #{item.taskId})
        </foreach>
    </insert>
</mapper>
ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
<?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.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper">
    <resultMap type="ArdAppTaskText" id="ArdAppTaskTextResult">
        <result property="userId"    column="user_id"    />
        <result property="text"    column="text"    />
        <result property="id"    column="id"    />
    </resultMap>
    <sql id="selectArdAppTaskTextVo">
        select user_id, text, id from ard_app_task_text
    </sql>
    <select id="selectArdAppTaskTextList" parameterType="ArdAppTaskText" resultMap="ArdAppTaskTextResult">
        <include refid="selectArdAppTaskTextVo"/>
        <where>
            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
            <if test="text != null  and text != ''"> and text = #{text}</if>
        </where>
    </select>
    <select id="selectArdAppTaskTextByUserId" parameterType="String" resultMap="ArdAppTaskTextResult">
        <include refid="selectArdAppTaskTextVo"/>
        where user_id = #{userId}
    </select>
    <insert id="insertArdAppTaskText" parameterType="ArdAppTaskText">
        insert into ard_app_task_text
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="userId != null">user_id,</if>
            <if test="text != null">text,</if>
            <if test="id != null">id,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="userId != null">#{userId},</if>
            <if test="text != null">#{text},</if>
            <if test="id != null">#{id},</if>
         </trim>
    </insert>
    <update id="updateArdAppTaskText" parameterType="ArdAppTaskText">
        update ard_app_task_text
        <trim prefix="SET" suffixOverrides=",">
            <if test="text != null">text = #{text},</if>
            <if test="id != null">id = #{id},</if>
        </trim>
        where user_id = #{userId}
    </update>
    <delete id="deleteArdAppTaskTextByUserId" parameterType="String">
        delete from ard_app_task_text where user_id = #{userId}
    </delete>
    <delete id="deleteArdAppTaskTextByUserIds" parameterType="String">
        delete from ard_app_task_text where user_id in
        <foreach item="userId" collection="array" open="(" separator="," close=")">
            #{userId}
        </foreach>
    </delete>
</mapper>