فهرست منبع

fix:“优化订单导出功能”

soobin 1 سال پیش
والد
کامیت
efeea9b569

+ 57 - 11
src/main/java/com/szwl/controller/TOrderController.java

@@ -1100,20 +1100,67 @@ public class TOrderController {
             }
             if (!StringUtils.isEmpty(username)) {
                 TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminByUsername(username));
-                ResponseModel<TAdmin> adminByUsername = szwlFeign.getAdminByUsername(username);
-                TAdmin data = adminByUsername.getData();
-                if (data == null || data.getId() == null) {
+                if (admin == null || admin.getId() == null) {
                     return R.fail(ResponseCodesEnum.A0001, "找不到商家");
                 }
-                n_adminId = data.getId();
+                n_adminId = admin.getId();
             }
             List<OrderDaoChuDTO> OrderDaoChuDTOList = new ArrayList<>();
+            Long OrderDaoChuTotal = 0L;
             if (ifForeign.equals("0")) {
                 //大陆
+                LambdaQueryWrapper<TOrder> queryWrapper = new LambdaQueryWrapper<>();
+                // ------ 查询条件 ------
+                queryWrapper.eq(TOrder::getStatus, 1)
+                        .ge(TOrder::getCreateDate, begin)
+                        .le(TOrder::getCreateDate, end);
+                if (StringUtils.isNotBlank(clientId)) {
+                    queryWrapper.eq(TOrder::getClientId, clientId);
+                }
+                if (StringUtils.isNotBlank(companyType)) {
+                    if ("0".equals(companyType)) {
+                        queryWrapper.and(i -> i.isNull(TOrder::getCompanyType).or().eq(TOrder::getCompanyType, "0"));
+                    } else if ("1".equals(companyType)) {
+                        queryWrapper.eq(TOrder::getCompanyType, "1");
+                    }
+                }
+                // ------ 分组 ------
+                if (type.equals("2")) {
+                    queryWrapper.groupBy(TOrder::getAdminId);
+                } else if (type.equals("1")) {
+                    queryWrapper.groupBy(TOrder::getClientId);
+                }
+                Page<TOrder> tOrderPage = new Page<>(current, size, true);
+                Page<TOrder> page = orderService.page(tOrderPage, queryWrapper);
+                OrderDaoChuTotal = page.getTotal();
                 OrderDaoChuDTOList = orderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, companyType, current, size);
             } else {
                 //查海外
-                OrderDaoChuDTOList = coinOrderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, current, size);
+                LambdaQueryWrapper<TCoinOrder> queryWrapper = new LambdaQueryWrapper<>();
+                // ------ 查询条件 ------
+                queryWrapper.eq(TCoinOrder::getStatus, 1)
+                        .ge(TCoinOrder::getCreateDate, begin)
+                        .le(TCoinOrder::getCreateDate, end);
+                if (StringUtils.isNotBlank(clientId)) {
+                    queryWrapper.eq(TCoinOrder::getClientId, clientId);
+                }
+                if (StringUtils.isNotBlank(companyType)) {
+                    if ("0".equals(companyType)) {
+                        queryWrapper.and(i -> i.isNull(TCoinOrder::getCompanyType).or().eq(TCoinOrder::getCompanyType, "0"));
+                    } else if ("1".equals(companyType)) {
+                        queryWrapper.eq(TCoinOrder::getCompanyType, "1");
+                    }
+                }
+                // ------ 分组 ------
+                if (type.equals("2")) {
+                    queryWrapper.groupBy(TCoinOrder::getAdminId);
+                } else if (type.equals("1")) {
+                    queryWrapper.groupBy(TCoinOrder::getClientId);
+                }
+                Page<TCoinOrder> tOrderPage = new Page<>(current, size, true);
+                Page<TCoinOrder> page = coinOrderService.page(tOrderPage, queryWrapper);
+                OrderDaoChuTotal = page.getTotal();
+                OrderDaoChuDTOList = coinOrderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, companyType, current, size);
             }
             for (OrderDaoChuDTO orderDaoChuDTO : OrderDaoChuDTOList) {
                 String adminId1 = orderDaoChuDTO.getAdminId().toString();
@@ -1130,10 +1177,9 @@ public class TOrderController {
                     if (area != null) {
                         orderDaoChuDTO.setAddress(area.getFullName());
                     }
-                    ResponseModel<List<String>> clientIds = szwlFeign.getClientIds(String.valueOf(admin.getId()));
-                    List<String> stringList = clientIds.getData();
-                    if (stringList != null && stringList.size() > 0) {
-                        orderDaoChuDTO.setEquipmentTotal(String.valueOf(stringList.size()));
+                    List<TEquipment> equipmentList = R.getDataIfSuccess(szwlFeign.listEquipment(adminId1));
+                    if (equipmentList != null && equipmentList.size() > 0) {
+                        orderDaoChuDTO.setEquipmentTotal(String.valueOf(equipmentList.size()));
                     }
                     //商户为单位
                     ResponseModel<TAdmin> feignAdmin = szwlFeign.getAdmin(String.valueOf(admin.getParentId()));
@@ -1155,7 +1201,7 @@ public class TOrderController {
                 }
             }
             page0.setRecords(OrderDaoChuDTOList);
-            page0.setTotal(1000);
+            page0.setTotal(OrderDaoChuTotal);
         }
         return R.ok(page0);
     }
@@ -1211,7 +1257,7 @@ public class TOrderController {
                 OrderDaoChuDTOList = orderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, companyType, current, size);
             } else {
                 //查海外
-                OrderDaoChuDTOList = coinOrderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, current, size);
+                OrderDaoChuDTOList = coinOrderService.orderDaoChu(simpleDateFormat.format(begin), simpleDateFormat.format(end), n_adminId, clientId, type, companyType, current, size);
             }
             for (OrderDaoChuDTO orderDaoChuDTO : OrderDaoChuDTOList) {
                 String adminId1 = orderDaoChuDTO.getAdminId().toString();

+ 4 - 0
src/main/java/com/szwl/feign/SzwlFeign.java

@@ -7,6 +7,7 @@ import com.szwl.model.entity.TAdmin;
 import com.szwl.model.entity.TAdminEquipment;
 import com.szwl.model.entity.TEquipment;
 import com.szwl.model.entity.TShandeMch;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -65,4 +66,7 @@ public interface SzwlFeign {
 
     @PostMapping("/tEquipment/updateByEquipment")
     ResponseModel<TEquipment> updateByEquipment(@RequestBody TEquipment equipment);
+
+    @GetMapping("/tEquipment/listEquipment")
+    ResponseModel<List<TEquipment>> listEquipment(@RequestParam String adminId);
 }

+ 11 - 5
src/main/java/com/szwl/mapper/xml/TCoinOrderMapper.xml

@@ -71,14 +71,20 @@
     <select id="getOrderDaoCu" resultMap="orderDaoChuDTO" parameterType="com.szwl.model.query.OrderDaoChuParam">
         select sum(price) AS priceTotal,admin_id AS adminId,client_id AS clientId
         from  t_coin_order  where 1=1
-        <if test="adminId != null and adminId !=''">
-            and admin_id= #{adminId} -- 订单所属商家id
-        </if>
         <if test="clientId != null and clientId !=''">
             and client_id = #{clientId}
         </if>
-        and create_date >= STR_TO_DATE(CONCAT(#{begin},' 00:00:00'),'%Y/%m/%d %H:%i:%s')
-        <![CDATA[ and create_date <= STR_TO_DATE(CONCAT(#{end},' 23:59:59'),'%Y/%m/%d %H:%i:%s') ]]>
+        <choose>
+            <when test="companyType != null and companyType !='' and companyType.equals(&quot;0&quot;)">
+                AND (company_type IS NULL OR company_type = '0')
+            </when>
+            <when test="companyType != null and companyType !='' and companyType.equals(&quot;1&quot;)">
+                AND company_type = '1'
+            </when>
+        </choose>
+        and status = 1
+        and create_date >= STR_TO_DATE(CONCAT(#{begin},' 00:00:00'),'%Y-%m-%d %H:%i:%s')
+        <![CDATA[ and create_date <= STR_TO_DATE(CONCAT(#{end},' 23:59:59'),'%Y-%m-%d %H:%i:%s') ]]>
         <if test="type != null and type !='' and type==2">
             group by adminId
         </if>

+ 1 - 1
src/main/java/com/szwl/service/TCoinOrderService.java

@@ -24,5 +24,5 @@ public interface TCoinOrderService extends IService<TCoinOrder> {
 
     List<CoinOrderTarget> findByCoinOrder(TAdmin admin, List<TCoinOrder> list);
 
-    List<OrderDaoChuDTO> orderDaoChu(String begin, String end, Long adminId, String clientId, String type, long current, long size);
+    List<OrderDaoChuDTO> orderDaoChu(String begin, String end, Long adminId, String clientId, String type, String companyType, long current, long size);
 }

+ 2 - 1
src/main/java/com/szwl/service/impl/TCoinOrderServiceImpl.java

@@ -52,7 +52,7 @@ public class TCoinOrderServiceImpl extends ServiceImpl<TCoinOrderMapper, TCoinOr
     }
 
     @Override
-    public List<OrderDaoChuDTO> orderDaoChu(String begin, String end, Long adminId, String clientId, String type, long current, long size) {
+    public List<OrderDaoChuDTO> orderDaoChu(String begin, String end, Long adminId, String clientId, String type, String companyType, long current, long size) {
         OrderDaoChuParam daoChuParam = new OrderDaoChuParam();
         daoChuParam.setAdminId(adminId);
         daoChuParam.setBegin(begin);
@@ -61,6 +61,7 @@ public class TCoinOrderServiceImpl extends ServiceImpl<TCoinOrderMapper, TCoinOr
         daoChuParam.setType(type);
         daoChuParam.setCurrent(current-1);
         daoChuParam.setSize(size);
+        daoChuParam.setCompanyType(companyType);
         return tCoinOrderMapper.getOrderDaoCu(daoChuParam);
     }