提交 c31da821 authored 作者: luojie's avatar luojie

修改商品加入购物车逻辑

上级 207c0bb1
...@@ -22,7 +22,10 @@ public interface TbCfCartRecordRDao extends BaseDao<TbCfCartRecordREntity> { ...@@ -22,7 +22,10 @@ public interface TbCfCartRecordRDao extends BaseDao<TbCfCartRecordREntity> {
*/ */
int deleteItems(String[] cartRecordIds); int deleteItems(String[] cartRecordIds);
TbCfCartRecordREntity queryByItemId(String itemId); TbCfCartRecordREntity queryByItemId(@Param("itemId") String itemId,@Param("userId") String userId,@Param("itemSku") String itemSku);
TbCfCartRecordREntity querySkuAndUrl( @Param("itemSku") String itemSku, @Param("itemId") String itemId, @Param("sourceItemId") String sourceItemId, @Param("userId") String userId);
int queryItemNum(String userId);
TbCfCartRecordREntity querySkuAndUrl(@Param("itemSku") String itemSku,@Param("sourceItemId") String sourceItemId);
} }
...@@ -32,5 +32,7 @@ public interface TbCfItemDetailDao extends BaseDao<TbCfItemDetailEntity> { ...@@ -32,5 +32,7 @@ public interface TbCfItemDetailDao extends BaseDao<TbCfItemDetailEntity> {
int changeItemState(String cartRecordId, Integer checkFlag); int changeItemState(String cartRecordId, Integer checkFlag);
int changeState(@Param("ids") String[] ids, @Param("checkFlag") String checkFlag); int changeState(@Param("ids") String[] ids, @Param("checkFlag") String checkFlag);
int queryItemNum(String userId);
} }
...@@ -101,6 +101,11 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService { ...@@ -101,6 +101,11 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService {
public Result addToCart(TbCfItemDetailVo tbCfItemDetailVo) throws InterruptedException, ExecutionException, TimeoutException { public Result addToCart(TbCfItemDetailVo tbCfItemDetailVo) throws InterruptedException, ExecutionException, TimeoutException {
String token = jwtTokenProvider.resolveToken(request); String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token); TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
int itemCount = tbCfItemDetailDao.queryItemNum(tbCfUserInfoVo.getUserId());
System.out.println(itemCount);
if(itemCount>=99){
return new Result(ResultCodeEnum.ERROR.getCode()).setMessage("The shopping cart is full and needs to be cleaned!");
}
boolean flag = false; boolean flag = false;
if (tbCfItemDetailVo.getItemPrice() != null) { if (tbCfItemDetailVo.getItemPrice() != null) {
int compare = tbCfItemDetailVo.getItemPrice().compareTo(BigDecimal.ZERO); int compare = tbCfItemDetailVo.getItemPrice().compareTo(BigDecimal.ZERO);
...@@ -110,14 +115,26 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService { ...@@ -110,14 +115,26 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService {
} }
if (flag) { if (flag) {
//填充新商品必要信息 //填充新商品必要信息
TbCfCartRecordREntity tbCfCartRecord = tbCfCartRecordRDao.querySkuAndUrl(tbCfItemDetailVo.getItemSku(), tbCfItemDetailVo.getSourceItemId()); TbCfCartRecordREntity tbCfCartRecord = tbCfCartRecordRDao.querySkuAndUrl(tbCfItemDetailVo.getItemSku(),tbCfItemDetailVo.getItemId(), tbCfItemDetailVo.getSourceItemId(),tbCfUserInfoVo.getUserId());
if (tbCfCartRecord != null) { if(tbCfItemDetailVo.getSourceItemId().equals("www.afrieshop.com")) {
tbCfItemDetailVo.setItemId(tbCfCartRecord.getItemId()); if (tbCfCartRecord != null) {
tbCfItemDetailVo.setItemNum(tbCfCartRecord.getItemNum() + tbCfItemDetailVo.getItemNum()); tbCfItemDetailVo.setItemId(tbCfCartRecord.getItemId());
tbCfItemDetailVo.setCreateTime(new Date()); tbCfItemDetailVo.setItemNum(tbCfCartRecord.getItemNum() + tbCfItemDetailVo.getItemNum());
} else { tbCfItemDetailVo.setCreateTime(new Date());
tbCfItemDetailVo.setItemId(IdUtil.createIdbyUUID()); }else{
tbCfItemDetailVo.setCreateTime(new Date()); tbCfItemDetailVo.setItemId(tbCfItemDetailVo.getItemId());
tbCfItemDetailVo.setItemNum(tbCfItemDetailVo.getItemNum());
tbCfItemDetailVo.setCreateTime(new Date());
}
}else{
if (tbCfCartRecord != null) {
tbCfItemDetailVo.setItemId(tbCfCartRecord.getItemId());
tbCfItemDetailVo.setItemNum(tbCfCartRecord.getItemNum() + tbCfItemDetailVo.getItemNum());
tbCfItemDetailVo.setCreateTime(new Date());
}else{
tbCfItemDetailVo.setItemId(IdUtil.createIdbyUUID());
tbCfItemDetailVo.setCreateTime(new Date());
}
} }
//为商品分类,后面计算运费 //为商品分类,后面计算运费
TbCfExpressTemplateEntity expressTemplate = recognizeItemCategory(tbCfItemDetailVo.getItemTitle()); TbCfExpressTemplateEntity expressTemplate = recognizeItemCategory(tbCfItemDetailVo.getItemTitle());
...@@ -126,31 +143,32 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService { ...@@ -126,31 +143,32 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService {
TbCfItemDetailEntity tbCfItemDetail = new TbCfItemDetailEntity(); TbCfItemDetailEntity tbCfItemDetail = new TbCfItemDetailEntity();
BeanUtils.copyProperties(tbCfItemDetailVo, tbCfItemDetail); BeanUtils.copyProperties(tbCfItemDetailVo, tbCfItemDetail);
//将商品加入购物车表 //将商品加入购物车表
TbCfCartRecordREntity tbCfCartRecordREntity1 = tbCfCartRecordRDao.queryByItemId(tbCfItemDetailVo.getItemId()); TbCfCartRecordREntity tbCfCartRecordREntity1 = tbCfCartRecordRDao.queryByItemId(tbCfItemDetailVo.getItemId(),tbCfUserInfoVo.getUserId(),tbCfItemDetailVo.getItemSku());
if (tbCfCartRecordREntity1 == null) { if (tbCfCartRecordREntity1!=null) {
tbCfItemDetailDao.save(tbCfItemDetail);
TbCfCartRecordREntity tbCfCartRecordREntity = new TbCfCartRecordREntity(); TbCfCartRecordREntity tbCfCartRecordREntity = new TbCfCartRecordREntity();
tbCfCartRecordREntity.setCartRecordId(IdUtil.createIdbyUUID()); tbCfCartRecordREntity.setCartRecordId(tbCfCartRecordREntity1.getCartRecordId());
tbCfCartRecordREntity.setItemId(tbCfItemDetailVo.getItemId());
tbCfCartRecordREntity.setCheckFlag(StateConstant.VALID); tbCfCartRecordREntity.setCheckFlag(StateConstant.VALID);
tbCfCartRecordREntity.setEnableFlag(StateConstant.VALID); tbCfCartRecordREntity.setEnableFlag(StateConstant.VALID);
tbCfCartRecordREntity.setItemId(tbCfItemDetailVo.getItemId()); tbCfCartRecordREntity.setUserId(tbCfCartRecordREntity1.getUserId());
tbCfCartRecordREntity.setUserId(tbCfUserInfoVo.getUserId());
tbCfCartRecordREntity.setCreateTime(new Date()); tbCfCartRecordREntity.setCreateTime(new Date());
tbCfCartRecordREntity.setItemNum(tbCfItemDetailVo.getItemNum()); tbCfCartRecordREntity.setItemNum(tbCfItemDetailVo.getItemNum());
tbCfCartRecordREntity.setItemSku(tbCfItemDetailVo.getItemSku()); tbCfCartRecordRDao.update(tbCfCartRecordREntity);
tbCfCartRecordREntity.setSourceItemId(tbCfItemDetailVo.getSourceItemId());
tbCfCartRecordRDao.save(tbCfCartRecordREntity);
} else {
tbCfItemDetailDao.update(tbCfItemDetail); tbCfItemDetailDao.update(tbCfItemDetail);
} else {
tbCfItemDetailDao.save(tbCfItemDetail);
TbCfCartRecordREntity tbCfCartRecordREntity = new TbCfCartRecordREntity(); TbCfCartRecordREntity tbCfCartRecordREntity = new TbCfCartRecordREntity();
tbCfCartRecordREntity.setCartRecordId(tbCfCartRecordREntity1.getCartRecordId()); tbCfCartRecordREntity.setCartRecordId(IdUtil.createIdbyUUID());
tbCfCartRecordREntity.setItemId(tbCfItemDetailVo.getItemId());
tbCfCartRecordREntity.setCheckFlag(StateConstant.VALID); tbCfCartRecordREntity.setCheckFlag(StateConstant.VALID);
tbCfCartRecordREntity.setEnableFlag(StateConstant.VALID); tbCfCartRecordREntity.setEnableFlag(StateConstant.VALID);
tbCfCartRecordREntity.setItemId(tbCfItemDetailVo.getItemId());
tbCfCartRecordREntity.setUserId(tbCfUserInfoVo.getUserId()); tbCfCartRecordREntity.setUserId(tbCfUserInfoVo.getUserId());
tbCfCartRecordREntity.setCreateTime(new Date()); tbCfCartRecordREntity.setCreateTime(new Date());
tbCfCartRecordREntity.setItemNum(tbCfItemDetailVo.getItemNum()); tbCfCartRecordREntity.setItemNum(tbCfItemDetailVo.getItemNum());
tbCfCartRecordRDao.update(tbCfCartRecordREntity); tbCfCartRecordREntity.setItemSku(tbCfItemDetailVo.getItemSku());
tbCfCartRecordREntity.setSourceItemId(tbCfItemDetailVo.getSourceItemId());
tbCfCartRecordRDao.save(tbCfCartRecordREntity);
} }
return new Result(ResultCodeEnum.SUCCESS.getDesc()); return new Result(ResultCodeEnum.SUCCESS.getDesc());
} else { } else {
...@@ -158,7 +176,6 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService { ...@@ -158,7 +176,6 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService {
} }
} }
@Override @Override
public Result insertItemDetail(TbCfItemDetailVo tbCfItemDetailVo) { public Result insertItemDetail(TbCfItemDetailVo tbCfItemDetailVo) {
Result result = new Result(); Result result = new Result();
......
...@@ -122,30 +122,49 @@ ...@@ -122,30 +122,49 @@
#{cartRecordId} #{cartRecordId}
</foreach> </foreach>
</delete> </delete>
<select id="querySkuAndUrl" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCartRecordREntity"> <select id="querySkuAndUrl" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCartRecordREntity">
select select
`cart_record_id`, `cart_record_id`,
`item_id`, `item_id`,
`user_id`, `user_id`,
`check_flag`, `check_flag`,
`enable_flag`, `enable_flag`,
`create_time`, `create_time`,
`source_item_id`, `source_item_id`,
`item_sku`, `item_sku`,
`item_num` `item_num`
from tb_cf_cart_record_r from tb_cf_cart_record_r
where item_sku =#{itemSku} and source_item_id=#{sourceItemId} and enable_flag=1 where 1=1
and user_id=#{userId}
and enable_flag=1
<if test="itemSku != null and itemSku.trim() != ''">
and item_sku =#{itemSku}
</if>
<if test="sourceItemId != null and sourceItemId.trim() != ''">
and source_item_id=#{sourceItemId}
</if>
<if test="itemId != null and itemId.trim() != ''">
and item_id=#{itemId}
</if>
</select> </select>
<select id="queryByItemId" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCartRecordREntity"> <select id="queryByItemId" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCartRecordREntity">
select `cart_record_id`, select `cart_record_id`,
`item_id`, `item_id`,
`user_id`, `user_id`,
`check_flag`, `check_flag`,
`enable_flag`, `enable_flag`,
`create_time`, `create_time`,
`source_item_id`, `source_item_id`,
`item_sku`, `item_sku`,
`item_num` from tb_cf_cart_record_r where item_id =#{itemId} and enable_flag=1 `item_num` from tb_cf_cart_record_r where 1=1
and enable_flag=1
and user_id=#{userId}
and item_id =#{itemId}
<if test="itemSku != null and itemSku.trim() != ''">
and item_sku =#{itemSku}
</if>
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
<if test="shopUrl != null">`shop_url` = #{shopUrl},</if> <if test="shopUrl != null">`shop_url` = #{shopUrl},</if>
<if test="createTime != null">`create_time` = #{createTime}</if> <if test="createTime != null">`create_time` = #{createTime}</if>
</set> </set>
where item_id = #{itemId} where item_id = #{itemId} and item_sku=#{itemSku}
</update> </update>
<delete id="delete"> <delete id="delete">
...@@ -165,12 +165,33 @@ ...@@ -165,12 +165,33 @@
<!--获取用户购物车内商品--> <!--获取用户购物车内商品-->
<select id="getCartItemList" resultType="com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo"> <select id="getCartItemList" resultType="com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo">
select t1.cart_record_id,t1.check_flag,t2.* from tb_cf_cart_record_r t1,tb_cf_item_detail t2 where t1.item_id=t2.item_id select
and t1.user_id=#{userId} and t2.item_price is not null t1.cart_record_id,
t1.check_flag,
t2.item_id,
t2.source_item_id,
t2.station_id,
t2.station_type,
t2.item_title,
t2.item_num,
t2.item_img,
t2.item_price,
t2.item_category,
t2.item_sku,
t2.shop_id,
t2.shop_name,
t2.shop_url,
t2.create_time
from
tb_cf_cart_record_r t1 left join tb_cf_item_detail t2 on t1.item_id=t2.item_id and t1.item_sku=t2.item_sku
where 1=1
and t1.user_id=#{userId}
and t2.item_price is not null
and t1.enable_flag=1 order by t2.create_time desc
<if test="checkFlag != null"> and t1.check_flag = #{checkFlag}</if> <if test="checkFlag != null"> and t1.check_flag = #{checkFlag}</if>
and t1.enable_flag=1 order by t2.create_time desc
</select> </select>
<!--改变购物车的商品勾选状态--> <!--改变购物车的商品勾选状态-->
<update id="changeItemState"> <update id="changeItemState">
update tb_cf_cart_record_r set check_flag=#{checkFlag} where cart_record_id=#{cartRecordId} update tb_cf_cart_record_r set check_flag=#{checkFlag} where cart_record_id=#{cartRecordId}
...@@ -184,4 +205,8 @@ ...@@ -184,4 +205,8 @@
</foreach> </foreach>
</update> </update>
<select id="queryItemNum" resultType="int">
select count(*) from tb_cf_cart_record_r where 1=1 and user_id=#{userId} and enable_flag=1
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<body> <body>
<section style="width: 600px;height :720px;margin:0 auto;box-sizing: border-box;position: relative;"> <section style="width: 600px;height :720px;margin:0 auto;box-sizing: border-box;position: relative;">
<img style="position:absolute;width: 600px;height :720px;top:0;left:0;" src="https://diaopaas.com/wk_vote_node/public/africa-email-bg.png" alt="背景图"> <img style="position:absolute;width: 600px;height :720px;top:0;left:0;" src="https://diaosaas-prod.oss-cn-shenzhen.aliyuncs.com/africa-shop/Afrishop/africa-email-bg.png" alt="背景图">
<span style="position: absolute;top:42.1%;left:8%;display: inline-block;width:50px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">${nick}</span> <span style="position: absolute;top:42.1%;left:8%;display: inline-block;width:50px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">${nick}</span>
<span style="text-align: center;position: absolute;top:63.3%;left:42.4%;display: inline-block;width:90px;white-space: nowrap;">${identifyCode?c}</span> <span style="text-align: center;position: absolute;top:63.3%;left:42.4%;display: inline-block;width:90px;white-space: nowrap;">${identifyCode?c}</span>
</section> </section>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论