Explorar o código

Merge remote-tracking branch 'origin/dev' into dev

hai 1 mes
pai
achega
51b9dcd17c

+ 5 - 6
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/LoginToWebsiteController.java

@@ -46,6 +46,7 @@ import com.tourism.webadmin.back.dto.TourBookInfoDto;
 import com.tourism.webadmin.back.model.TourBookInfo;
 import com.tourism.webadmin.back.model.TourCountryCode;
 import com.tourism.webadmin.back.model.TourUser;
+import com.tourism.webadmin.back.model.constant.NoticeType;
 import com.tourism.webadmin.back.model.constant.TourUserStatus;
 import com.tourism.webadmin.back.service.TourCountryCodeService;
 import com.tourism.webadmin.back.service.TourUserService;
@@ -319,13 +320,14 @@ public class LoginToWebsiteController {
             tourUser.setMobile(loginMoblie);
             tourUser.setCountryCode(StringUtils.isBlank(countryCode)? "86" : countryCode);
             tourUser.setPassword(passwordEncoder.encode("123456"));
+            tourUser.setHeadImageUrl(appConfig+"/default_profile/defaultAvatar.png");
             //创建用户,给出默认头像和默认昵称
             tourUser.setShowName("逍遥游用户_" + RandomUtil.randomString(6));
+            tourUser.setHeadImageUrl(appConfig.getDefaultAvatar());
             tourUser = tourUserService.saveNew(tourUser);
+            //生成系统关注互动会话
+            tourMemberService.createUserMember(tourUser.getUserId().toString());
         }
-
-
-
         // 生成token
         JSONObject jsonObject = this.buildTourLoginDataAndLogin(tourUser);
         return ResponseResult.success(jsonObject);
@@ -391,9 +393,6 @@ public class LoginToWebsiteController {
             return ResponseResult.error(ErrorCodeEnum.MOBILE_EXIST);
         }
         loginToWebsiteService.saveRegisterUserInfo(tourUserRegisterDto);
-
-        //生成系统关注互动会话
-        tourMemberService.createUserMember(tourUserRegisterDto.getUserId().toString());
         return ResponseResult.success();
 
     }

+ 13 - 3
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourGroupController.java

@@ -5,8 +5,9 @@ import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
 import cn.hutool.extra.qrcode.QrConfig;
-import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
@@ -14,6 +15,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.page.PageMethod;
 import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
 import com.tourism.common.additional.config.ApplicationConfig;
+import com.tourism.common.additional.utils.StringUtils;
 import com.tourism.common.core.annotation.DisableDataFilter;
 import com.tourism.common.core.annotation.MyRequestBody;
 import com.tourism.common.core.constant.ErrorCodeEnum;
@@ -237,10 +239,13 @@ public class TourGroupController {
                 .in(TourUser::getUserId, memberIds));
 
         tourImMemberVos.forEach(member -> {
-            //填充头像
+            //填充头像 和群昵称
             tourUserList.stream().forEach(user -> {
                 if (user.getUserId().toString().equals(member.getUserId())&&user.getHeadImageUrl()!=null){
                     member.setHeadImageUrl(user.getHeadImageUrl());
+                    if (StringUtils.isNotEmpty(user.getShowName())){
+                        member.setGroupNickname(user.getShowName());
+                    }
                 }
             });
         });
@@ -277,7 +282,12 @@ public class TourGroupController {
                 .eq(TourImMessage::getGroupId, groupId)
                 .eq(TourImMessage::getIsTop, 1));
         if (list!=null &&list.size()==1) {
-            tourImGroupVo.setGroupNotice(list.get(0).getMessageContent());
+            String content = list.get(0).getMessageContent();
+            MessageDTO jsonObject =JSONUtil.toBean(content, MessageDTO.class);
+            if (jsonObject !=null) {
+                tourImGroupVo.setGroupNotice(jsonObject.getMessageContent());
+            }
+
         }else {
             tourImGroupVo.setGroupNotice("暂无公告");
         }

+ 1 - 1
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourMemberController.java

@@ -101,7 +101,7 @@ public class TourMemberController {
                 member.setHeadImageUrl(tourUser.get().getHeadImageUrl());
             }
             if (StringUtils.isNotEmpty(tourUser.get().getShowName())){
-                member.setShowName(tourUser.get().getShowName());
+                member.setGroupNickname(tourUser.get().getShowName());
             }
         });
         return ResponseResult.success(memberVos);

+ 15 - 12
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourMessageController.java

@@ -52,6 +52,8 @@ import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static cn.dev33.satoken.log.SaLogForConsole.info;
+
 /**
  *聊天群聊消息操作
  * @author 大春
@@ -312,24 +314,25 @@ public class TourMessageController {
             }
         }
         //填充每个用户的关注状态
+        List<Long> status =null;
         if (noticeType==NoticeType.NOTICE_FOCUS){
-            this.attentionStatus(userIds);
+            status = this.attentionStatus(userIds);
         }
-        messageVo.forEach(info -> {
-            FocusDTO bean = JSON.parseObject(info.getMessageContent(), FocusDTO.class);
+        for (int i = 0; i < messageVo.size(); i++) {
+            TourImMessageVo tour = messageVo.get(i);
+            FocusDTO bean = JSON.parseObject(tour.getMessageContent(), FocusDTO.class);
             if (userId.toString().equals(bean.getGetUserId())){
-                info.setFocusStatus(bean.getAttentionStatus());
+               if (status!=null) tour.setFocusStatus(status.get(i).intValue());
             }
-            String messageContent = info.getMessageContent();
-            info.setMessagePO(JSON.parseObject(messageContent));
-        });
-
+            String messageContent = tour.getMessageContent();
+            tour.setMessagePO(JSON.parseObject(messageContent));
+        }
         pageData.setTotalCount(Long.valueOf(messageList.size()));
         return ResponseResult.success(pageData);
     }
 
 
-    public Map<Long, Long> attentionStatus(List<Long> userIds) {
+    public List<Long> attentionStatus(List<Long> userIds) {
         //用户id
         Long myId = TokenData.takeFromRequest().getUserId();
         // 我的粉丝列表  attentionId = currentUserId
@@ -350,7 +353,7 @@ public class TourMessageController {
                 .collect(Collectors.toSet());
         // 关注状态填充
 
-        HashMap<Long, Long> map = new HashMap<>();
+        ArrayList<Long> longs = new ArrayList<>();
         userIds.forEach(userId->{
             Long status = null;
             if (userId.toString().equals(myId.toString())){
@@ -364,10 +367,10 @@ public class TourMessageController {
             } else {
                 status =MyAttentionStatus.UN_FOCUS;  // 未关注
             }
-            map.put(userId,status);
+            longs.add(status);
         });
 
-        return map;
+        return longs;
     }
 
 

+ 6 - 8
application-webadmin/src/main/java/com/tourism/webadmin/app/website/service/impl/TourMemberImpl.java

@@ -271,8 +271,7 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
                 .eq(TourImMember::getGroupRole, GroupRole.ORDINARY_MEMBERS.getCode())
                 .in(CollectionUtils.isNotEmpty(params.getDelUser()),TourImMember::getUserId, params.getDelUser())
                 .eq(TourImMember::getDataState, 1));
-        if (del.size()<params.getDelUser().size())
-        this.removeBatchByIds(del);
+        this.getBaseMapper().deleteBatchIds(del);
         //TODO 发送系统消息 -> delUser
     }
 
@@ -611,17 +610,16 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
 
         TourUser user = tourUserService.getById(userId);
         //查询 -1 -2 -3 的所有我未读的消息
-        LambdaQueryWrapper<TourImMessage> query = Wrappers.<TourImMessage>lambdaQuery().eq(TourImMessage::getRevocationTag, 0)
+        LambdaQueryWrapper<TourImMessage> query = Wrappers.<TourImMessage>lambdaQuery()
+                .eq(TourImMessage::getRevocationTag, 0)
                 .in(TourImMessage::getGroupId, ls)
                 .notLike(TourImMessage::getReadByUsers,userId)
                 .ge(TourImMessage::getCreateTime,user.getCreateTime())
                 .and(
                         qw -> qw.like(TourImMessage::getMessageContent, "\""+"getUserId"+"\""+":"+"\""+userId.toString()+"\"")
-                )
-                .or(
-                        qw -> qw.like(TourImMessage::getMessageContent,"\""+"getUserId"+"\""+":"+"\""+"null"+"\"")
+                                .or()
+                                .like(TourImMessage::getMessageContent,"\""+"getUserId"+"\""+":"+"\""+"null"+"\"")
                 );
-
         //所有未读消息数量
         List<TourImMessage> tourImMessages = tourImMessageService.getBaseMapper().selectList(query);
 
@@ -631,7 +629,7 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
         for (MainMemberVo mainMemberVo : list) {
             List<TourImMessage> tourImMessages1 = map.get(Long.valueOf(mainMemberVo.getGroupId()));
             mainMemberVo.setUnreadMessageCount(tourImMessages1==null? 0:tourImMessages1.size() );
-            if ( mainMemberVo.getUnreadMessageCount()==0){
+            if (mainMemberVo.getUnreadMessageCount()==0){
                 mainMemberVo.setLastMessage(null);
             }
             i++;

+ 25 - 14
application-webadmin/src/main/java/com/tourism/webadmin/app/website/service/impl/TourMessageServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.page.PageMethod;
+import com.tourism.common.core.exception.MyRuntimeException;
 import com.tourism.common.core.object.MyPageData;
 import com.tourism.common.core.object.MyRelationParam;
 import com.tourism.common.core.object.TokenData;
@@ -104,12 +105,7 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
 
             //消息发送人 账号信息
             Map<Long, TourUser> userMap = new HashMap<>();
-            //群人员 信息
-            Map<Long, TourUser> groupUserMap = new HashMap<>();
 
-            for (TourUser tourUser : groupUser) {
-                groupUserMap.put(tourUser.getUserId(), tourUser);
-            }
             // userId ->member
             Map<Long, TourImMember> groupMemberMap = getGroupMemberMap(group.getId());
 
@@ -122,15 +118,16 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
             //返回发送消息人的头像和昵称
             for (GroupMessageVo groupMessageVo : list) {
                 //获取群聊里是否有这个人
-                TourUser tourUser1 = groupUserMap.get(Long.valueOf(groupMessageVo.getCreateUserId()));
-
                 //获取用户会话
                 TourImMember tourImMember = groupMemberMap.get(Long.valueOf(groupMessageVo.getCreateUserId()));
 
                 //创建人
                 TourUser tourUser = userMap.get(Long.valueOf(groupMessageVo.getCreateUserId()));
 
-                if(tourUser1==null){
+                if(tourUser==null){
+                    continue;
+                }
+                if(tourImMember==null){
                     //这个人没在群里
                     groupMessageVo.setIsExistence("1");
                     groupMessageVo.setHeadImageUrl(tourUser.getHeadImageUrl());
@@ -139,6 +136,7 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
                     //这个人在群
                     groupMessageVo.setIsExistence("0");
                     groupMessageVo.setHeadImageUrl(tourUser.getHeadImageUrl());
+                    groupMessageVo.setShowName(tourImMember.getGroupNickname());
                     if(ObjectUtil.isEmpty(tourImMember.getGroupNickname())){
                         groupMessageVo.setShowName(tourUser.getShowName());
                     }
@@ -341,13 +339,23 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
                 //获取用户会话
                 TourImMember tourImMember = groupMemberMap.get(Long.valueOf(groupMessageVo.getCreateUserId()));
 
-                //消息发送者名称
-                if(ObjectUtil.isEmpty(tourImMember.getGroupNickname())){
-                    groupMessageVo.setShowName(tourUser.getShowName());
+                //发送消息的人不存在
+                if(tourUser==null){
+                    continue;
                 }
-//                groupMessageVo.setShowName(tourImMember.getGroupNickname());
-                //发送消息人头像
                 groupMessageVo.setHeadImageUrl(tourUser.getHeadImageUrl());
+                if(tourImMember==null){
+                    //这个人没在群里
+                    groupMessageVo.setIsExistence("1");
+                    groupMessageVo.setShowName(tourUser.getShowName());
+                }else {
+                    //这个人在群
+                    groupMessageVo.setIsExistence("0");
+                    groupMessageVo.setShowName(tourImMember.getGroupNickname());
+                    if(ObjectUtil.isEmpty(tourImMember.getGroupNickname())){
+                        groupMessageVo.setShowName(tourUser.getShowName());
+                    }
+                }
             }
         }
 
@@ -377,6 +385,9 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
         if(group==null) {
             return false;
         }
+        if(ObjectUtil.isEmpty(param.getMessageContent())){
+          return false;
+        }
         List<TourImMessage> list = lambdaQuery().eq(TourImMessage::getGroupId, param.getGroupId()).eq(TourImMessage::getIsTop, 1).list();
         MessageDTO messageDTO = new MessageDTO();
         messageDTO.setMessageContent( param.getMessageContent());
@@ -394,7 +405,7 @@ public class TourMessageServiceImpl extends ServiceImpl<TourImMessageMapper, Tou
             insert.setUpdateUserId(userId);
             insert.setUpdateTime(new Date());
 
-            insert.setMessageType(1);
+            insert.setMessageType(0);
             return save(insert);
         }
         TourImMessage message = list.get(0);

+ 5 - 0
application-webadmin/src/main/java/com/tourism/webadmin/app/website/service/impl/TourismProjectToWebServiceImpl.java

@@ -205,6 +205,11 @@ public class TourismProjectToWebServiceImpl implements TourismProjectToWebServic
 //                .collect(Collectors.toList());
         List<TourismProjectDatePriceVo> tourismProjectDatePriceVos = MyModelUtil.copyCollectionTo(tourismDatePriceList, TourismProjectDatePriceVo.class);
 
+        //设置价格单位
+        TourismProject tourismProject = tourismProjectService.getById(projectId);
+        for(TourismProjectDatePriceVo i:tourismProjectDatePriceVos){
+            i.setPriceUnit(tourismProject.getPriceUnit());
+        }
         DateRange dateRange = new DateRange();
         dateRange.setStartDate(new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
         if(!CollectionUtils.isEmpty(tourismDatePriceList)) {

+ 6 - 0
application-webadmin/src/main/java/com/tourism/webadmin/app/website/vo/TourismProjectDatePriceVo.java

@@ -35,6 +35,12 @@ public class TourismProjectDatePriceVo {
     @Schema(description = "儿童价格")
     private BigDecimal childrenPrice;
 
+    /**
+     * 价格单位。
+     */
+    @Schema(description = "价格单位")
+    private String priceUnit;
+
 //    /**
 //     * 项目价格。
 //     */

+ 3 - 1
application-webadmin/src/main/java/com/tourism/webadmin/back/controller/TourOrderController.java

@@ -165,7 +165,9 @@ public class TourOrderController {
         String orderBy = MyOrderParam.buildOrderBy(orderParam, TourOrder.class);
         List<TourOrder> tourOrderList = tourOrderService.getTourOrderListWithRelation(tourOrderFilter, orderBy);
         for(TourOrder item:tourOrderList){
-            item.setRebateSumPrice(tourOrderService.getTourUserRebate(item.getCreateUserId(),item.getGroupPurchaseProgressId()));
+            item.setRebateSumPrice(tourOrderService.getTourUserRebate(
+                    item.getCreateUserId(),item.getGroupPurchaseProgressId()) == null?
+                    BigDecimal.ZERO:tourOrderService.getTourUserRebate(item.getCreateUserId(),item.getGroupPurchaseProgressId()));
         }
          return ResponseResult.success(MyPageUtil.makeResponseData(tourOrderList, TourOrderVo.class));
     }

+ 0 - 6
application-webadmin/src/main/java/com/tourism/webadmin/back/vo/TourImMemberVo.java

@@ -132,12 +132,6 @@ public class TourImMemberVo extends BaseVo {
     @Schema(description = " headImageUrl 成员头像")
     private String headImageUrl;
 
-    /**
-     * 成员昵称
-     */
-    @Schema(description = " showName 成员昵称")
-    private String showName;
-
     @Schema(description = "群成员加密ID")
     private String pass;
 }

+ 1 - 0
application-webadmin/src/main/java/com/tourism/webadmin/ws/handle/SystemMessageHandler.java

@@ -141,6 +141,7 @@ public class SystemMessageHandler extends AbstractWebSocketHandler {
      */
     @Override
     public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
+        exception.printStackTrace();
         Map<String, Object> attributes = session.getAttributes();
         Object userId = attributes.get("userId");
         if(userId != null) {