Browse Source

志愿者审批通过或拒绝,系统消息提示。

wangwl 3 months ago
parent
commit
f18952c81d

+ 3 - 8
leromro-core/src/main/java/com/leromro/core/controller/VolunteerInfoController.java

@@ -12,10 +12,12 @@ import com.leromro.common.core.page.TableDataInfo;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.VolunteerFaceRecord;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
+import com.leromro.core.service.IConversationRecordService;
 import com.leromro.core.service.IVolunteerFaceRecordService;
 import com.leromro.core.service.IVolunteerInfoService;
 import com.leromro.core.utils.SendSmsUtil;
@@ -133,18 +135,11 @@ public class VolunteerInfoController extends BaseController {
     @ApiOperation(value = "志愿者审批",notes = "传入当前行主键volunteerInfoId,审批状态appStatus:2通过,3拒绝,驳回原因rejectReason,状态为3则必填")
     @PostMapping("/web/approval")
     public AjaxResult approval(@RequestBody VolunteerInfo volunteerInfo){
-        String appStatus = volunteerInfo.getAppStatus();
-        if ("3".equals(appStatus) && StrUtil.isBlank(volunteerInfo.getRejectReason())){
+        if ("3".equals(volunteerInfo.getAppStatus()) && StrUtil.isBlank(volunteerInfo.getRejectReason())){
             return AjaxResult.warn("请填写驳回原因");
         }
         // 志愿者审批
         volunteerInfoService.approval(volunteerInfo);
-        //发送短信通知
-        VolunteerInfo info = volunteerInfoService.getById(volunteerInfo.getVolunteerInfoId());
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.putOnce("name", info.getName());
-        jsonObject.putOnce("result", "2".equals(appStatus)? "通过" : "驳回");
-        SendSmsUtil.send(info.getPhonenumber(), jsonObject.toString(), ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_RESULT.getValue());
         return AjaxResult.success();
     }
     @ApiOperation("小程序志愿者首页获取自己的头像(用于排班管理)")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/ConversationRecordVO.java

@@ -14,6 +14,9 @@ public class ConversationRecordVO {
     @ApiModelProperty("会话id")
     private Long conversationRecordId;
 
+    @ApiModelProperty("会话类型 1系统会话 2订单会话 3客服会话")
+    private String conversationType;
+
     @ApiModelProperty("会话标题")
     private String conversationTitle;
 

+ 19 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java

@@ -3,6 +3,7 @@ package com.leromro.core.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -20,6 +21,7 @@ import com.leromro.core.domain.BusinessManagement;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.UserPointChange;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.dto.VolunteerListDTO;
@@ -28,6 +30,8 @@ import com.leromro.core.domain.vo.VolunteerInfoVO;
 import com.leromro.core.mapper.VolunteerInfoMapper;
 import com.leromro.core.service.*;
 import com.leromro.core.utils.DateTimeUtil;
+import com.leromro.core.utils.SendSmsUtil;
+import com.leromro.framework.config.ConstantsConfig;
 import com.leromro.system.service.ISysConfigService;
 import com.leromro.system.service.ISysUserService;
 import com.leromro.system.service.impl.SysUserServiceImpl;
@@ -75,6 +79,9 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
     @Autowired
     private ISysUserService iSysUserService;
 
+    @Autowired
+    private IConversationRecordService conversationRecordService;
+
     /**
      * 新增志愿者信息
      * @param dto
@@ -194,13 +201,24 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
     @Override
     @Transactional
     public void approval(VolunteerInfo volunteerInfo) {
+        String appStatus = volunteerInfo.getAppStatus();
         // 更新志愿者审核信息
         this.update(new LambdaUpdateWrapper<VolunteerInfo>()
                 .eq(VolunteerInfo::getVolunteerInfoId,volunteerInfo.getVolunteerInfoId())
-                .set(VolunteerInfo::getAppStatus,volunteerInfo.getAppStatus())
+                .set(VolunteerInfo::getAppStatus,appStatus)
                 .set(StrUtil.isNotBlank(volunteerInfo.getRejectReason()),VolunteerInfo::getRejectReason,volunteerInfo.getRejectReason()));
         // 获取当前志愿者信息
         VolunteerInfo info = this.getById(volunteerInfo.getVolunteerInfoId());
+        //异步推送系统消息给志愿者
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(2).volunteerId(info.getVolunteerId())
+                .msgContent("2".equals(appStatus)?"您的志愿者申请已通过,请配置排班时间":("您的志愿者申请未通过,原因:"+volunteerInfo.getRejectReason()))
+                .build());
+        //发送短信通知
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.putOnce("name", info.getName());
+        jsonObject.putOnce("result", "2".equals(appStatus)? "通过" : "驳回");
+        SendSmsUtil.send(info.getPhonenumber(), jsonObject.toString(), ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_RESULT.getValue());
         // 用户成为志愿者积分处理
         userToVolunteerPointHandler(info.getVolunteerId());
     }