Explorar el Código

短信发送逻辑修改

liujh hace 3 años
padre
commit
85514c6ad3

+ 9 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/RemoteUserService.java

@@ -188,4 +188,13 @@ public interface RemoteUserService {
      */
     @GetMapping("/user/getLoginUserSchoolDeptid")
     R<Long> getLoginUserSchoolDeptid();
+
+    /***
+     * 获取用户列表
+     * @param sysUser
+     * @param source
+     * @return
+     */
+    @GetMapping("/user/getNotAuthList")
+    R<List<SysUser>> getNotAuthList(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 11 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/factory/RemoteUserFallbackFactory.java

@@ -179,6 +179,17 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
                 return R.fail("获取当前登录用户所属学校的deptid失败:" + throwable.getMessage());
             }
 
+            /***
+             * 获取用户列表
+             * @param sysUser
+             * @param source
+             * @return
+             */
+            @Override
+            public R<List<SysUser>> getNotAuthList(SysUser sysUser, String source) {
+                return R.fail("获取用户信息失败:" + throwable.getMessage());
+            }
+
 
         };
     }

+ 17 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/controller/SlApplyApprovalController.java

@@ -2,6 +2,7 @@ package com.zd.smartlock.controller;
 
 import com.zd.common.core.utils.poi.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
+import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.common.log.annotation.Log;
 import com.zd.common.log.enums.BusinessType;
@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 门锁申请审核Controller
@@ -109,4 +111,19 @@ public class SlApplyApprovalController extends BaseController
     {
         return ResultData.result(slApplyApprovalService.deleteSlApplyApprovalByIds(ids));
     }
+
+    /***
+     * 短信审核
+     * @param phone 电话
+     * @param content 1通过 0拒绝
+     * @param lockApplyId
+     * @return
+     */
+    @ApiOperation(value = "门锁短信审核")
+    @GetMapping("/sysMsgApprova")
+    public AjaxResult sysMsgApprova(String phone, String content, Long lockApplyId)
+    {   // msg:异常说明  status:处理状态(ok-成功  error-失败)
+        Map<String,Object> map = slApplyApprovalService.sysMsgApprova(phone,content,lockApplyId);
+        return AjaxResult.success(map);
+    }
 }

+ 10 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/ISlApplyApprovalService.java

@@ -3,6 +3,7 @@ package com.zd.smartlock.service;
 import com.zd.smartlock.domain.SlApplyApproval;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 申请审核Service接口
@@ -67,4 +68,13 @@ public interface ISlApplyApprovalService
      * @return 结果
      */
     int deleteSlApplyApprovalById(Long id);
+
+    /**
+     *短信审核
+     * @param phone 回复人电话
+     * @param content 回复内容
+     * @param lockApplyId 申请id
+     * @return
+     */
+    Map<String,Object> sysMsgApprova(String phone, String content, Long lockApplyId);
 }

+ 109 - 0
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/service/impl/SlApplyApprovalServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zd.smartlock.service.impl;
 
+import com.zd.common.core.constant.SecurityConstants;
 import com.zd.common.core.domain.R;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.security.service.TokenService;
@@ -12,6 +13,7 @@ import com.zd.smartlock.mapper.SlOpendoorApplyMapper;
 import com.zd.smartlock.mapper.SlSubjectRelationMapper;
 import com.zd.smartlock.service.ISlApplyApprovalService;
 import com.zd.smartlock.utils.SmartlockUtil;
+import com.zd.system.api.RemoteUserService;
 import com.zd.system.api.chemical.RemoteStockService;
 import com.zd.system.api.domain.SysUser;
 import lombok.extern.slf4j.Slf4j;
@@ -47,6 +49,9 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     @Autowired
     private RemoteStockService remoteStockService;
 
+    @Autowired
+    private RemoteUserService remoteUserService;
+
     /**
      * 查询申请审核
      *
@@ -198,6 +203,110 @@ public class SlApplyApprovalServiceImpl implements ISlApplyApprovalService
     }
 
     /***
+     * 短信审核
+     * @param phone 回复人电话
+     * @param content 回复内容
+     * @param lockApplyId 申请id
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String,Object> sysMsgApprova(String phone, String content, Long lockApplyId) {
+        Map<String,Object> map = new HashMap<>();
+        try {
+            //审核状态 1通过 2驳回
+            Long approvalStatus=1L ;
+            SysUser sysUser = new SysUser();
+            sysUser.setPhonenumber(phone);
+            sysUser.setUserType("11");
+            List<SysUser> list =  remoteUserService.getNotAuthList(sysUser, SecurityConstants.INNER).getData();
+            if(list==null){
+                map.put("msg","未查询到相关人信息");
+                map.put("status","error");
+                return map;
+            }else{
+                sysUser = list.get(0);
+            }
+
+            //查询申请记录
+            SlOpendoorApply opendoorApply = slOpendoorApplyMapper.selectSlOpendoorApplyById(lockApplyId);
+
+            if(opendoorApply.getApplyStatus()==3){
+                map.put("msg","该记录已驳回,无需审核!");
+                map.put("status","error");
+                return map;
+            }
+            if(opendoorApply.getApplyNumber()==2){
+                map.put("msg","该记录已有两次审核,无需再次审核!");
+                map.put("status","error");
+                return map;
+            }
+            //通过
+            if( "1".equals(content)){
+                opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
+                //审核通过,下发密码(第二次,审核通过的情况下)
+                if(opendoorApply.getApplyNumber()==2){
+                    //判断是否同一个人连续审核
+                    SlApplyApproval approval = new SlApplyApproval();
+                    approval.setApplyId(lockApplyId);
+                    approval.setApprovaId(sysUser.getUserId());
+                    List<SlApplyApproval> applyVoList = slApplyApprovalMapper.selectSlApplyApprovalList(approval);
+                    if(applyVoList.size()>0){
+                        map.put("msg","您已审核过该条申请,无需重复审核!");
+                        map.put("status","error");
+                        return map;
+                    }
+                    //审核通过,刷新审核状态
+                    opendoorApply.setApplyStatus(2L);
+
+                    //审核通过后,添加人员并且授权、短信发送
+                    /*String str =  authPower(opendoorApply.getId());
+                    if(!"ok".equals(str)){
+                        map.put("msg",str);
+                        map.put("status","error");
+                        return map;
+                    }*/
+                }
+            }else if( "0".equals(content)){
+                approvalStatus=2L;
+                //驳回
+                opendoorApply.setApplyNumber(opendoorApply.getApplyNumber()+1);
+                //修改申请表状态
+                opendoorApply.setApplyStatus(3L);
+
+                //申请人1短信发送通知
+                /*R r1= remoteStockService.sendSydSms("【实验室安全系统】"+opendoorApply.getSubjectName()+"-门禁远程授权申请已拒绝,请联系实验室管理人员。",3,opendoorApply.getId(),opendoorApply.getPhonenumber());
+                log.info("开门申请拒绝,人员1短信通知结果:"+r1);
+                //申请人2短信发送通知
+                R r2= remoteStockService.sendSydSms("【实验室安全系统】"+opendoorApply.getSubjectName()+"-门禁远程授权申请已拒绝,请联系实验室管理人员。",3,opendoorApply.getId(),opendoorApply.getPhonenumber2());
+                log.info("开门申请拒绝,人员2短信通知结果:"+r2);*/
+            }
+            //申请表操作
+            opendoorApply.setApprovalTime(new Date());
+            opendoorApply.setApprovalUser(sysUser.getNickName());
+
+            slOpendoorApplyMapper.updateSlOpendoorApply(opendoorApply);
+            SlApplyApproval approval = new SlApplyApproval();
+            approval.setApprovaId(lockApplyId);
+            approval.setDeptId(sysUser.getDept().getDeptId());
+            approval.setDeptName(sysUser.getDept().getDeptName());
+            approval.setApprovaId(sysUser.getUserId());
+            approval.setApprovaName(sysUser.getNickName());
+            approval.setApprovaStatus(approvalStatus);
+            approval.setCretaTime(new Date());
+            slApplyApprovalMapper.insertSlApplyApproval(approval);
+        }catch (Exception e){
+            log.info("短信审核处理异常:"+e);
+            map.put("msg",e);
+            map.put("status","error");
+            return map;
+        }
+        map.put("msg","成功");
+        map.put("status","ok");
+        return map;
+    }
+
+    /***
      * 审批通过后人员密码授权处理
      * @param applyId 申请id
      */

+ 11 - 9
zd-modules/zd-smartlock/src/main/java/com/zd/smartlock/utils/SmartlockUtil.java

@@ -27,7 +27,17 @@ public class SmartlockUtil {
     /**
      * 服务访问地址
      */
-    public final static String serviceurl = "http://192.168.1.66/info";
+    private final static String serviceurl = "http://192.168.1.66/info";
+
+    /***
+     * 登陆账户
+     */
+    private final static String userlogin = "admin";
+
+    /***
+     * 登陆密码
+     */
+    private final static String password = "admin123";
 
     /**
      * 智能锁返回成功字符描述
@@ -39,15 +49,7 @@ public class SmartlockUtil {
      */
     public final static Integer authsLength=1;
 
-    /***
-     * 登陆账户
-     */
-    public final static String userlogin = "admin";
 
-    /***
-     * 登陆密码
-     */
-    public final static String password = "admin123";
 
 
     public static HttpRequest httpSendPost(String url, String json) {