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> plist = productService.listMaps(w); + if (plist.size() > 0){ + boolean flag = true; + for (Map m : plist){ + String expressOrderSn = m.get("express_order_sn").toString(); + String consigneeMobile = m.get("consignee_mobile").toString(); + String expressCompanyCode = m.get("express_company_code").toString(); + String tel = consigneeMobile.substring(consigneeMobile.length()-4); + ExpressQueryResponse expressQueryResponse = expressOrderService.queryExpressOrder(expressCompanyCode, expressOrderSn, tel); + if (!"3".equals(expressQueryResponse.getState())){ + flag = false; + } + } + if (flag){ + buyOrder.setOrderStatus("3"); + buyOrderService.saveOrUpdate(buyOrder); + } + + } + } + } + + System.out.println("------expressTask定时任务执行完毕------"); + System.out.println("------查询快递修改状态定时任务执行完毕------"); + System.out.println("------expressTask定时任务执行完毕------"); + } +}