diff --git a/src/main/java/com/peanut/config/Constants.java b/src/main/java/com/peanut/config/Constants.java index 972a91cc..66a5d521 100644 --- a/src/main/java/com/peanut/config/Constants.java +++ b/src/main/java/com/peanut/config/Constants.java @@ -26,6 +26,10 @@ public class Constants { * 订单状态 - 交易失败 */ public static final String ORDER_STATUS_FAIL = "4"; + /** + * 订单状态 - 全部 + */ + public static final String ORDER_STATUS_ALL = "9"; /** * 订单状态 - 订单超时 */ diff --git a/src/main/java/com/peanut/modules/book/controller/BookClockForumController.java b/src/main/java/com/peanut/modules/book/controller/BookClockForumController.java index c26aaf7d..bf54e428 100644 --- a/src/main/java/com/peanut/modules/book/controller/BookClockForumController.java +++ b/src/main/java/com/peanut/modules/book/controller/BookClockForumController.java @@ -4,9 +4,10 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.peanut.common.utils.PageUtils; import com.peanut.common.utils.R; import com.peanut.modules.book.entity.BookClockEntryEntity; -import com.peanut.modules.book.entity.BookClockEntryChatEntity; +import com.peanut.modules.book.entity.BookClockEntryChat; import com.peanut.modules.book.entity.MyUserEntity; import com.peanut.modules.book.service.BookClockEntryChatService; import com.peanut.modules.book.service.BookClockEntryService; @@ -65,8 +66,10 @@ public class BookClockForumController { */ @RequestMapping(path = "/getChatList", method = RequestMethod.GET) public R getChatList(@RequestParam("entryId") Integer entryId, - @RequestParam(value = "userId", required = false) Integer userId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + @RequestParam(value = "userId", required = false) Integer userId, + @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize, + @RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("entry_id", entryId); queryWrapper.eq("fid", 0); if (userId != null) { @@ -74,8 +77,8 @@ public class BookClockForumController { } queryWrapper.orderByAsc("fid", "create_time"); List resultList = new ArrayList<>(); - List chatEntityList = bookClockEntryChatService.list(queryWrapper); - for (BookClockEntryChatEntity entity : chatEntityList) { + List chatEntityList = bookClockEntryChatService.list(queryWrapper); + for (BookClockEntryChat entity : chatEntityList) { List imageList = JSON.parseObject(entity.getImages(), new TypeReference>() { }); entity.setImageList(imageList); @@ -84,27 +87,41 @@ public class BookClockForumController { MyUserEntity user = userService.getById(entity.getUserId()); vo.setNickName(user.getNickname()); vo.setAvatar(user.getAvatar()); - QueryWrapper subQueryWrapper = new QueryWrapper<>(); - subQueryWrapper.eq("fid", entity.getId()); - List subClockInChatList = bookClockEntryChatService.list(subQueryWrapper); - List subCommentList = new ArrayList<>(); - for (BookClockEntryChatEntity subChat : subClockInChatList) { - ClockInCommentVo subVo = new ClockInCommentVo(); - BeanUtil.copyProperties(subChat, subVo); - MyUserEntity subChatUser = userService.getById(subChat.getUserId()); - MyUserEntity pUser = userService.getById(subChat.getPuserId()); - subVo.setPuserNickName(pUser.getNickname()); - subVo.setPuserAvatar(pUser.getAvatar()); - subVo.setAvatar(subChatUser.getAvatar()); - subVo.setNickName(subChatUser.getNickname()); - subCommentList.add(subVo); - } - vo.setSubCommentList(subCommentList); resultList.add(vo); } - Map result = new HashMap<>(); - result.put("chatList", resultList); - return R.ok(result); + PageUtils page = new PageUtils(resultList, resultList.size(), pageSize, currentPage); + return R.ok().put("result", page); + } + + /** + * 获取子评论 + * + * @param fid 父评论 ID + * @param pageSize 页大小 + * @param currentPage 当前页 + * @return R + */ + @RequestMapping(path = "/getSubChatList", method = RequestMethod.GET) + public R getSubChatList(@RequestParam("fid") Integer fid, + @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize, + @RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage) { + QueryWrapper subQueryWrapper = new QueryWrapper<>(); + subQueryWrapper.eq("fid", fid); + List subClockInChatList = bookClockEntryChatService.list(subQueryWrapper); + List subCommentList = new ArrayList<>(); + for (BookClockEntryChat subChat : subClockInChatList) { + ClockInCommentVo subVo = new ClockInCommentVo(); + BeanUtil.copyProperties(subChat, subVo); + MyUserEntity subChatUser = userService.getById(subChat.getUserId()); + MyUserEntity pUser = userService.getById(subChat.getPuserId()); + subVo.setPuserNickName(pUser.getNickname()); + subVo.setPuserAvatar(pUser.getAvatar()); + subVo.setAvatar(subChatUser.getAvatar()); + subVo.setNickName(subChatUser.getNickname()); + subCommentList.add(subVo); + } + PageUtils subChatPage = new PageUtils(subCommentList, subCommentList.size(), pageSize, currentPage); + return R.ok().put("result", subChatPage); } /** @@ -114,7 +131,7 @@ public class BookClockForumController { * @return */ @RequestMapping(path = "/addChat", method = RequestMethod.POST) - public R addChat(@RequestBody BookClockEntryChatEntity chat) { + public R addChat(@RequestBody BookClockEntryChat chat) { List imageList = chat.getImageList(); if (imageList != null) { String images = JSON.toJSON(imageList).toString(); diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 53aaf5ad..18e8f768 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -107,6 +107,12 @@ public class BuyOrderController { return R.ok().put("result", page); } + /** + * 订单详情 + * + * @param orderSn 订单号 + * @return R + */ @RequestMapping(path = "/orderDetail", method = RequestMethod.GET) public R orderDetail(@RequestParam("orderSn") String orderSn) { BuyOrderResponseVo buyOrderResponseVo = buyOrderService.orderDetail(orderSn); diff --git a/src/main/java/com/peanut/modules/book/controller/UserBookClockController.java b/src/main/java/com/peanut/modules/book/controller/UserBookClockInController.java similarity index 79% rename from src/main/java/com/peanut/modules/book/controller/UserBookClockController.java rename to src/main/java/com/peanut/modules/book/controller/UserBookClockInController.java index b3d949e2..8145f3b7 100644 --- a/src/main/java/com/peanut/modules/book/controller/UserBookClockController.java +++ b/src/main/java/com/peanut/modules/book/controller/UserBookClockInController.java @@ -25,7 +25,7 @@ import java.util.*; @Slf4j @RestController @RequestMapping("/book/userClockIn") -public class UserBookClockController { +public class UserBookClockInController { @Autowired UserBookClockService userBookClockService; @@ -108,4 +108,30 @@ public class UserBookClockController { userBookClockService.updateById(userBookClock); return R.ok("打卡成功"); } + + /** + * 用户补卡接口 + * + * @param bookId book ID + * @param userId user ID + * @param day 补卡 day + * @return R + */ + @RequestMapping(value = "/correctClockIn", method = RequestMethod.GET) + public R correctClockIn(@RequestParam("bookId") Integer bookId, + @RequestParam("userId") Integer userId, + @RequestParam("day") Integer day) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("book_id", bookId); + queryWrapper.eq("user_id", userId); + UserBookClockEntity userBookClock = userBookClockService.getOne(queryWrapper); + String clocksStr = userBookClock.getClocks(); + List clockInDaysList = JSON.parseObject(clocksStr, new TypeReference>() { + }); + clockInDaysList.add(day); + String clockInDaysListStr = JSON.toJSON(clockInDaysList).toString(); + userBookClock.setClocks(clockInDaysListStr); + userBookClockService.updateById(userBookClock); + return R.ok("补卡成功"); + } } diff --git a/src/main/java/com/peanut/modules/book/dao/BookClockEntryChatDao.java b/src/main/java/com/peanut/modules/book/dao/BookClockEntryChatDao.java index 43c572b9..a21c2818 100644 --- a/src/main/java/com/peanut/modules/book/dao/BookClockEntryChatDao.java +++ b/src/main/java/com/peanut/modules/book/dao/BookClockEntryChatDao.java @@ -1,9 +1,9 @@ package com.peanut.modules.book.dao; import com.github.yulichang.base.MPJBaseMapper; -import com.peanut.modules.book.entity.BookClockEntryChatEntity; +import com.peanut.modules.book.entity.BookClockEntryChat; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface BookClockEntryChatDao extends MPJBaseMapper { +public interface BookClockEntryChatDao extends MPJBaseMapper { } diff --git a/src/main/java/com/peanut/modules/book/entity/BookClockEntryChatEntity.java b/src/main/java/com/peanut/modules/book/entity/BookClockEntryChat.java similarity index 93% rename from src/main/java/com/peanut/modules/book/entity/BookClockEntryChatEntity.java rename to src/main/java/com/peanut/modules/book/entity/BookClockEntryChat.java index f000c4e7..ebc42cdc 100644 --- a/src/main/java/com/peanut/modules/book/entity/BookClockEntryChatEntity.java +++ b/src/main/java/com/peanut/modules/book/entity/BookClockEntryChat.java @@ -12,7 +12,7 @@ import java.util.List; @Data @TableName("book_clock_entry_chat") -public class BookClockEntryChatEntity implements Serializable { +public class BookClockEntryChat implements Serializable { private static final long serialVersionUID = 1L; @TableId diff --git a/src/main/java/com/peanut/modules/book/service/BookClockEntryChatService.java b/src/main/java/com/peanut/modules/book/service/BookClockEntryChatService.java index c91fa49e..0befd052 100644 --- a/src/main/java/com/peanut/modules/book/service/BookClockEntryChatService.java +++ b/src/main/java/com/peanut/modules/book/service/BookClockEntryChatService.java @@ -1,7 +1,7 @@ package com.peanut.modules.book.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.peanut.modules.book.entity.BookClockEntryChatEntity; +import com.peanut.modules.book.entity.BookClockEntryChat; -public interface BookClockEntryChatService extends IService { +public interface BookClockEntryChatService extends IService { } diff --git a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java index bed65e79..03b4d497 100644 --- a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java +++ b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java @@ -1,5 +1,6 @@ package com.peanut.modules.book.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.common.utils.PageUtils; diff --git a/src/main/java/com/peanut/modules/book/service/impl/BookClockEntryChatImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BookClockEntryChatImpl.java index 8ffdac07..adadc50e 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BookClockEntryChatImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BookClockEntryChatImpl.java @@ -2,10 +2,10 @@ package com.peanut.modules.book.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.peanut.modules.book.dao.BookClockEntryChatDao; -import com.peanut.modules.book.entity.BookClockEntryChatEntity; +import com.peanut.modules.book.entity.BookClockEntryChat; import com.peanut.modules.book.service.BookClockEntryChatService; import org.springframework.stereotype.Service; @Service("bookClockEntryChatService") -public class BookClockEntryChatImpl extends ServiceImpl implements BookClockEntryChatService { +public class BookClockEntryChatImpl extends ServiceImpl implements BookClockEntryChatService { } diff --git a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java index d186c32f..f17fb000 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java @@ -112,7 +112,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl String userId = (String) params.get("userId"); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId); - queryWrapper.eq(orderStatus.equals(Constants.ORDER_STATUS_FAIL), "order_status", orderStatus); + queryWrapper.eq(!orderStatus.equals(Constants.ORDER_STATUS_ALL), "order_status", orderStatus); queryWrapper.orderByDesc("create_time"); Query query = new Query<>(); IPage page = query.getPage(params); @@ -313,48 +313,7 @@ public class BuyOrderServiceImpl extends ServiceImpl impl buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime()); List buyOrderList = list(buyOrderQueryWrapper); for (BuyOrder buyOrder : buyOrderList) { - BuyOrderResponseVo responseVo = new BuyOrderResponseVo(); - Integer userId = buyOrder.getUserId(); - QueryWrapper userEntityQueryWrapper = new QueryWrapper<>(); - userEntityQueryWrapper.eq("id",userId); - MyUserEntity user = myUserService.getOne(userEntityQueryWrapper); - UserResponseVo userResponseVo = new UserResponseVo(); - userResponseVo.setUserPhone(user.getTel()); - userResponseVo.setUserName(user.getName()); - responseVo.setUserInfo(userResponseVo); - responseVo.setOrderPrice(buyOrder.getOrderMoney()); - BeanUtil.copyProperties(buyOrder, responseVo); - ConsigneeVo consigneeVo = new ConsigneeVo(); - consigneeVo.setConsigneeName(buyOrder.getShippingUser()); - consigneeVo.setConsigneeMobile(buyOrder.getUserPhone()); - consigneeVo.setProvince(buyOrder.getProvince()); - consigneeVo.setCity(buyOrder.getCity()); - consigneeVo.setCounty(buyOrder.getDistrict()); - consigneeVo.setAddress(buyOrder.getAddress()); - responseVo.setConsignee(consigneeVo); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", buyOrder.getOrderId()); - List buyOrderProductList = buyOrderProductService.list(queryWrapper); - List goodsResponseVoList = new ArrayList<>(); - for (BuyOrderProduct buyOrderProduct : buyOrderProductList) { - GoodsResponseVo goodsResponseVo = new GoodsResponseVo(); - QueryWrapper shopProductQueryWrapper = new QueryWrapper<>(); - shopProductQueryWrapper.eq("product_id", buyOrderProduct.getProductId()); - ShopProduct shopProduct = shopProductService.getOne(shopProductQueryWrapper); - goodsResponseVo.setProductName(shopProduct.getProductName()); - goodsResponseVo.setProductImage(shopProduct.getProductImages()); - goodsResponseVo.setProductPrice(shopProduct.getPrice()); - QueryWrapper expressOrderQueryWrapper = new QueryWrapper<>(); - expressOrderQueryWrapper.eq("id", buyOrderProduct.getExpressOrderId()); - ExpressOrder expressOrder = expressOrderService.getOne(expressOrderQueryWrapper); - ExpressResponseVo expressResponseVo = new ExpressResponseVo(); - expressResponseVo.setExpressCompany(expressOrder.getExpressCompanyCode()); - expressResponseVo.setExpressOrderSn(expressOrder.getExpressOrderSn()); - expressResponseVo.setPrintTemplate(expressOrder.getPrintTemplate()); - goodsResponseVo.setExpressInfo(expressResponseVo); - goodsResponseVoList.add(goodsResponseVo); - } - responseVo.setGoodsList(goodsResponseVoList); + BuyOrderResponseVo responseVo = setBuyOrderInfo(buyOrder); result.add(responseVo); } return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex()); @@ -389,7 +348,6 @@ public class BuyOrderServiceImpl extends ServiceImpl impl // 计算快递费用 BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode()); ExpressOrder expressOrder = new ExpressOrder(); -// expressOrder.setOrderId(buyOrderDetailList.get(0).getOrderId()); expressOrder.setExpressFee(expressFee); expressOrder.setCreateTime(new Date()); expressOrder.setTotalWeight(totalWeight); @@ -418,7 +376,20 @@ public class BuyOrderServiceImpl extends ServiceImpl impl QueryWrapper buyOrderQueryWrapper = new QueryWrapper<>(); buyOrderQueryWrapper.eq("order_sn", orderSn); BuyOrder buyOrder = getOne(buyOrderQueryWrapper); + return setBuyOrderInfo(buyOrder); + } + + private BuyOrderResponseVo setBuyOrderInfo(BuyOrder buyOrder) { BuyOrderResponseVo responseVo = new BuyOrderResponseVo(); + Integer userId = buyOrder.getUserId(); + QueryWrapper userEntityQueryWrapper = new QueryWrapper<>(); + userEntityQueryWrapper.eq("id", userId); + MyUserEntity user = myUserService.getOne(userEntityQueryWrapper); + UserResponseVo userResponseVo = new UserResponseVo(); + userResponseVo.setUserPhone(user.getTel()); + userResponseVo.setUserName(user.getName()); + responseVo.setUserInfo(userResponseVo); + responseVo.setOrderPrice(buyOrder.getOrderMoney()); BeanUtil.copyProperties(buyOrder, responseVo); ConsigneeVo consigneeVo = new ConsigneeVo(); consigneeVo.setConsigneeName(buyOrder.getShippingUser()); diff --git a/src/main/java/com/peanut/modules/book/vo/ClockInCommentVo.java b/src/main/java/com/peanut/modules/book/vo/ClockInCommentVo.java index 2a1d189b..232bd798 100644 --- a/src/main/java/com/peanut/modules/book/vo/ClockInCommentVo.java +++ b/src/main/java/com/peanut/modules/book/vo/ClockInCommentVo.java @@ -1,5 +1,6 @@ package com.peanut.modules.book.vo; +import com.peanut.common.utils.PageUtils; import lombok.Data; import java.util.Date; @@ -42,6 +43,6 @@ public class ClockInCommentVo { private String puserAvatar; - private List subCommentList; + private List subCommentList; } diff --git a/src/main/java/com/peanut/modules/book/vo/response/GoodsResponseVo.java b/src/main/java/com/peanut/modules/book/vo/response/GoodsResponseVo.java index 7d6ac48e..9bf1aa05 100644 --- a/src/main/java/com/peanut/modules/book/vo/response/GoodsResponseVo.java +++ b/src/main/java/com/peanut/modules/book/vo/response/GoodsResponseVo.java @@ -23,6 +23,10 @@ public class GoodsResponseVo { * 商品价格 */ private BigDecimal productPrice; + /** + * 商品数量 + */ + private Integer quantity; /** * 快递 */