فهرست منبع

用户统计在购买后清除缓存

liweifan 3 سال پیش
والد
کامیت
5869b0f4ec
13فایلهای تغییر یافته به همراه73 افزوده شده و 26 حذف شده
  1. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderPayment.java
  2. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentTotalService.java
  3. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherTotalService.java
  4. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  5. 17 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java
  6. 12 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentTotalServiceImpl.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  8. 10 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherTotalServiceImpl.java
  9. 9 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  10. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java
  11. 5 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml
  12. 0 1
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java
  13. 0 9
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/WebSiteController.java

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderPayment.java

@@ -28,7 +28,7 @@ public class UserOrderPayment implements Serializable {
     @ApiModelProperty("服务提供方: ORIGINAL 微信支付宝 ADAPAY 汇付")
     @TableField(value = "open_type_")
     private OpenEnum openType;
-    @ApiModelProperty("服务提供方: STUDENT 微信支付宝 TEACHER 汇付")
+    @ApiModelProperty("支付客户端: STUDENT 学生端 TEACHER 老师端")
     @TableField(value = "payment_client_")
     private String paymentClient;
     @ApiModelProperty("支付渠道: alipay 支付宝  wx_lite 微信 ")

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentTotalService.java

@@ -42,5 +42,7 @@ public interface StudentTotalService extends IService<StudentTotal>  {
 	 * @updateTime 2022/5/13 17:42
 	 * @return: com.yonge.cooleshow.biz.dal.entity.StudentTotal
 	 */
-	StudentTotal getStudentTotalById(Long id);
+	StudentTotal getTotalById(Long id);
+
+	void updateTotalCache(StudentTotal studentTotal);
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherTotalService.java

@@ -53,5 +53,7 @@ public interface TeacherTotalService extends IService<TeacherTotal>  {
 	 * @updateTime 2022/5/13 18:37
 	 * @return: com.yonge.cooleshow.biz.dal.entity.TeacherTotal
 	 */
-    TeacherTotal getTeacherTotalById(Long userId);
+    TeacherTotal getTotalById(Long userId);
+
+	void updateTotalCache(TeacherTotal teacherTotal);
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -73,7 +73,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         int num = DateUtil.daysBetween(new Date(), detail.getMembershipEndTime());
         studentHomeVo.setMembershipDays(num < 0 ? 0 : num);
 
-        StudentTotal total = totalService.getStudentTotalById(user.getId());
+        StudentTotal total = totalService.getTotalById(user.getId());
         if (null == total) {
             total = new StudentTotal();
         }

+ 17 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java

@@ -2,6 +2,10 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
+import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
+import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -17,6 +21,11 @@ import com.yonge.cooleshow.biz.dal.service.StudentStarService;
 public class StudentStarServiceImpl extends ServiceImpl<StudentStarDao, StudentStar> implements StudentStarService {
     @Autowired
     private RedissonClient redissonClient;
+    @Autowired
+    private StudentTotalService studentTotalService;
+    @Autowired
+    private TeacherTotalService teacherTotalService;
+
     @Override
     public StudentStar getByStudentIdAndTeacherId(Long studentId, Long teacherId) {
         return baseMapper.getByStudentIdAndTeacherId(studentId, teacherId);
@@ -25,20 +34,25 @@ public class StudentStarServiceImpl extends ServiceImpl<StudentStarDao, StudentS
     @Override
     public HttpResponseResult<Boolean> starOrUnStar(Long studentId, Long teacherId, YesOrNoEnum starStatus) {
         StudentStar studentStar = getByStudentIdAndTeacherId(studentId, teacherId);
-
+        StudentTotal studentTotal = studentTotalService.getTotalById(studentId);
+        TeacherTotal teacherTotal = teacherTotalService.getTotalById(teacherId);
         if (YesOrNoEnum.YES.equals(starStatus) && null == studentStar) {
             studentStar = new StudentStar();
             studentStar.setStudentId(studentId);
             studentStar.setTeacherId(teacherId);
             save(studentStar);
+            studentTotal.setStarTeacherNum(studentTotal.getStarTeacherNum() + 1);
+            teacherTotal.setFansNum(teacherTotal.getFansNum() + 1);
         } else if (YesOrNoEnum.NO.equals(starStatus) && null != studentStar) {
             remove(Wrappers.<StudentStar>lambdaQuery()
                     .eq(StudentStar::getStudentId, studentId)
                     .eq(StudentStar::getTeacherId, teacherId)
             );
+            studentTotal.setStarTeacherNum(studentTotal.getStarTeacherNum() > 0 ? (studentTotal.getStarTeacherNum() - 1) : 0);
+            teacherTotal.setFansNum(teacherTotal.getFansNum() > 0 ? (teacherTotal.getFansNum() - 1) : 0);
         }
-        redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(studentId)).delete();
-        redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(teacherId)).delete();
+        studentTotalService.updateTotalCache(studentTotal);
+        teacherTotalService.updateTotalCache(teacherTotal);
         return HttpResponseResult.succeed(true);
     }
 }

+ 12 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentTotalServiceImpl.java

@@ -95,16 +95,24 @@ public class StudentTotalServiceImpl extends ServiceImpl<StudentTotalDao, Studen
     }
 
     @Override
-    public StudentTotal getStudentTotalById(Long id) {
+    public StudentTotal getTotalById(Long id) {
         StudentTotal total = (StudentTotal) redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(id))
                 .get();
         if (null == total) {
             //去数据库查询
-            return totalStudentTotalById(id);
+            total = totalStudentTotalById(id);
+            redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(id)).set(total);
         }
         return total;
     }
 
+    @Override
+    public void updateTotalCache(StudentTotal studentTotal) {
+        if(null != studentTotal && null != studentTotal.getUserId()){
+            redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(studentTotal.getUserId())).set(studentTotal);
+        }
+    }
+
 
     private StudentTotal totalStudentTotalById(Long id) {
         StudentTotal studentTotal = new StudentTotal();
@@ -128,9 +136,9 @@ public class StudentTotalServiceImpl extends ServiceImpl<StudentTotalDao, Studen
                 .set(studentTotal);
 
         StudentTotal old = getById(id);
-        if(null != old){
+        if (null != old) {
             updateById(studentTotal);
-        }else{
+        } else {
             save(studentTotal);
         }
         return studentTotal;

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -136,7 +136,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             }
         }
 
-        TeacherTotal total = totalService.getTeacherTotalById(userId);
+        TeacherTotal total = totalService.getTotalById(userId);
 
         if (null == total) {
             total = new TeacherTotal();

+ 10 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherTotalServiceImpl.java

@@ -174,16 +174,24 @@ public class TeacherTotalServiceImpl extends ServiceImpl<TeacherTotalDao, Teache
     }
 
     @Override
-    public TeacherTotal getTeacherTotalById(Long id) {
+    public TeacherTotal getTotalById(Long id) {
         TeacherTotal total = (TeacherTotal) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id))
                 .get();
         if (null == total) {
             //去数据库查询
-            return totalTeacherTotalById(id);
+            total = totalTeacherTotalById(id);
+            redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).set(total);
         }
         return total;
     }
 
+    @Override
+    public void updateTotalCache(TeacherTotal teacherTotal) {
+        if(null != teacherTotal && null != teacherTotal.getUserId()){
+            redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(teacherTotal.getUserId())).set(teacherTotal);
+        }
+    }
+
     private TeacherTotal totalTeacherTotalById(Long id) {
         TeacherTotal teacherTotal = new TeacherTotal();
         teacherTotal.setUserId(id);

+ 9 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -663,13 +663,20 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             if (!Objects.isNull(userOrderVoConsumer)) {
                 userOrderVoConsumer.accept(orderDetailVo);
             }
+            //清除商家统计缓存
             Long merchId = orderDetailVo.getMerchId();
             if (merchId != null && merchId != 0) {
                 redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(merchId)).delete();
+                redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(merchId)).delete();
             }
         }
-        //清除老师声部缓存
-        redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
+        //清除买家统计缓存
+        if (ClientEnum.STUDENT.getCode().equals(detail.getPaymentClient())) {
+            redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
+            redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(detail.getUserId())).delete();
+        } else if (ClientEnum.TEACHER.getCode().equals(detail.getPaymentClient())) {
+            redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(detail.getUserId())).delete();
+        }
     }
 
     private void testOrderSuccess(UserOrderVo detail) {

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.entity.UserOrder;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import io.swagger.annotations.ApiModel;
@@ -21,6 +22,8 @@ public class UserOrderVo extends UserOrder {
 	private List<UserOrderDetailVo> orderDetailList;
 	@ApiModelProperty("服务提供方: ORIGINAL 微信支付宝 ADAPAY 汇付")
 	private OpenEnum openType;
+	@ApiModelProperty("支付客户端: STUDENT 学生端 TEACHER 老师端")
+	private String paymentClient;
 	@ApiModelProperty("支付渠道:  alipay 支付宝  wx_lite 微信 ")
 	private PayChannelEnum payChannel;
 	@ApiModelProperty("三方交易流水号 ")
@@ -97,4 +100,12 @@ public class UserOrderVo extends UserOrder {
 	public void setPaymentNo(String paymentNo) {
 		this.paymentNo = paymentNo;
 	}
+
+	public String getPaymentClient() {
+		return paymentClient;
+	}
+
+	public void setPaymentClient(String paymentClient) {
+		this.paymentClient = paymentClient;
+	}
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -46,6 +46,7 @@
         SELECT
             <include refid="baseColumns"/>,
             p.open_type_ as openType,
+            p.payment_client_ as paymentClient,
             p.pay_channel_ as payChannel,
             p.trans_no_ as transNo,
             p.payment_no_ as paymentNo,
@@ -61,6 +62,7 @@
         SELECT
             <include refid="baseColumns"/>,
             p.open_type_ as openType,
+            p.payment_client_ as paymentClient,
             p.pay_channel_ as payChannel,
             p.trans_no_ as transNo,
             p.payment_no_ as paymentNo,
@@ -80,6 +82,7 @@
         SELECT
             <include refid="baseColumns"/>,
             p.open_type_ as openType,
+            p.payment_client_ as paymentClient,
             p.pay_channel_ as payChannel,
             p.trans_no_ as transNo,
             p.payment_no_ as paymentNo
@@ -98,6 +101,7 @@
         SELECT
             <include refid="baseColumns"/>,
             p.open_type_ as openType,
+            p.payment_client_ as paymentClient,
             p.pay_channel_ as payChannel,
             p.trans_no_ as transNo,
             p.payment_no_ as paymentNo,
@@ -176,6 +180,7 @@
         SELECT
             <include refid="baseColumns"/>,
             p.open_type_ as openType,
+            p.payment_client_ as paymentClient,
             p.pay_channel_ as payChannel,
             p.trans_no_ as transNo,
             p.payment_no_ as paymentNo

+ 0 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java

@@ -96,7 +96,6 @@ public class TeacherController extends BaseController {
         return studentStarService.starOrUnStar(user.getId(), userId, starStatus);
     }
 
-
     @ApiOperation(value = "增加视频浏览量")
     @GetMapping("/addVideoBrowse")
     public HttpResponseResult<Boolean> addVideoBrowse(@ApiParam(value = "视频ID", required = true) @RequestParam("videoId") Long videoId) {

+ 0 - 9
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/WebSiteController.java

@@ -46,13 +46,4 @@ public class WebSiteController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "开通直播")
-    @GetMapping("/openLive")
-    public HttpResponseResult<Boolean> openLive() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return teacherService.openLive(user.getId());
-    }
 }