From 17cea8fe652d1566e856e168d528a1af628e2140 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 14 Jul 2025 10:22:00 +0800 Subject: [PATCH] feat(mall): 添加订单角标数量接口并优化相关功能 --- src/main/java/cc/mrbird/febs/mall/mapper/ClothesOrderMapper.java | 5 + src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 4 src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java | 2 src/main/resources/mapper/modules/ClothesOrderMapper.xml | 15 ++++ src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesOrderController.java | 8 ++ src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java | 6 + src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderItemInfoDto.java | 4 - src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java | 16 +++-- src/main/java/cc/mrbird/febs/mall/service/ApiClothesOrderService.java | 2 src/main/resources/templates/febs/views/modules/clothesType/orderList.html | 31 +++++---- src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java | 28 +++++++-- src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiMyDraftSaveDto.java | 13 ---- src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderPayDto.java | 2 13 files changed, 86 insertions(+), 50 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesOrderController.java index b078725..da4032f 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesOrderController.java @@ -102,6 +102,14 @@ return apiClothesOrderService.findOrderList(dto); } + + @ApiOperation(value = "获取订单角标数量") + @GetMapping(value = "/findMarkCnt") + public FebsResponse findMarkCnt() { + + return apiClothesOrderService.findMarkCnt(); + } + @ApiOperation(value = "订单详情", notes = "订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiClothesOrderListInfoVo.class) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java index 861888d..4904d8e 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java @@ -244,9 +244,13 @@ */ @GetMapping("deliverGoods/{id}") @RequiresPermissions("deliverGoods:update") - public String deliverGoods(@PathVariable long id, Model model) { + public String deliverGoods(@PathVariable Long id, Model model) { AdminClothesDeliverGoodsVo data = new AdminClothesDeliverGoodsVo(); ClothesOrder clothesOrder = clothesOrderMapper.selectById(id); + data.setId(clothesOrder.getId()); + data.setName(clothesOrder.getName()); + data.setPhone(clothesOrder.getPhone()); + data.setAddress(clothesOrder.getAddress()); data.setExpressCom("极兔快递"); MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectOne( Wrappers.lambdaQuery(MallExpressInfo.class) diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderItemInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderItemInfoDto.java index aa68da2..329ccb1 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderItemInfoDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderItemInfoDto.java @@ -15,10 +15,6 @@ private Long skuId; @NotNull(message = "参数不能为空") - @ApiModelProperty(value = "数量", example = "2") - private Integer cnt; - - @NotNull(message = "参数不能为空") @ApiModelProperty(value = "类型 1正面图案 2反面图案 3工艺 4布料 5尺码 6尺码自定义", example = "2") private Integer type; diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderPayDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderPayDto.java index 71ba600..827fa0d 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderPayDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesOrderPayDto.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "订单ID") private Long id; - @NotBlank(message = "参数不能为空") + @NotNull(message = "参数不能为空") @ApiModelProperty(value = "支付类型", example = "1微信2支付宝3余额") private Integer type; diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiMyDraftSaveDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiMyDraftSaveDto.java index 60e28b3..f459ee7 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiMyDraftSaveDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiMyDraftSaveDto.java @@ -32,19 +32,6 @@ private List<ApiLocationAddDto> locationList; - @NotNull(message = "图案不能为空") - @ApiModelProperty(value = "图案ID") - private Long patternId; - - @ApiModelProperty(value = "自定义内容") - private String patternRemark; - - - @NotNull(message = "图案位置不能为空") - @ApiModelProperty(value = "图案位置ID") - private Long locationId; - - @NotNull(message = "布料不能为空") @ApiModelProperty(value = "布料ID") private Long clothId; diff --git a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java index fda9a9a..6525e83 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiSocialInfoDto.java @@ -7,7 +7,7 @@ import javax.validation.constraints.NotNull; @Data -@ApiModel(value = "ApiMyDraftSaveDto", description = "参数") +@ApiModel(value = "ApiSocialInfoDto", description = "参数") public class ApiSocialInfoDto { @NotNull(message = "社区不能为空") diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesOrderMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesOrderMapper.java index cd46ad7..5dbe856 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/ClothesOrderMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/ClothesOrderMapper.java @@ -10,9 +10,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + public interface ClothesOrderMapper extends BaseMapper<ClothesOrder> { Page<ApiClothesOrderListVo> selectPageInOrder(Page<ApiClothesOrderListVo> page, @Param("record")ApiClothesOrderListVoDto dto); IPage<AdminClothesOrderListVo> selectOrderListInPage(Page<AdminClothesOrderListVo> page, @Param("record")AdminClothesOrderListDto dto); + + List<Map<String, Integer>> selectOrderStatusCnt(@Param("memberId")Long memberId); } diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java index e408b37..c31acb3 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java @@ -2,6 +2,7 @@ import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cn.hutool.core.collection.CollUtil; @@ -90,10 +91,13 @@ } -// @Scheduled(cron = "0/5 * * * * ? ") -// public void wakeup() { -// log.info("本地保持唤醒状态"); -// Long id = 5L; -// mallMemberMapper.selectById(id); -// } + + + @Autowired + private RedisUtils redisUtils; + + @Scheduled(cron = "0/5 * * * * ? ") + public void wakeup() { + redisUtils.set("wakeup", "wakeup"); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/ApiClothesOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/ApiClothesOrderService.java index 77d2fbe..95a4d21 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/ApiClothesOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/ApiClothesOrderService.java @@ -25,6 +25,8 @@ FebsResponse findOrderList(ApiClothesOrderListVoDto dto); + FebsResponse findMarkCnt(); + FebsResponse orderDetails(Long id); FebsResponse confirmOrder(Long id); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java index 42e3832..a6c9631 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java @@ -431,7 +431,7 @@ orderItem.setItemId(cloth.getId()); orderItem.setName(cloth.getName()); orderItem.setPrice(cloth.getPrice()); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setAmount(cloth.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); clothesOrderItemMapper.insert(orderItem); @@ -445,7 +445,7 @@ orderItem.setItemId(size.getId()); orderItem.setName(size.getName()); orderItem.setPrice(size.getPrice()); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setAmount(orderItem.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); clothesOrderItemMapper.insert(orderItem); @@ -459,7 +459,7 @@ orderItem.setItemId(location.getId()); orderItem.setName(location.getName()); orderItem.setPrice(location.getPrice()); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setAmount(orderItem.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); orderItem.setRemark(item.getPatternRemark()); clothesOrderItemMapper.insert(orderItem); @@ -475,7 +475,7 @@ orderItem.setRemark(item.getPatternRemark()); orderItem.setName(pattern.getName()); orderItem.setPrice(pattern.getPrice()); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setRemark(item.getPatternRemark()); orderItem.setAmount(orderItem.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); clothesOrderItemMapper.insert(orderItem); @@ -490,7 +490,7 @@ orderItem.setItemId(art.getId()); orderItem.setName(art.getName()); orderItem.setPrice(art.getPrice()); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setAmount(orderItem.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); clothesOrderItemMapper.insert(orderItem); @@ -501,7 +501,7 @@ orderItem.setItemId(clothesMemberStature.getId()); orderItem.setName(clothesMemberStature.getName()); orderItem.setPrice(BigDecimal.ZERO); - orderItem.setItemCnt(item.getCnt()); + orderItem.setItemCnt(orderItem.getItemCnt()); orderItem.setAmount(orderItem.getPrice().multiply(new BigDecimal(orderItem.getItemCnt())).setScale(2, RoundingMode.DOWN)); clothesOrderItemMapper.insert(orderItem); @@ -747,6 +747,22 @@ return new FebsResponse().success().data(voPage); } + @Override + public FebsResponse findMarkCnt() { + Long memberId = LoginUserUtil.getLoginUser().getId(); + + List<Map<String, Integer>> maps = clothesOrderMapper.selectOrderStatusCnt(memberId); + Map<Integer, Integer> orderCnt = new HashMap<>(); + if (CollUtil.isNotEmpty(maps)) { + for (Map<String, Integer> map : maps) { + orderCnt.put(map.get("status"), map.get("cnt")); + } + } + + Map<String, Object> result = new HashMap<>(); + result.put("order", orderCnt); + return new FebsResponse().success().data(result); + } private List<ApiClothesOrderItemInfoVo> buildOrderItemInfo(Long id) { diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java index 0c1efce..5c057b5 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java @@ -547,8 +547,8 @@ clothesOrderMapper.update( null, Wrappers.lambdaUpdate(ClothesOrder.class) - .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.CANCEL.getValue()) - .set(ClothesOrder::getUpdatedTime, new Date()) + .set(ClothesOrder::getStatus, value) + .set(ClothesOrder::getUpdatedTime, date) .eq(ClothesOrder::getId, id) ); } diff --git a/src/main/resources/mapper/modules/ClothesOrderMapper.xml b/src/main/resources/mapper/modules/ClothesOrderMapper.xml index 37a7688..b16c659 100644 --- a/src/main/resources/mapper/modules/ClothesOrderMapper.xml +++ b/src/main/resources/mapper/modules/ClothesOrderMapper.xml @@ -21,7 +21,7 @@ b.name like CONCAT('%', CONCAT(#{record.query}, '%')) or ) </if> - <if test="record.status != null"> + <if test="record.status != 0"> and ( a.status = #{record.status} ) @@ -64,7 +64,7 @@ <where> <if test="record != null"> - <if test="record.payResult != null"> + <if test="record.payResult != null and record.payResult != ''"> and a.pay_result = #{record.payResult} </if> <if test="record.status != null"> @@ -87,4 +87,15 @@ order by a.created_time desc </select> + + + <select id="selectOrderStatusCnt" resultType="java.util.Map"> + select + a.status, + count(1) cnt + from clothes_order a + where a.del_flag=0 and a.member_id=#{memberId} + group by a.status + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html index 486eb98..d5a50f8 100644 --- a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html +++ b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html @@ -159,16 +159,19 @@ } let ids = ""; for(let i = 0;i < data.length;i++){ - if(data[i].status != 1){ + if(data[i].status != 2){ febs.alert.warn('请选择待发货的订单'); return; + }else{ + ids = data[i].id; } } + console.log(ids); if(ids == null || ids == ""){ febs.alert.warn('请选择订单'); return; } - febs.modal.open('发货', 'modules/clothesType/deliverGoods/' + data.id, { + febs.modal.open('发货', 'modules/clothesType/deliverGoods/' + ids, { btn: ['确认','取消'], yes: function (index, layero) { $('#deliver-update-clothes').find('#submit').trigger('click'); @@ -190,13 +193,15 @@ if(data[i].status != 2){ febs.alert.warn('请选择待收货的订单'); return; + }else{ + ids = data[i].id; } } if(ids == null || ids == ""){ febs.alert.warn('请选择订单'); return; } - febs.modal.open('修改物流信息', 'modules/clothesType/deliverGoods/' + data.id, { + febs.modal.open('修改物流信息', 'modules/clothesType/deliverGoods/' + ids, { btn: ['确认','取消'], yes: function (index, layero) { $('#deliver-update-clothes').find('#deliverInfoSubmit').trigger('click'); @@ -215,7 +220,7 @@ } let ids = ""; for(let i = 0;i < data.length;i++){ - if(data[i].status == 2 ){ + if(data[i].status != 2 ){ febs.alert.warn('请选择待发货的订单'); return; }else{ @@ -247,7 +252,7 @@ febs.alert.warn('请选择订单'); return; } - febs.get(ctx + 'admin/clothesType/confirmOrder?ids='+ids, null, function () { + febs.get(ctx + 'admin/clothesType/confirmOrder/'+ids, null, function () { febs.alert.success('操作成功'); $query.click(); }); @@ -278,7 +283,7 @@ }); function refundOrder(id) { - febs.get(ctx + 'admin/clothesType/refundOrder' + id, null, function () { + febs.get(ctx + 'admin/clothesType/refundOrder/' + id, null, function () { febs.alert.success('操作成功'); $query.click(); }); @@ -334,14 +339,15 @@ cols: [[ {type: 'checkbox', fixed: 'left'}, {type: 'numbers', title: '', width: 80}, - {title: '操作', - templet: function (d) { - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder">详情</button>' - },minWidth: 200,align:'center'}, + // {title: '操作', + // templet: function (d) { + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder">详情</button>' + // },minWidth: 200,align:'center'}, {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left' ,totalRowText:"合计"}, {field: 'memberName', title: '购买人', minWidth: 100,align:'left'}, {field: 'typeName', title: '类型', minWidth: 100,align:'left'}, - {field: 'typeImage', title: '图片', minWidth: 100,align:'left'}, + // {field: 'goodsName', title: '商品', minWidth: 160,align:'left'}, + // {field: 'typeImage', title: '图片', minWidth: 100,align:'left'}, {field: 'goodsCnt', title: '数量', minWidth: 120,align:'left'}, {field: 'status', title: '状态', templet: function (d) { @@ -359,7 +365,6 @@ return '' } }, minWidth: 80,align:'center'}, - {field: 'goodsName', title: '商品', minWidth: 160,align:'left'}, {field: 'amount', title: '总价', minWidth: 80,align:'left', totalRow:true}, {field: 'discountAmount', title: '优惠', minWidth: 80,align:'left', totalRow:true}, {field: 'carriage', title: '邮费', minWidth: 80,align:'left', totalRow:true}, @@ -388,8 +393,6 @@ orderNo: $searchForm.find('input[name="orderNo"]').val().trim(), payResult: $searchForm.find("select[name='payResult']").val(), status: $searchForm.find("select[name='status']").val(), - isHome: $searchForm.find("select[name='isHome']").val(), - uniqueCode: $searchForm.find("select[name='uniqueCode']").val(), }; } -- Gitblit v1.9.1