src/main/java/cc/mrbird/febs/common/utils/AppContants.java
@@ -23,6 +23,9 @@ */ public static final Integer IS_APP_CATEGORY = 1; public static final Integer IS_APP_GOODS = 1; public static final Integer IS_APP_ORDER = 1; public static final Integer INSURE_ORDER_NORMAL = 1;//普通结算 public static final Integer INSURE_ORDER_MEMBER = 2;//会员结算 public static final String XCX_LOGIN_PREFIX = "xcx_"; public static final String XCX_LOGIN_PHONE_PREFIX = "xcx_p"; src/main/java/cc/mrbird/febs/mall/controller/ApiMallAppController.java
@@ -50,9 +50,40 @@ return mallAppService.findMallGoodsListNoPage(queryDto); } @ApiOperation(value = "创建订单", notes = "创建订单") @ApiOperation(value = "会员结算", notes = "会员结算") @PostMapping(value = "/createAppOrder") public FebsResponse createAppOrder(@RequestBody ApiAddOrderDto addOrderDto) { return mallAppService.createAppOrder(addOrderDto); } @ApiOperation(value = "普通结算", notes = "普通结算") @PostMapping(value = "/normalInsure") public FebsResponse normalInsure(@RequestBody ApiNormalInsureDto normalInsureDto) { return mallAppService.normalInsure(normalInsureDto); } @ApiOperation(value = "挂单", notes = "挂单") @PostMapping(value = "/registAppOrder") public FebsResponse registAppOrder(@RequestBody ApiRegistAppOrderDto registAppOrderDto) { return mallAppService.registAppOrder(registAppOrderDto); } @ApiOperation(value = "取单列表", notes = "取单列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiGetOrderListVo.class) }) @PostMapping(value = "/getOrderList") public FebsResponse getOrderList(@RequestBody ApiGetOrderListDto orderListDto) { return mallAppService.getOrderList(orderListDto); } @ApiOperation(value = "取单", notes = "取单") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiGetOrderListVo.class) }) @PostMapping(value = "/getOrder") public FebsResponse getOrder(@RequestBody ApiGetOrderDto apiGetOrderDto) { return mallAppService.getOrder(apiGetOrderDto); } } src/main/java/cc/mrbird/febs/mall/dto/ApiAddOrderDto.java
@@ -13,6 +13,9 @@ @ApiModelProperty(value = "订单结算方式 1:普通结算 2:会员结算", example = "1") private Integer type; @ApiModelProperty(value = "会员ID", example = "1") private Long memberId; @ApiModelProperty(value = "商品明细") private List<ApiAddOrderItemDto> items; src/main/java/cc/mrbird/febs/mall/dto/ApiAddOrderItemDto.java
@@ -5,17 +5,18 @@ import lombok.Data; import javax.validation.constraints.NotNull; import java.math.BigDecimal; @Data @ApiModel(value = "ApiAddOrderItemDto", description = "新增订单明细参数接收类") public class ApiAddOrderItemDto { @NotNull(message = "参数不能为空") @ApiModelProperty(value = "skuID", example = "1") private Long skuId; @ApiModelProperty(value = "商品id", example = "1") private Long id; @NotNull(message = "参数不能为空") @ApiModelProperty(value = "数量", example = "2") private Integer cnt; private BigDecimal cnt; } src/main/java/cc/mrbird/febs/mall/dto/ApiGetOrderDto.java
New file @@ -0,0 +1,14 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "ApiGetOrderDto", description = "参数接收类") public class ApiGetOrderDto { @ApiModelProperty(value = "订单ID", example = "10") private Long orderId; } src/main/java/cc/mrbird/febs/mall/dto/ApiGetOrderListDto.java
New file @@ -0,0 +1,20 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "ApiGetOrderListDto", description = "参数接收类") public class ApiGetOrderListDto { @ApiModelProperty(value = "一页数量", example = "10") private Integer pageSize; @ApiModelProperty(value = "第几页", example = "1") private Integer pageNum; @ApiModelProperty(hidden = true) private Integer status; } src/main/java/cc/mrbird/febs/mall/dto/ApiNormalInsureDto.java
New file @@ -0,0 +1,19 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "ApiNormalInsureDto", description = "新增订单接口参数接收类") public class ApiNormalInsureDto { @ApiModelProperty(value = "订单结算方式 1:普通结算 2:会员结算", example = "1") private Integer type; @ApiModelProperty(value = "商品明细") private List<ApiAddOrderItemDto> items; } src/main/java/cc/mrbird/febs/mall/dto/ApiRegistAppOrderDto.java
New file @@ -0,0 +1,15 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "ApiRegistAppOrderDto", description = "新增订单接口参数接收类") public class ApiRegistAppOrderDto { @ApiModelProperty(value = "商品明细") private List<ApiAddOrderItemDto> items; } src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -38,6 +38,7 @@ * 状态 1-待支付2-待发货3-待收货4-已完成5-退款中6-已退款7-已取消 */ private Integer status; private Integer isApp; /** * 取消类型 1-超时未支付2-主动取消 src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
@@ -35,6 +35,8 @@ private BigDecimal amount; private BigDecimal appCnt; private BigDecimal costPrice; private Integer isNormal; src/main/java/cc/mrbird/febs/mall/mapper/MallMemberWalletMapper.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; public interface MallMemberWalletMapper extends BaseMapper<MallMemberWallet> { MallMemberWallet selectWalletByMemberId(@Param("memberId") Long memberId); @@ -15,4 +17,6 @@ int updateAmountWithVersion(@Param("record") MallMemberWallet wallet); void updateBalanceWithId(@Param("record")MallMemberWallet mallMemberWallet); void updateBalanceScoreWithId(@Param("record")MallMemberWallet mallMemberWallet); } src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -1,14 +1,12 @@ package cc.mrbird.febs.mall.mapper; import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum; import cc.mrbird.febs.mall.dto.ApiGetOrderListDto; import cc.mrbird.febs.mall.dto.MallOrderInfoDto; import cc.mrbird.febs.mall.dto.OrderListDto; import cc.mrbird.febs.mall.entity.MallOrderInfo; import cc.mrbird.febs.mall.entity.MallOrderItem; import cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo; import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; import cc.mrbird.febs.mall.vo.AdminMallOrderVo; import cc.mrbird.febs.mall.vo.AdminOrderDetailVo; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -79,4 +77,8 @@ MallOrderInfo selectAllOrderInfoByIdAndTakeUniqueCode(@Param("orderId")long orderId,@Param("takeUniqueCode") String takeUniqueCode); IPage<AdminGoodsStatisticsVo> getGoodsStatisticsInPage(Page<AdminGoodsStatisticsVo> page, @Param("record") MallOrderItem mallOrderItem); IPage<ApiGetOrderListVo> getAppOrderListInPage(IPage<ApiGetOrderListVo> page, @Param("record")ApiGetOrderListDto orderListDto); ApiGetOrderListVo getAppOrderByOrderId(@Param("orderId")Long orderId); } src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
@@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.mapper; import cc.mrbird.febs.mall.entity.MallOrderItem; import cc.mrbird.febs.mall.vo.ApiGetOrderOrderItemVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -15,4 +16,6 @@ void updateStateByOrderId(@Param("state")Integer i, @Param("orderId")Long id); List<MallOrderItem> selectListByOrderId(@Param("orderId")Long id); List<ApiGetOrderOrderItemVo> getAppOrderItemByOrderId(@Param("orderId")Long id); } src/main/java/cc/mrbird/febs/mall/service/IApiMallAppService.java
@@ -16,4 +16,12 @@ FebsResponse findMallGoodsListNoPage(ApiMallGoodsQueryDto queryDto); FebsResponse createAppOrder(ApiAddOrderDto addOrderDto); FebsResponse registAppOrder(ApiRegistAppOrderDto addOrderDto); FebsResponse normalInsure(ApiNormalInsureDto normalInsureDto); FebsResponse getOrderList(ApiGetOrderListDto orderListDto); FebsResponse getOrder(ApiGetOrderDto apiGetOrderDto); } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
@@ -1,22 +1,19 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.MallAppMember; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.mapper.MallAppMemberMapper; import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper; import cc.mrbird.febs.mall.mapper.MallGoodsMapper; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallAppService; import cc.mrbird.febs.mall.vo.ApiMallAppMemberInfoVo; import cc.mrbird.febs.mall.vo.ApiMallGoodsListVo; import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo; import cc.mrbird.febs.mall.vo.MallGoodsListVo; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -24,11 +21,16 @@ import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -42,7 +44,13 @@ private final MallMemberMapper mallMemberMapper; private final MallGoodsCategoryMapper mallGoodsCategoryMapper; private final MallGoodsMapper mallGoodsMapper; private final MallOrderInfoMapper mallOrderInfoMapper; private final MallOrderItemMapper mallOrderItemMapper; private final MallMemberWalletMapper mallMemberWalletMapper; public static void main(String[] args) { System.out.println(SecureUtil.md5("a123456")); } @Override public FebsResponse appToLogin(LoginDto loginDto) { String md5Pwd = SecureUtil.md5(loginDto.getPassword()); @@ -90,10 +98,202 @@ } @Override @Transactional public FebsResponse createAppOrder(ApiAddOrderDto addOrderDto) { MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(addOrderDto.getMemberId()); if (ObjectUtil.isEmpty(mallMemberWallet)) { throw new FebsException("用户钱包不存在。"); } if (CollUtil.isEmpty(addOrderDto.getItems())) { throw new FebsException("商品明细不能为空。"); } Integer type = addOrderDto.getType(); String orderNo = MallUtils.getOrderNum(); MallOrderInfo orderInfo = new MallOrderInfo(); orderInfo.setOrderNo(orderNo); orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setMemberId(addOrderDto.getMemberId()); //会员结算 orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); mallOrderInfoMapper.insert(orderInfo); BigDecimal total = BigDecimal.ZERO;//总支付金额 //订单子表记录 for (ApiAddOrderItemDto item : addOrderDto.getItems()) { MallOrderItem orderItem = new MallOrderItem(); MallGoods mallGoods = mallGoodsMapper.selectById(item.getId()); //现价 BigDecimal presentPrice = new BigDecimal(mallGoods.getPresentPrice()); BigDecimal amount = presentPrice.multiply(item.getCnt()); orderItem.setAmount(amount); orderItem.setOrderId(orderInfo.getId()); orderItem.setPrice(presentPrice); orderItem.setAppCnt(item.getCnt()); orderItem.setGoodsId(mallGoods.getId()); orderItem.setGoodsName(mallGoods.getGoodsName()); orderItem.setSkuImage(mallGoods.getThumb()); orderItem.setState(1); // return new FebsResponse().success().data(orderId).message("创建订单成功"); return new FebsResponse().success().message("创建订单成功"); total = total.add(amount); mallOrderItemMapper.insert(orderItem); } orderInfo.setAmount(total); orderInfo.setMemberId(mallMemberWallet.getMemberId()); //折扣费用 if(AppContants.INSURE_ORDER_MEMBER.equals(type)){ BigDecimal score = mallMemberWallet.getScore();//积分 BigDecimal balance = mallMemberWallet.getBalance();//余额 //这里将运费定义成折扣总金额 /** * 积分 + 余额 1:1来折扣支付金额 */ BigDecimal totalCarriage = BigDecimal.ZERO;//总折扣金额 BigDecimal memberAmount = score.add(balance);//用户积分加余额总数 if(memberAmount.compareTo(BigDecimal.ZERO) > 0){ //折扣金额 if(total.compareTo(memberAmount) >= 0){ totalCarriage = memberAmount; }else{ totalCarriage = total; } //减少用户积分和余额 BigDecimal avaAmount = totalCarriage;//剩余需要折扣的金额 if(avaAmount.compareTo(memberAmount) >= 0){ //清零用户的积分和余额 mallMemberWallet.setBalance(BigDecimal.ZERO); mallMemberWallet.setScore(BigDecimal.ZERO); mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); }else{ /** * 先扣积分,再扣余额 */ if(avaAmount.compareTo(score) >= 0){ mallMemberWallet.setScore(BigDecimal.ZERO); avaAmount = avaAmount.subtract(score); }else{ mallMemberWallet.setScore(score.subtract(avaAmount)); avaAmount = BigDecimal.ZERO; } //积分不够 if(avaAmount.compareTo(BigDecimal.ZERO) > 0){ mallMemberWallet.setBalance(balance.subtract(avaAmount)); }else{ mallMemberWallet.setBalance(balance); } mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); } } orderInfo.setCarriage(totalCarriage); } mallOrderInfoMapper.updateById(orderInfo); Map<String, Object> orderInfoMap = new HashMap<>(); orderInfoMap.put("orderId", orderInfo.getId()); orderInfoMap.put("totalAmount", orderInfo.getAmount()); orderInfoMap.put("totalCarriage", orderInfo.getCarriage()); return new FebsResponse().success().data(orderInfoMap); } @Override public FebsResponse registAppOrder(ApiRegistAppOrderDto addOrderDto) { String orderNo = MallUtils.getOrderNum(); MallOrderInfo orderInfo = new MallOrderInfo(); orderInfo.setOrderNo(orderNo); orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); if (CollUtil.isEmpty(addOrderDto.getItems())) { throw new FebsException("商品明细不能为空。"); } mallOrderInfoMapper.insert(orderInfo); BigDecimal total = BigDecimal.ZERO;//总支付金额 //订单子表记录 for (ApiAddOrderItemDto item : addOrderDto.getItems()) { MallOrderItem orderItem = new MallOrderItem(); MallGoods mallGoods = mallGoodsMapper.selectById(item.getId()); //现价 BigDecimal presentPrice = new BigDecimal(mallGoods.getPresentPrice()); BigDecimal amount = presentPrice.multiply(item.getCnt()); orderItem.setAmount(amount); orderItem.setOrderId(orderInfo.getId()); orderItem.setPrice(presentPrice); orderItem.setAppCnt(item.getCnt()); orderItem.setGoodsId(mallGoods.getId()); orderItem.setGoodsName(mallGoods.getGoodsName()); orderItem.setSkuImage(mallGoods.getThumb()); orderItem.setState(1); mallOrderItemMapper.insert(orderItem); total = total.add(amount); } orderInfo.setAmount(total); mallOrderInfoMapper.updateById(orderInfo); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse normalInsure(ApiNormalInsureDto addOrderDto) { String orderNo = MallUtils.getOrderNum(); MallOrderInfo orderInfo = new MallOrderInfo(); orderInfo.setOrderNo(orderNo); orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); if (CollUtil.isEmpty(addOrderDto.getItems())) { throw new FebsException("商品明细不能为空。"); } mallOrderInfoMapper.insert(orderInfo); BigDecimal total = BigDecimal.ZERO;//总支付金额 //订单子表记录 for (ApiAddOrderItemDto item : addOrderDto.getItems()) { MallOrderItem orderItem = new MallOrderItem(); MallGoods mallGoods = mallGoodsMapper.selectById(item.getId()); //现价 BigDecimal presentPrice = new BigDecimal(mallGoods.getPresentPrice()); BigDecimal amount = presentPrice.multiply(item.getCnt()); orderItem.setAmount(amount); orderItem.setOrderId(orderInfo.getId()); orderItem.setPrice(presentPrice); orderItem.setAppCnt(item.getCnt()); orderItem.setGoodsId(mallGoods.getId()); orderItem.setGoodsName(mallGoods.getGoodsName()); orderItem.setSkuImage(mallGoods.getThumb()); orderItem.setState(1); total = total.add(amount); mallOrderItemMapper.insert(orderItem); } orderInfo.setCarriage(BigDecimal.ZERO);//折扣费用 orderInfo.setAmount(total); mallOrderInfoMapper.updateById(orderInfo); Map<String, Object> orderInfoMap = new HashMap<>(); orderInfoMap.put("orderId", orderInfo.getId()); orderInfoMap.put("totalAmount", orderInfo.getAmount()); orderInfoMap.put("totalCarriage", orderInfo.getCarriage()); return new FebsResponse().success().data(orderInfoMap); } @Override public FebsResponse getOrderList(ApiGetOrderListDto orderListDto) { IPage<ApiGetOrderListVo> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize()); orderListDto.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); IPage<ApiGetOrderListVo> apiGetOrderListVos = mallOrderInfoMapper.getAppOrderListInPage(page, orderListDto); if (CollUtil.isNotEmpty(apiGetOrderListVos.getRecords())) { apiGetOrderListVos.getRecords().forEach(item -> { item.setItems(mallOrderItemMapper.getAppOrderItemByOrderId(item.getId())); }); } return new FebsResponse().success().data(apiGetOrderListVos); } @Override public FebsResponse getOrder(ApiGetOrderDto apiGetOrderDto) { ApiGetOrderListVo apiGetOrderListVo = mallOrderInfoMapper.getAppOrderByOrderId(apiGetOrderDto.getOrderId()); if(ObjectUtil.isNotEmpty(apiGetOrderListVo)){ apiGetOrderListVo.setItems(mallOrderItemMapper.getAppOrderItemByOrderId(apiGetOrderListVo.getId())); } return new FebsResponse().success().data(apiGetOrderListVo); } public String generateAsaToken(String token) { src/main/java/cc/mrbird/febs/mall/vo/ApiGetOrderListVo.java
New file @@ -0,0 +1,23 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data @ApiModel(value = "ApiGetOrderListVo", description = "信息返回类") public class ApiGetOrderListVo { @ApiModelProperty(value = "订单ID") private Long id; @ApiModelProperty(value = "订单总金额") private BigDecimal amount; @ApiModelProperty(value = "订单明细") private List<ApiGetOrderOrderItemVo> items; } src/main/java/cc/mrbird/febs/mall/vo/ApiGetOrderOrderItemVo.java
New file @@ -0,0 +1,34 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel(value = "ApiGetOrderOrderItemVo", description = "信息返回类") public class ApiGetOrderOrderItemVo { @ApiModelProperty(value = "商品ID") private Long goodsId; @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "主图") private String skuImage; @ApiModelProperty(value = "单价") private BigDecimal price; @ApiModelProperty(value = "数量") private BigDecimal appCnt; @ApiModelProperty(value = "总价") private BigDecimal amount; @ApiModelProperty(value = "1:按数量计价 2:按重量计价") private String unit; } src/main/java/cc/mrbird/febs/mall/vo/ApiMallAppMemberInfoVo.java
@@ -8,6 +8,9 @@ @ApiModel(value = "ApiMallAppMemberInfoVo", description = "返回参数类") public class ApiMallAppMemberInfoVo { @ApiModelProperty(value = "会员ID") private Long id; @ApiModelProperty(value = "头像") private String avatar; src/main/resources/mapper/modules/MallAppMemberMapper.xml
@@ -11,6 +11,7 @@ <select id="selectMemberInfoLikePhone" resultType="cc.mrbird.febs.mall.vo.ApiMallAppMemberInfoVo"> select a.id id, a.avatar phone, a.name nickname, a.phone phone, src/main/resources/mapper/modules/MallMemberWalletMapper.xml
@@ -44,4 +44,14 @@ </if> where id=#{record.id} and revision=#{record.revision} </update> <update id="updateBalanceScoreWithId"> update mall_member_wallet set revision = revision + 1 , balance = #{record.balance}, score = #{record.score} where id = #{record.id} and revision = #{record.revision} </update> </mapper> src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -468,19 +468,42 @@ </select> <select id="getGoodsStatisticsInPage" resultType="cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo"> select goods_name goodsName, SUM(cnt) goodsCnt from mall_order_item <where> <if test="record.orderIdsStr != null"> and order_id in <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> </where> GROUP BY goods_id ORDER BY goods_id desc </select> select goods_name goodsName, SUM(cnt) goodsCnt from mall_order_item <where> <if test="record.orderIdsStr != null"> and order_id in <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> </where> GROUP BY goods_id ORDER BY goods_id desc </select> <select id="getAppOrderListInPage" resultType="cc.mrbird.febs.mall.vo.ApiGetOrderListVo"> select a.id, a.amount from mall_order_info a <where> a.is_app = 1 <if test="record.status != null"> and a.status = #{record.status} </if> </where> </select> <select id="getAppOrderByOrderId" resultType="cc.mrbird.febs.mall.vo.ApiGetOrderListVo"> select a.id, a.amount from mall_order_info a where a.is_app = 1 and id = #{orderId} </select> </mapper> src/main/resources/mapper/modules/MallOrderItemMapper.xml
@@ -25,4 +25,20 @@ </select> <select id="getAppOrderItemByOrderId" resultType="cc.mrbird.febs.mall.vo.ApiGetOrderOrderItemVo"> select a.goods_id, a.goods_name, a.sku_image, a.price, a.app_cnt, a.amount, b.unit from mall_order_item a left join mall_goods b on a.goods_id = b.id where a.order_id = #{orderId} </select> </mapper>