zoujiajian 3 anni fa
parent
commit
21756fea46

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserTicketView.java

@@ -2,6 +2,7 @@ package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -33,4 +34,8 @@ public class UserTicketView {
 
 	@DbField("gdk.spec_val")
 	private String specVal;
+
+	@DbField("gr.status")
+	@JsonIgnore
+	private String status;
 }

+ 7 - 7
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -137,23 +137,23 @@
         select gr.*,
         u.nickname,
         u.headimgurl
-        from (select id as relation_id,
-                     true as isSelf
-        from groups_relation
-        where id = #{relationId}
+        from (select * from (select id as relation_id,
+        user_id,
+        1 as isSelf from groups_relation where id = #{relationId}
         and status in
         <foreach collection="status" item="item" open="(" separator="," close=")">
             #{item}
         </foreach>
-        limit 1
+        limit 1)s1
         union all
-        (select id as realtion_id,
+        select * from (select id as realtion_id,
+        user_id,
         if(user_id = #{userId},true,false) as isSelf from groups_relation where id != #{relationId}
         and groups_id = #{groupsId}
         and status in
         <foreach collection="status" item="item" open="(" separator="," close=")">
             #{item}
         </foreach>
-        limit 4))gr inner join user u on u.id = gr.user_id
+        limit 4)s2)gr inner join user u on u.id = gr.user_id
     </select>
 </mapper>

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.relation.impl;
 
+import cn.hutool.core.date.BetweenFormater;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
@@ -81,7 +82,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				ticket.setGoodsDonViews(views);
 			}
 			if (ticket.getExpiryTime() != null && ticket.getGoodsType() == 1 && ticket.getSecondType() == 2 && ticket.getMonths() < 300) {
-				String remainDays = DateUtil.formatBetween(now, ticket.getExpiryTime());
+				String remainDays = DateUtil.formatBetween(now, ticket.getExpiryTime(), BetweenFormater.Level.DAY);
 				ticket.setRemainDays(remainDays);
 			}
 			List<GroupsRelationUserView> relationUserViews = groupsRelationMapper.getUserRelationUserViews(ticket.getGroupId(), ticket.getRelationId(), ticket.getUserId(), List.of(GroupsRelation.Status.validity, GroupsRelation.Status.outside));

+ 1 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -144,6 +144,7 @@ public class GroupRelationController {
         List<Long> userIds = userService.getRelationUserIdList(userId, null);
         List<UserTicketView> ticketViews = beanSearcher.searchAll(UserTicketView.class, MapUtils.builder()
                 .field(UserTicketView::getUserId, userIds).op(Operator.InList)
+                .field(RenewalView::getStatus, List.of("validity", "overdue", "outside")).op(Operator.InList)
                 .orderBy(UserTicketView::getRelationId).asc()
                 .build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(ticketViews);

+ 7 - 2
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -28,6 +28,7 @@ import com.cyksj.service.user.WorkOrderFrontService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.util.Assert;
@@ -93,14 +94,18 @@ public class UserController {
     @GetMapping("/personal")
     public Result<UserPersonalView> getPersonalView() {
         long userId = StpUserUtil.getLoginIdAsLong();
-        List<RenewalView> ticket = groupRelationFrontService.getMyTicket(userId, false);
+        List<Long> userIds = userService.getRelationUserIdList(userId, null);
+        Number ticketNum = beanSearcher.searchCount(UserTicketView.class, MapUtils.builder()
+                .field(UserTicketView::getUserId, userIds).op(Operator.InList)
+                .field(RenewalView::getStatus, List.of("validity", "overdue", "outside")).op(Operator.InList)
+                .build());
         UserPersonalView personalView = new UserPersonalView();
         DateTime now = DateTime.now();
         //车票
         Integer register_count = registerOrderDonMapper.selectCount(Wrappers.lambdaQuery(RegisterOrderDon.class)
                 .eq(RegisterOrderDon::getUserId, userId)
                 .eq(RegisterOrderDon::getStatus, RegisterOrderDon.Status.complete));
-        personalView.setNumOfTickets(ticket.size() + register_count);
+        personalView.setNumOfTickets(ticketNum.intValue() + register_count);
         //优惠券
         Integer couponSize = couponUserMapper.selectCount(Wrappers.lambdaQuery(CouponUser.class)
                 .eq(CouponUser::getUserId, userId)