diff --git a/pom.xml b/pom.xml
index 51525805..b770fe00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
8.0.28
4.0
11.2.0.3
- 1.1.13
+ 1.2.1
2.3.0
2.6
1.2.2
diff --git a/src/main/java/com/peanut/common/utils/ShiroUtils.java b/src/main/java/com/peanut/common/utils/ShiroUtils.java
index 086a1e8a..912de9bc 100644
--- a/src/main/java/com/peanut/common/utils/ShiroUtils.java
+++ b/src/main/java/com/peanut/common/utils/ShiroUtils.java
@@ -9,6 +9,7 @@
package com.peanut.common.utils;
import com.peanut.common.exception.RRException;
+import com.peanut.modules.book.entity.MyUserEntity;
import com.peanut.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
@@ -36,6 +37,11 @@ public class ShiroUtils {
public static Long getUserId() {
return getUserEntity().getUserId();
}
+
+ public static Integer getUId() {
+ MyUserEntity user = (MyUserEntity)SecurityUtils.getSubject().getPrincipal();
+ return user.getId();
+ }
public static void setSessionAttribute(Object key, Object value) {
getSession().setAttribute(key, value);
diff --git a/src/main/java/com/peanut/modules/book/controller/BookMedicalRecordsController.java b/src/main/java/com/peanut/modules/book/controller/BookMedicalRecordsController.java
index 6d6ed2d9..d1ffe604 100644
--- a/src/main/java/com/peanut/modules/book/controller/BookMedicalRecordsController.java
+++ b/src/main/java/com/peanut/modules/book/controller/BookMedicalRecordsController.java
@@ -1,9 +1,7 @@
package com.peanut.modules.book.controller;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.Query;
import com.peanut.common.utils.R;
@@ -12,15 +10,11 @@ import com.peanut.modules.book.entity.BookMedicalRecordsEntity;
import com.peanut.modules.book.entity.UserEbookBuyEntity;
import com.peanut.modules.book.service.BookMedicalRecordsService;
import com.peanut.modules.book.service.BookService;
-import com.peanut.modules.book.service.UserEbookBuyService;
-import com.peanut.modules.book.vo.UserOrderVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import java.util.List;
import java.util.Map;
@Slf4j
@@ -32,8 +26,6 @@ public class BookMedicalRecordsController {
private BookMedicalRecordsService bookMedicalRecordsService;
@Autowired
private BookService bookService;
- @Autowired
- private UserEbookBuyService userEbookBuyService;
/**
* 已购图书列表
@@ -58,12 +50,23 @@ public class BookMedicalRecordsController {
*/
@RequestMapping("/recommendBookList")
public R recommendBookList(@RequestBody Map params){
- List list = bookMedicalRecordsService.getBooks(params);
- int count = bookMedicalRecordsService.getCount((Integer) params.get("userId"));
- Page page = new Page<>();
- page.setRecords(list);
- page.setTotal(count);
- page.setPages((int)Math.ceil(list.size()/page.getSize()));
+// List list = bookMedicalRecordsService.getBooks(params);
+// int count = bookMedicalRecordsService.getCount((Integer) params.get("userId"));
+// Page page = new Page<>();
+// page.setRecords(list);
+// page.setTotal(count);
+// page.setPages((int)Math.ceil(list.size()/page.getSize()));
+// return R.ok().put("page", page);
+ MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>();
+ String exsql = "SELECT 1 FROM book_medical_records bmr WHERE bmr.book_id = id and bmr.del_flag = 0 ";
+ String notsql = "select 1 from user_ebook_buy b where b.book_id = id and user_id = "+params.get("userId");
+ wrapper.selectAll(BookEntity.class);
+ wrapper.exists(exsql);
+ wrapper.notExists(notsql);
+ wrapper.eq("state",1);
+ wrapper.eq("del_flag",0);
+ IPage page = bookService.page(
+ new Query().getPage(params),wrapper);
return R.ok().put("page", page);
}
/**
diff --git a/src/main/java/com/peanut/modules/book/controller/BookTeachLikeAndCommentController.java b/src/main/java/com/peanut/modules/book/controller/BookTeachLikeAndCommentController.java
new file mode 100644
index 00000000..227cd87f
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/controller/BookTeachLikeAndCommentController.java
@@ -0,0 +1,152 @@
+package com.peanut.modules.book.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.peanut.common.utils.Query;
+import com.peanut.common.utils.R;
+import com.peanut.common.utils.ShiroUtils;
+import com.peanut.modules.book.entity.BookTeachCommentEntity;
+import com.peanut.modules.book.entity.BookTeachLikeEntity;
+import com.peanut.modules.book.entity.MyUserEntity;
+import com.peanut.modules.book.service.BookTeachCommentService;
+import com.peanut.modules.book.service.BookTeachLikeService;
+import com.peanut.modules.book.service.MyUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+
+@Slf4j
+@RestController
+@RequestMapping("book/teach")
+public class BookTeachLikeAndCommentController {
+
+ @Autowired
+ private BookTeachLikeService likeService;
+ @Autowired
+ private BookTeachCommentService commentService;
+ @Autowired
+ private MyUserService userService;
+
+ /**
+ * 获取点赞数量
+ */
+ @RequestMapping("/getLikeCount")
+ public R getLikeCount(int teachId) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(BookTeachLikeEntity::getDelFlag,0);
+ wrapper.eq(BookTeachLikeEntity::getTeachId,teachId);
+ int count = likeService.count(wrapper);
+ return R.ok().put("count", count);
+ }
+
+ /**
+ * 添加或取消点赞
+ */
+ @RequestMapping("/addOrCancelLike")
+ public R addOrCancelLike(int teachId) {
+ R r = new R();
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(BookTeachLikeEntity::getTeachId,teachId);
+ wrapper.eq(BookTeachLikeEntity::getUserId, ShiroUtils.getUId());
+ BookTeachLikeEntity like = likeService.getOne(wrapper);
+ if (like == null){
+ like = new BookTeachLikeEntity();
+ like.setTeachId(teachId);
+ like.setUserId(ShiroUtils.getUId());
+ r.put("msg","点赞成功");
+ }else {
+ if (0==like.getDelFlag()){
+ like.setDelFlag(1);
+ r.put("msg","取消成功");
+ }else {
+ like.setDelFlag(0);
+ r.put("msg","点赞成功");
+ }
+ }
+ likeService.saveOrUpdate(like);
+ return r;
+ }
+
+ /**
+ * 本用户当前目录是否点赞
+ */
+ @RequestMapping("/ifLike")
+ public boolean ifLike(int teachId) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(BookTeachLikeEntity::getDelFlag,0);
+ wrapper.eq(BookTeachLikeEntity::getTeachId,teachId);
+ wrapper.eq(BookTeachLikeEntity::getUserId,ShiroUtils.getUId());
+ BookTeachLikeEntity likeEntity = likeService.getOne(wrapper);
+ if (likeEntity != null){
+ return true;
+ }else {
+ return false;
+ }
+ }
+ /**
+ * 获取评论列表
+ */
+ @RequestMapping("/getCommentList")
+ public R getCommentList(@RequestBody Map params) {
+ MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>();
+ wrapper.eq(BookTeachCommentEntity::getTeachId,params.get("teachId"));
+ wrapper.eq(BookTeachCommentEntity::getParentId,0);
+ wrapper.eq(BookTeachCommentEntity::getDelFlag,0);
+ IPage page = commentService.page(
+ new Query().getPage(params),wrapper);
+ //返回体添加子评论和用户信息
+ if (page.getRecords().size() > 0){
+ for (BookTeachCommentEntity comment:page.getRecords()){
+ getSonComment(comment);
+ }
+ }
+ return R.ok().put("page", page);
+ }
+ //递归查询子评论
+ private void getSonComment(BookTeachCommentEntity comment){
+ LambdaQueryWrapper w = new LambdaQueryWrapper();
+ w.eq(BookTeachCommentEntity::getParentId,comment.getId());
+ w.eq(BookTeachCommentEntity::getDelFlag,0);
+ List list = commentService.list(w);
+ if (list.size() > 0){
+ for (BookTeachCommentEntity c : list){
+ getSonComment(c);
+ }
+ }
+ comment.setComments(list);
+ comment.setUser(userService.getById(comment.getUserId()));
+ }
+
+ /**
+ * 添加修改评论
+ */
+ @RequestMapping("/addComment")
+ public R addComment(@RequestBody BookTeachCommentEntity comment) {
+ comment.setUserId(ShiroUtils.getUId());
+ commentService.saveOrUpdate(comment);
+ return R.ok();
+ }
+
+ /**
+ * 删除评论
+ */
+ @RequestMapping("/delComment")
+ public R delComment(int commentId) {
+ BookTeachCommentEntity comment = commentService.getById(commentId);
+ comment.setDelFlag(1);
+ commentService.updateById(comment);
+ return R.ok();
+ }
+
+
+}
diff --git a/src/main/java/com/peanut/modules/book/dao/BookTeachCommentDao.java b/src/main/java/com/peanut/modules/book/dao/BookTeachCommentDao.java
new file mode 100644
index 00000000..048be01b
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/dao/BookTeachCommentDao.java
@@ -0,0 +1,9 @@
+package com.peanut.modules.book.dao;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.peanut.modules.book.entity.BookTeachCommentEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BookTeachCommentDao extends MPJBaseMapper {
+}
diff --git a/src/main/java/com/peanut/modules/book/dao/BookTeachLikeDao.java b/src/main/java/com/peanut/modules/book/dao/BookTeachLikeDao.java
new file mode 100644
index 00000000..5294381d
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/dao/BookTeachLikeDao.java
@@ -0,0 +1,9 @@
+package com.peanut.modules.book.dao;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.peanut.modules.book.entity.BookTeachLikeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BookTeachLikeDao extends MPJBaseMapper {
+}
diff --git a/src/main/java/com/peanut/modules/book/entity/BookTeachCommentEntity.java b/src/main/java/com/peanut/modules/book/entity/BookTeachCommentEntity.java
new file mode 100644
index 00000000..a066048d
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/entity/BookTeachCommentEntity.java
@@ -0,0 +1,42 @@
+package com.peanut.modules.book.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName("book_teach_comment")
+public class BookTeachCommentEntity {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ @TableField("id")
+ private Integer id;
+
+ @TableField("parent_id")
+ private Integer parentId;
+
+ @TableField(exist = false)
+ private List comments;
+
+ @TableField("user_id")
+ private Integer userId;
+
+ @TableField(exist = false)
+ private MyUserEntity user;
+
+ @TableField("teach_id")
+ private Integer teachId;
+
+ private String content;
+
+ @TableField("create_time")
+ private Date createTime;
+
+ @TableField("del_flag")
+ private Integer delFlag;
+}
diff --git a/src/main/java/com/peanut/modules/book/entity/BookTeachLikeEntity.java b/src/main/java/com/peanut/modules/book/entity/BookTeachLikeEntity.java
new file mode 100644
index 00000000..8f8a9944
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/entity/BookTeachLikeEntity.java
@@ -0,0 +1,26 @@
+package com.peanut.modules.book.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("book_teach_like")
+public class BookTeachLikeEntity {
+ private static final long serialVersionUID = 1L;
+
+ @TableId
+ @TableField("id")
+ private Integer id;
+
+ @TableField("user_id")
+ private Integer userId;
+
+ @TableField("teach_id")
+ private Integer teachId;
+
+ @TableField("del_flag")
+ private Integer delFlag;
+}
diff --git a/src/main/java/com/peanut/modules/book/service/BookTeachCommentService.java b/src/main/java/com/peanut/modules/book/service/BookTeachCommentService.java
new file mode 100644
index 00000000..c54c7bda
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/service/BookTeachCommentService.java
@@ -0,0 +1,7 @@
+package com.peanut.modules.book.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.peanut.modules.book.entity.BookTeachCommentEntity;
+
+public interface BookTeachCommentService extends IService {
+}
diff --git a/src/main/java/com/peanut/modules/book/service/BookTeachLikeService.java b/src/main/java/com/peanut/modules/book/service/BookTeachLikeService.java
new file mode 100644
index 00000000..4dbe69f3
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/service/BookTeachLikeService.java
@@ -0,0 +1,7 @@
+package com.peanut.modules.book.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.peanut.modules.book.entity.BookTeachLikeEntity;
+
+public interface BookTeachLikeService extends IService {
+}
diff --git a/src/main/java/com/peanut/modules/book/service/impl/BookTeachCommentServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BookTeachCommentServiceImpl.java
new file mode 100644
index 00000000..ed970130
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/service/impl/BookTeachCommentServiceImpl.java
@@ -0,0 +1,13 @@
+package com.peanut.modules.book.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.peanut.modules.book.dao.BookTeachCommentDao;
+import com.peanut.modules.book.entity.BookTeachCommentEntity;
+import com.peanut.modules.book.service.BookTeachCommentService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service("bookTeachCommentService")
+public class BookTeachCommentServiceImpl extends ServiceImpl implements BookTeachCommentService {
+}
diff --git a/src/main/java/com/peanut/modules/book/service/impl/BookTeachLikeServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BookTeachLikeServiceImpl.java
new file mode 100644
index 00000000..91681e04
--- /dev/null
+++ b/src/main/java/com/peanut/modules/book/service/impl/BookTeachLikeServiceImpl.java
@@ -0,0 +1,13 @@
+package com.peanut.modules.book.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.peanut.modules.book.dao.BookTeachLikeDao;
+import com.peanut.modules.book.entity.BookTeachLikeEntity;
+import com.peanut.modules.book.service.BookTeachLikeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service("bookTeachLikeService")
+public class BookTeachLikeServiceImpl extends ServiceImpl implements BookTeachLikeService {
+}
diff --git a/src/main/java/com/peanut/modules/job/task/ExpressTask.java b/src/main/java/com/peanut/modules/job/task/ExpressTask.java
new file mode 100644
index 00000000..8bd2742f
--- /dev/null
+++ b/src/main/java/com/peanut/modules/job/task/ExpressTask.java
@@ -0,0 +1,68 @@
+package com.peanut.modules.job.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.peanut.modules.book.entity.BuyOrder;
+import com.peanut.modules.book.entity.BuyOrderProduct;
+import com.peanut.modules.book.entity.ExpressOrder;
+import com.peanut.modules.book.entity.ExpressQueryResponse;
+import com.peanut.modules.book.service.BuyOrderProductService;
+import com.peanut.modules.book.service.BuyOrderService;
+import com.peanut.modules.book.service.ExpressOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.List;
+import java.util.Map;
+
+@Component("expressTask")
+public class ExpressTask implements ITask{
+
+ @Autowired
+ private BuyOrderService buyOrderService;
+ @Autowired
+ private BuyOrderProductService productService;
+ @Autowired
+ private ExpressOrderService expressOrderService;
+
+ @Override
+ public void run(String params) {
+ System.out.println("------expressTask定时任务正在执行------");
+ System.out.println("------查询快递修改状态定时任务正在执行------");
+ System.out.println("------expressTask定时任务正在执行------");
+
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper();
+ wrapper.eq(BuyOrder::getOrderStatus,"2");
+ List list = buyOrderService.list(wrapper);
+ if (list.size() > 0){
+ for (BuyOrder buyOrder : list) {
+ MPJLambdaWrapper w = new MPJLambdaWrapper();
+ w.selectAll(ExpressOrder.class);
+ w.eq(BuyOrderProduct::getOrderId,buyOrder.getOrderId());
+ w.leftJoin(ExpressOrder.class,ExpressOrder::getId,BuyOrderProduct::getExpressOrderId);
+ List