wks 2 роки тому
батько
коміт
4789a3b0df

+ 31 - 0
src/main/java/com/ydtech/modules/admin/controller/SysAreaController.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.admin.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+import com.ydtech.modules.admin.service.SysAreaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@Api(tags = "省市区")
+@RequestMapping("/sys/area")
+@RequiredArgsConstructor
+public class SysAreaController {
+
+    private final SysAreaService sysAreaService;
+
+    @ApiOperation(value = "省市区树结构查询")
+    @PostMapping(value = "/queryTree")
+    public HttpResult<List<SysAreaVo>> deleteFlag() {
+        List<SysAreaVo> sysAreaVos = sysAreaService.querySysArea();
+        return HttpResult.ok(sysAreaVos);
+    }
+
+
+}

+ 0 - 1
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -649,7 +649,6 @@ public class SysUserController extends BaseController {
     @PostMapping(value = "/referrerFindPage")
     public HttpResult<PageVo<SysReferrerVo>> referrerFindPage(@RequestBody PageDto<SysReferrerVo> pageDto) {
         return HttpResult.ok(esmUserReferrerService.gainReferrerPage(pageDto));
-
     }
 
 

+ 18 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAreaMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysArea;
+
+/**
+* @author Administrator
+* @description 针对表【sys_area(省市县代码)】的数据库操作Mapper
+* @createDate 2023-11-15 11:23:28
+* @Entity generator.domain.SysArea
+*/
+public interface SysAreaMapper extends BaseMapper<SysArea> {
+
+}
+
+
+
+

+ 108 - 0
src/main/java/com/ydtech/modules/admin/model/SysArea.java

@@ -0,0 +1,108 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 省市县代码
+ * @TableName sys_area
+ */
+@TableName(value ="sys_area")
+@NoArgsConstructor
+@Data
+public class SysArea implements Serializable {
+    /**
+     * 
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 地区代码
+     */
+    @TableField(value = "area_code")
+    private String areaCode;
+
+    /**
+     * 地区名称
+     */
+    @TableField(value = "area_cname")
+    private String areaCname;
+
+    /**
+     * 地区对应上级代码
+     */
+    @TableField(value = "upper_code")
+    private String upperCode;
+
+    /**
+     * 是否有效
+     */
+    @TableField(value = "valid_status")
+    private Integer validStatus;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    public SysArea(SysArea sysArea) {
+        this.id = sysArea.id;
+        this.areaCode = sysArea.areaCode;
+        this.areaCname = sysArea.areaCname;
+        this.upperCode = sysArea.upperCode;
+        this.validStatus = sysArea.validStatus;
+    }
+
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysArea other = (SysArea) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getAreaCode() == null ? other.getAreaCode() == null : this.getAreaCode().equals(other.getAreaCode()))
+            && (this.getAreaCname() == null ? other.getAreaCname() == null : this.getAreaCname().equals(other.getAreaCname()))
+            && (this.getUpperCode() == null ? other.getUpperCode() == null : this.getUpperCode().equals(other.getUpperCode()))
+            && (this.getValidStatus() == null ? other.getValidStatus() == null : this.getValidStatus().equals(other.getValidStatus()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getAreaCode() == null) ? 0 : getAreaCode().hashCode());
+        result = prime * result + ((getAreaCname() == null) ? 0 : getAreaCname().hashCode());
+        result = prime * result + ((getUpperCode() == null) ? 0 : getUpperCode().hashCode());
+        result = prime * result + ((getValidStatus() == null) ? 0 : getValidStatus().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", areaCode=").append(areaCode);
+        sb.append(", areaCname=").append(areaCname);
+        sb.append(", upperCode=").append(upperCode);
+        sb.append(", validStatus=").append(validStatus);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 21 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysAreaVo.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.modules.admin.model.SysArea;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SysAreaVo extends SysArea {
+
+    private static final long serialVersionUID = -8235445978142897003L;
+
+    private List<SysAreaVo> child;
+
+    public SysAreaVo(SysArea sysArea) {
+        super(sysArea);
+    }
+
+}

+ 0 - 4
src/main/java/com/ydtech/modules/admin/model/vo/SysReferrerVo.java

@@ -42,8 +42,4 @@ public class SysReferrerVo {
     private String affiliation;
 
 
-
-
-
-
 }

+ 21 - 0
src/main/java/com/ydtech/modules/admin/service/SysAreaService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service
+ * @createDate 2023-11-15 11:23:28
+ */
+public interface SysAreaService extends IService<SysArea> {
+
+    /**
+     * 省市区树结构查询
+     */
+    List<SysAreaVo> querySysArea();
+
+}

+ 37 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAreaServiceImpl.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysAreaMapper;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+import com.ydtech.modules.admin.service.SysAreaService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service实现
+ * @createDate 2023-11-15 11:23:28
+ */
+@Service
+public class SysAreaServiceImpl extends ServiceImpl<SysAreaMapper, SysArea>
+        implements SysAreaService {
+
+    @Override
+    public List<SysAreaVo> querySysArea() {
+        List<SysArea> list = list();
+        List<SysAreaVo> collect = list.stream().map(SysAreaVo::new).collect(Collectors.toList());
+        Map<String, List<SysAreaVo>> map = collect.stream().collect(Collectors.groupingBy(SysAreaVo::getUpperCode));
+        collect.forEach(i -> i.setChild(map.getOrDefault(i.getAreaCode(), new ArrayList<>())));
+        return map.get("0");
+    }
+
+}
+
+
+
+

+ 11 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -16,8 +16,19 @@ import java.util.List;
 public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
 
 
+    /**
+     * 分组查询
+     * @param orderNo 订单号
+     * @return
+     */
     List<InsAreaCompanyQueryDto> selectByOrderNo(@Param("orderNo") String orderNo);
 
+    /**
+     * 查询最新订单的订单号
+     * @param orderNo 订单号
+     * @return
+     */
+    InsAreaCompany  queryLatestStatus(@Param("orderNo") String orderNo);
 
 
 

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -50,4 +50,12 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * @param orderNo 主订单号
      */
     List<InsAreaCompanyQueryDto> getByOrderNo(String orderNo);
+
+
+    /**
+     * 查询最新状态的子订单
+     *
+     * @param orderNo 主订单号
+     */
+    InsAreaCompany queryLatestStatus(String orderNo);
 }

+ 6 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -61,6 +61,12 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     public List<InsAreaCompanyQueryDto> getByOrderNo(String orderNo) {
         return baseMapper.selectByOrderNo(orderNo);
     }
+
+    @Override
+    public InsAreaCompany queryLatestStatus(String orderNo) {
+        return baseMapper.queryLatestStatus(orderNo);
+    }
+
 }
 
 

+ 6 - 6
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -94,7 +94,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             return;
         }
         LambdaQueryWrapper<InsAreaCompany> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(InsAreaCompany::getOrderno, orderNo).orderByDesc(InsAreaCompany::getOrderstatus).last("limit 1");
+        wrapper.eq(InsAreaCompany::getOrderno, orderNo)
+                .orderByDesc(InsAreaCompany::getOrderstatus)
+                .last("limit 1");
 
         // 查出最新状态的子订单修改
         InsAreaCompany insAreaCompany = insAreaCompanyService.getOne(wrapper);
@@ -203,14 +205,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
 
         if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {
-            Page<InsAreaCompany> insAreaCompanyPage = insAreaCompanyService.query()
+            List<InsAreaCompany> list = insAreaCompanyService.query()
                     .select("DISTINCT orderno")
                     .eq("company_id", orderQueryVo.getCompanyId())
-                    .page(new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize()));
-            List<String> collect = insAreaCompanyPage.getRecords().stream().map(InsAreaCompany::getOrderno).collect(Collectors.toList());
+                    .list();
+            List<String> collect = list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
             wrapper.in(InsOrders::getOrderno, collect);
-            List<InsOrders> insOrdersList = list(wrapper);
-            return new BasePageResult<>(orderQueryVo.getPageNum(), insAreaCompanyPage.getSize(), insAreaCompanyPage.getTotal(), insAreaCompanyPage.getPages(), insOrdersList);
         }
 
         Page<InsOrders> insOrdersPage = page(page, wrapper);

+ 19 - 0
src/main/resources/mapper/modules/admin/SysAreaMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysAreaMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.SysArea">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="areaCode" column="area_code" jdbcType="VARCHAR"/>
+            <result property="areaCname" column="area_cname" jdbcType="VARCHAR"/>
+            <result property="upperCode" column="upper_code" jdbcType="VARCHAR"/>
+            <result property="validStatus" column="valid_status" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,area_code,area_cname,
+        upper_code,valid_status
+    </sql>
+</mapper>

+ 13 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -76,5 +76,18 @@
         WHERE iac.orderno = #{orderNo}
     </select>
 
+    <select id="queryLatestStatus"  resultMap="BaseResultMap">
+        SELECT iac.*
+        FROM ins_area_company as iac
+                 INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
+                             FROM ins_area_company
+                             WHERE orderno = #{orderNo}
+                             GROUP BY company_id) t ON t.company_id = iac.company_id
+            AND t.max_createtime = iac.createtime
+        WHERE iac.orderno = #{orderNo}
+        ORDER BY orderstatus DESC
+        LIMIT 1
+    </select>
+
 
 </mapper>