Compare commits

...

2 Commits

Author SHA1 Message Date
hxf13 36fc2d5cd4 Merge remote-tracking branch 'origin/master' 2024-07-23 18:03:31 +08:00
xiaoqiantx223 9f3441b972 个人中心的编写 2024-07-23 18:03:22 +08:00
15 changed files with 215 additions and 5 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -27,4 +27,6 @@ public class TPurchaseEntity {
private Date updateTime;
private Integer userId;
}

View File

@ -28,4 +28,8 @@ public class TShoppingTrolleyEntity {
private Date updateTime;
private Long creator;
private Long updater;
private Long deleted;
}

View File

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

View File

@ -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) {
//

View File

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

View File

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

View File

@ -4,7 +4,7 @@ spring:
database: 0
host: localhost
port: 6379
password: 123456
# password: 123456
#timeout: 6000ms # 连接超时时长(毫秒)
datasource:
dynamic:

View File

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

View File

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

View File

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

View File

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