Compare commits
2 Commits
06f3fc385c
...
36fc2d5cd4
Author | SHA1 | Date | |
---|---|---|---|
|
36fc2d5cd4 | ||
|
9f3441b972 |
|
@ -1,18 +1,28 @@
|
|||
package net.maku.maku.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.AllArgsConstructor;
|
||||
import net.maku.framework.common.cache.RedisCache;
|
||||
import net.maku.framework.common.exception.ErrorCode;
|
||||
import net.maku.framework.common.exception.ServerException;
|
||||
import net.maku.framework.common.cache.RedisCache;
|
||||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.common.utils.Result;
|
||||
import net.maku.maku.convert.TPurchaseDetailsConvert;
|
||||
import net.maku.maku.dao.TPurchaseDao;
|
||||
import net.maku.maku.dao.TPurchaseDetailsDao;
|
||||
import net.maku.maku.entity.TPurchaseDetailsEntity;
|
||||
import net.maku.maku.entity.TShoppingTrolleyEntity;
|
||||
import net.maku.maku.entity.TUserEntity;
|
||||
import net.maku.maku.entity.TPurchaseEntity;
|
||||
import net.maku.maku.entity.TUserEntity;
|
||||
import net.maku.maku.service.TPurchaseDetailsService;
|
||||
import net.maku.maku.query.TPurchaseDetailsQuery;
|
||||
import net.maku.maku.vo.TPurchaseBookDetailsVo;
|
||||
import net.maku.maku.vo.TPurchaseBookVo;
|
||||
import net.maku.maku.vo.TCardVo;
|
||||
import net.maku.maku.vo.TPurchaseDetailsVO;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
|
@ -20,6 +30,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -35,6 +50,28 @@ import java.util.List;
|
|||
public class TPurchaseDetailsController {
|
||||
private final TPurchaseDetailsService tPurchaseDetailsService;
|
||||
private final RedisCache redisCache;
|
||||
private final TPurchaseDetailsDao tPurchaseDetailsDao;
|
||||
@GetMapping("/a")
|
||||
public List<TPurchaseBookVo> getBookCollectionByUserId(HttpServletRequest request) {
|
||||
String token = request.getHeader("token");
|
||||
TUserEntity entity = (TUserEntity) redisCache.get(token);
|
||||
if(ObjectUtils.isNull(entity)){
|
||||
throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID);
|
||||
}
|
||||
|
||||
|
||||
TUserEntity tUserEntity = (TUserEntity) redisCache.get(token);
|
||||
Integer userId=tUserEntity.getId();
|
||||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
ZoneId zoneId = ZoneId.systemDefault();
|
||||
|
||||
|
||||
|
||||
ZonedDateTime zdt = currentTime.atZone(zoneId);
|
||||
Date date = Date.from(zdt.toInstant());
|
||||
|
||||
return tPurchaseDetailsService.selectByUserId(userId);
|
||||
}
|
||||
@PostMapping("/buy")
|
||||
@Operation(summary = "购买")
|
||||
public Result<?> purchaseBook(HttpServletRequest request,@RequestBody TCardVo vo) {
|
||||
|
|
|
@ -11,6 +11,7 @@ import net.maku.framework.common.exception.ServerException;
|
|||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.common.utils.Result;
|
||||
import net.maku.maku.convert.TShoppingTrolleyConvert;
|
||||
import net.maku.maku.dao.TShoppingTrolleyDao;
|
||||
import net.maku.maku.entity.TShoppingTrolleyEntity;
|
||||
import net.maku.maku.entity.TUserEntity;
|
||||
import net.maku.maku.service.TShoppingTrolleyService;
|
||||
|
@ -41,6 +42,7 @@ import java.util.List;
|
|||
public class TShoppingTrolleyController {
|
||||
private final RedisCache redisCache;
|
||||
private final TShoppingTrolleyService tShoppingTrolleyService;
|
||||
private final TShoppingTrolleyDao tShoppingTrolleyDao;
|
||||
@GetMapping("page")
|
||||
@Operation(summary = "分页")
|
||||
public Result<PageResult<TShoppingTrolleyVO>> page(@ParameterObject @Valid TShoppingTrolleyQuery query){
|
||||
|
@ -109,6 +111,27 @@ public class TShoppingTrolleyController {
|
|||
List<TShoppingTrolleyEntity> list = tShoppingTrolleyService.myshop(userId);
|
||||
return Result.ok(list);
|
||||
}
|
||||
@GetMapping("/newmyshop")
|
||||
public List<TShoppingTrolleyEntity> getBookCollectionByUserId(HttpServletRequest request) {
|
||||
String token = request.getHeader("token");
|
||||
TUserEntity entity = (TUserEntity) redisCache.get(token);
|
||||
if(ObjectUtils.isNull(entity)){
|
||||
throw new ServerException(ErrorCode.REFRESH_TOKEN_INVALID);
|
||||
}
|
||||
|
||||
|
||||
TUserEntity tUserEntity = (TUserEntity) redisCache.get(token);
|
||||
Integer userId=tUserEntity.getId();
|
||||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
ZoneId zoneId = ZoneId.systemDefault();
|
||||
|
||||
//DATE没有时区二localDateTime有时区,为了将 LocalDateTime 转换为 Date,你需要指定一个时区,因为 Date 是基于UTC的
|
||||
// 将LocalDateTime转换为ZonedDateTime,然后转换为Instant,最后转换为Date
|
||||
ZonedDateTime zdt = currentTime.atZone(zoneId);
|
||||
Date date = Date.from(zdt.toInstant());
|
||||
|
||||
return tShoppingTrolleyDao.selectShoppingTrolleyByUserId(Long.valueOf(userId));
|
||||
}
|
||||
@DeleteMapping("/clean")
|
||||
@Operation(summary = "清空购物车")
|
||||
public Result<String> clean(HttpServletRequest request){
|
||||
|
|
|
@ -2,7 +2,11 @@ package net.maku.maku.dao;
|
|||
|
||||
import net.maku.framework.mybatis.dao.BaseDao;
|
||||
import net.maku.maku.entity.TPurchaseDetailsEntity;
|
||||
import net.maku.maku.vo.TPurchaseBookDetailsVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -12,5 +16,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
*/
|
||||
@Mapper
|
||||
public interface TPurchaseDetailsDao extends BaseDao<TPurchaseDetailsEntity> {
|
||||
List<TPurchaseDetailsEntity> selectBookDetilsByUserId(long id);
|
||||
|
||||
List<TPurchaseBookDetailsVo> selectByDeailsId(@Param("id") Integer id);
|
||||
}
|
|
@ -4,6 +4,8 @@ import net.maku.framework.mybatis.dao.BaseDao;
|
|||
import net.maku.maku.entity.TShoppingTrolleyEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
@ -12,5 +14,6 @@ import org.apache.ibatis.annotations.Mapper;
|
|||
*/
|
||||
@Mapper
|
||||
public interface TShoppingTrolleyDao extends BaseDao<TShoppingTrolleyEntity> {
|
||||
List<TShoppingTrolleyEntity> selectShoppingTrolleyByUserId(long id);
|
||||
|
||||
}
|
|
@ -27,4 +27,6 @@ public class TPurchaseEntity {
|
|||
|
||||
private Date updateTime;
|
||||
|
||||
private Integer userId;
|
||||
|
||||
}
|
|
@ -28,4 +28,8 @@ public class TShoppingTrolleyEntity {
|
|||
|
||||
private Date updateTime;
|
||||
|
||||
private Long creator;
|
||||
private Long updater;
|
||||
private Long deleted;
|
||||
|
||||
}
|
|
@ -2,6 +2,8 @@ package net.maku.maku.service;
|
|||
|
||||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.mybatis.service.BaseService;
|
||||
import net.maku.maku.vo.TPurchaseBookDetailsVo;
|
||||
import net.maku.maku.vo.TPurchaseBookVo;
|
||||
import net.maku.maku.entity.TUserEntity;
|
||||
import net.maku.maku.vo.TCardVo;
|
||||
import net.maku.maku.vo.TPurchaseDetailsVO;
|
||||
|
@ -26,6 +28,8 @@ public interface TPurchaseDetailsService extends BaseService<TPurchaseDetailsEnt
|
|||
|
||||
void delete(List<Long> idList);
|
||||
|
||||
List<TPurchaseBookVo> selectByUserId(Integer userId);
|
||||
|
||||
// boolean purchaseBook(TUserEntity entity, TPurchaseDetailsVO vo);
|
||||
|
||||
boolean purchaseBook(TUserEntity entity, TCardVo vo);
|
||||
|
|
|
@ -8,14 +8,20 @@ import lombok.AllArgsConstructor;
|
|||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
|
||||
import net.maku.maku.convert.TPurchaseDetailsConvert;
|
||||
import net.maku.maku.dao.TPurchaseDao;
|
||||
import net.maku.maku.entity.TPurchaseDetailsEntity;
|
||||
import net.maku.maku.entity.TPurchaseEntity;
|
||||
import net.maku.maku.entity.TUserEntity;
|
||||
import net.maku.maku.query.TPurchaseDetailsQuery;
|
||||
import net.maku.maku.vo.TPurchaseBookDetailsVo;
|
||||
import net.maku.maku.vo.TPurchaseBookVo;
|
||||
import net.maku.maku.service.TUserService;
|
||||
import net.maku.maku.vo.TCardVo;
|
||||
import net.maku.maku.vo.TPurchaseDetailsVO;
|
||||
import net.maku.maku.dao.TPurchaseDetailsDao;
|
||||
import net.maku.maku.service.TPurchaseDetailsService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -31,6 +37,10 @@ import java.util.List;
|
|||
@Service
|
||||
@AllArgsConstructor
|
||||
public class TPurchaseDetailsServiceImpl extends BaseServiceImpl<TPurchaseDetailsDao, TPurchaseDetailsEntity> implements TPurchaseDetailsService {
|
||||
|
||||
private final TPurchaseDetailsDao tPurchaseDetailsDao;
|
||||
private final TPurchaseDao tPurchaseDao;
|
||||
|
||||
private final TUserService tUserService;
|
||||
@Override
|
||||
public PageResult<TPurchaseDetailsVO> page(TPurchaseDetailsQuery query) {
|
||||
|
@ -66,6 +76,25 @@ public class TPurchaseDetailsServiceImpl extends BaseServiceImpl<TPurchaseDetail
|
|||
removeByIds(idList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TPurchaseBookVo> selectByUserId(Integer userId) {
|
||||
LambdaQueryWrapper<TPurchaseEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(TPurchaseEntity::getUserId,userId);
|
||||
List<TPurchaseEntity> tPurchaseEntities = tPurchaseDao.selectList(lambdaQueryWrapper);
|
||||
List<TPurchaseBookVo> tPurchaseBookDetailsVos = new ArrayList<>();
|
||||
for (TPurchaseEntity tPurchaseEntity : tPurchaseEntities){
|
||||
TPurchaseBookVo vo = new TPurchaseBookVo();
|
||||
|
||||
// 图书详情
|
||||
BeanUtils.copyProperties(tPurchaseEntity,vo);
|
||||
List<TPurchaseBookDetailsVo> list =tPurchaseDetailsDao.selectByDeailsId(vo.getId());
|
||||
|
||||
vo.setBook_details(list);
|
||||
tPurchaseBookDetailsVos.add(vo);
|
||||
}
|
||||
return tPurchaseBookDetailsVos;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public boolean purchaseBook(TUserEntity entity, TPurchaseDetailsVO vo) {
|
||||
//
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package net.maku.maku.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 功能:
|
||||
* 作者:程序员青戈
|
||||
* 日期:2024/7/23 16:44
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class TPurchaseBookDetailsVo {
|
||||
|
||||
private Integer id;
|
||||
private String bookName;
|
||||
private String price;
|
||||
private String bookCover;
|
||||
private String introduction;
|
||||
|
||||
private String count;
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package net.maku.maku.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 功能:
|
||||
* 作者:程序员青戈
|
||||
* 日期:2024/7/23 16:42
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class TPurchaseBookVo {
|
||||
private Integer id;
|
||||
private Date tradingHour;
|
||||
private BigDecimal totalPrice;
|
||||
private List<TPurchaseBookDetailsVo> book_details;
|
||||
}
|
|
@ -4,7 +4,7 @@ spring:
|
|||
database: 0
|
||||
host: localhost
|
||||
port: 6379
|
||||
password: 123456
|
||||
# password: 123456
|
||||
#timeout: 6000ms # 连接超时时长(毫秒)
|
||||
datasource:
|
||||
dynamic:
|
||||
|
|
|
@ -11,11 +11,16 @@
|
|||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectBookCollectionByUserId" resultMap="tBookCollectionMap" parameterType="java.lang.Long">
|
||||
SELECT *
|
||||
<select id="selectBookCollectionByUserId" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
(@row_number:=@row_number + 1) AS id,
|
||||
tb.book_name,
|
||||
tb.price,
|
||||
tb.book_cover
|
||||
FROM
|
||||
t_book_collection bc
|
||||
LEFT JOIN `t_book` tb ON bc.book_id=tb.id
|
||||
LEFT JOIN `t_book` tb ON bc.book_id=tb.id,
|
||||
(SELECT @row_number := 0) AS dummy
|
||||
WHERE user_id = #{id}
|
||||
</select>
|
||||
</mapper>
|
|
@ -10,4 +10,35 @@
|
|||
<result property="price" column="price"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!-- <select id="selectBookDetilsByUserId" parameterType="map" resultType="map">-->
|
||||
<!-- SELECT-->
|
||||
<!-- (@row_number:=@row_number + 1) AS id,-->
|
||||
<!-- pd.create_time AS trading_hour,-->
|
||||
<!-- pd.price*pd.count As total_price,-->
|
||||
<!-- JSON_ARRAYAGG(-->
|
||||
<!-- JSON_OBJECT(-->
|
||||
<!-- 'id', pd.id,-->
|
||||
<!-- 'book_name', tb.book_name,-->
|
||||
<!-- 'price', pd.price,-->
|
||||
<!-- 'book_cover', tb.book_cover,-->
|
||||
<!-- 'introduction', tb.introduction,-->
|
||||
<!-- 'description', tb.description,-->
|
||||
<!-- 'create_time', pd.create_time,-->
|
||||
<!-- 'update_time', pd.update_time-->
|
||||
<!-- )-->
|
||||
<!-- ) AS book_details-->
|
||||
<!-- FROM t_purchase_details pd-->
|
||||
<!-- LEFT JOIN t_book tb ON pd.book_id=tb.id,-->
|
||||
<!-- (SELECT @row_number := 0) AS dummy-->
|
||||
<!-- WHERE pd.creator=#{id}-->
|
||||
<!-- </select>-->
|
||||
<select id="selectBookDetilsByUserId" parameterType="map" resultType="map">
|
||||
|
||||
</select>
|
||||
<select id="selectByDeailsId" resultType="net.maku.maku.vo.TPurchaseBookDetailsVo">
|
||||
select tb.id,tb.book_name,tb.price,tb.introduction,tb.book_cover,tp.count from t_purchase_details tp
|
||||
LEFT JOIN t_book tb on tp.book_id = tb.id
|
||||
WHERE tp.purchase_id = #{id};
|
||||
</select>
|
||||
</mapper>
|
|
@ -9,6 +9,22 @@
|
|||
<result property="bookId" column="book_id"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<!-- <result property="creator" column="creator"/>-->
|
||||
<!-- <result property="updater" column="updater"/>-->
|
||||
<!-- <result property="deleted" column="deleted"/>-->
|
||||
<result property="number" column="number"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectShoppingTrolleyByUserId" parameterType="map" resultType="map">
|
||||
SELECT (@row_number:=@row_number + 1) AS id,
|
||||
tb.book_name,
|
||||
tb.price,
|
||||
tb.book_cover,
|
||||
tb.introduction
|
||||
FROM t_shopping_trolley st
|
||||
LEFT JOIN t_book tb ON st.book_id=tb.id,
|
||||
(SELECT @row_number := 0) AS dummy
|
||||
WHERE st.user_id=#{id}
|
||||
</select>
|
||||
</mapper>
|
|
@ -15,4 +15,11 @@
|
|||
</resultMap>
|
||||
|
||||
|
||||
<!-- SELECT-->
|
||||
<!-- (@row_number:=@row_number + 1) AS id,-->
|
||||
|
||||
<!-- FROM t_book tb-->
|
||||
<!-- LEFT JOIN t_purchase_details pd ON tb.id=pd-->
|
||||
<!-- (SELECT @row_number := 0) AS dummy-->
|
||||
<!-- WHERE .user_id=#{id}-->
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user