提交 57d142fc 作者: zhenjie

购物车相关接口

上级 76dd011e
...@@ -41,8 +41,8 @@ public class UavCartController extends BaseController { ...@@ -41,8 +41,8 @@ public class UavCartController extends BaseController {
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("updateNum") @GetMapping("updateNum")
public ResultBody updateNum(@RequestParam(required = true) Integer id, public ResultBody updateNum(@RequestParam(required = true) Integer id,
@ApiParam("改变的数量(正加负减)") @RequestParam(required = true) Integer buyNum, HttpServletRequest request) { @ApiParam("改变的数量(正加负减)") @RequestParam(required = true) Integer changeNum, HttpServletRequest request) {
return uavCartService.updateNum(id, buyNum); return uavCartService.updateNum(id, changeNum);
} }
@ApiOperation(value = "购物车列表") @ApiOperation(value = "购物车列表")
......
package com.mmc.oms.dao.uav; package com.mmc.oms.dao.uav;
import com.mmc.oms.entity.uav.UavCartCompanyDO;
import com.mmc.oms.entity.uav.UavCartDO; import com.mmc.oms.entity.uav.UavCartDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* @author: zj * @author: zj
* @Date: 2023/9/16 14:38 * @Date: 2023/9/16 14:38
...@@ -14,4 +17,10 @@ public interface UavCartDao { ...@@ -14,4 +17,10 @@ public interface UavCartDao {
void remove(Integer id); void remove(Integer id);
UavCartDO getUavCartDO(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 { ...@@ -13,7 +13,7 @@ public interface UavCartService {
ResultBody remove(Integer id); ResultBody remove(Integer id);
ResultBody updateNum(Integer id, Integer buyNum); ResultBody updateNum(Integer id, Integer changeNum);
ResultBody list(Integer pageNo, Integer pageSize, BaseAccountDTO currentAccount); ResultBody list(Integer pageNo, Integer pageSize, BaseAccountDTO currentAccount);
} }
package com.mmc.oms.service.uav.impl; 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.common.result.ResultBody;
import com.mmc.oms.dao.uav.UavCartDao; 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.entity.uav.UavCartDO;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.user.BaseAccountDTO; import com.mmc.oms.model.dto.user.BaseAccountDTO;
import com.mmc.oms.model.vo.uav.UavCartVO; import com.mmc.oms.model.vo.uav.UavCartVO;
import com.mmc.oms.service.uav.UavCartService; import com.mmc.oms.service.uav.UavCartService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author: zj * @author: zj
* @Date: 2023/9/16 14:40 * @Date: 2023/9/16 14:40
...@@ -32,16 +39,32 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -32,16 +39,32 @@ public class UavCartServiceImpl implements UavCartService {
} }
@Override @Override
public ResultBody updateNum(Integer id, Integer buyNum) { public ResultBody updateNum(Integer id, Integer changeNum) {
UavCartDO uavCartDO = uavCartDao.getUavCartDO(id); UavCartDO uavCartDO = uavCartDao.getUavCartDO(id);
if (uavCartDO != null) { if (uavCartDO == null) {
return ResultBody.error("购物车信息不存在!"); 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 @Override
public ResultBody list(Integer pageNo, Integer pageSize, BaseAccountDTO currentAccount) { 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 @@ ...@@ -2,6 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <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 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, 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) price_stock_id, product_spec, order_num, sale_price, sku_image, sku_no, create_time)
...@@ -18,9 +28,48 @@ ...@@ -18,9 +28,48 @@
update uav_cart set is_deleted = 1 where id = #{id} update uav_cart set is_deleted = 1 where id = #{id}
</update> </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 id="getUavCartDO" resultType="com.mmc.oms.entity.uav.UavCartDO">
select <include refid="cart_column"/> select <include refid="cart_column"/>
from uav_cart from uav_cart
where id = #{id} where id = #{id}
</select> </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> </mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论