Эх сурвалжийг харах

创客机具申请订单分页查询,详情查询

杨德宝 2 жил өмнө
parent
commit
76afd32b87

+ 39 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/admin/SysMachineApplyPageDTO.java

@@ -0,0 +1,39 @@
+package com.kxs.store.api.dto.admin;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+
+/**
+ * 商城管理-创客信息申请订单表-dto
+ *
+ * @author 系统
+ * @date 2024-07-01 14:01:07
+ */
+@Data
+public class SysMachineApplyPageDTO {
+
+    /**
+     * 订单号
+     */
+    @Schema(description = "订单号")
+    private String orderSn;
+
+
+    /**
+     * 创客姓名
+     */
+    @Schema(description = "创客姓名")
+    private String username;
+
+
+    /**
+     * 创客编号
+     */
+    @Schema(description = "创客编号")
+    private String userCode;
+
+
+
+
+}

+ 41 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/admin/machineApply/SysMachineApplyApplyDetailVO.java

@@ -0,0 +1,41 @@
+package com.kxs.store.api.vo.admin.machineApply;
+
+
+import com.kxs.store.api.model.KxsMachineApply;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 商城管理-创客机具申请订单详情vo
+ *
+ * @author 系统
+ * @date 2024-07-01 14:01:07
+ */
+@Data
+@Schema(description = "商城管理-创客机具申请订单详情返回实体")
+public class SysMachineApplyApplyDetailVO extends KxsMachineApply implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+
+    @Schema(description = "发货SN编号")
+    private List<String> sendSn;
+
+    @Schema(description = "兑换SN编号")
+    private List<String> swapSnExpand;
+
+
+
+
+
+
+	
+
+}

+ 74 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/admin/machineApply/SysMachineApplyPageVO.java

@@ -0,0 +1,74 @@
+package com.kxs.store.api.vo.admin.machineApply;
+
+
+import com.kxs.store.api.model.KxsMachineApply;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 商城管理-创客信息申请订单表vo
+ *
+ * @author 系统
+ * @date 2024-07-01 14:01:07
+ */
+@Data
+@Schema(description = "商城管理-创客信息申请订单表返回实体")
+public class SysMachineApplyPageVO extends KxsMachineApply implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 顶级创客名称
+     */
+    @Schema(description = "顶级创客名称")
+    private Object topUsername;
+
+
+    /**
+     * 顶级创客编号
+     */
+    @Schema(description = "顶级创客编号")
+    private Object topUserCode;
+
+
+    /**
+     * 仓库名称
+     */
+    @Schema(description = "仓库名称")
+    private Object warehouseName;
+
+
+    /**
+     * 仓库编号
+     */
+    @Schema(description = "仓库编号")
+    private Object warehouseNo;
+
+
+    /**
+     * 仓库归属人
+     */
+    @Schema(description = "仓库归属人")
+    private Object warehouseUserName;
+
+
+    /**
+     * 仓库归属人编号
+     */
+    @Schema(description = "仓库归属人编号")
+    private Object warehouseUserCode;
+
+
+
+
+
+	
+
+}

+ 62 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/admin/SysMachineApplyController.java

@@ -0,0 +1,62 @@
+package com.kxs.store.biz.controller.admin;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.common.core.util.R;
+import com.kxs.store.api.dto.admin.SysMachineApplyPageDTO;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyPageVO;
+import com.kxs.store.biz.service.KxsMachineApplyService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 商城管理(SysMachineApply)控制层
+ *
+ * @author 系统
+ * @since 2024-07-01 14:18:38
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("sysMachineApply")
+public class SysMachineApplyController {
+
+    /**
+     * 服务对象
+     */
+    private final KxsMachineApplyService kxsMachineApplyService;
+
+
+
+    /**
+     * 商城管理-创客信息申请订单表
+     *
+     * @param page 分页对象
+     * @param param 查询实体
+     * @return 商城管理-创客信息申请订单表
+     */
+    @GetMapping("/page")
+    public R page(Page<SysMachineApplyPageVO> page, SysMachineApplyPageDTO param) {
+        kxsMachineApplyService.applyPage(page, param);
+        return R.ok(page);
+    }
+
+
+    /**
+     * 商城管理-创客机具申请订单详情
+     *
+     * @param id 主键ID
+     * @return 商城管理-创客机具申请订单详情
+     */
+    @GetMapping("/{applyId}")
+    public R applyDetail(@PathVariable("applyId") String id) {
+        return R.ok(kxsMachineApplyService.applyDetail(id));
+    }
+
+
+
+
+
+}
+

+ 14 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineApplyMapper.java

@@ -3,10 +3,12 @@ package com.kxs.store.biz.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.store.api.dto.admin.SysMachineApplyPageDTO;
 import com.kxs.store.api.dto.kxsapp.storeOrder.OrderMonthTotalDTO;
 import com.kxs.store.api.dto.kxsapp.storeOrder.OrderMonthTotalDetailDTO;
 import com.kxs.store.api.dto.kxsapp.storeOrder.StoreOrderListDTO;
 import com.kxs.store.api.model.KxsMachineApply;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyPageVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalDetailVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO;
@@ -14,6 +16,8 @@ import com.kxs.store.api.vo.kxsapp.userOrder.UserApplyMahineListVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 客小爽机具申请表(KxsMachineApply)表数据库访问层
  *
@@ -58,5 +62,15 @@ public interface KxsMachineApplyMapper extends BaseMapper<KxsMachineApply> {
      * @return {@link IPage}<{@link UserApplyMahineListVO}>
      */
     IPage<UserApplyMahineListVO> userApplyMachineList(Page<UserApplyMahineListVO> page, @Param("userId") Long userId);
+
+
+    /**
+     * 机具申请列表分页查询
+     * @param page
+     * @param param
+     * @return
+     */
+    List<SysMachineApplyPageVO> applyPage(Page page,@Param("query") SysMachineApplyPageDTO param);
+
 }
 

+ 8 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsMachineApplyDetailService.java

@@ -3,6 +3,8 @@ package com.kxs.store.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.store.api.model.KxsMachineApplyDetail;
 
+import java.util.List;
+
 /**
  * 客小爽机具申请详情表(KxsMachineApplyDetail)表服务接口
  *
@@ -11,5 +13,11 @@ import com.kxs.store.api.model.KxsMachineApplyDetail;
  */
 public interface KxsMachineApplyDetailService extends IService<KxsMachineApplyDetail> {
 
+    /**
+     * 通过订单id查询详情
+     * @param orderId
+     * @return
+     */
+    List<KxsMachineApplyDetail> listByOrderId(String orderId);
 }
 

+ 22 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsMachineApplyService.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
+import com.kxs.store.api.dto.admin.SysMachineApplyPageDTO;
 import com.kxs.store.api.dto.kxsapp.storeOrder.*;
 import com.kxs.store.api.model.KxsMachineApply;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyApplyDetailVO;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyPageVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalDetailVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderDetailVO;
@@ -13,6 +16,8 @@ import com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO;
 import com.kxs.store.api.vo.kxsapp.userOrder.UserApplyMachineDetailVO;
 import com.kxs.store.api.vo.kxsapp.userOrder.UserApplyMahineListVO;
 
+import java.util.List;
+
 /**
  * 客小爽机具申请表(KxsMachineApply)表服务接口
  *
@@ -95,5 +100,22 @@ public interface KxsMachineApplyService extends IService<KxsMachineApply> {
      * @return {@link UserApplyMachineDetailVO}
      */
     UserApplyMachineDetailVO userApplyMachineDetail(Long id);
+
+
+    /**
+     * 机具申请列表分页查询
+     * @param page
+     * @param param
+     * @return
+     */
+    List<SysMachineApplyPageVO> applyPage(Page page, SysMachineApplyPageDTO param);
+
+
+    /**
+     * 通过机具申请id查询详情
+     * @param id
+     * @return
+     */
+    SysMachineApplyApplyDetailVO applyDetail(String id);
 }
 

+ 10 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyDetailServiceImpl.java

@@ -1,11 +1,14 @@
 package com.kxs.store.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.store.biz.mapper.KxsMachineApplyDetailMapper;
 import com.kxs.store.api.model.KxsMachineApplyDetail;
 import com.kxs.store.biz.service.KxsMachineApplyDetailService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 客小爽机具申请详情表(KxsMachineApplyDetail)表服务实现类
  *
@@ -15,5 +18,12 @@ import org.springframework.stereotype.Service;
 @Service("kxsMachineApplyDetailService")
 public class KxsMachineApplyDetailServiceImpl extends ServiceImpl<KxsMachineApplyDetailMapper, KxsMachineApplyDetail> implements KxsMachineApplyDetailService {
 
+
+    @Override
+    public List<KxsMachineApplyDetail> listByOrderId(String orderId) {
+        LambdaQueryWrapper<KxsMachineApplyDetail> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(o->o.getOrderId(),orderId);
+        return this.list(queryWrapper);
+    }
 }
 

+ 56 - 0
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java

@@ -1,5 +1,7 @@
 package com.kxs.store.biz.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.lang.Snowflake;
@@ -20,8 +22,12 @@ import com.kxs.product.api.model.KxsBrand;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachineCirculationLog;
 import com.kxs.product.api.model.KxsTicket;
+import com.kxs.product.api.vo.admin.so.SysSoPageVO;
+import com.kxs.store.api.dto.admin.SysMachineApplyPageDTO;
 import com.kxs.store.api.dto.kxsapp.storeOrder.*;
 import com.kxs.store.api.model.*;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyApplyDetailVO;
+import com.kxs.store.api.vo.admin.machineApply.SysMachineApplyPageVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalDetailVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalVO;
 import com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderDetailVO;
@@ -38,6 +44,7 @@ import com.kxs.system.api.util.MsgTemplateUtil;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUserAdvance;
+import com.kxs.user.api.vo.admin.user.SysFeignUserDetailVO;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
@@ -51,6 +58,7 @@ import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -85,6 +93,8 @@ public class KxsMachineApplyServiceImpl extends ServiceImpl<KxsMachineApplyMappe
 
     private final KxsSendTotalService kxsSendTotalService;
 
+    private final KxsMachineApplyDetailService kxsMachineApplyDetailService;
+
     @Override
     @GlobalTransactional
     @Transactional(rollbackFor = Exception.class)
@@ -567,5 +577,51 @@ public class KxsMachineApplyServiceImpl extends ServiceImpl<KxsMachineApplyMappe
         return userApplyMachineDetailVO;
     }
 
+    @Override
+    public List<SysMachineApplyPageVO> applyPage(Page page, SysMachineApplyPageDTO param) {
+        List<SysMachineApplyPageVO> list = baseMapper.applyPage(page, param);
+        packageTopUser(list);
+        if(page != null){
+            page.setRecords(list);
+        }
+        return list;
+    }
+
+    @Override
+    public SysMachineApplyApplyDetailVO applyDetail(String id) {
+        KxsMachineApply kxsMachineApply = this.getById(id);
+        List<KxsMachineApplyDetail> kxsMachineApplyDetails = kxsMachineApplyDetailService.listByOrderId(id);
+        SysMachineApplyApplyDetailVO sysMachineApplyApplyDetailVO = new SysMachineApplyApplyDetailVO();
+        BeanUtil.copyProperties(kxsMachineApply,sysMachineApplyApplyDetailVO);
+        List<String> sendSn = new ArrayList<>();
+        List<String> swapSnExpand = new ArrayList<>();
+        if(CollectionUtil.isNotEmpty(kxsMachineApplyDetails)){
+            sendSn = kxsMachineApplyDetails.stream().map(o -> o.getPosSn()).collect(Collectors.toList());
+            swapSnExpand = kxsMachineApplyDetails.stream().map(o -> o.getTicketCode()).collect(Collectors.toList());
+        }
+        sysMachineApplyApplyDetailVO.setSendSn(sendSn);
+        sysMachineApplyApplyDetailVO.setSwapSnExpand(swapSnExpand);
+        return sysMachineApplyApplyDetailVO;
+    }
+
+    private void packageTopUser(List<SysMachineApplyPageVO> list){
+        if(CollectionUtil.isNotEmpty(list)){
+            List<Integer> userIds = list.stream().map(o ->o.getUserId()).collect(Collectors.toList());
+            R<Map<Integer, SysFeignUserDetailVO>> mapR = remoteKxsUserService.topUserList(userIds, SecurityConstants.FROM_IN);
+            if (mapR.getStatus() == 1) {
+                Map<Integer, SysFeignUserDetailVO> topUserMap = mapR.getData();
+                for(SysMachineApplyPageVO machineApplyPageVO:list){
+                    Integer userId = machineApplyPageVO.getUserId();
+                    if(topUserMap.containsKey(userId)){
+                        SysFeignUserDetailVO sysFeignUserDetailVO = topUserMap.get(userId);
+                        machineApplyPageVO.setTopUserCode(sysFeignUserDetailVO.getTopUserCode());
+                        machineApplyPageVO.setTopUsername(sysFeignUserDetailVO.getTopUsername());
+                    }
+                }
+            }
+        }
+
+    }
+
 }
 

+ 36 - 0
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml

@@ -28,6 +28,13 @@
         <result column="partner_id" property="partnerId"/>
 
     </resultMap>
+
+    <resultMap id="WebKxsMachineApplyMap" extends="KxsMachineApplyMap" type="com.kxs.store.api.vo.admin.machineApply.SysMachineApplyPageVO">
+        <result column="warehouse_name" property="warehouseName"/>
+        <result column="warehouse_no" property="warehouseNo"/>
+        <result column="warehouse_user_name" property="warehouseUserName"/>
+        <result column="warehouse_user_code" property="warehouseUserCode"/>
+    </resultMap>
     <select id="getByPage" resultType="com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO">
         select a.id, a.create_time, a.order_sn, a.get_mode, a.apply_num, a.contacts, a.phone, a.address, a.apply_type,
         a.status, a.username, a.user_code, a.brand_id, a.brand_name from kxs_machine_apply a
@@ -90,4 +97,33 @@
         order by a.create_time desc
     </select>
 
+    <select id="applyPage" resultMap="WebKxsMachineApplyMap">
+        SELECT
+            kma.*,
+            kw.warehouse_name,
+            kw.warehouse_no,
+            kw.warehouse_user_name,
+            kw.warehouse_user_code
+        FROM
+            kxs_machine_apply kma
+            LEFT JOIN kxs_warehouse kw ON kma.warehouse_id = kw.id
+
+        <where>
+            and kma.del_flag == 0
+            <if test="query.username != null and query.username != ''">
+                <bind name="usernameLike" value="'%'+query.username+'%'"/>
+                AND kma.username LIKE #{usernameLike}
+            </if>
+            <if test="query.orderSn != null and query.orderSn != ''">
+                <bind name="orderSnLike" value="'%'+query.orderSn+'%'"/>
+                AND kma.order_sn LIKE #{orderSnLike}
+            </if>
+            <if test="query.userCode != null and query.userCode != ''">
+                <bind name="userCodeLike" value="'%'+query.userCode+'%'"/>
+                AND kma.user_code LIKE #{userCodeLike}
+            </if>
+        </where>
+        order by kma.create_time desc
+    </select>
+
 </mapper>