فهرست منبع

fix 发送短信

Administrator 4 سال پیش
والد
کامیت
6c4b786559

+ 31 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -3,6 +3,8 @@ package com.ruoyi.web.controller.system;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+
+import cn.hutool.core.util.ObjectUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -207,6 +209,35 @@ public class SysUserController extends BaseController
     }
 
 
+    /**
+     * 获取根据部门选择用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/listForDept")
+    public TableDataInfo listForDept(SysUser user)
+    {
+        startPage();
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (ObjectUtil.isNotNull(loginUser)) {
+            List<SysRole> roles = loginUser.getUser().getRoles();
+            boolean flag = false;
+            if (roles.size() > 0) {
+                for (SysRole role : roles) {
+                    String roleKey = role.getRoleKey();
+                    if (StringUtils.isNotBlank(roleKey) && ("manage".equals(roleKey) || "admin".equals(roleKey))) {
+                        flag = true;
+                        break;
+                    }
+                }
+            }
+            if (!flag) {
+                Long deptId = loginUser.getUser().getDeptId();
+                user.setDeptId(deptId);
+            }
+        }
+        List<SysUser> list = userService.selectUserList(user);
+        return getDataTable(list);
+    }
     /**
      * 给选择的用户发短信
      * @param map

+ 1 - 8
ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java

@@ -61,15 +61,8 @@ public class SendSmsUtils {
         request.setTemplateParam("{\"remark\":\"" + remark + "\"}");
         //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
         request.setOutId("zhaoShang");
-
         //hint 此处可能会抛出异常,注意catch
-        SendSmsResponse sendSmsResponse = null;
-        try {
-            sendSmsResponse = acsClient.getAcsResponse(request);
-        } catch (ClientException e) {
-            e.printStackTrace();
-        }
-        return sendSmsResponse;
+        return acsClient.getAcsResponse(request);
     }
 
 

+ 15 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/TextMessage.java

@@ -38,7 +38,21 @@ public class TextMessage extends BaseEntity
     @Excel(name = "是否删除")
     private String isDel;
 
-    public void setId(Long id) 
+    /**
+     * 短信运营商
+     */
+    @Excel(name = "短信运营商")
+    private String messageOperators;
+
+    public String getMessageOperators() {
+        return messageOperators;
+    }
+
+    public void setMessageOperators(String messageOperators) {
+        this.messageOperators = messageOperators;
+    }
+
+    public void setId(Long id)
     {
         this.id = id;
     }

+ 10 - 6
ruoyi-system/src/main/java/com/ruoyi/system/domain/TextMessageLog.java

@@ -33,6 +33,11 @@ public class TextMessageLog extends BaseEntity
     /** 是否删除 */
     @Excel(name = "是否删除")
     private String isDel;
+    /**
+     * 状态
+     */
+    @Excel(name = "状态")
+    private String status;
 
     public void setId(Long id) 
     {
@@ -70,14 +75,13 @@ public class TextMessageLog extends BaseEntity
     {
         return content;
     }
-    public void setIsDel(String isDel) 
-    {
-        this.isDel = isDel;
+
+    public String getStatus() {
+        return status;
     }
 
-    public String getIsDel() 
-    {
-        return isDel;
+    public void setStatus(String status) {
+        this.status = status;
     }
 
     @Override

+ 52 - 10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -441,7 +441,7 @@ public class SysUserServiceImpl implements ISysUserService {
         boolean flag = false;
         Long textMessageId = Long.valueOf(String.valueOf(map.get("textMessageId")));
         TextMessage textMessage = textMessageMapper.selectTextMessageById(textMessageId);
-        if (textMessage != null){
+        if (textMessage != null) {
             accessKeyId = textMessage.getAccessKeyId();
             accessKeySecret = textMessage.getAccessKeySecret();
             signName = textMessage.getSignName();
@@ -451,17 +451,10 @@ public class SysUserServiceImpl implements ISysUserService {
             StringBuilder sb = new StringBuilder();
             for (LinkedHashMap sysUser : userList) {
                 String phone = String.valueOf(sysUser.get("phonenumber"));
+                String nikeName = sysUser.get("nickName").toString();
                 if (StringUtils.isNotBlank(phone)) {
                     sb.append(phone).append(",");
-                    TextMessageLog textMessageLog = new TextMessageLog();
-                    textMessageLog.setPhoneNum(phone);
-                    textMessageLog.setNickName(sysUser.get("nickName").toString());
-                    textMessageLog.setCreateTime(DateUtils.getNowDate());
-                    textMessageLog.setContent(content);
-                    textMessageLog.setCreateBy(SecurityUtils.getUsername());
-                    textMessageLogMapper.insertTextMessageLog(textMessageLog);
                 } else {
-                    String nikeName = sysUser.get("nickName").toString();
                     if (!"null".equals(nikeName)) {
                         flag = true;
                         nickNames.append(sysUser.get("nickName")).append(",");
@@ -474,8 +467,57 @@ public class SysUserServiceImpl implements ISysUserService {
             try {
                 SendSmsResponse sendSmsResponse = SendSmsUtils.sendSms(sb.toString(), content, accessKeyId, accessKeySecret, signName, templateCode);
                 message = sendSmsResponse.getMessage();
+                for (LinkedHashMap sysUser : userList) {
+                    String phone = String.valueOf(sysUser.get("phonenumber"));
+                    String nikeName = sysUser.get("nickName").toString();
+                    if (StringUtils.isNotBlank(phone)) {
+                        TextMessageLog textMessageLog = new TextMessageLog();
+                        textMessageLog.setPhoneNum(phone);
+                        textMessageLog.setNickName(sysUser.get("nickName").toString());
+                        textMessageLog.setCreateTime(DateUtils.getNowDate());
+                        textMessageLog.setContent(content);
+                        textMessageLog.setCreateBy(SecurityUtils.getUsername());
+                        textMessageLog.setStatus(message);
+                        textMessageLogMapper.insertTextMessageLog(textMessageLog);
+                    } else {
+                        if (!"null".equals(nikeName)) {
+                            TextMessageLog textMessageLog = new TextMessageLog();
+                            textMessageLog.setNickName(sysUser.get("nickName").toString());
+                            textMessageLog.setCreateTime(DateUtils.getNowDate());
+                            textMessageLog.setContent(content);
+                            textMessageLog.setCreateBy(SecurityUtils.getUsername());
+                            textMessageLog.setStatus("该用户没有手机号");
+                            textMessageLogMapper.insertTextMessageLog(textMessageLog);
+                        }
+                    }
+                }
+
             } catch (ClientException e) {
-                e.printStackTrace();
+                for (LinkedHashMap sysUser : userList) {
+                    String phone = String.valueOf(sysUser.get("phonenumber"));
+                    String nikeName = sysUser.get("nickName").toString();
+                    if (StringUtils.isNotBlank(phone)) {
+                        TextMessageLog textMessageLog = new TextMessageLog();
+                        textMessageLog.setPhoneNum(phone);
+                        textMessageLog.setNickName(sysUser.get("nickName").toString());
+                        textMessageLog.setCreateTime(DateUtils.getNowDate());
+                        textMessageLog.setContent(content);
+                        textMessageLog.setCreateBy(SecurityUtils.getUsername());
+                        textMessageLog.setStatus("参数设置有误,请检查");
+                        textMessageLogMapper.insertTextMessageLog(textMessageLog);
+                    } else {
+                        if (!"null".equals(nikeName)) {
+                            TextMessageLog textMessageLog = new TextMessageLog();
+                            textMessageLog.setNickName(sysUser.get("nickName").toString());
+                            textMessageLog.setCreateTime(DateUtils.getNowDate());
+                            textMessageLog.setContent(content);
+                            textMessageLog.setCreateBy(SecurityUtils.getUsername());
+                            textMessageLog.setStatus("参数设置有误,请检查");
+                            textMessageLogMapper.insertTextMessageLog(textMessageLog);
+                        }
+                    }
+                }
+                return AjaxResult.error("参数设置有误,请检查");
             }
             if (flag) {
                 nickNames.replace(nickNames.length() - 1, nickNames.length(), "");

+ 6 - 1
ruoyi-system/src/main/resources/mapper/system/TextMessageLogMapper.xml

@@ -14,10 +14,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="isDel"    column="is_del"    />
+        <result property="status"    column="status"    />
     </resultMap>
 
     <sql id="selectTextMessageLogVo">
-        select id, nick_name, phone_num, content, create_by, create_time, update_by, update_time, is_del from text_message_log
+        select id, nick_name, phone_num, content, create_by, create_time, update_by, update_time, is_del, status from text_message_log
     </sql>
 
     <select id="selectTextMessageLogList" parameterType="TextMessageLog" resultMap="TextMessageLogResult">
@@ -27,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="phoneNum != null  and phoneNum != ''"> and phone_num = #{phoneNum}</if>
             <if test="content != null  and content != ''"> and content = #{content}</if>
             <if test="isDel != null  and isDel != ''"> and is_del = #{isDel}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
         </where>
     </select>
     
@@ -46,6 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="isDel != null">is_del,</if>
+            <if test="status != null">status,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="nickName != null">#{nickName},</if>
@@ -56,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="isDel != null">#{isDel},</if>
+            <if test="status != null">#{status},</if>
          </trim>
     </insert>
 
@@ -70,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="status != null">status = #{status},</if>
         </trim>
         where id = #{id}
     </update>

+ 6 - 1
ruoyi-system/src/main/resources/mapper/system/TextMessageMapper.xml

@@ -15,10 +15,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="isDel"    column="is_del"    />
+        <result property="messageOperators"    column="message_operators"    />
     </resultMap>
 
     <sql id="selectTextMessageVo">
-        select id, access_key_id, access_key_secret, sign_name, template_code, create_by, create_time, update_by, update_time, is_del from text_message
+        select id, access_key_id, access_key_secret, sign_name, template_code, create_by, create_time, update_by, update_time, is_del, message_operators from text_message
     </sql>
 
     <select id="selectTextMessageList" parameterType="TextMessage" resultMap="TextMessageResult">
@@ -29,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="signName != null  and signName != ''"> and sign_name like concat('%', #{signName}, '%')</if>
             <if test="templateCode != null  and templateCode != ''"> and template_code = #{templateCode}</if>
             <if test="isDel != null  and isDel != ''"> and is_del = #{isDel}</if>
+            <if test="messageOperators != null  and messageOperators != ''"> and message_operators = #{messageOperators}</if>
         </where>
     </select>
     
@@ -50,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="isDel != null">is_del,</if>
+            <if test="messageOperators != null">message_operators,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -62,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="isDel != null">#{isDel},</if>
+            <if test="messageOperators != null">#{messageOperators},</if>
          </trim>
     </insert>
 
@@ -77,6 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="messageOperators != null">message_operators = #{messageOperators},</if>
         </trim>
         where id = #{id}
     </update>

+ 2 - 3
ruoyi-system/src/main/resources/mapper/system/project/BmDeptPlanMapper.xml

@@ -128,7 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	) s1
 	LEFT JOIN bm_project p ON p.dept_id = s1.sys_dept_id
 	AND p.is_del = '0'
-	and year(p.create_time) = #{year}
+	and year(p.create_time) = #{year} and p.project_status in (1,2,3,4)
 	where
 	s1.parent_id = 105
     GROUP BY
@@ -160,10 +160,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	) s1
 	LEFT JOIN bm_project p ON p.dept_id = s1.sys_dept_id
 	AND p.is_del = '0'
-	and year(p.create_time) = #{year}
+	and year(p.create_time) = #{year} and p.project_status in (1,2,3,4)
 	where
 	s1.parent_id = 124
-	and p.project_status in (1,2,3,4)
     GROUP BY
 	s1.dept_id
     ORDER BY