瀏覽代碼

redis添加聊天室

Wei Ruifeng 4 年之前
父節點
當前提交
1d2059d2be

+ 28 - 2
lift-ud-service/src/main/java/cn/com/ty/lift/ud/chat/service/impl/LiftCaseServiceImpl.java

@@ -2,12 +2,14 @@ package cn.com.ty.lift.ud.chat.service.impl;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 import cn.com.ty.lift.ud.operation.service.ICommissionSettingService;
 import cn.com.ty.lift.ud.operation.service.IOtherSettingService;
 import cn.com.ty.lift.ud.question.mapper.entity.QuestionBankEntity;
 import cn.com.ty.lift.ud.question.service.IQuestionBankService;
+import cn.com.ty.lift.ud.redis.RedisUtil;
 import cn.com.xwy.util.collection.ListUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +37,8 @@ import cn.com.ty.lift.ud.dataBank.mapper.LiftBrandMapper;
 import cn.com.ty.lift.ud.dataBank.mapper.entity.LiftBrandEntity;
 import cn.com.ty.lift.ud.liftCaseAppeal.controller.query.LiftCaseAppealQuery;
 import cn.com.ty.lift.ud.liftCaseAppeal.mapper.LiftCaseAppealMapper;
+import cn.com.ty.lift.ud.neety.task.RoomInfo;
+import cn.com.ty.lift.ud.neety.task.UserInfo;
 import cn.com.ty.lift.ud.operation.mapper.CommissionSettingMapper;
 import cn.com.ty.lift.ud.operation.mapper.OtherSettingMapper;
 import cn.com.ty.lift.ud.operation.mapper.entity.CommissionSettingEntity;
@@ -64,6 +68,8 @@ public class LiftCaseServiceImpl extends ServiceImpl<LiftCaseMapper, LiftCaseEnt
 
     private @Autowired LiftCaseMapper caseMapper;
 
+    private @Autowired RedisUtil redis;
+
     private @Autowired LiftBrandMapper liftBrandMapper;
 
     private @Autowired UserInfoMapper userInfoMapper;
@@ -470,7 +476,14 @@ public class LiftCaseServiceImpl extends ServiceImpl<LiftCaseMapper, LiftCaseEnt
         record.setDataTable(caseEntity.getDataTable());// '问诊出诊 1问诊2出诊',
         record.setDataId(caseEntity.getId().intValue());
         sessionMapper.insertSelective(record);
-        // }
+
+        // 在redis中创建房间
+        RoomInfo roomInfo2 = redis.get(record.getSessionid(), RoomInfo.class);
+        UserInfo expert = new UserInfo();
+        expert.setUserId(caseEntity.getChargerId().toString());
+        roomInfo2.getUserLIst().add(expert);
+        redis.setValue("ROOM:" + record.getSessionid(), roomInfo2);
+        
         caseMapper.updateByPrimaryKeySelective(caseEntity);
 
         // 更新服务次数
@@ -714,7 +727,7 @@ public class LiftCaseServiceImpl extends ServiceImpl<LiftCaseMapper, LiftCaseEnt
             PushUserInfo pushUserInfo = iUserAccountService.getPushUserInfoByUserId(chargerId.toString());
             PushMessage pushMessage = PushMessage.orderChargeStatus("待接单");
             pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfo);
-            
+
         } else {
             liftcase.setChargerId(-2l);
             liftcase.setIsPlatformSpecified(1);
@@ -743,6 +756,19 @@ public class LiftCaseServiceImpl extends ServiceImpl<LiftCaseMapper, LiftCaseEnt
         entity.setCreateTime(LocalDateTime.now());
         entity.setEntrance(1);// 房间入口状态:1、打开0关闭
         sessionMapper.insertSelective(entity);
+
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
+
         return RestResponse.success();
     }
 

+ 59 - 12
lift-ud-service/src/main/java/cn/com/ty/lift/ud/pay/service/impl/AlipayServiceImpl.java

@@ -8,6 +8,8 @@ import cn.com.ty.lift.ud.chat.mapper.entity.ChatSessionEntity;
 import cn.com.ty.lift.ud.chat.mapper.entity.LiftCaseEntity;
 import cn.com.ty.lift.ud.chat.service.IChatSessionService;
 import cn.com.ty.lift.ud.chat.service.ILiftCaseService;
+import cn.com.ty.lift.ud.neety.task.RoomInfo;
+import cn.com.ty.lift.ud.neety.task.UserInfo;
 import cn.com.ty.lift.ud.operation.mapper.entity.CommissionSettingEntity;
 import cn.com.ty.lift.ud.operation.mapper.entity.UserLevelRuleEntity;
 import cn.com.ty.lift.ud.operation.mapper.entity.UserRebateRuleEntity;
@@ -500,8 +502,17 @@ public class AlipayServiceImpl implements AlipayService {
         List<ChatSessionEntity> sessionList = new ArrayList<>();
         sessionList.add(entity);
         chatSessionService.saveBatch(sessionList);
-        //
-
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单) =》
@@ -521,7 +532,8 @@ public class AlipayServiceImpl implements AlipayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
 
         log.info("--- 支付宝问诊记录平台流水开始 ---");
@@ -624,11 +636,21 @@ public class AlipayServiceImpl implements AlipayService {
         entity.setDataId(orderId);
         entity.setCreateTime(date);
         List<ChatSessionEntity> sessionList = new ArrayList<>();
-
         sessionList.add(entity);
-
         chatSessionService.saveBatch(sessionList);
 
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
+
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单)
@@ -647,9 +669,10 @@ public class AlipayServiceImpl implements AlipayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
-        
+
         log.info("--- 支付宝出诊记录平台流水开始 ---");
         // 记录平台流水
         TyBillEntity tyBill = new TyBillEntity();
@@ -754,6 +777,18 @@ public class AlipayServiceImpl implements AlipayService {
 
         chatSessionService.saveBatch(sessionList);
 
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
+
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单) =》
@@ -773,9 +808,10 @@ public class AlipayServiceImpl implements AlipayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
-        
+
         log.info("开始记录发起问诊用户流水信息");
         // 发起问诊用户新增流水信息
         UserBillEntity billUpEntity = new UserBillEntity();
@@ -870,7 +906,17 @@ public class AlipayServiceImpl implements AlipayService {
         sessionList.add(entity);
 
         chatSessionService.saveBatch(sessionList);
-
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单)
@@ -889,9 +935,10 @@ public class AlipayServiceImpl implements AlipayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
-        
+
         log.info("开始记录用户流水信息");
         // 发起问诊用户新增流水信息
         // 减少余额

+ 39 - 17
lift-ud-service/src/main/java/cn/com/ty/lift/ud/pay/service/impl/WxpayServiceImpl.java

@@ -18,6 +18,8 @@ import cn.com.ty.lift.ud.chat.mapper.entity.ChatSessionEntity;
 import cn.com.ty.lift.ud.chat.mapper.entity.LiftCaseEntity;
 import cn.com.ty.lift.ud.chat.service.IChatSessionService;
 import cn.com.ty.lift.ud.chat.service.ILiftCaseService;
+import cn.com.ty.lift.ud.neety.task.RoomInfo;
+import cn.com.ty.lift.ud.neety.task.UserInfo;
 import cn.com.ty.lift.ud.operation.mapper.entity.CommissionSettingEntity;
 import cn.com.ty.lift.ud.operation.mapper.entity.UserLevelRuleEntity;
 import cn.com.ty.lift.ud.operation.mapper.entity.UserRebateRuleEntity;
@@ -38,6 +40,7 @@ import cn.com.ty.lift.ud.question.mapper.QuestionBankMapper;
 import cn.com.ty.lift.ud.question.mapper.entity.QuestionBankEntity;
 import cn.com.ty.lift.ud.question.mapper.entity.QuestionOperateEntity;
 import cn.com.ty.lift.ud.question.service.IQuestionOperateService;
+import cn.com.ty.lift.ud.redis.RedisUtil;
 import cn.com.ty.lift.ud.schoolVideo.mapper.entity.SchoolVideoEntity;
 import cn.com.ty.lift.ud.schoolVideo.mapper.entity.SchoolVideoOperateEntity;
 import cn.com.ty.lift.ud.schoolVideo.service.ISchoolVideoOperateService;
@@ -59,7 +62,7 @@ import lombok.extern.slf4j.Slf4j;
 @Transactional
 @Slf4j
 public class WxpayServiceImpl implements WxpayService {
-    
+
     private final Logger logger = LoggerFactory.getLogger(AlipayServiceImpl.class);
 
     private @Autowired ILiftCaseService liftCaseService;
@@ -98,10 +101,12 @@ public class WxpayServiceImpl implements WxpayService {
     private IUserAccountService iUserAccountService;
 
     private @Autowired UserCouponMapper userCouponMapper;
-    
+
     @Autowired
     private IUserRebateRuleService iUserRebateRuleService;
-    
+
+    private @Autowired RedisUtil redis;
+
     @Override
     public void wxCasePaymentComplete(String outTradeNo, String totalAmount, String tradeNo) {
         LocalDateTime date = LocalDateTime.now();
@@ -124,11 +129,19 @@ public class WxpayServiceImpl implements WxpayService {
         entity.setDataId(orderId);
         entity.setCreateTime(date);
         List<ChatSessionEntity> sessionList = new ArrayList<>();
-
         sessionList.add(entity);
-
         chatSessionService.saveBatch(sessionList);
-
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单) =》
@@ -148,7 +161,8 @@ public class WxpayServiceImpl implements WxpayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
 
         log.info("--- 微信问诊记录平台流水开始 ---");
@@ -266,11 +280,19 @@ public class WxpayServiceImpl implements WxpayService {
         entity.setDataId(orderId);
         entity.setCreateTime(date);
         List<ChatSessionEntity> sessionList = new ArrayList<>();
-
         sessionList.add(entity);
-
         chatSessionService.saveBatch(sessionList);
-
+        // 在redis中创建房间
+        RoomInfo roomInfo = new RoomInfo();
+        roomInfo.setSessionid(entity.getSessionid());
+        roomInfo.setDataTable(entity.getDataTable());
+        roomInfo.setLastTime(entity.getCreateTime());
+        UserInfo userInfo1 = new UserInfo();
+        userInfo1.setUserId(entity.getUserId());
+        List<UserInfo> userList = new ArrayList<>();
+        userList.add(userInfo1);
+        roomInfo.setUserLIst(userList);
+        redis.setValue("ROOM:" + entity.getSessionid(), roomInfo);
         // 完善诊单状态
         /**
          * 问诊:0待付款(创建订单) =》 1已付款(待接单)=》 2已接单 =》 3专家确认完成 =》 4用户确认完成(待评价) =》 5待归档(已评价) =》 6已归档 =》 7申诉中 出诊:0待接单(创建订单)
@@ -289,9 +311,10 @@ public class WxpayServiceImpl implements WxpayService {
 
         if (caseEntity.getRedEnvelopeId() != null) {
             // 是否使用红包修改状态
-            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2, caseEntity.getId());
+            userCouponMapper.updateOrderIdAndStatusByCouponIdAndUserId(caseEntity.getRedEnvelopeId(), 2,
+                caseEntity.getId());
         }
-        
+
         log.info("--- 微信出诊记录平台流水开始 ---");
         // 记录平台流水
         TyBillEntity tyBill = new TyBillEntity();
@@ -328,7 +351,8 @@ public class WxpayServiceImpl implements WxpayService {
     }
 
     @Override
-    public void wxQuestionPaymentComplete(Long questionId, Long userId, String tradeNo, String totalAmount, Integer payType) {
+    public void wxQuestionPaymentComplete(Long questionId, Long userId, String tradeNo, String totalAmount,
+        Integer payType) {
         // 赏金
         BigDecimal reward = new BigDecimal(totalAmount).divide(new BigDecimal("100"));
         BigDecimal amount = BigDecimal.ZERO;
@@ -491,7 +515,6 @@ public class WxpayServiceImpl implements WxpayService {
             log.info("--- 微信视频记录平台流水结束 ---");
         }
 
-
     }
 
     @Override
@@ -604,8 +627,7 @@ public class WxpayServiceImpl implements WxpayService {
 
             // 后台生成二维码,流化后上传到阿里云服务器
             try {
-                String qrCodeurl =
-                    QrCodeUtil.getQrCode(userId, "/wode/vip");
+                String qrCodeurl = QrCodeUtil.getQrCode(userId, "/wode/vip");
                 // todo 二维码
                 UserInfoEntity userInfo = new UserInfoEntity();
                 userInfo.setUserId(userId);
@@ -754,5 +776,5 @@ public class WxpayServiceImpl implements WxpayService {
         // 返回两个时间点的月数差
         return (year2 - year1) * 12 + (month2 - month1);
     }
-    
+
 }