Bladeren bron

添加短信

Administrator 2 jaren geleden
bovenliggende
commit
35404dac39
19 gewijzigde bestanden met toevoegingen van 802 en 27 verwijderingen
  1. 105 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/common/SendSmsConfigController.java
  2. 27 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java
  3. 51 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
  4. 4 0
      ruoyi-system/pom.xml
  5. 125 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/common/SendSmsConfig.java
  6. 1 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  7. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/common/SendSmsConfigMapper.java
  8. 7 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  9. 11 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  10. 15 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzKgxxServiceImpl.java
  11. 15 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQyxxServiceImpl.java
  12. 16 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzSbbzbServiceImpl.java
  13. 14 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzTcxxServiceImpl.java
  14. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/common/SendSmsConfigServiceImpl.java
  15. 79 15
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/common/ZsyzCommonServiceImpL.java
  16. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/common/ISendSmsConfigService.java
  17. 5 2
      ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
  18. 10 10
      ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzShyjMapper.xml
  19. 97 0
      ruoyi-system/src/main/resources/mapper/system/projectV2/common/SendSmsConfigMapper.xml

+ 105 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/projectV2/common/SendSmsConfigController.java

@@ -0,0 +1,105 @@
+package com.ruoyi.web.controller.projectV2.common;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
+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.common.core.page.TableDataInfo;
+
+/**
+ * 短信人员配置Controller
+ * 
+ * @author boman
+ * @date 2023-03-07
+ */
+@RestController
+@RequestMapping("/projectV2/config")
+public class SendSmsConfigController extends BaseController
+{
+    @Autowired
+    private ISendSmsConfigService sendSmsConfigService;
+
+    /**
+     * 查询短信人员配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SendSmsConfig sendSmsConfig)
+    {
+        startPage();
+        List<SendSmsConfig> list = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出短信人员配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:export')")
+    @Log(title = "短信人员配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SendSmsConfig sendSmsConfig)
+    {
+        List<SendSmsConfig> list = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        ExcelUtil<SendSmsConfig> util = new ExcelUtil<SendSmsConfig>(SendSmsConfig.class);
+        util.exportExcel(response, list, "短信人员配置数据");
+    }
+
+    /**
+     * 获取短信人员配置详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(sendSmsConfigService.selectSendSmsConfigById(id));
+    }
+
+    /**
+     * 新增短信人员配置
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:add')")
+    @Log(title = "短信人员配置", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SendSmsConfig sendSmsConfig)
+    {
+        return toAjax(sendSmsConfigService.insertSendSmsConfig(sendSmsConfig));
+    }
+
+    /**
+     * 修改短信人员配置
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:edit')")
+    @Log(title = "短信人员配置", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SendSmsConfig sendSmsConfig)
+    {
+        return toAjax(sendSmsConfigService.updateSendSmsConfig(sendSmsConfig));
+    }
+
+    /**
+     * 删除短信人员配置
+     */
+    @PreAuthorize("@ss.hasPermi('projectV2:config:remove')")
+    @Log(title = "短信人员配置", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(sendSmsConfigService.deleteSendSmsConfigByIds(ids));
+    }
+}

+ 27 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java

@@ -42,6 +42,33 @@ public class SendSmsUtils {
         return new com.aliyun.dysmsapi20170525.Client(config);
     }
 
+
+    /**
+     * 发送短信消息
+     *
+     * @return
+     */
+    public static String sendSms(String phone,String templateCode) {
+        String code = "";
+        try {
+            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
+            com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
+
+            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                    //手机号码
+                    .setPhoneNumbers(phone)
+                    //短信签名名称。潜山市数据资源局
+                    .setSignName("中新云")
+                    //短信模板CODE
+                    .setTemplateCode(templateCode);
+            // 复制代码运行请自行打印 API 的返回值
+            SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
+            code = sendSmsResponse.getBody().code;
+        } catch (Exception _error) {
+        }
+        return code;
+    }
+
     /**
      * 发送注册的随机密码
      *

+ 51 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java

@@ -1,6 +1,14 @@
 package com.ruoyi.framework.manager.factory;
 
+import java.util.List;
 import java.util.TimerTask;
+
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.teautil.models.RuntimeOptions;
+import com.ruoyi.common.utils.SendSmsUtils;
+import com.ruoyi.system.domain.projectV2.common.SendSms;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+import com.ruoyi.system.service.projectV2.common.ISendSmsService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.ruoyi.common.constant.Constants;
@@ -99,4 +107,47 @@ public class AsyncFactory
             }
         };
     }
+
+
+    /**
+     * 操作日志记录
+     *
+     * @param sendSmsConfigList 手机号码
+     * @param templateCode 模板名称
+     * @return 任务task
+     */
+    public static TimerTask sendSms(List<SendSmsConfig> sendSmsConfigList,String templateCode)
+    {
+        return new TimerTask()
+        {
+            @Override
+            public void run()
+            {
+                String code = "";
+                for (SendSmsConfig sendSmsConfig : sendSmsConfigList) {
+                    try {
+                        // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
+                        com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
+                        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                                //手机号码
+                                .setPhoneNumbers(sendSmsConfig.getPhone())
+                                //短信签名名称。潜山市数据资源局
+                                .setSignName("中新云")
+                                //短信模板CODE
+                                .setTemplateCode(templateCode);
+                        // 复制代码运行请自行打印 API 的返回值
+                        SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
+                        code = sendSmsResponse.getBody().code;
+                        SendSms sendSms = new SendSms();
+                        sendSms.setStatus("发送成功");
+                        if (!"OK".equals(code)){
+                            sendSms.setStatus("发送失败");
+                        }
+                        SpringUtils.getBean(ISendSmsService.class).insertSendSms(sendSms);
+                    } catch (Exception _error) {
+                    }
+                }
+            }
+        };
+    }
 }

+ 4 - 0
ruoyi-system/pom.xml

@@ -22,6 +22,10 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-framework</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 125 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/projectV2/common/SendSmsConfig.java

@@ -0,0 +1,125 @@
+package com.ruoyi.system.domain.projectV2.common;
+
+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;
+
+/**
+ * 短信人员配置对象 send_sms_config
+ * 
+ * @author boman
+ * @date 2023-03-07
+ */
+public class SendSmsConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Long userId;
+
+    /** 发送人姓名  */
+    @Excel(name = "发送人姓名 ")
+    private String name;
+
+    /** 发送的手机号 */
+    @Excel(name = "发送的手机号")
+    private String phone;
+
+    /** 项目进度 1:项目首谈 2:项目承接 3:项目签约 4:项目开工 5:项目投产  */
+    @Excel(name = "项目进度 1:项目首谈 2:项目承接 3:项目签约 4:项目开工 5:项目投产 ")
+    private String progress;
+
+    /** 修改时间 */
+    @Excel(name = "修改时间")
+    private String modifyDate;
+
+    /** 是否删除 */
+    @Excel(name = "是否删除")
+    private String isDel;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setPhone(String phone) 
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+    public void setProgress(String progress) 
+    {
+        this.progress = progress;
+    }
+
+    public String getProgress() 
+    {
+        return progress;
+    }
+    public void setModifyDate(String modifyDate) 
+    {
+        this.modifyDate = modifyDate;
+    }
+
+    public String getModifyDate() 
+    {
+        return modifyDate;
+    }
+    public void setIsDel(String isDel) 
+    {
+        this.isDel = isDel;
+    }
+
+    public String getIsDel() 
+    {
+        return isDel;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("userId", getUserId())
+            .append("name", getName())
+            .append("phone", getPhone())
+            .append("progress", getProgress())
+            .append("modifyDate", getModifyDate())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .toString();
+    }
+}

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -124,4 +124,5 @@ public interface SysUserMapper
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
+    public List<SysUser> selectUserByDeptId(Long deptId);
 }

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/projectV2/common/SendSmsConfigMapper.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.mapper.projectV2.common;
+
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+
+import java.util.List;
+
+/**
+ * 短信人员配置Mapper接口
+ * 
+ * @author boman
+ * @date 2023-03-07
+ */
+public interface SendSmsConfigMapper 
+{
+    /**
+     * 查询短信人员配置
+     * 
+     * @param id 短信人员配置主键
+     * @return 短信人员配置
+     */
+    public SendSmsConfig selectSendSmsConfigById(Long id);
+
+    /**
+     * 查询短信人员配置列表
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 短信人员配置集合
+     */
+    public List<SendSmsConfig> selectSendSmsConfigList(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 新增短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    public int insertSendSmsConfig(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 修改短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    public int updateSendSmsConfig(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 删除短信人员配置
+     * 
+     * @param id 短信人员配置主键
+     * @return 结果
+     */
+    public int deleteSendSmsConfigById(Long id);
+
+    /**
+     * 批量删除短信人员配置
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSendSmsConfigByIds(Long[] ids);
+}

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -210,4 +210,11 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 根据部门查用户
+     * @param deptId
+     * @return
+     */
+    public List<SysUser> selectUserByDeptId(Long deptId);
 }

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
 import javax.validation.Validator;
 
 import com.ruoyi.common.utils.PwdCheckUtil;
+import com.ruoyi.framework.web.domain.server.Sys;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -569,4 +570,14 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    /**
+     * 根据部门查询用户
+     * @param deptId
+     * @return
+     */
+    @Override
+    public List<SysUser> selectUserByDeptId(Long deptId) {
+        return userMapper.selectUserByDeptId(deptId);
+    }
 }

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzKgxxServiceImpl.java

@@ -3,12 +3,16 @@ package com.ruoyi.system.service.impl.projectV2;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.*;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzKgxxMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzLcjlMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzSbbzbMapper;
 import com.ruoyi.system.service.projectV2.IZsyzKgxxService;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +41,9 @@ public class ZsyzKgxxServiceImpl implements IZsyzKgxxService {
     @Autowired
     private ZsyzLcjlMapper zsyzLcjlMapper;
 
+    @Autowired
+    private ISendSmsConfigService sendSmsConfigService;
+
     /**
      * 查询招商引资_开工信息
      *
@@ -112,6 +119,14 @@ public class ZsyzKgxxServiceImpl implements IZsyzKgxxService {
         zsyzLcjl.setProgress(FOR);
         zsyzLcjl.setXmStatus(ONE);
         zsyzLcjlMapper.insertZsyzLcjl(zsyzLcjl);
+
+        //发送短信
+        SendSmsConfig sendSmsConfig = new SendSmsConfig();
+        sendSmsConfig.setProgress(ONE);
+        List<SendSmsConfig> sendSmsConfigs = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        if (sendSmsConfigs != null){
+            AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs,"SMS_271490074"));
+        }
         return count;
     }
 

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzQyxxServiceImpl.java

@@ -4,15 +4,19 @@ import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.ZsyzFj;
 import com.ruoyi.system.domain.projectV2.ZsyzLcjl;
 import com.ruoyi.system.domain.projectV2.ZsyzQyxx;
 import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzLcjlMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzQyxxMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzSbbzbMapper;
 import com.ruoyi.system.service.projectV2.IZsyzQyxxService;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +43,9 @@ public class ZsyzQyxxServiceImpl implements IZsyzQyxxService {
     @Autowired
     private ZsyzLcjlMapper zsyzLcjlMapper;
 
+    @Autowired
+    private ISendSmsConfigService sendSmsConfigService;
+
     /**
      * 查询招商引资_签约信息
      *
@@ -114,6 +121,14 @@ public class ZsyzQyxxServiceImpl implements IZsyzQyxxService {
         zsyzLcjl.setProgress(THR);
         zsyzLcjl.setXmStatus(ONE);
         zsyzLcjlMapper.insertZsyzLcjl(zsyzLcjl);
+
+        //发送短信
+        SendSmsConfig sendSmsConfig = new SendSmsConfig();
+        sendSmsConfig.setProgress(ONE);
+        List<SendSmsConfig> sendSmsConfigs = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        if (sendSmsConfigs != null){
+            AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs,"SMS_271500071"));
+        }
         return count;
 
     }

+ 16 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzSbbzbServiceImpl.java

@@ -3,18 +3,24 @@ package com.ruoyi.system.service.impl.projectV2;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.common.annotation.DataScope;
+import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.MessageUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.sign.Md5Utils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.ZsyzFj;
 import com.ruoyi.system.domain.projectV2.ZsyzLcjl;
 import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.projectV2.*;
 import com.ruoyi.system.service.projectV2.IZsyzSbbzbService;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -48,6 +54,9 @@ public class ZsyzSbbzbServiceImpl implements IZsyzSbbzbService {
     @Autowired
     private ZsyzLcjlMapper zsyzLcjlMapper;
 
+    @Autowired
+    private ISendSmsConfigService sendSmsConfigService;
+
     /**
      * 企查查
      */
@@ -159,6 +168,13 @@ public class ZsyzSbbzbServiceImpl implements IZsyzSbbzbService {
         zsyzLcjl.setProgress(ONE);
         zsyzLcjl.setXmStatus(ONE);
         zsyzLcjlMapper.insertZsyzLcjl(zsyzLcjl);
+        //发送短信
+        SendSmsConfig sendSmsConfig = new SendSmsConfig();
+        sendSmsConfig.setProgress(ONE);
+        List<SendSmsConfig> sendSmsConfigs = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        if (sendSmsConfigs != null){
+            AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs,"SMS_271465081"));
+        }
         return count;
     }
 

+ 14 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/ZsyzTcxxServiceImpl.java

@@ -3,12 +3,16 @@ package com.ruoyi.system.service.impl.projectV2;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.*;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.projectV2.ZsyzFjMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzLcjlMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzSbbzbMapper;
 import com.ruoyi.system.mapper.projectV2.ZsyzTcxxMapper;
 import com.ruoyi.system.service.projectV2.IZsyzTcxxService;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +41,9 @@ public class ZsyzTcxxServiceImpl implements IZsyzTcxxService {
 
     @Autowired
     private ZsyzLcjlMapper zsyzLcjlMapper;
+
+    @Autowired
+    private ISendSmsConfigService sendSmsConfigService;
     /**
      * 查询招商引资_投产信息
      *
@@ -113,6 +120,13 @@ public class ZsyzTcxxServiceImpl implements IZsyzTcxxService {
         zsyzLcjl.setProgress(FIV);
         zsyzLcjl.setXmStatus(ONE);
         zsyzLcjlMapper.insertZsyzLcjl(zsyzLcjl);
+        //发送短信
+        SendSmsConfig sendSmsConfig = new SendSmsConfig();
+        sendSmsConfig.setProgress(ONE);
+        List<SendSmsConfig> sendSmsConfigs = sendSmsConfigService.selectSendSmsConfigList(sendSmsConfig);
+        if (sendSmsConfigs != null){
+            AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs,"SMS_271575058"));
+        }
         return count;
 
     }

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/common/SendSmsConfigServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.impl.projectV2.common;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+import com.ruoyi.system.mapper.projectV2.common.SendSmsConfigMapper;
+import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 短信人员配置Service业务层处理
+ * 
+ * @author boman
+ * @date 2023-03-07
+ */
+@Service
+public class SendSmsConfigServiceImpl implements ISendSmsConfigService
+{
+    @Autowired
+    private SendSmsConfigMapper sendSmsConfigMapper;
+
+    /**
+     * 查询短信人员配置
+     * 
+     * @param id 短信人员配置主键
+     * @return 短信人员配置
+     */
+    @Override
+    public SendSmsConfig selectSendSmsConfigById(Long id)
+    {
+        return sendSmsConfigMapper.selectSendSmsConfigById(id);
+    }
+
+    /**
+     * 查询短信人员配置列表
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 短信人员配置
+     */
+    @Override
+    public List<SendSmsConfig> selectSendSmsConfigList(SendSmsConfig sendSmsConfig)
+    {
+        return sendSmsConfigMapper.selectSendSmsConfigList(sendSmsConfig);
+    }
+
+    /**
+     * 新增短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    @Override
+    public int insertSendSmsConfig(SendSmsConfig sendSmsConfig)
+    {
+        sendSmsConfig.setCreateTime(DateUtils.getNowDate());
+        return sendSmsConfigMapper.insertSendSmsConfig(sendSmsConfig);
+    }
+
+    /**
+     * 修改短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    @Override
+    public int updateSendSmsConfig(SendSmsConfig sendSmsConfig)
+    {
+        sendSmsConfig.setUpdateTime(DateUtils.getNowDate());
+        return sendSmsConfigMapper.updateSendSmsConfig(sendSmsConfig);
+    }
+
+    /**
+     * 批量删除短信人员配置
+     * 
+     * @param ids 需要删除的短信人员配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSendSmsConfigByIds(Long[] ids)
+    {
+        return sendSmsConfigMapper.deleteSendSmsConfigByIds(ids);
+    }
+
+    /**
+     * 删除短信人员配置信息
+     * 
+     * @param id 短信人员配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSendSmsConfigById(Long id)
+    {
+        return sendSmsConfigMapper.deleteSendSmsConfigById(id);
+    }
+}

+ 79 - 15
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/projectV2/common/ZsyzCommonServiceImpL.java

@@ -9,9 +9,13 @@ import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.projectV2.*;
 import com.ruoyi.system.domain.projectV2.Vo.ZpVo;
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.projectV2.*;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.projectV2.IZsyzProjectDeptService;
 import com.ruoyi.system.service.projectV2.IZsyzSbbzbService;
 import com.ruoyi.system.service.projectV2.IZsyzShyjService;
@@ -58,6 +62,8 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
 
     @Autowired
     private ZsyzLcjlMapper zsyzLcjlMapper;
+    @Autowired
+    private ISysUserService sysUserService;
 
 
     //主要功能, 对线索进度进行控制
@@ -181,9 +187,11 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                         //说明 没有都同意 项目回到 项目首谈已审核,清空承接地信息
                         zsyzSbbzb.setProgress(ONE);
                         zsyzSbbzb.setUpdateTime(DateUtils.getNowDate());
+                        //清空要素部门和引资单位中间表
+                        projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
                     }
                 }
-            }else {
+            } else {
                 //说明没有指派要素部门
                 zsyzSbbzb.setXmStatus(TWO);
             }
@@ -202,6 +210,8 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                     zsyzSbbzb.setProgress(ONE);
                     zsyzSbbzb.setXmStatus(TWO);
                     zsyzSbbzb.setUpdateTime(DateUtils.getNowDate());
+                    //清空要素部门和引资单位中间表
+                    projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
                 }
             }
         }
@@ -293,8 +303,18 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                     //判断承接地是否回复过
                     if (TWO.equals(zsyzProjectDeptsCjd.get(0).getShjg())) {
                         //如果承接地同意/自然是回复过的
-                        // 项目回到 项目首谈已审核,清空承接地信息
+                        // 全部同意 项目进入承接已审核
+                        zsyzSbbzb.setProgress(TWO);
                         zsyzSbbzb.setXmStatus(TWO);
+                        zsyzSbbzb.setUpdateTime(DateUtils.getNowDate());
+                    } else if (THR.equals(zsyzProjectDeptsCjd.get(0).getShjg())) {
+                        //要素同意承接地不同意 且要素部门就一个人
+                        //说明都回复过 项目回到 项目首谈已审核,清空承接地信息
+                        zsyzSbbzb.setProgress(ONE);
+                        zsyzSbbzb.setXmStatus(TWO);
+                        zsyzSbbzb.setUpdateTime(DateUtils.getNowDate());
+                        //清空要素部门和引资单位中间表
+                        projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
                     }
                 }
             } else {
@@ -303,15 +323,23 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                     //判断除我外是否全部回复
                     Map<String, List<ZsyzProjectDept>> collect = zsyzProjectDeptsYsbm.stream().collect(Collectors.groupingBy(ZsyzProjectDept::getIsHf));
                     List<ZsyzProjectDept> yList = collect.get("Y");
-                    if (yList != null && (zsyzProjectDeptsYsbm.size()-1) == yList.size()) {
+                    if (yList != null && (zsyzProjectDeptsYsbm.size() - 1) == yList.size()) {
                         Map<String, List<ZsyzProjectDept>> shjpMap = yList.stream().collect(Collectors.groupingBy(ZsyzProjectDept::getShjg));
                         // 判断是否都同意
                         if (shjpMap != null && shjpMap.size() == 1 && shjpMap.get(TWO) != null) {
                             //要素部门都同意/判断承接地是否同意
                             if (TWO.equals(zsyzProjectDeptsCjd.get(0).getShjg())) {
-                                //如果承接地也同意/自然是回复过的
+                                //如果承接地也同意/自然是回复过的,项目进入已审核
                                 zsyzSbbzb.setProgress(TWO);
                                 zsyzSbbzb.setXmStatus(TWO);
+                            } else if (THR.equals(zsyzProjectDeptsCjd.get(0).getShjg())) {
+                                //要素同意承接地不同意
+                                //说明都回复过 项目回到 项目首谈已审核,清空承接地信息
+                                zsyzSbbzb.setProgress(ONE);
+                                zsyzSbbzb.setXmStatus(TWO);
+                                zsyzSbbzb.setUpdateTime(DateUtils.getNowDate());
+                                //清空要素部门和引资单位中间表
+                                projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
                             }
                         }
                     }
@@ -333,19 +361,24 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                             // 项目回到 项目首谈已审核,清空承接地信息
                             zsyzSbbzb.setProgress(ONE);
                             zsyzSbbzb.setXmStatus(TWO);
+                            //清空要素部门和引资单位中间表
+                            projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
                         }
                     }
-                }
-                Map<String, List<ZsyzProjectDept>> collect = zsyzProjectDeptsYsbm.stream().collect(Collectors.groupingBy(ZsyzProjectDept::getIsHf));
-                List<ZsyzProjectDept> yList = collect.get("Y");
-                if (yList != null && (zsyzProjectDeptsYsbm.size() -1 )== yList.size()) {
-                    //说明出我之外都回复过
-                    //判断承接地是否回复过
-                    if (THR.equals(zsyzProjectDeptsCjd.get(0).getShjg())) {
-                        //如果承接地也不同意/自然是回复过的
-                        // 项目回到 项目首谈已审核,清空承接地信息
-                        zsyzSbbzb.setProgress(ONE);
-                        zsyzSbbzb.setXmStatus(TWO);
+                } else {
+                    //要素部门有多个
+                    Map<String, List<ZsyzProjectDept>> collect = zsyzProjectDeptsYsbm.stream().collect(Collectors.groupingBy(ZsyzProjectDept::getIsHf));
+                    List<ZsyzProjectDept> yList = collect.get("Y");
+                    if (yList != null && (zsyzProjectDeptsYsbm.size() - 1) == yList.size()) {
+                        //说明出我之外都回复过
+                        //判断承接地是否回复过
+                        if ("Y".equals(zsyzProjectDeptsCjd.get(0).getIsHf())) {
+                            // 项目回到 项目首谈已审核,清空承接地信息
+                            zsyzSbbzb.setProgress(ONE);
+                            zsyzSbbzb.setXmStatus(TWO);
+                            //清空要素部门和引资单位中间表
+                            projectDeptService.deleteZsyzProjectDeptByXmId(zsyzShyj.getXmId());
+                        }
                     }
                 }
             }
@@ -585,6 +618,7 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
             }
             //把这个项目的指派中间表数据,全部删除
             projectDeptService.deleteZsyzProjectDeptByXmId(cjdList.get(0).getXmId());
+            List<SendSmsConfig> sendSmsConfigs = new ArrayList<>();
             for (ZsyzProjectDept zsyzProjectDept : cjdList) {
                 zsyzProjectDept.setDeptType(ONE);
                 //说明没有指派过承接地
@@ -596,20 +630,50 @@ public class ZsyzCommonServiceImpL implements IZsyzCommonService {
                 zsyzSbbzbCjd.setCjdName(zsyzProjectDept.getDeptName());
                 zsyzSbbzbCjd.setProgress(TWO);
                 zsyzSbbzbCjd.setXmStatus(ONE);
+                //发送短信
+                List<SysUser> sysUsers = sysUserService.selectUserByDeptId(zsyzProjectDept.getDeptId());
+                if (sysUsers != null) {
+                    for (SysUser sysUser : sysUsers) {
+                        if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
+                            SendSmsConfig sendSmsConfig = new SendSmsConfig();
+                            sendSmsConfig.setPhone(sysUser.getPhonenumber());
+                            sendSmsConfigs.add(sendSmsConfig);
+                        }
+                    }
+                    if (sendSmsConfigs.size() > 0) {
+                        AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs, "SMS_271465081"));
+                    }
+                }
                 zsyzSbbzbMapper.updateZsyzSbbzbCjd(zsyzSbbzbCjd);
             }
         }
         //要素部门
         List<ZsyzProjectDept> ysbmList = zpVo.getYsbmList();
         if (ysbmList != null) {
+            List<SendSmsConfig> sendSmsConfigs = new ArrayList<>();
             for (ZsyzProjectDept zsyzProjectDept : ysbmList) {
                 zsyzProjectDept.setDeptType(TWO);
                 projectDeptService.insertZsyzProjectDept(zsyzProjectDept);
+                //发送短信
+                List<SysUser> sysUsers = sysUserService.selectUserByDeptId(zsyzProjectDept.getDeptId());
+                if (sysUsers != null) {
+                    for (SysUser sysUser : sysUsers) {
+                        if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
+                            SendSmsConfig sendSmsConfig = new SendSmsConfig();
+                            sendSmsConfig.setPhone(sysUser.getPhonenumber());
+                            sendSmsConfigs.add(sendSmsConfig);
+                        }
+                    }
+                }
+                if (sendSmsConfigs.size() > 0) {
+                    AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs, "SMS_271465081"));
+                }
             }
         }
         //引荐单位
         List<ZsyzProjectDept> yqdwList = zpVo.getYjdwList();
         if (yqdwList != null) {
+            List<SendSmsConfig> sendSmsConfigs = new ArrayList<>();
             for (ZsyzProjectDept zsyzProjectDept : yqdwList) {
                 zsyzProjectDept.setDeptType(THR);
                 projectDeptService.insertZsyzProjectDept(zsyzProjectDept);

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/projectV2/common/ISendSmsConfigService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.service.projectV2.common;
+
+import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
+
+import java.util.List;
+
+/**
+ * 短信人员配置Service接口
+ * 
+ * @author boman
+ * @date 2023-03-07
+ */
+public interface ISendSmsConfigService 
+{
+    /**
+     * 查询短信人员配置
+     * 
+     * @param id 短信人员配置主键
+     * @return 短信人员配置
+     */
+    public SendSmsConfig selectSendSmsConfigById(Long id);
+
+    /**
+     * 查询短信人员配置列表
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 短信人员配置集合
+     */
+    public List<SendSmsConfig> selectSendSmsConfigList(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 新增短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    public int insertSendSmsConfig(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 修改短信人员配置
+     * 
+     * @param sendSmsConfig 短信人员配置
+     * @return 结果
+     */
+    public int updateSendSmsConfig(SendSmsConfig sendSmsConfig);
+
+    /**
+     * 批量删除短信人员配置
+     * 
+     * @param ids 需要删除的短信人员配置主键集合
+     * @return 结果
+     */
+    public int deleteSendSmsConfigByIds(Long[] ids);
+
+    /**
+     * 删除短信人员配置信息
+     * 
+     * @param id 短信人员配置主键
+     * @return 结果
+     */
+    public int deleteSendSmsConfigById(Long id);
+}

+ 5 - 2
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -141,8 +141,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
 	</select>
-	
-	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
+    <select id="selectUserByDeptId" parameterType="Long" resultMap="SysUserResult">
+		select user_name, phonenumber from sys_user where dept_id = #{deptId} and del_flag = '0'  and status = '0'
+	</select>
+
+    <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
  			<if test="deptId != null and deptId != 0">dept_id,</if>

+ 10 - 10
ruoyi-system/src/main/resources/mapper/system/projectV2/ZsyzShyjMapper.xml

@@ -70,7 +70,7 @@
     </select>
 
 
-    <select id="selectZsyzShyjListByWt" resultMap="ZsyzShyjResult">
+<!--    <select id="selectZsyzShyjListByWt" resultMap="ZsyzShyjResult">
         SELECT
         ANY_VALUE ( s.id ) as id,
         ANY_VALUE ( s.xm_id ) as xm_id ,
@@ -87,20 +87,20 @@
         <where>
             s.shjg = '3'
             <if test="xmmc != null  and xmmc != ''">and s.xmmc like concat( #{xmmc}, '%') </if>
-            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+            <if test="params.beginTime != null and params.beginTime != ''">&lt;!&ndash; 开始时间检索 &ndash;&gt;
                 AND date_format(s.create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
             </if>
-            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+            <if test="params.endTime != null and params.endTime != ''">&lt;!&ndash; 结束时间检索 &ndash;&gt;
                 AND date_format(s.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
             </if>
         </where>
-        <!-- 数据范围过滤 -->
+        &lt;!&ndash; 数据范围过滤 &ndash;&gt;
         ${params.dataScope}
         GROUP BY
         s.xm_id
-    </select>
+    </select>-->
 
-    <!--<select id="selectZsyzShyjListByWt" resultMap="ZsyzShyjResult">
+    <select id="selectZsyzShyjListByWt" resultMap="ZsyzShyjResult">
         SELECT
         s.id,
         s.xm_id ,
@@ -117,18 +117,18 @@
         <where>
             s.shjg = '3'
             <if test="xmmc != null  and xmmc != ''">and s.xmmc like concat( #{xmmc}, '%') </if>
-            <if test="params.beginTime != null and params.beginTime != ''">&lt;!&ndash; 开始时间检索 &ndash;&gt;
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                 AND date_format(s.create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
             </if>
-            <if test="params.endTime != null and params.endTime != ''">&lt;!&ndash; 结束时间检索 &ndash;&gt;
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                 AND date_format(s.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
             </if>
         </where>
-        &lt;!&ndash; 数据范围过滤 &ndash;&gt;
+        <!-- 数据范围过滤 -->
         ${params.dataScope}
         GROUP BY
         s.xm_id
-    </select>-->
+    </select>
 
     <insert id="insertZsyzShyj" parameterType="ZsyzShyj" useGeneratedKeys="true" keyProperty="id">
         insert into zsyz_shyj

+ 97 - 0
ruoyi-system/src/main/resources/mapper/system/projectV2/common/SendSmsConfigMapper.xml

@@ -0,0 +1,97 @@
+<?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.system.mapper.projectV2.common.SendSmsConfigMapper">
+    
+    <resultMap type="SendSmsConfig" id="SendSmsConfigResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="name"    column="name"    />
+        <result property="phone"    column="phone"    />
+        <result property="progress"    column="progress"    />
+        <result property="modifyDate"    column="modify_date"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+    </resultMap>
+
+    <sql id="selectSendSmsConfigVo">
+        select id, user_id, name, phone, progress, modify_date, create_by, create_time, update_by, update_time, is_del from send_sms_config
+    </sql>
+
+    <select id="selectSendSmsConfigList" parameterType="SendSmsConfig" resultMap="SendSmsConfigResult">
+        <include refid="selectSendSmsConfigVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+            <if test="progress != null  and progress != ''"> and progress = #{progress}</if>
+            <if test="modifyDate != null  and modifyDate != ''"> and modify_date = #{modifyDate}</if>
+            <if test="isDel != null  and isDel != ''"> and is_del = #{isDel}</if>
+        </where>
+    </select>
+    
+    <select id="selectSendSmsConfigById" parameterType="Long" resultMap="SendSmsConfigResult">
+        <include refid="selectSendSmsConfigVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertSendSmsConfig" parameterType="SendSmsConfig" useGeneratedKeys="true" keyProperty="id">
+        insert into send_sms_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="name != null and name != ''">name,</if>
+            <if test="phone != null and phone != ''">phone,</if>
+            <if test="progress != null and progress != ''">progress,</if>
+            <if test="modifyDate != null">modify_date,</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>
+            <if test="isDel != null and isDel != ''">is_del,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="phone != null and phone != ''">#{phone},</if>
+            <if test="progress != null and progress != ''">#{progress},</if>
+            <if test="modifyDate != null">#{modifyDate},</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>
+            <if test="isDel != null and isDel != ''">#{isDel},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSendSmsConfig" parameterType="SendSmsConfig">
+        update send_sms_config
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="phone != null and phone != ''">phone = #{phone},</if>
+            <if test="progress != null and progress != ''">progress = #{progress},</if>
+            <if test="modifyDate != null">modify_date = #{modifyDate},</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>
+            <if test="isDel != null and isDel != ''">is_del = #{isDel},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSendSmsConfigById" parameterType="Long">
+        delete from send_sms_config where id = #{id}
+    </delete>
+
+    <delete id="deleteSendSmsConfigByIds" parameterType="String">
+        delete from send_sms_config where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>