添加购物车

This commit is contained in:
LittleBoy 2023-04-07 14:20:51 +08:00
parent f68107920d
commit 727bf63f01
8 changed files with 1586 additions and 1117 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
package com.waimai.api;
import com.waimai.common.annotation.Anonymous;
import com.waimai.common.core.domain.R;
import com.waimai.web.admin.domain.Carts;
import com.waimai.web.admin.service.ICartsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/carts")
@Anonymous
public class CartsController {
private static long uid = 1;
@Autowired
private ICartsService cartsService;
@GetMapping("/list")
public R<List<Carts>> selectList() {
Carts c = new Carts();
c.setUid(uid);
List<Carts> carts = cartsService.selectCartsList(c);
return R.ok(carts);
}
@PostMapping
public R addToCart(@RequestBody Carts carts) {
Carts c = new Carts();
c.setUid(uid);
c.setFid(carts.getFid());
Carts cs = cartsService.selectCartsById(carts.getFid(), uid);
if (cs == null) {
carts.setUid(uid);
cartsService.insertCarts(carts);
} else {
// 数量加1
carts.setCount(
carts.getCount() + cs.getCount()
);
cartsService.updateCarts(carts);
}
return R.ok();
}
}

View File

@ -0,0 +1,109 @@
package com.waimai.web.admin.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.waimai.common.annotation.Excel;
import com.waimai.common.core.domain.BaseEntity;
/**
* carts对象 carts
*
* @author callmeyan
* @date 2023-04-07
*/
public class Carts extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long fid;
/** $column.columnComment */
private Long uid;
private String foodsCover;
private String foodsTitle;
private Integer foodPrice;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long count;
/** 状态 */
@Excel(name = "状态")
private Integer state;
public void setFid(Long fid)
{
this.fid = fid;
}
public Long getFid()
{
return fid;
}
public void setUid(Long uid)
{
this.uid = uid;
}
public Long getUid()
{
return uid;
}
public void setCount(Long count)
{
this.count = count;
}
public Long getCount()
{
return count;
}
public void setState(Integer state)
{
this.state = state;
}
public Integer getState()
{
return state;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("fid", getFid())
.append("uid", getUid())
.append("count", getCount())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("state", getState())
.append("remark", getRemark())
.toString();
}
public String getFoodsCover() {
return foodsCover;
}
public void setFoodsCover(String foodsCover) {
this.foodsCover = foodsCover;
}
public String getFoodsTitle() {
return foodsTitle;
}
public void setFoodsTitle(String foodsTitle) {
this.foodsTitle = foodsTitle;
}
public Integer getFoodPrice() {
return foodPrice;
}
public void setFoodPrice(Integer foodPrice) {
this.foodPrice = foodPrice;
}
}

View File

@ -0,0 +1,63 @@
package com.waimai.web.admin.mapper;
import com.waimai.web.admin.domain.Carts;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* cartsMapper接口
*
* @author callmeyan
* @date 2023-04-07
*/
public interface CartsMapper
{
/**
* 查询carts
*
* @param fid carts主键
* @return carts
*/
public Carts selectCartsById(@Param("fid") Long fid,@Param("uid") Long uid);
/**
* 查询carts列表
*
* @param carts carts
* @return carts集合
*/
public List<Carts> selectCartsList(Carts carts);
/**
* 新增carts
*
* @param carts carts
* @return 结果
*/
public int insertCarts(Carts carts);
/**
* 修改carts
*
* @param carts carts
* @return 结果
*/
public int updateCarts(Carts carts);
/**
* 删除carts
*
* @param fid carts主键
* @return 结果
*/
public int deleteCartsByFid(Long fid);
/**
* 批量删除carts
*
* @param fids 需要删除的数据主键集合
* @return 结果
*/
public int deleteCartsByFids(Long[] fids);
}

View File

@ -0,0 +1,62 @@
package com.waimai.web.admin.service;
import com.waimai.web.admin.domain.Carts;
import java.util.List;
/**
* cartsService接口
*
* @author callmeyan
* @date 2023-04-07
*/
public interface ICartsService
{
/**
* 查询carts
*
* @param fid carts主键
* @return carts
*/
public Carts selectCartsById(Long fid,Long uid);
/**
* 查询carts列表
*
* @param carts carts
* @return carts集合
*/
public List<Carts> selectCartsList(Carts carts);
/**
* 新增carts
*
* @param carts carts
* @return 结果
*/
public int insertCarts(Carts carts);
/**
* 修改carts
*
* @param carts carts
* @return 结果
*/
public int updateCarts(Carts carts);
/**
* 批量删除carts
*
* @param fids 需要删除的carts主键集合
* @return 结果
*/
public int deleteCartsByFids(Long[] fids);
/**
* 删除carts信息
*
* @param fid carts主键
* @return 结果
*/
public int deleteCartsByFid(Long fid);
}

View File

@ -0,0 +1,98 @@
package com.waimai.web.admin.service.impl;
import java.util.List;
import com.waimai.common.utils.DateUtils;
import com.waimai.web.admin.domain.Carts;
import com.waimai.web.admin.mapper.CartsMapper;
import com.waimai.web.admin.service.ICartsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* cartsService业务层处理
*
* @author callmeyan
* @date 2023-04-07
*/
@Service
public class CartsServiceImpl implements ICartsService
{
@Resource
private CartsMapper cartsMapper;
/**
* 查询carts
*
* @param fid carts主键
* @return carts
*/
@Override
public Carts selectCartsById(Long fid,Long uid)
{
return cartsMapper.selectCartsById(fid,uid);
}
/**
* 查询carts列表
*
* @param carts carts
* @return carts
*/
@Override
public List<Carts> selectCartsList(Carts carts)
{
return cartsMapper.selectCartsList(carts);
}
/**
* 新增carts
*
* @param carts carts
* @return 结果
*/
@Override
public int insertCarts(Carts carts)
{
carts.setCreateTime(DateUtils.getNowDate());
return cartsMapper.insertCarts(carts);
}
/**
* 修改carts
*
* @param carts carts
* @return 结果
*/
@Override
public int updateCarts(Carts carts)
{
carts.setUpdateTime(DateUtils.getNowDate());
return cartsMapper.updateCarts(carts);
}
/**
* 批量删除carts
*
* @param fids 需要删除的carts主键
* @return 结果
*/
@Override
public int deleteCartsByFids(Long[] fids)
{
return cartsMapper.deleteCartsByFids(fids);
}
/**
* 删除carts信息
*
* @param fid carts主键
* @return 结果
*/
@Override
public int deleteCartsByFid(Long fid)
{
return cartsMapper.deleteCartsByFid(fid);
}
}

View File

@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3307/waimai_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://localhost:3307/waimai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# 从库数据源

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.waimai.web.admin.mapper.CartsMapper">
<resultMap type="Carts" id="CartsResult">
<result property="fid" column="fid"/>
<result property="uid" column="uid"/>
<result property="foodsTitle" column="foodsTitle"/>
<result property="foodsCover" column="foodsCover"/>
<result property="foodPrice" column="foodPrice"/>
<result property="count" column="count"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="state" column="state"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="selectCartsVo">
select
fid, uid, count, c.create_time, c.update_time, c.state, c.remark,
f.title as foodsTitle,f.cover as foodsCover,f.price as foodPrice
from carts c, food f
</sql>
<select id="selectCartsList" parameterType="Carts" resultMap="CartsResult">
<include refid="selectCartsVo"/>
<where>
c.fid = f.id
<if test="count != null ">and count = #{count}</if>
<if test="state != null ">and state = #{state}</if>
</where>
</select>
<select id="selectCartsById" resultMap="CartsResult">
<include refid="selectCartsVo"/>
where c.fid = f.id and fid = #{fid} and uid = #{uid}
</select>
<insert id="insertCarts" parameterType="Carts">
insert into carts
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="fid != null">fid,</if>
<if test="uid != null">uid,</if>
<if test="count != null">count,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="state != null">state,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="fid != null">#{fid},</if>
<if test="uid != null">#{uid},</if>
<if test="count != null">#{count},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateCarts" parameterType="Carts">
update carts
<trim prefix="SET" suffixOverrides=",">
<if test="uid != null">uid = #{uid},</if>
<if test="count != null">count = #{count},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where fid = #{fid}
</update>
<delete id="deleteCartsByFid" parameterType="Long">
delete
from carts
where fid = #{fid}
</delete>
<delete id="deleteCartsByFids" parameterType="String">
delete from carts where fid in
<foreach item="fid" collection="array" open="(" separator="," close=")">
#{fid}
</foreach>
</delete>
</mapper>