2 files added
8 files modified
| | |
| | | import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum; |
| | | import cc.mrbird.febs.common.enumerates.OrderStatusEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.FebsUtil; |
| | | import cc.mrbird.febs.common.utils.SpringContextHolder; |
| | | import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; |
| | | import cc.mrbird.febs.common.utils.excl.ExcelUtil; |
| | |
| | | import cc.mrbird.febs.pay.service.IXcxPayService; |
| | | import cc.mrbird.febs.pay.util.WechatConfigure; |
| | | import cc.mrbird.febs.system.entity.Dept; |
| | | import cc.mrbird.febs.system.entity.User; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | |
| | | return adminMallOrderService.showStateSwitchOff(id); |
| | | } |
| | | |
| | | /** |
| | | * 订单列表-统计商品份数 |
| | | */ |
| | | @GetMapping("goodsStatistics") |
| | | public FebsResponse goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request, Integer parentId) { |
| | | if (parentId == null) { |
| | | ViewMallOrderController.orderIdsStr = ""; |
| | | } |
| | | long[] longs = StrUtil.splitToLong(ViewMallOrderController.orderIdsStr, ','); |
| | | mallOrderItem.setOrderIdsStr(longs); |
| | | Map<String, Object> data = getDataTable(adminMallOrderService.goodsStatistics(mallOrderItem,request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | } |
| | |
| | | return FebsUtil.view("modules/order/refundPayInfo"); |
| | | } |
| | | |
| | | /** |
| | | * 订单列表-统计商品份数 |
| | | * @return |
| | | */ |
| | | public static String orderIdsStr; |
| | | @GetMapping("/goodsStatistics/{statistics}") |
| | | @RequiresPermissions("goodsStatistics:update") |
| | | public String goodsStatistics(@PathVariable String statistics, Model model) { |
| | | orderIdsStr = statistics; |
| | | return FebsUtil.view("modules/order/goodsStatistics"); |
| | | } |
| | | |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import cc.mrbird.febs.common.entity.BaseEntity; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | |
| | | private Integer hasSettle; |
| | | //1:正常 2:退款中3:已退 |
| | | private Integer state; |
| | | |
| | | @TableField(exist = false) |
| | | private long[] orderIdsStr; |
| | | } |
| | |
| | | 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; |
| | |
| | | MallOrderInfo selectByIdAndTakeUniqueCode(@Param("orderId")long orderId,@Param("takeUniqueCode") String takeUniqueCode); |
| | | |
| | | MallOrderInfo selectAllOrderInfoByIdAndTakeUniqueCode(@Param("orderId")long orderId,@Param("takeUniqueCode") String takeUniqueCode); |
| | | |
| | | IPage<AdminGoodsStatisticsVo> getGoodsStatisticsInPage(Page<AdminGoodsStatisticsVo> page, @Param("record") MallOrderItem mallOrderItem); |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.mall.entity.MallOrderItem; |
| | | import cc.mrbird.febs.mall.entity.MallOrderRefund; |
| | | import cc.mrbird.febs.mall.entity.MallRefundEntity; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | |
| | | void updateOrderStateAndDeliveryState(Long id, int value, int value1); |
| | | |
| | | IPage<MallRefundEntity> getOrderRefundListInPage(MallRefundEntity mallRefundEntity, QueryRequest request); |
| | | |
| | | IPage<AdminGoodsStatisticsVo> goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminGoodsStatisticsVo> goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request) { |
| | | Page<AdminGoodsStatisticsVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminGoodsStatisticsVo> adminGoodsStatisticsVos = mallOrderInfoMapper.getGoodsStatisticsInPage(page, mallOrderItem); |
| | | return adminGoodsStatisticsVos; |
| | | } |
| | | |
| | | @Override |
| | | public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { |
| | | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); |
| | | if (mallOrderInfo == null) { |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "AdminGoodsStatisticsVo", description = "信息返回类") |
| | | public class AdminGoodsStatisticsVo { |
| | | private String goodsName; |
| | | private Integer goodsCnt; |
| | | } |
| | |
| | | where a.del_flag=2 and a.id = #{orderId} and a.take_unique_code = #{takeUniqueCode} |
| | | order by a.created_time desc |
| | | </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> |
| | | </mapper> |
New file |
| | |
| | | <div className="layui-fluid layui-anim febs-anim" id="febs-order-goods-child" lay-title="商品数量统计"> |
| | | <div className="layui-row febs-container"> |
| | | <div className="layui-col-md12"> |
| | | <div className="layui-card"> |
| | | <div className="layui-card-body febs-table-full"> |
| | | <table lay-filter="orderGoodsChild" lay-data="{id: 'orderGoodsChild'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | layui.use(['jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-order-goods-child'), |
| | | tableIns; |
| | | |
| | | form.render(); |
| | | |
| | | initTable(); |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'orderGoodsChild', |
| | | url: ctx + 'admin/order/goodsStatistics?parentId=1', |
| | | cols: [[ |
| | | {field: 'goodsName', title: '商品名称', minWidth: 130}, |
| | | {field: 'goodsCnt', title: '总数', minWidth: 130} |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | </script> |
| | |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverOne">导出待发货订单,系统自动发货</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="confirmOrder">确认到货</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="goodsStatistics">统计商品份数</button> |
| | | <!-- <button id="printSelect" type="button" class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain">自定义打印</button>--> |
| | | <!-- <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出未发货订单(快递)</button>--> |
| | | <!-- <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button>--> |
| | |
| | | printSelect(checkStatus.data) |
| | | } |
| | | } |
| | | if(event === 'goodsStatistics'){ |
| | | var data = checkStatus.data; |
| | | let statistics = 0; |
| | | for(let i = 0;i < data.length;i++){ |
| | | statistics = statistics+ "," + data[i].id; |
| | | } |
| | | if(statistics == null || statistics == ""){ |
| | | febs.alert.warn('请选择需要统计的订单'); |
| | | return; |
| | | } |
| | | febs.modal.open( '商品数量统计', 'modules/order/goodsStatistics/'+statistics, { |
| | | maxmin: true, |
| | | }); |
| | | // febs.get(ctx + 'admin/order/goodsStatistics?orderIds='+ids, null, function () { |
| | | // febs.alert.success('操作成功'); |
| | | // $query.click(); |
| | | // }); |
| | | // window.location.href = ctx + "admin/order/confirmOrder?takeUniqueCode="+uniqueCodeValue+"&orderIds="+ids; |
| | | } |
| | | if(event === 'confirmOrder'){ |
| | | let uniqueCodeValue = $searchForm.find("select[name='uniqueCode']").val(); |
| | | // if(uniqueCodeValue == '' || uniqueCodeValue == null){ |