This commit is contained in:
wangjinlei
2023-10-23 15:03:36 +08:00
12 changed files with 108 additions and 78 deletions

View File

@@ -26,6 +26,10 @@ public class Constants {
* 订单状态 - 交易失败
*/
public static final String ORDER_STATUS_FAIL = "4";
/**
* 订单状态 - 全部
*/
public static final String ORDER_STATUS_ALL = "9";
/**
* 订单状态 - 订单超时
*/

View File

@@ -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<BookClockEntryChatEntity> 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<BookClockEntryChat> 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<ClockInCommentVo> resultList = new ArrayList<>();
List<BookClockEntryChatEntity> chatEntityList = bookClockEntryChatService.list(queryWrapper);
for (BookClockEntryChatEntity entity : chatEntityList) {
List<BookClockEntryChat> chatEntityList = bookClockEntryChatService.list(queryWrapper);
for (BookClockEntryChat entity : chatEntityList) {
List<String> imageList = JSON.parseObject(entity.getImages(), new TypeReference<List<String>>() {
});
entity.setImageList(imageList);
@@ -84,11 +87,29 @@ public class BookClockForumController {
MyUserEntity user = userService.getById(entity.getUserId());
vo.setNickName(user.getNickname());
vo.setAvatar(user.getAvatar());
QueryWrapper<BookClockEntryChatEntity> subQueryWrapper = new QueryWrapper<>();
subQueryWrapper.eq("fid", entity.getId());
List<BookClockEntryChatEntity> subClockInChatList = bookClockEntryChatService.list(subQueryWrapper);
resultList.add(vo);
}
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<BookClockEntryChat> subQueryWrapper = new QueryWrapper<>();
subQueryWrapper.eq("fid", fid);
List<BookClockEntryChat> subClockInChatList = bookClockEntryChatService.list(subQueryWrapper);
List<ClockInCommentVo> subCommentList = new ArrayList<>();
for (BookClockEntryChatEntity subChat : subClockInChatList) {
for (BookClockEntryChat subChat : subClockInChatList) {
ClockInCommentVo subVo = new ClockInCommentVo();
BeanUtil.copyProperties(subChat, subVo);
MyUserEntity subChatUser = userService.getById(subChat.getUserId());
@@ -99,12 +120,8 @@ public class BookClockForumController {
subVo.setNickName(subChatUser.getNickname());
subCommentList.add(subVo);
}
vo.setSubCommentList(subCommentList);
resultList.add(vo);
}
Map<String, Object> result = new HashMap<>();
result.put("chatList", resultList);
return R.ok(result);
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<String> imageList = chat.getImageList();
if (imageList != null) {
String images = JSON.toJSON(imageList).toString();

View File

@@ -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);

View File

@@ -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<UserBookClockEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("book_id", bookId);
queryWrapper.eq("user_id", userId);
UserBookClockEntity userBookClock = userBookClockService.getOne(queryWrapper);
String clocksStr = userBookClock.getClocks();
List<Integer> clockInDaysList = JSON.parseObject(clocksStr, new TypeReference<List<Integer>>() {
});
clockInDaysList.add(day);
String clockInDaysListStr = JSON.toJSON(clockInDaysList).toString();
userBookClock.setClocks(clockInDaysListStr);
userBookClockService.updateById(userBookClock);
return R.ok("补卡成功");
}
}

View File

@@ -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<BookClockEntryChatEntity> {
public interface BookClockEntryChatDao extends MPJBaseMapper<BookClockEntryChat> {
}

View File

@@ -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

View File

@@ -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<BookClockEntryChatEntity> {
public interface BookClockEntryChatService extends IService<BookClockEntryChat> {
}

View File

@@ -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;

View File

@@ -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<BookClockEntryChatDao, BookClockEntryChatEntity> implements BookClockEntryChatService {
public class BookClockEntryChatImpl extends ServiceImpl<BookClockEntryChatDao, BookClockEntryChat> implements BookClockEntryChatService {
}

View File

@@ -112,7 +112,7 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
String userId = (String) params.get("userId");
QueryWrapper<BuyOrder> 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<BuyOrder> query = new Query<>();
IPage<BuyOrder> page = query.getPage(params);
@@ -313,10 +313,77 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime());
List<BuyOrder> buyOrderList = list(buyOrderQueryWrapper);
for (BuyOrder buyOrder : buyOrderList) {
BuyOrderResponseVo responseVo = setBuyOrderInfo(buyOrder);
result.add(responseVo);
}
return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex());
}
@Override
public void delivery(String expressCompanyCode, List<Integer> buyOrderDetailId) {
QueryWrapper<BuyOrderDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", buyOrderDetailId);
List<BuyOrderDetail> buyOrderDetailList = buyOrderDetailService.list(queryWrapper);
BigDecimal totalWeight = new BigDecimal(0);
List<ExpressCommodity> commodityList = new ArrayList<>();
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
ExpressCommodity commodity = new ExpressCommodity();
commodity.setGoodsName(buyOrderDetail.getProductName());
commodity.setGoodsquantity(buyOrderDetail.getQuantity());
commodity.setGoodsWeight(buyOrderDetail.getWeight().doubleValue());
totalWeight = totalWeight.add(
BigDecimal.valueOf(buyOrderDetail.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderDetail.getQuantity()))
);
totalWeight = totalWeight.setScale(0, RoundingMode.UP);
commodityList.add(commodity);
}
// 获取用户地址
Integer orderId = buyOrderDetailList.get(0).getOrderId();
BuyOrder buyOrder = getById(orderId);
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
countyQueryWrapper.eq("county_name", buyOrder.getDistrict());
County county = countyService.getOne(countyQueryWrapper);
// 计算快递费用
BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode());
ExpressOrder expressOrder = new ExpressOrder();
expressOrder.setExpressFee(expressFee);
expressOrder.setCreateTime(new Date());
expressOrder.setTotalWeight(totalWeight);
expressOrder.setCommodity(commodityList);
expressOrder.setExpressCompanyCode(expressCompanyCode);
expressOrder.setConsigneeName(buyOrder.getShippingUser());
expressOrder.setConsigneeMobile(buyOrder.getUserPhone());
expressOrder.setProvince(buyOrder.getProvince());
expressOrder.setCity(buyOrder.getCity());
expressOrder.setCounty(buyOrder.getDistrict());
expressOrder.setAddress(buyOrder.getAddress());
// 生成快递面单
ExpressOrderResponseVo response = expressOrderService.placeExpressOrder(expressOrder);
String expressBillNo = response.getOrder().getLogisticCode();
String expressBillTemplate = response.getPrintTemplate();
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
buyOrderDetail.setExpressBillNo(expressBillNo);
buyOrderDetail.setExpressBillTemplate(expressBillTemplate);
buyOrderDetail.setExpressCompanyCode(expressCompanyCode);
}
buyOrderDetailService.saveBatch(buyOrderDetailList);
}
@Override
public BuyOrderResponseVo orderDetail(String orderSn) {
QueryWrapper<BuyOrder> 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<MyUserEntity> userEntityQueryWrapper = new QueryWrapper<>();
userEntityQueryWrapper.eq("id",userId);
userEntityQueryWrapper.eq("id", userId);
MyUserEntity user = myUserService.getOne(userEntityQueryWrapper);
UserResponseVo userResponseVo = new UserResponseVo();
userResponseVo.setUserPhone(user.getTel());
@@ -355,102 +422,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
goodsResponseVoList.add(goodsResponseVo);
}
responseVo.setGoodsList(goodsResponseVoList);
result.add(responseVo);
}
return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex());
}
@Override
public void delivery(String expressCompanyCode, List<Integer> buyOrderDetailId) {
QueryWrapper<BuyOrderDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", buyOrderDetailId);
List<BuyOrderDetail> buyOrderDetailList = buyOrderDetailService.list(queryWrapper);
BigDecimal totalWeight = new BigDecimal(0);
List<ExpressCommodity> commodityList = new ArrayList<>();
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
ExpressCommodity commodity = new ExpressCommodity();
commodity.setGoodsName(buyOrderDetail.getProductName());
commodity.setGoodsquantity(buyOrderDetail.getQuantity());
commodity.setGoodsWeight(buyOrderDetail.getWeight().doubleValue());
totalWeight = totalWeight.add(
BigDecimal.valueOf(buyOrderDetail.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderDetail.getQuantity()))
);
totalWeight = totalWeight.setScale(0, RoundingMode.UP);
commodityList.add(commodity);
}
// 获取用户地址
Integer orderId = buyOrderDetailList.get(0).getOrderId();
BuyOrder buyOrder = getById(orderId);
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
countyQueryWrapper.eq("county_name", buyOrder.getDistrict());
County county = countyService.getOne(countyQueryWrapper);
// 计算快递费用
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);
expressOrder.setCommodity(commodityList);
expressOrder.setExpressCompanyCode(expressCompanyCode);
expressOrder.setConsigneeName(buyOrder.getShippingUser());
expressOrder.setConsigneeMobile(buyOrder.getUserPhone());
expressOrder.setProvince(buyOrder.getProvince());
expressOrder.setCity(buyOrder.getCity());
expressOrder.setCounty(buyOrder.getDistrict());
expressOrder.setAddress(buyOrder.getAddress());
// 生成快递面单
ExpressOrderResponseVo response = expressOrderService.placeExpressOrder(expressOrder);
String expressBillNo = response.getOrder().getLogisticCode();
String expressBillTemplate = response.getPrintTemplate();
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
buyOrderDetail.setExpressBillNo(expressBillNo);
buyOrderDetail.setExpressBillTemplate(expressBillTemplate);
buyOrderDetail.setExpressCompanyCode(expressCompanyCode);
}
buyOrderDetailService.saveBatch(buyOrderDetailList);
}
@Override
public BuyOrderResponseVo orderDetail(String orderSn) {
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
buyOrderQueryWrapper.eq("order_sn", orderSn);
BuyOrder buyOrder = getOne(buyOrderQueryWrapper);
BuyOrderResponseVo responseVo = new BuyOrderResponseVo();
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<BuyOrderProduct> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", buyOrder.getOrderId());
List<BuyOrderProduct> buyOrderProductList = buyOrderProductService.list(queryWrapper);
List<GoodsResponseVo> goodsResponseVoList = new ArrayList<>();
for (BuyOrderProduct buyOrderProduct : buyOrderProductList) {
GoodsResponseVo goodsResponseVo = new GoodsResponseVo();
QueryWrapper<ShopProduct> 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<ExpressOrder> 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);
return responseVo;
}
}

View File

@@ -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<ClockInCommentVo> subCommentList;
private List<PageUtils> subCommentList;
}

View File

@@ -23,6 +23,10 @@ public class GoodsResponseVo {
* 商品价格
*/
private BigDecimal productPrice;
/**
* 商品数量
*/
private Integer quantity;
/**
* 快递
*/