提交 57d142fc 作者: zhenjie

购物车相关接口

上级 76dd011e
......@@ -41,8 +41,8 @@ public class UavCartController extends BaseController {
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("updateNum")
public ResultBody updateNum(@RequestParam(required = true) Integer id,
@ApiParam("改变的数量(正加负减)") @RequestParam(required = true) Integer buyNum, HttpServletRequest request) {
return uavCartService.updateNum(id, buyNum);
@ApiParam("改变的数量(正加负减)") @RequestParam(required = true) Integer changeNum, HttpServletRequest request) {
return uavCartService.updateNum(id, changeNum);
}
@ApiOperation(value = "购物车列表")
......
package com.mmc.oms.dao.uav;
import com.mmc.oms.entity.uav.UavCartCompanyDO;
import com.mmc.oms.entity.uav.UavCartDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/16 14:38
......@@ -14,4 +17,10 @@ public interface UavCartDao {
void remove(Integer id);
UavCartDO getUavCartDO(Integer id);
void updateUavCart(UavCartDO uavCartDO);
List<Integer> countList(Integer userAccountId);
List<UavCartCompanyDO> list(Integer begin, Integer pageSize, Integer userAccountId);
}
package com.mmc.oms.entity.uav;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
* @Date: 2023/9/18 15:58
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("最新版-商城购物车-小程序")
public class UavCartCompanyDO implements Serializable {
private static final long serialVersionUID = 1170859050008253153L;
private Integer thirdBackUserAccountId;
private Integer userAccountId;
private String companyName;
private List<UavCartDO> uavCartDOS;
public UavCartCompanyDTO buildUavCartCompanyDTO(){
return UavCartCompanyDTO.builder().thirdBackUserAccountId(this.thirdBackUserAccountId).companyName(this.companyName)
.uavCartDOS(CollectionUtils.isNotEmpty(this.uavCartDOS) ?
this.uavCartDOS.stream().map(UavCartDO::buildUavCartDTO).collect(Collectors.toList()) : null).build();
}
}
package com.mmc.oms.model.dto.uav;
import com.mmc.oms.entity.uav.UavCartDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/18 16:12
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UavCartCompanyDTO implements Serializable {
private static final long serialVersionUID = -6785504068213761405L;
private Integer thirdBackUserAccountId;
private String companyName;
private List<UavCartDTO> uavCartDOS;
}
......@@ -13,7 +13,7 @@ public interface UavCartService {
ResultBody remove(Integer id);
ResultBody updateNum(Integer id, Integer buyNum);
ResultBody updateNum(Integer id, Integer changeNum);
ResultBody list(Integer pageNo, Integer pageSize, BaseAccountDTO currentAccount);
}
package com.mmc.oms.service.uav.impl;
import com.mmc.oms.common.ResultEnum;
import com.mmc.oms.common.result.PageResult;
import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.dao.uav.UavCartDao;
import com.mmc.oms.entity.uav.UavCartCompanyDO;
import com.mmc.oms.entity.uav.UavCartDO;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.vo.uav.UavCartVO;
import com.mmc.oms.service.uav.UavCartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
* @Date: 2023/9/16 14:40
......@@ -32,16 +39,32 @@ public class UavCartServiceImpl implements UavCartService {
}
@Override
public ResultBody updateNum(Integer id, Integer buyNum) {
public ResultBody updateNum(Integer id, Integer changeNum) {
UavCartDO uavCartDO = uavCartDao.getUavCartDO(id);
if (uavCartDO != null) {
return ResultBody.error("购物车信息不存在!");
if (uavCartDO == null) {
return ResultBody.error(ResultEnum.SHOP_CAR_ERROR);
}
// changeNum,正加负减
Integer targetNum = uavCartDO.getOrderNum() + changeNum;
if (targetNum.compareTo(0) <= 0) {
return ResultBody.error(ResultEnum.BUY_NUM_ERROR);
}
return null;
uavCartDO.setOrderNum(targetNum);
uavCartDao.updateUavCart(uavCartDO);
return ResultBody.success();
}
@Override
public ResultBody list(Integer pageNo, Integer pageSize, BaseAccountDTO currentAccount) {
return null;
// 按照第三方企业名称分组查询商品
List<Integer> list = uavCartDao.countList(currentAccount.getUserAccountId());
if (list.size() == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, list.size()));
}
Integer begin = (pageNo - 1) * pageSize;
List<UavCartCompanyDO> uavCartCompanyDOS = uavCartDao.list(begin, pageSize, currentAccount.getUserAccountId());
List<UavCartCompanyDTO> uavCartCompanyDTOS = uavCartCompanyDOS.stream().map(UavCartCompanyDO::buildUavCartCompanyDTO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, list.size(), uavCartCompanyDTOS));
}
}
......@@ -2,6 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.oms.dao.uav.UavCartDao">
<resultMap id="uavCartCompanyRes" type="com.mmc.oms.entity.uav.UavCartCompanyDO">
<id property="thirdBackUserAccountId" column="third_back_user_account_id"/>
<result property="companyName" column="companyName"/>
<result property="userAccountId" column="userAccountId"/>
<collection property="uavCartDOS" ofType="com.mmc.oms.entity.uav.UavCartDO"
select="listUavCart"
column="{thirdBackUserAccountId = third_back_user_account_id, userAccountId = userAccountId}">
</collection>
</resultMap>
<insert id="addCart" parameterType="com.mmc.oms.entity.uav.UavCartDO" useGeneratedKeys="true" keyProperty="id">
insert into uav_cart(user_account_id, third_back_user_account_id, company_name, mall_goods_id, trade_name,
price_stock_id, product_spec, order_num, sale_price, sku_image, sku_no, create_time)
......@@ -18,9 +28,48 @@
update uav_cart set is_deleted = 1 where id = #{id}
</update>
<update id="updateUavCart" parameterType="com.mmc.oms.entity.uav.UavCartDO">
update uav_cart
<set>
<if test="orderNum != null">
order_num = #{orderNum},
</if>
<if test="version != null">
version = #{version} + 1,
</if>
</set>
where id = #{id} and version = #{version}
</update>
<select id="getUavCartDO" resultType="com.mmc.oms.entity.uav.UavCartDO">
select <include refid="cart_column"/>
from uav_cart
where id = #{id}
</select>
<select id="listUavCart" resultType="com.mmc.oms.entity.uav.UavCartDO">
select <include refid="cart_column"/>
from uav_cart
where third_back_user_account_id = #{thirdBackUserAccountId} and user_account_id = #{userAccountId} and is_deleted = 0 order by id desc
</select>
<select id="countList" resultType="java.lang.Integer">
SELECT
DISTINCT third_back_user_account_id
FROM
uav_cart
WHERE
user_account_id = #{userAccountId} and is_deleted = 0
</select>
<select id="list" resultMap="uavCartCompanyRes">
SELECT
third_back_user_account_id, #{userAccountId} AS userAccountId
FROM
( SELECT third_back_user_account_id, #{userAccountId} AS userAccountId
FROM uav_cart
where user_account_id = #{userAccountId} and is_deleted = 0
ORDER BY id DESC limit 1000000000) a
limit #{begin}, #{pageSize}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论