Browse Source

fix 短信

Administrator 1 year ago
parent
commit
b7cf343475

+ 2 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/reservat/BomanReservatController.java

@@ -77,7 +77,8 @@ public class BomanReservatController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody BomanReservat bomanReservat)
     {
-        return bomanReservatService.insertBomanReservat(bomanReservat) > 0 ? AjaxResult.success() : AjaxResult.error("超过最大可预约人数");
+        int i = bomanReservatService.insertBomanReservat(bomanReservat);
+        return  i > 0 ? AjaxResult.success(i) : AjaxResult.error("超过最大可预约人数");
     }
 
     /**

+ 0 - 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UpdateAppController.java

@@ -3,17 +3,10 @@ package com.ruoyi.web.controller.system;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.UpdateApp;
 import com.ruoyi.system.service.IUpdateAppService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
 /**
  * 【请填写功能名称】Controller
  * 

+ 9 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -44,6 +44,7 @@ public class SysUser extends BaseEntity
     /** 手机号码 */
     @Excel(name = "手机号码")
     private String phonenumber;
+    private String userType;
 
     /** 用户性别 */
     @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
@@ -94,6 +95,14 @@ public class SysUser extends BaseEntity
 
     }
 
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
     public SysUser(Long userId)
     {
         this.userId = userId;

+ 4 - 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java

@@ -67,10 +67,12 @@ public class SendSmsUtils {
                 .setPhoneNumbers(phone)
                 //短信签名名称。中新云
                 .setSignName("中新云")
-                //短信模板变量对应的实际值{"name": code}
-                .setTemplateParam(smsCode)
                 //短信模板CODE
                 .setTemplateCode(templateCode);
+            if (StringUtils.isNotBlank(templateCode)){
+                //短信模板变量对应的实际值{"name": code}
+                sendSmsRequest.setTemplateParam(smsCode);
+            }
             // 复制代码运行请自行打印 API 的返回值
             SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
             code = sendSmsResponse.getBody().code;

+ 62 - 26
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatServiceImpl.java

@@ -3,13 +3,17 @@ package com.ruoyi.system.service.impl;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SendSmsUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.BomanReservatConfigTime;
 import com.ruoyi.system.mapper.BomanReservatConfigTimeMapper;
+import com.ruoyi.system.mapper.SysUserMapper;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +38,9 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private SysUserMapper userMapper;
+
     /**
      * 查询陵园预约
      *
@@ -95,10 +102,28 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
         //新增预约往redis中存放数据
         redisCache.setCacheObject(key, numNew);
         bomanReservat.setCreateTime(DateUtils.getNowDate());
-        if ("2".equals(bomanReservat.getReservatType())) {
+        String reservatType = bomanReservat.getReservatType();
+        if ("2".equals(reservatType)) {
             bomanReservat.setVisitType("3");
+        } else {
+            //获取管理员账户
+            SysUser sysUser = new SysUser();
+            sysUser.setUserType("lyManage");
+            List<SysUser> sysUsers = userMapper.selectUserList(sysUser);
+            if (sysUsers != null && sysUsers.size() > 0) {
+                String phonenumber = sysUsers.get(0).getPhonenumber();
+                //团队预约,给管理员发送短信
+                //陵园预约通知 = SMS_464376020
+                SendSmsUtils.sendSms(phonenumber, "SMS_464376020", null);
+                System.out.println("给(" + phonenumber + ")陵园管理员发送了("+bomanReservat.getVisitPhone()+")申请预约的短信");
+
+            }
         }
-        return bomanReservatMapper.insertBomanReservat(bomanReservat);
+        int i = bomanReservatMapper.insertBomanReservat(bomanReservat);
+        if (i > 0) {
+            i = Math.toIntExact(bomanReservat.getReservatId());
+        }
+        return i;
     }
 
     /**
@@ -160,17 +185,28 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
             return AjaxResult.error("请先分配接待人员");
         }
         //拒绝,释放名额
-        if ("2".equals(bomanReservat.getVisitType())){
+        if ("2".equals(bomanReservat.getVisitType())) {
             Long reservatConfigTimeId = reservat.getReservatConfigTimeId();
             String visitNum = reservat.getVisitNum();
             //去redis找对应日期,对应时段id的预约数量 reservat_num:2023-10-10_1
             String key = Constants.RESERVAT_NUM + reservat.getVisitDate() + "_" + reservatConfigTimeId;
-            Object num = redisCache.getCacheObject(key);
-            redisCache.setCacheObject(key,(long)num - Long.parseLong(visitNum));
+            Object numString = redisCache.getCacheObject(key);
+            long num = (long) numString - Long.parseLong(visitNum);
+            redisCache.setCacheObject(key, num < 0 ? 0 : num);
         }
         bomanReservat.setUpdateTime(DateUtils.getNowDate());
         int i = bomanReservatMapper.updateBomanReservat(bomanReservat);
 
+        //审核通过给团队发送通过短信
+        if ("3".equals(bomanReservat.getVisitType())) {
+            String visitPhone = bomanReservat.getVisitPhone();
+            JSONObject jsonObject = new JSONObject();
+
+            jsonObject.put("code", bomanReservat.getReservatId());
+            //陵园预约通过通知 = SMS_464336030
+            SendSmsUtils.sendSms(visitPhone, "SMS_464336030", jsonObject.toString());
+            System.out.println("给(" + visitPhone + ")团队发送了审核通过的短信");
+        }
         return i > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
@@ -183,20 +219,20 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
     @Override
     public AjaxResult indexStatistics(BomanReservat bomanReservat) {
         Map<String, Object> map = new HashMap<>(4);
-        map.put("canGuan" , 0);
-        map.put("yuYue" , 0);
-        map.put("todayYuYue" , 0);
-        map.put("todayCanGuan" , 0);
+        map.put("canGuan", 0);
+        map.put("yuYue", 0);
+        map.put("todayYuYue", 0);
+        map.put("todayCanGuan", 0);
         List<BomanReservat> bomanReservats = bomanReservatMapper.selectBomanReservatList(bomanReservat);
         if (bomanReservats != null && bomanReservats.size() > 0) {
             //来访数
             long canGuan = bomanReservats.stream().filter(s -> "2".equals(s.getVisitStatus())).count();
             long todayYuYue = bomanReservats.stream().filter(s -> DateUtils.getDate().equals(s.getVisitDate())).count();
             long todayCanGuan = bomanReservats.stream().filter(s -> DateUtils.getDate().equals(s.getVisitDate())).filter(s -> "2".equals(s.getVisitStatus())).count();
-            map.put("canGuan" , canGuan);
-            map.put("yuYue" , bomanReservats.size());
-            map.put("todayYuYue" , todayYuYue);
-            map.put("todayCanGuan" , todayCanGuan);
+            map.put("canGuan", canGuan);
+            map.put("yuYue", bomanReservats.size());
+            map.put("todayYuYue", todayYuYue);
+            map.put("todayCanGuan", todayCanGuan);
         }
         return AjaxResult.success(map);
     }
@@ -223,9 +259,9 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
         // todo
         Map<String, Object> resultMap = new HashMap<>();
 
-        resultMap.put("scale" , "50%");
-        resultMap.put("current" , 5);
-        resultMap.put("total" , 10);
+        resultMap.put("scale", "50%");
+        resultMap.put("current", 5);
+        resultMap.put("total", 10);
         return AjaxResult.success(resultMap);
     }
 
@@ -245,18 +281,18 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
         long todayYy = 0;
         for (BomanReservat bomanReservat : bomanReservatYearList) {
             yearYy = yearYy + Long.parseLong(bomanReservat.getVisitNum());
-            if(bomanReservat.getVisitDate().contains(time.substring(0,time.lastIndexOf("-")))){
+            if (bomanReservat.getVisitDate().contains(time.substring(0, time.lastIndexOf("-")))) {
                 monthYy = monthYy + Long.parseLong(bomanReservat.getVisitNum());
             }
             if (bomanReservat.getVisitDate().equals(time)) {
                 todayYy = todayYy + Long.parseLong(bomanReservat.getVisitNum());
             }
         }
-        map.put("yearYy" , yearYy);
-        map.put("monthYy" , monthYy);
-        map.put("todayYy" , todayYy);
+        map.put("yearYy", yearYy);
+        map.put("monthYy", monthYy);
+        map.put("todayYy", todayYy);
         //todo 今日参观人数
-        map.put("todayVisit" , 10);
+        map.put("todayVisit", 10);
 
         Map<String, Object> sevenMap = new HashMap<>();
         //获取近7天的数组
@@ -291,12 +327,12 @@ public class BomanReservatServiceImpl implements IBomanReservatService {
             td = 0L;
         }
 
-        sevenMap.put("date" , sevenDate);
-        sevenMap.put("zrs" , zrsList);
-        sevenMap.put("sk" , skList);
-        sevenMap.put("td" , tdList);
+        sevenMap.put("date", sevenDate);
+        sevenMap.put("zrs", zrsList);
+        sevenMap.put("sk", skList);
+        sevenMap.put("td", tdList);
 
-        map.put("sevenMap" , sevenMap);
+        map.put("sevenMap", sevenMap);
         return AjaxResult.success(map);
     }
 

+ 8 - 1
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="email"        column="email"        />
         <result property="phonenumber"  column="phonenumber"  />
         <result property="sex"          column="sex"          />
+        <result property="userType"     column="user_type"    />
         <result property="avatar"       column="avatar"       />
         <result property="password"     column="password"     />
         <result property="status"       column="status"       />
@@ -57,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.user_type, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
@@ -72,6 +73,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="phonenumber != null and phonenumber != ''">
 			AND u.phonenumber like concat('%', #{phonenumber}, '%')
 		</if>
+		<if test="userType != null and userType != ''">
+			AND u.user_type = #{userType}
+		</if>
 		<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
 			AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
 		</if>
@@ -152,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="avatar != null and avatar != ''">avatar,</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
  			<if test="sex != null and sex != ''">sex,</if>
+ 			<if test="userType != null and userType != ''">user_type,</if>
  			<if test="password != null and password != ''">password,</if>
  			<if test="status != null and status != ''">status,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
@@ -166,6 +171,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="avatar != null and avatar != ''">#{avatar},</if>
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
  			<if test="sex != null and sex != ''">#{sex},</if>
+ 			<if test="userType != null and userType != ''">#{userType},</if>
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="status != null and status != ''">#{status},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
@@ -183,6 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="email != null ">email = #{email},</if>
  			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
+ 			<if test="userType != null and userType != ''">user_type = #{userType},</if>
  			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="status != null and status != ''">status = #{status},</if>