zhaoyun 4 天之前
父节点
当前提交
1d798256d4
共有 51 个文件被更改,包括 1370 次插入124 次删除
  1. 9 14
      ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/controller/platform/ExpressOrderController.java
  2. 150 0
      ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/controller/platform/WhatTodayEatTagController.java
  3. 1 0
      ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/FinanceServiceImpl.java
  4. 42 0
      ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/task/secondhand/SecondHandOrderAutoReceiptTask.java
  5. 46 0
      ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/task/secondhand/SecondhandOrderAutoCompleteTask.java
  6. 4 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/constants/OrderConstants.java
  7. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/product/Product.java
  8. 60 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/product/WhatTodayEatTag.java
  9. 84 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/rider/RiderBalanceRecord.java
  10. 5 1
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/secondhand/SecondHandOrderDetail.java
  11. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/user/UserClosing.java
  12. 3 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/OrderFrontListRequest.java
  13. 5 1
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/ProductAddRequest.java
  14. 26 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/WhatTodayEatSearchRequest.java
  15. 53 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/WhatTodayEatTagRequest.java
  16. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/producttag/ProductTagSearchRequest.java
  17. 2 2
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/secondhand/SecondHandOrderSendRequest.java
  18. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/OrderCenterNumResponse.java
  19. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/ProductInfoResponse.java
  20. 140 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/express/PlatformExpressOrderAdminDetailResponse.java
  21. 67 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/express/PlatformExpressOrderPageResponse.java
  22. 40 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/rider/RiderAccountResponse.java
  23. 43 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/rider/RiderMyAccountResponse.java
  24. 2 0
      ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/secondhand/SellerOrderFrontDetailResponse.java
  25. 7 1
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/SecondHandOrderController.java
  26. 55 0
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/WhatTodayTagController.java
  27. 32 9
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/rider/RiderController.java
  28. 8 0
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/SecondHandFrontOrderService.java
  29. 1 31
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/FrontExpressOrderServiceImpl.java
  30. 1 1
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/GameFrontServiceImpl.java
  31. 46 11
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/SecondHandFrontOrderServiceImpl.java
  32. 1 4
      ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/SecondHandFrontServiceImpl.java
  33. 2 3
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/ExpressOrderDao.java
  34. 8 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/ProductDao.java
  35. 21 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/RiderBalanceRecordDao.java
  36. 7 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/SecondHandOrderDetailDao.java
  37. 23 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/WhatToayEatTagDao.java
  38. 1 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/RefundOrderManagerService.java
  39. 7 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandOrderDetailService.java
  40. 22 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandOrderService.java
  41. 7 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandRefundOrderManagerService.java
  42. 3 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandRefundOrderService.java
  43. 29 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondhandOrderTaskService.java
  44. 8 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderDetailServiceImpl.java
  45. 77 31
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderServiceImpl.java
  46. 141 0
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderTaskServiceImpl.java
  47. 12 1
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandRefundOrderManagerServiceImpl.java
  48. 7 1
      ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandRefundOrderServiceImpl.java
  49. 26 0
      ydd_mer_java/crmeb-service/src/main/resources/mapper/product/ProductMapper.xml
  50. 12 1
      ydd_mer_java/crmeb-service/src/main/resources/mapper/secondhand/SecondHandOrderDetailMapper.xml
  51. 14 12
      ydd_mer_java/crmeb-service/src/main/resources/mapper/secondhand/SecondHandOrderMapper.xml

+ 9 - 14
ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/controller/platform/ExpressOrderController.java

@@ -3,14 +3,11 @@ package com.zbkj.admin.controller.platform;
 import com.zbkj.common.page.CommonPage;
 import com.zbkj.common.request.OrderSearchRequest;
 import com.zbkj.common.request.OrderTabsHeaderRequest;
-import com.zbkj.common.response.OrderCountItemResponse;
-import com.zbkj.common.response.OrderInvoiceResponse;
-import com.zbkj.common.response.PlatformOrderAdminDetailResponse;
-import com.zbkj.common.response.PlatformOrderPageResponse;
+import com.zbkj.common.response.*;
+import com.zbkj.common.response.express.PlatformExpressOrderAdminDetailResponse;
+import com.zbkj.common.response.express.PlatformExpressOrderPageResponse;
 import com.zbkj.common.result.CommonResult;
-import com.zbkj.common.vo.LogisticsResultVo;
-import com.zbkj.service.ExpressOrderService;
-import com.zbkj.service.service.OrderService;
+import com.zbkj.service.service.ExpressOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -19,8 +16,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
-
 /**
  * 订单表 前端控制器
  * +----------------------------------------------------------------------
@@ -42,24 +37,24 @@ public class ExpressOrderController {
     @Autowired
     private ExpressOrderService orderService;
 
-    @PreAuthorize("hasAuthority('platform:order:page:list')")
+    @PreAuthorize("hasAuthority('platform:express:order:page:list')")
     @ApiOperation(value = "平台端订单分页列表") //配合swagger使用
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public CommonResult<CommonPage<PlatformOrderPageResponse>> getList(@Validated OrderSearchRequest request) {
+    public CommonResult<CommonPage<PlatformExpressOrderPageResponse>> getList(@Validated OrderSearchRequest request) {
         return CommonResult.success(CommonPage.restPage(orderService.getPlatformAdminPage(request)));
     }
 
-    @PreAuthorize("hasAuthority('platform:order:status:num')")
+    @PreAuthorize("hasAuthority('platform:express:order:status:num')")
     @ApiOperation(value = "平台端获取订单各状态数量")
     @RequestMapping(value = "/status/num", method = RequestMethod.GET)
     public CommonResult<OrderCountItemResponse> getOrderStatusNum(@Validated OrderTabsHeaderRequest request) {
         return CommonResult.success(orderService.getPlatformOrderStatusNum(request));
     }
 
-    @PreAuthorize("hasAuthority('platform:order:info')")
+    @PreAuthorize("hasAuthority('platform:express:order:info')")
     @ApiOperation(value = "平台端订单详情")
     @RequestMapping(value = "/info", method = RequestMethod.GET)
-    public CommonResult<PlatformOrderAdminDetailResponse> info(@RequestParam(value = "orderNo") String orderNo) {
+    public CommonResult<PlatformExpressOrderAdminDetailResponse> info(@RequestParam(value = "orderNo") String orderNo) {
         return CommonResult.success(orderService.platformInfo(orderNo));
     }
 }

+ 150 - 0
ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/controller/platform/WhatTodayEatTagController.java

@@ -0,0 +1,150 @@
+package com.zbkj.admin.controller.platform;
+
+
+import com.zbkj.common.model.product.ProductTag;
+import com.zbkj.common.model.product.WhatTodayEatTag;
+import com.zbkj.common.page.CommonPage;
+import com.zbkj.common.request.PageParamRequest;
+import com.zbkj.common.request.WhatTodayEatTagRequest;
+import com.zbkj.common.request.producttag.ProductTagRequest;
+import com.zbkj.common.request.producttag.ProductTagSearchRequest;
+import com.zbkj.common.result.CommonResult;
+import com.zbkj.service.service.ProductTagService;
+import com.zbkj.service.service.WhatTodayEatTagService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ *  前端控制器
+ */
+@Slf4j
+@RestController
+@RequestMapping("api/admin/platform/whattodayeatTag")
+@Api(tags = "今日吃啥标签") //配合swagger使用
+public class WhatTodayEatTagController {
+
+    @Autowired
+    private WhatTodayEatTagService whatTodayEatTagService;
+
+    /**
+     * 分页显示
+     * @param request 搜索条件
+     * @param pageParamRequest 分页参数
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:list')")
+    @ApiOperation(value = "分页列表") //配合swagger使用
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public CommonResult<CommonPage<WhatTodayEatTag>>  getList(@Validated ProductTagSearchRequest request, @Validated PageParamRequest pageParamRequest){
+        CommonPage<WhatTodayEatTag> productTagCommonPage = CommonPage.restPage(whatTodayEatTagService.getList(request, pageParamRequest));
+        return CommonResult.success(productTagCommonPage);
+    }
+    /**
+     *
+
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @ApiOperation(value = "获取所有标签") //配合swagger使用
+    @RequestMapping(value = "/all", method = RequestMethod.GET)
+    public CommonResult<List<WhatTodayEatTag>>  getAdminList(){
+        return CommonResult.success(whatTodayEatTagService.getAdminList());
+    }
+
+    /**
+     * 新增
+     * @param productTagRequest 新增参数
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:save')")
+    @ApiOperation(value = "新增")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public CommonResult<String> save(@RequestBody @Validated WhatTodayEatTagRequest productTagRequest){
+        WhatTodayEatTag productTag = new WhatTodayEatTag();
+        BeanUtils.copyProperties(productTagRequest, productTag);
+        if(whatTodayEatTagService.save(productTag)){
+            return CommonResult.success();
+        }else{
+            return CommonResult.failed();
+        }
+    }
+
+    /**
+     * 删除
+     * @param id Integer
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:delete')")
+    @ApiOperation(value = "删除")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    public CommonResult<String> delete(@PathVariable(value = "id") Integer id){
+        if(whatTodayEatTagService.delete(id)){
+            return CommonResult.success();
+        }else{
+            return CommonResult.failed();
+        }
+    }
+
+    /**
+     * 修改
+     * @param productTagRequest 修改参数
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:update')")
+    @ApiOperation(value = "修改")
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    public CommonResult<String> update(@RequestBody @Validated WhatTodayEatTagRequest productTagRequest){
+        if(whatTodayEatTagService.edit(productTagRequest)){
+            return CommonResult.success();
+        }else{
+            return CommonResult.failed();
+        }
+    }
+
+    /**
+     * 更新显示状态
+     * @param id 标签id
+     * @param status 更改的状态
+     * @return 更改结果
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:status')")
+    @ApiOperation(value = "更新状态")
+    @RequestMapping(value = "/status/{id}/{status}", method = RequestMethod.GET)
+    public CommonResult<String> status(@PathVariable Integer id, @PathVariable Integer status){
+        if(whatTodayEatTagService.updateShowStatus(id, status)){
+            return CommonResult.success();
+        }else{
+            return CommonResult.failed();
+        }
+    }
+
+    /**
+     * 查询信息
+     * @param id Integer
+     * @author dazongzi
+     * @since 2023-10-11
+     */
+    @PreAuthorize("hasAuthority('platform:product:whattodayeatTag:info')")
+    @ApiOperation(value = "详情")
+    @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
+    public CommonResult<WhatTodayEatTag> info(@PathVariable(value = "id") Integer id){
+        WhatTodayEatTag productTag = whatTodayEatTagService.getById(id);
+        return CommonResult.success(productTag);
+   }
+}
+
+
+

+ 1 - 0
ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/service/impl/FinanceServiceImpl.java

@@ -86,6 +86,7 @@ public class FinanceServiceImpl implements FinanceService {
     @Autowired
     private MerchantBalanceRecordService merchantBalanceRecordService;
 
+
     /**
      * 用户结算分页列表
      *

+ 42 - 0
ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/task/secondhand/SecondHandOrderAutoReceiptTask.java

@@ -0,0 +1,42 @@
+package com.zbkj.admin.task.secondhand;
+
+import cn.hutool.core.date.DateUtil;
+import com.zbkj.service.service.OrderTaskService;
+import com.zbkj.service.service.SecondhandOrderTaskService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 系统自动确认收货Task
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Component("SecondHandOrderAutoReceiptTask")
+public class SecondHandOrderAutoReceiptTask {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SecondHandOrderAutoReceiptTask.class);
+
+    @Autowired
+    private SecondhandOrderTaskService orderTaskService;
+
+    public void autoTakeDelivery() {
+        // cron : 0 0 0 */1 * ?
+        LOGGER.info("---OrderAutoReceiptTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.now());
+        try {
+            orderTaskService.autoTakeDelivery();
+        } catch (Exception e) {
+            e.printStackTrace();
+            LOGGER.error("OrderAutoReceiptTask.exception" + " | msg : " + e.getMessage());
+        }
+    }
+
+}

+ 46 - 0
ydd_mer_java/crmeb-admin/src/main/java/com/zbkj/admin/task/secondhand/SecondhandOrderAutoCompleteTask.java

@@ -0,0 +1,46 @@
+package com.zbkj.admin.task.secondhand;
+
+import cn.hutool.core.date.DateUtil;
+import com.zbkj.service.service.OrderTaskService;
+import com.zbkj.service.service.SecondhandOrderTaskService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 订单自动完成Task
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Component("SecondhandOrderAutoCompleteTask")
+public class SecondhandOrderAutoCompleteTask {
+
+    //日志
+    private static final Logger logger = LoggerFactory.getLogger(SecondhandOrderAutoCompleteTask.class);
+
+    @Autowired
+    private SecondhandOrderTaskService orderTaskService;
+
+    /**
+     * 每小时同步一次数据
+     */
+    public void autoComplete() {
+        // cron : 0 0 */1 * * ?
+        logger.info("---OrderAutoCompleteTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.date());
+        try {
+            orderTaskService.autoComplete();
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error("OrderAutoCompleteTask.task" + " | msg : " + e.getMessage());
+        }
+    }
+
+}

+ 4 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/constants/OrderConstants.java

@@ -46,6 +46,8 @@ public class OrderConstants {
     public static final Integer ORDER_STATUS_AWAIT_VERIFICATION = 3;
     /** 订单状态-待收货 */
     public static final Integer ORDER_STATUS_WAIT_RECEIPT = 4;
+    /** 订单状态-待退款 */
+    public static final Integer ORDER_STATUS_WAIT_REFUND = 10;
     /** 订单状态-已收货 */
     public static final Integer ORDER_STATUS_TAKE_DELIVERY = 5;
     /** 订单状态-已完成 */
@@ -104,6 +106,8 @@ public class OrderConstants {
     public static final String ORDER_DELIVERY_TYPE_EXPRESS = "express";
     /** 订单发货类型-外卖 */
     public static final String ORDER_DELIVERY_TYPE_TAKEOUT = "takeout";
+
+    public static final String ORDER_DELIVERY_TYPE_TPICK_UP = "selfPickup";
     /** 发货记录类型,1快递发货、2电子面单 */
     public static final String ORDER_DELIVERY_TYPE_EXPRESS_E = "1";
     public static final String ORDER_DELIVERY_TYPE_EXPRESS_M = "2";

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/product/Product.java

@@ -184,4 +184,6 @@ public class Product implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "拼团商品价格")
     private BigDecimal groupPrice;
+    @ApiModelProperty(value = "商品特征给今日吃啥用")
+    private String whatEatTag;
 }

+ 60 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/product/WhatTodayEatTag.java

@@ -0,0 +1,60 @@
+package com.zbkj.common.model.product;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author dazongzi
+ * @since 2023-10-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eb_what_today_eat_tag")
+@ApiModel(value="WhatTodayEatTag对象", description="")
+public class WhatTodayEatTag implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "icon")
+    private String icon;
+
+
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    @ApiModelProperty(value = "状态#0关闭|1开启")
+    private Integer status;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "是否删除")
+    private Boolean isDel;
+
+
+
+}

+ 84 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/rider/RiderBalanceRecord.java

@@ -0,0 +1,84 @@
+package com.zbkj.common.model.rider;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 用户佣金记录表
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eb_rider_balance_record")
+@ApiModel(value = "RiderBalanceRecord对象", description = "用户佣金记录表")
+public class RiderBalanceRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户uid")
+    private Integer uid;
+
+    @ApiModelProperty(value = "关联单号(订单号、提现单号)")
+    private String linkNo;
+
+    @ApiModelProperty(value = "关联类型(order,withdraw,yue)")
+    private String linkType;
+
+    @ApiModelProperty(value = "类型:1-增加,2-扣减(提现)")
+    private Integer type;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "剩余")
+    private BigDecimal balance;
+
+    @ApiModelProperty(value = "备注")
+    private String mark;
+
+    @ApiModelProperty(value = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款/申请被拒),5-提现申请")
+    private Integer status;
+
+    @ApiModelProperty(value = "冻结期时间(天)")
+    private Integer frozenTime;
+
+    @ApiModelProperty(value = "解冻时间")
+    private Long thawTime;
+
+    @ApiModelProperty(value = "添加时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "用户昵称")
+    @TableField(exist = false)
+    private String userName;
+}

+ 5 - 1
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/secondhand/SecondHandOrderDetail.java

@@ -99,5 +99,9 @@ public class SecondHandOrderDetail implements Serializable {
     private String sellerName;
     @ApiModelProperty(value = "退运费金额")
     private BigDecimal refundFreightFee;
-
+    @ApiModelProperty(value = "订单状态(0:待支付,1:待发货,2:部分发货, 3:待核销,4:待收货,5:已收货,6:已完成,9:已取消)")
+    @TableField(exist = false)
+    private Integer status;
+    @TableField(exist = false)
+    private Integer shippingType;
 }

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/model/user/UserClosing.java

@@ -110,4 +110,6 @@ public class UserClosing implements Serializable {
     @ApiModelProperty(value = "用户是否注销")
     @TableField(exist = false)
     private Boolean isLogoff;
+    @ApiModelProperty(value = "结算方式0-佣金,1-收益")
+    private  Integer closingWay;
 }

+ 3 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/OrderFrontListRequest.java

@@ -42,4 +42,7 @@ public class OrderFrontListRequest extends PageParamRequest implements Serializa
 
     @ApiModelProperty(value = "订单类型:0-进行中,1-完成")
     private Integer orderType;
+
+    @ApiModelProperty(value = "是我处理的任务0-不是,1-是")
+    private Integer isMyTask;
 }

+ 5 - 1
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/ProductAddRequest.java

@@ -92,7 +92,7 @@ public class ProductAddRequest implements Serializable {
     private String unitName;
 
     @ApiModelProperty(value = "运费模板ID", required = true)
-    @NotNull(message = "运费模板ID不能为空")
+   // @NotNull(message = "运费模板ID不能为空")
     private Integer tempId;
 
     @ApiModelProperty(value = "排序")
@@ -144,4 +144,8 @@ public class ProductAddRequest implements Serializable {
 
     @ApiModelProperty(value = "是否热门推荐")
     private Boolean isHot;
+
+    @ApiModelProperty(value = "今日吃啥标签", required = true)
+    // @NotNull(message = "运费模板ID不能为空")
+    private List<String> tagIds;
 }

+ 26 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/WhatTodayEatSearchRequest.java

@@ -0,0 +1,26 @@
+package com.zbkj.common.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="WhatTodayEatSearchRequest对象", description="今日吃啥请求对象")
+public class WhatTodayEatSearchRequest implements Serializable {
+    private static final long serialVersionUID=1L;
+    @ApiModelProperty(value = "维度")
+    @NotNull(message = "用户所在维度不能为空")
+    private Double latitude;
+    @NotNull(message = "用户所在经度不能为空")
+    @ApiModelProperty(value = "经度")
+    private Double longitude;
+    @ApiModelProperty(value = "吃啥标签")
+    private Integer tagId;
+}

+ 53 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/WhatTodayEatTagRequest.java

@@ -0,0 +1,53 @@
+package com.zbkj.common.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 商品分类请求对象
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="WhatTodayEatTagRequest对象", description="商品分类请求对象")
+public class WhatTodayEatTagRequest implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "分类ID,新增时不填,修改时必填")
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    @NotEmpty(message = "分类名称不能为空")
+    @Length(max = 100, message = "分类名称不能超过100个字符")
+    private String tagName;
+
+    @ApiModelProperty(value = "标签图片icon")
+    private String icon;
+
+    @ApiModelProperty(value = "排序")
+    @NotNull(message = "排序不能为空")
+    @Range(min = 0, max = 9999, message = "排序最范围为0-9999")
+    private Integer sort;
+    @ApiModelProperty(value = "状态0-关闭,1-开启")
+    private Integer status;
+
+}

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/producttag/ProductTagSearchRequest.java

@@ -13,4 +13,6 @@ public class ProductTagSearchRequest {
 
     @ApiModelProperty(value = "搜索关键字")
     private String keywords;
+    @ApiModelProperty(value = "状态")
+    private Integer status;
 }

+ 2 - 2
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/request/secondhand/SecondHandOrderSendRequest.java

@@ -38,9 +38,9 @@ public class SecondHandOrderSendRequest implements Serializable {
     @NotBlank(message = "订单编号不能为空")
     private String orderNo;
 
-    @ApiModelProperty(value = "发货类型:express-快递,merchant-商家配送,noNeed-无需发货,takeout-外卖配送", allowableValues = "range[express,merchant,noNeed]", required = true)
+    @ApiModelProperty(value = "发货类型:express-快递,merchant-商家配送,noNeed-无需发货,takeout-外卖配送,selfPickup-自提", allowableValues = "range[express,merchant,noNeed]", required = true)
     @NotBlank(message = "请选择发货类型")
-    @StringContains(limitValues = {"express","merchant","noNeed","takeout"}, message = "未知的发货类型")
+    @StringContains(limitValues = {"express","merchant","noNeed","takeout","selfPickup"}, message = "未知的发货类型")
     private String deliveryType;
 
     @ApiModelProperty(value = "快递公司")

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/OrderCenterNumResponse.java

@@ -46,5 +46,7 @@ public class OrderCenterNumResponse implements Serializable {
 
     @ApiModelProperty(value = "退款中数量")
     private Integer refundCount;
+    @ApiModelProperty(value = "等待我退款处理的数量")
+    private Integer awaitMyRefundCount;
 
 }

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/ProductInfoResponse.java

@@ -144,4 +144,6 @@ public class ProductInfoResponse implements Serializable {
 
     @ApiModelProperty(value = "是否推荐")
     private Boolean isHot;
+
+    private List<String> tagIds;
 }

+ 140 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/express/PlatformExpressOrderAdminDetailResponse.java

@@ -0,0 +1,140 @@
+package com.zbkj.common.response.express;
+
+import com.zbkj.common.response.express.ExpressOrderInfoFrontDataResponse;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 平台订单详情响应对象
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="PlatformExpressOrderAdminDetailResponse对象", description="平台订单详情响应对象")
+public class PlatformExpressOrderAdminDetailResponse implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "用户id")
+    private Integer uid;
+
+    @ApiModelProperty(value = "订单商品总数")
+    private Integer totalNum;
+
+    @ApiModelProperty(value = "商品总价")
+    private BigDecimal proTotalPrice;
+
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal totalPostage;
+
+    @ApiModelProperty(value = "订单总价")
+    private BigDecimal totalPrice;
+
+    @ApiModelProperty(value = "优惠券金额")
+    private BigDecimal couponPrice;
+
+    @ApiModelProperty(value = "使用积分")
+    private Integer useIntegral;
+
+    @ApiModelProperty(value = "积分抵扣金额")
+    private BigDecimal integralPrice;
+
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payPrice;
+
+    @ApiModelProperty(value = "支付邮费")
+    private BigDecimal payPostage;
+
+    @ApiModelProperty(value = "支付状态")
+    private Boolean paid;
+
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+
+    @ApiModelProperty(value = "支付方式:weixin,alipay,yue")
+    private String payType;
+
+    @ApiModelProperty(value = "支付渠道:public-公众号,mini-小程序,h5-网页支付,yue-余额,wechatIos-微信Ios,wechatAndroid-微信Android,alipay-支付宝,alipayApp-支付宝App")
+    private String payChannel;
+
+    @ApiModelProperty(value = "订单状态(0:待支付,1:待接单,2-待收件 3:配送中,4-已完成,9:已取消)")
+    private Integer status;
+
+    @ApiModelProperty(value = "取消状态:0-未取消,1-系统取消,2-用户取消")
+    private Integer cancelStatus;
+
+    @ApiModelProperty(value = "用户是否删除")
+    private Boolean isUserDel;
+    @ApiModelProperty(value = "赠送积分")
+    private Integer gainIntegral;
+
+    @ApiModelProperty(value = "商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号")
+    private String outTradeNo;
+    @ApiModelProperty(value = "订单类型:0-取件,1-寄件")
+    private Integer type;
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    @ApiModelProperty(value = "收货人姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "收货人电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "收货详细地址")
+    private String userAddress;
+
+    @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3-虚拟发货")
+    private Integer shippingType;
+
+    @ApiModelProperty(value = "平台手续费")
+    private BigDecimal commissionCharge;
+
+    @ApiModelProperty(value = "商户备注")
+    private String remark;
+
+    // 以下为自定义添加部分
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickname;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "订单商品详情")
+    List<ExpressOrderInfoFrontDataResponse> orderDetailList;
+
+    @ApiModelProperty(value = "商户优惠券金额")
+    private BigDecimal merCouponPrice;
+
+    @ApiModelProperty(value = "平台优惠券金额")
+    private BigDecimal platCouponPrice;
+
+    @ApiModelProperty(value = "svip优惠金额")
+    private BigDecimal svipDiscountPrice;
+    @ApiModelProperty(value = "快递员")
+    private String courier;
+    @ApiModelProperty(value = "快递员联系电话")
+    private String courierPhone;
+    @ApiModelProperty(value = "收件时间")
+    private Date receivingTime;
+}

+ 67 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/express/PlatformExpressOrderPageResponse.java

@@ -0,0 +1,67 @@
+package com.zbkj.common.response.express;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 平台端订单分页列表响应对象
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="PlatformExpressOrderPageResponse对象", description="平台端订单分页列表响应对象")
+public class PlatformExpressOrderPageResponse implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payPrice;
+
+    @ApiModelProperty(value = "支付方式:weixin,alipay,yue")
+    private String payType;
+
+    @ApiModelProperty(value = "订单状态(0:待支付,1:待发货,2:部分发货, 3:待核销,4:待收货,5:已收货,6:已完成,9:已取消)")
+    private Integer status;
+
+
+    @ApiModelProperty(value = "取消状态:0-未取消,1-系统取消,2-用户取消")
+    private Integer cancelStatus;
+
+    @ApiModelProperty(value = "用户是否删除")
+    private Boolean isUserDel;
+
+    @ApiModelProperty(value = "订单类型:0-取件,1-寄件")
+    private Integer type;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "订单商品总数")
+    private Integer totalNum;
+
+    @ApiModelProperty(value = "配送费用")
+    private BigDecimal totalPrice;
+
+}

+ 40 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/rider/RiderAccountResponse.java

@@ -0,0 +1,40 @@
+package com.zbkj.common.response.rider;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 用户-我的账户响应对象
+ *  +----------------------------------------------------------------------
+ *  | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ *  +----------------------------------------------------------------------
+ *  | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ *  +----------------------------------------------------------------------
+ *  | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ *  +----------------------------------------------------------------------
+ *  | Author: CRMEB Team <admin@crmeb.com>
+ *  +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="RiderAccountResponse对象", description="用户-我的账户响应对象")
+public class RiderAccountResponse implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "账户余额")
+    private BigDecimal nowMoney;
+
+    @ApiModelProperty(value = "累计提现额")
+    private BigDecimal settledCommissionPrice;
+    @ApiModelProperty(value = "冻结额")
+    private BigDecimal freezePrice;
+
+}

+ 43 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/rider/RiderMyAccountResponse.java

@@ -0,0 +1,43 @@
+package com.zbkj.common.response.rider;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 用户-我的账户响应对象
+ *  +----------------------------------------------------------------------
+ *  | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ *  +----------------------------------------------------------------------
+ *  | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ *  +----------------------------------------------------------------------
+ *  | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ *  +----------------------------------------------------------------------
+ *  | Author: CRMEB Team <admin@crmeb.com>
+ *  +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="RiderMyAccountResponse", description="骑手-我的账户响应对象")
+public class RiderMyAccountResponse implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "账户余额")
+    private BigDecimal nowMoney;
+
+    @ApiModelProperty(value = "累计提现金额")
+    private BigDecimal cashWithdrawal;
+
+    @ApiModelProperty(value = "冻结金额")
+    private BigDecimal freezeBrokerage;
+
+    @ApiModelProperty(value = "充值开关")
+    private Boolean rechargeSwitch;
+}

+ 2 - 0
ydd_mer_java/crmeb-common/src/main/java/com/zbkj/common/response/secondhand/SellerOrderFrontDetailResponse.java

@@ -94,5 +94,7 @@ public class SellerOrderFrontDetailResponse implements Serializable {
 
     @ApiModelProperty(value = "订单详情")
     private List<SecondOrderInfoFrontDataResponse> orderInfoList;
+    @ApiModelProperty(value = "发货类型:express-快递,fictitious-虚拟发货,merchant-商家配送,noNeed-无需发货,selfPickup-自提")
+    private String deliveryType;
 
 }

+ 7 - 1
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/SecondHandOrderController.java

@@ -2,6 +2,7 @@ package com.zbkj.front.controller;
 
 import com.zbkj.common.annotation.LogControllerAnnotation;
 import com.zbkj.common.enums.MethodType;
+import com.zbkj.common.model.secondhand.SecondHandOrderDetail;
 import com.zbkj.common.page.CommonPage;
 import com.zbkj.common.request.*;
 import com.zbkj.common.request.secondhand.CreateSecondHandOrderRequest;
@@ -73,7 +74,6 @@ public class SecondHandOrderController {
     public CommonResult<CommonPage<SecondOrderFrontDataResponse>> orderList(@ModelAttribute @Validated OrderFrontListRequest request) {
         return CommonResult.success(CommonPage.restPage(orderService.list_v1_4(request)));
     }
-
     @ApiOperation(value = "订单详情")
     @RequestMapping(value = "/detail/{orderNo}", method = RequestMethod.GET)
     public CommonResult<SecondHandOrderFrontDetailResponse> orderDetail(@PathVariable String orderNo) {
@@ -144,4 +144,10 @@ public class SecondHandOrderController {
     public CommonResult<String> getOrderDetail(@PathVariable Integer productId) {
         return CommonResult.success(orderService.frontDetailByProductId(productId));
     }
+    @ApiOperation(value = "待我发货的列表")
+    @RequestMapping(value = "/my/send/list", method = RequestMethod.GET)
+    public CommonResult<CommonPage<SecondHandOrderDetail>> mySendList(@ModelAttribute CommonSearchRequest request) {
+        return CommonResult.success(CommonPage.restPage(orderService.mySendList(request)));
+    }
+
 }

+ 55 - 0
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/WhatTodayTagController.java

@@ -0,0 +1,55 @@
+package com.zbkj.front.controller;
+
+import com.zbkj.common.model.product.Product;
+import com.zbkj.common.model.product.ProductCategory;
+import com.zbkj.common.model.product.WhatTodayEatTag;
+import com.zbkj.common.request.WhatTodayEatSearchRequest;
+import com.zbkj.common.response.ProductFrontResponse;
+import com.zbkj.common.result.CommonResult;
+import com.zbkj.common.vo.ProCategoryCacheVo;
+import com.zbkj.service.service.ProductCategoryService;
+import com.zbkj.service.service.ProductService;
+import com.zbkj.service.service.WhatTodayEatTagService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品分类控制器
+ *  +----------------------------------------------------------------------
+ *  | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ *  +----------------------------------------------------------------------
+ *  | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ *  +----------------------------------------------------------------------
+ *  | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ *  +----------------------------------------------------------------------
+ *  | Author: CRMEB Team <admin@crmeb.com>
+ *  +----------------------------------------------------------------------
+ */
+@Slf4j
+@RestController
+@RequestMapping("api/front/whattodayeat")
+@Api(tags = "今日吃啥控制器")
+public class WhatTodayTagController {
+
+    @Autowired
+    private ProductService productService;
+    @Autowired
+    private WhatTodayEatTagService whatTodayEatTagService;
+
+    @ApiOperation(value = "获取今日吃啥标签")
+    @RequestMapping(value = "/get/tag", method = RequestMethod.GET)
+    public CommonResult<List<WhatTodayEatTag>> getFrontTagShowList() {
+        return CommonResult.success(whatTodayEatTagService.getFrontShowList());
+    }
+
+    @ApiOperation(value = "根据标签查询附近商品")
+    @RequestMapping(value = "/get/product", method = RequestMethod.GET)
+    public CommonResult<List<ProductFrontResponse>> getWhatTodayEatByTag(@ModelAttribute WhatTodayEatSearchRequest request) {
+        return CommonResult.success(productService.getWhatTodayEatByTag(request));
+    }
+}

+ 32 - 9
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/controller/rider/RiderController.java

@@ -1,9 +1,14 @@
 package com.zbkj.front.controller.rider;
 
 import com.zbkj.common.page.CommonPage;
+import com.zbkj.common.request.BrokerageToYueRequest;
 import com.zbkj.common.request.PageParamRequest;
 import com.zbkj.common.request.SendCodeRequest;
+import com.zbkj.common.request.UserClosingApplyRequest;
 import com.zbkj.common.request.rider.RiderSettledApplyRequest;
+import com.zbkj.common.response.UserClosingConfigResponse;
+import com.zbkj.common.response.UserMyAccountResponse;
+import com.zbkj.common.response.rider.RiderAccountResponse;
 import com.zbkj.common.response.rider.RiderPlatformDetailResponse;
 import com.zbkj.common.response.rider.RiderSettledResponse;
 import com.zbkj.common.result.CommonResult;
@@ -64,13 +69,31 @@ public class RiderController {
     public CommonResult<RiderPlatformDetailResponse> info() {
         return CommonResult.success(riderService.getInfo());
     }
-//    @LogControllerAnnotation(intoDB = true, methodType = MethodType.UPDATE, description = "编辑骑手")
-//    @ApiOperation(value="编辑骑手")
-//    @RequestMapping(value = "/update", method = RequestMethod.POST)
-//    public CommonResult<String> update(@RequestBody @Validated RiderUpdateRequest request) {
-//        if (riderService.edit(request)) {
-//            return CommonResult.success("编辑骑手成功");
-//        }
-//        return CommonResult.failed("编辑骑手失败");
-//    }
+    @ApiOperation(value = "我的账户")
+    @RequestMapping(value = "/my/account", method = RequestMethod.GET)
+    public CommonResult<RiderAccountResponse> getMyAccount() {
+        return CommonResult.success(riderService.getMyAccount());
+    }
+    @ApiOperation(value = "结算申请")
+    @RequestMapping(value = "/closing/apply", method = RequestMethod.POST)
+    public CommonResult<String> closingApply(@RequestBody @Validated UserClosingApplyRequest request) {
+        if (riderService.userClosingApply(request)) {
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+    @ApiOperation(value = "获取用户结算配置")
+    @RequestMapping(value = "/closing/config", method = RequestMethod.GET)
+    public CommonResult<UserClosingConfigResponse> getClosingConfig() {
+        return CommonResult.success(riderService.getUserClosingConfig());
+    }
+    @ApiOperation(value = "佣金转入余额")
+    @RequestMapping(value = "/brokerage/to/yue", method = RequestMethod.POST)
+    public CommonResult<String> brokerageToYue(@RequestBody @Validated BrokerageToYueRequest request) {
+        if (riderService.brokerageToYue(request)) {
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
 }

+ 8 - 0
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/SecondHandFrontOrderService.java

@@ -99,6 +99,13 @@ public interface SecondHandFrontOrderService {
      */
     PageInfo<SecondHandOrderDetail> getAfterSaleApplyList(CommonSearchRequest request);
 
+
+    /**
+     * 待我发货的列表
+     * @param request 搜索参数
+     */
+    PageInfo<SecondHandOrderDetail> mySendList(CommonSearchRequest request);
+
     /**
      * 查询退款理由
      * @return 退款理由集合
@@ -178,6 +185,7 @@ public interface SecondHandFrontOrderService {
      */
     PageInfo<SecondOrderFrontDataResponse> list_v1_4(OrderFrontListRequest request);
 
+
     /**
      *配送时间
      * @return

+ 1 - 31
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/FrontExpressOrderServiceImpl.java

@@ -11,63 +11,33 @@ import com.github.pagehelper.PageInfo;
 import com.zbkj.common.config.CrmebConfig;
 import com.zbkj.common.constants.*;
 import com.zbkj.common.exception.CrmebException;
-import com.zbkj.common.model.cat.Cart;
-import com.zbkj.common.model.cdkey.CardSecret;
-import com.zbkj.common.model.coupon.Coupon;
-import com.zbkj.common.model.coupon.CouponProduct;
-import com.zbkj.common.model.coupon.CouponUser;
 import com.zbkj.common.model.express.*;
-import com.zbkj.common.model.groupbuy.GroupBuyActivitySku;
-import com.zbkj.common.model.groupbuy.GroupBuyRecord;
-import com.zbkj.common.model.groupbuy.GroupBuyUser;
-import com.zbkj.common.model.merchant.Merchant;
-import com.zbkj.common.model.merchant.MerchantMarket;
-import com.zbkj.common.model.order.*;
-import com.zbkj.common.model.product.Product;
-import com.zbkj.common.model.product.ProductAttrValue;
-import com.zbkj.common.model.product.ProductCategory;
-import com.zbkj.common.model.product.ProductReply;
-import com.zbkj.common.model.rider.RiderFeeConfig;
-import com.zbkj.common.model.seckill.SeckillProduct;
 import com.zbkj.common.model.user.User;
 import com.zbkj.common.model.user.UserAddress;
 import com.zbkj.common.model.user.UserExpressAddress;
-import com.zbkj.common.model.user.UserIntegralRecord;
-import com.zbkj.common.model.wechat.video.PayComponentProduct;
-import com.zbkj.common.model.wechat.video.PayComponentProductSku;
 import com.zbkj.common.page.CommonPage;
-import com.zbkj.common.request.*;
 import com.zbkj.common.request.express.CreateExpressOrderRequest;
 import com.zbkj.common.request.express.ExpressOrderFrontListRequest;
 import com.zbkj.common.request.express.PreExpressOrderDetailRequest;
 import com.zbkj.common.request.express.PreExpressOrderRequest;
-import com.zbkj.common.response.*;
 import com.zbkj.common.response.express.*;
-import com.zbkj.common.response.groupbuy.GroupBuyActivityRecordForFrontShareUse;
 import com.zbkj.common.result.CommonResultCode;
 import com.zbkj.common.result.OrderResultCode;
 import com.zbkj.common.utils.CrmebDateUtil;
 import com.zbkj.common.utils.CrmebUtil;
-import com.zbkj.common.utils.GeoUtils;
 import com.zbkj.common.utils.RedisUtil;
 import com.zbkj.common.vo.*;
 import com.zbkj.front.service.FrontExpressOrderService;
-import com.zbkj.front.service.SeckillService;
-import com.zbkj.service.ExpressOrderService;
+import com.zbkj.service.service.ExpressOrderService;
 import com.zbkj.service.service.*;
-import com.zbkj.service.service.groupbuy.GroupBuyActivitySkuService;
-import com.zbkj.service.service.groupbuy.GroupBuyRecordService;
-import com.zbkj.service.service.groupbuy.GroupBuyUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.support.TransactionTemplate;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;

+ 1 - 1
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/GameFrontServiceImpl.java

@@ -104,7 +104,7 @@ public class GameFrontServiceImpl implements GameFrontService {
         }
         GameNotesRelation relation = gameNotesRelationService.getOneByNoteIdAndUid(noteId, userId);
         if (ObjectUtil.isNotNull(relation)) {
-            boolean remove = gameNotesRelationService.removeById(relation);
+            boolean remove = gameNotesRelationService.removeById(relation.getId());
             if (!remove) {
                 throw new CrmebException(CommonResultCode.ERROR.setMessage("游戏取消加入失败"));
             }

+ 46 - 11
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/SecondHandFrontOrderServiceImpl.java

@@ -14,6 +14,7 @@ import com.zbkj.common.exception.CrmebException;
 import com.zbkj.common.model.express.ShippingTemplates;
 import com.zbkj.common.model.express.ShippingTemplatesFree;
 import com.zbkj.common.model.express.ShippingTemplatesRegion;
+import com.zbkj.common.model.order.Order;
 import com.zbkj.common.model.secondhand.*;
 import com.zbkj.common.model.user.User;
 import com.zbkj.common.model.user.UserAddress;
@@ -34,7 +35,7 @@ import com.zbkj.common.vo.secondhand.PreSecondHandOrderInfoVo;
 import com.zbkj.common.vo.secondhand.PreSellerOrderVo;
 import com.zbkj.front.service.SecondHandFrontOrderService;
 import com.zbkj.service.service.*;
-import com.zbkj.service.service.impl.SecondHandOrderDetailService;
+import com.zbkj.service.service.SecondHandOrderDetailService;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -621,6 +622,12 @@ public class SecondHandFrontOrderServiceImpl implements SecondHandFrontOrderServ
         List<SellerOrderFrontDetailResponse> merDetailResponseList = CollUtil.newArrayList();
         SellerOrderFrontDetailResponse merDetailResponse = new SellerOrderFrontDetailResponse();
             BeanUtils.copyProperties(order, merDetailResponse);
+        if (merDetailResponse.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)) {
+            merDetailResponse.setDeliveryType(OrderConstants.ORDER_DELIVERY_TYPE_TPICK_UP);
+        }
+        if (merDetailResponse.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_EXPRESS)) {
+            merDetailResponse.setDeliveryType(OrderConstants.ORDER_DELIVERY_TYPE_EXPRESS);
+        }
             List<SecondHandOrderDetail> detailList = orderDetailMap.get(order.getSellerId());
             List<SecondOrderInfoFrontDataResponse> dataResponseList = detailList.stream().map(d -> {
                 SecondOrderInfoFrontDataResponse dataResponse = new SecondOrderInfoFrontDataResponse();
@@ -629,6 +636,9 @@ public class SecondHandFrontOrderServiceImpl implements SecondHandFrontOrderServ
                 merDetailResponse.setMerLatitude(prod.getLatitude());
                 merDetailResponse.setMerLongitude(prod.getLongitude());
                 UserAddress userAddress=userAddressService.getById(prod.getAddressId());
+                if(ObjectUtil.isNull(userAddress)){
+                    throw new   CrmebException("未找到卖家的地址");
+                }
                 merDetailResponse.setMerProvince(userAddress.getProvince());
                 merDetailResponse.setMerCity(userAddress.getCity());
                 merDetailResponse.setMerDistrict(userAddress.getDistrict());
@@ -712,14 +722,17 @@ public class SecondHandFrontOrderServiceImpl implements SecondHandFrontOrderServ
         if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_ALL)) {
             throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL, "已退款订单无法收货");
         }
-        if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
-            if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_WAIT_SHIPPING)) {
-                throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL);
-            }
-        }else {
-            if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_WAIT_RECEIPT)) {
-                throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL);
-            }
+//        if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
+//            if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_WAIT_SHIPPING)) {
+//                throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL);
+//            }
+//        }else {
+//            if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_WAIT_RECEIPT)) {
+//                throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL);
+//            }
+//        }
+        if (!order.getStatus().equals(OrderConstants.ORDER_STATUS_WAIT_RECEIPT)) {
+            throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL);
         }
         if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_APPLY)) {
             throw new CrmebException(OrderResultCode.ORDER_STATUS_ABNORMAL, "请先撤销售后,再进行收货操作");
@@ -786,6 +799,17 @@ public class SecondHandFrontOrderServiceImpl implements SecondHandFrontOrderServ
         return pageInfo;
     }
 
+    @Override
+    public PageInfo<SecondHandOrderDetail> mySendList(CommonSearchRequest request) {
+        Integer uid = userService.getUserIdException();
+        PageInfo<SecondHandOrderDetail> pageInfo = orderDetailService.findMySendList(uid, request);
+        List<SecondHandOrderDetail> orderDetailList = pageInfo.getList();
+        if (CollUtil.isEmpty(orderDetailList)) {
+            return pageInfo;
+        }
+        return pageInfo;
+    }
+
 
     /**
      * 退款订单列表
@@ -821,12 +845,23 @@ public class SecondHandFrontOrderServiceImpl implements SecondHandFrontOrderServ
 
     @Override
     public LogisticsResultVo getLogisticsInfo(Integer invoiceId) {
-        return null;
+        return secondHandOrderService.getLogisticsInfo(invoiceId);
     }
 
     @Override
     public OrderInvoiceFrontResponse getInvoiceList(String orderNo) {
-        return null;
+        SecondHandOrder order = secondHandOrderService.getByOrderNo(orderNo);
+        List<OrderInvoiceResponse> invoiceList = secondHandOrderService.getInvoiceList(orderNo);
+        OrderInvoiceFrontResponse response = new OrderInvoiceFrontResponse();
+        response.setInvoiceList(invoiceList);
+        if (CollUtil.isEmpty(invoiceList)) {
+            response.setNum(1);
+            response.setDeliveryNum(0);
+            return response;
+        }
+        response.setNum(order.getStatus().equals(OrderConstants.ORDER_STATUS_PART_SHIPPING) ? invoiceList.size() + 1 : invoiceList.size());
+        response.setDeliveryNum(invoiceList.size());
+        return response;
     }
 
 //    /**

+ 1 - 4
ydd_mer_java/crmeb-front/src/main/java/com/zbkj/front/service/impl/SecondHandFrontServiceImpl.java

@@ -381,11 +381,8 @@ public class SecondHandFrontServiceImpl implements SecondHandFrontService {
     public OrderCenterNumResponse getUserCenterOrderNum() {
         Integer userId = userService.getUserIdException();
         OrderCenterNumResponse response = new OrderCenterNumResponse();
-        response.setAwaitPayCount(orderService.getCountByStatusAndUid(OrderConstants.ORDER_STATUS_WAIT_PAY, userId));
         response.setAwaitShippedCount(orderService.getCountByStatusAndUid(OrderConstants.ORDER_STATUS_WAIT_SHIPPING, userId));
-        response.setReceiptCount(orderService.getCountByStatusAndUid(OrderConstants.ORDER_STATUS_WAIT_RECEIPT, userId));
-        response.setVerificationCount(orderService.getCountByStatusAndUid(OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION, userId));
-        //response.setAwaitReplyCount(orderDetailService.getAwaitReplyCount(userId));
+        response.setAwaitMyRefundCount(refundOrderService.getSellerRefundingCount(userId));
         response.setRefundCount(refundOrderService.getRefundingCount(userId));
         return response;
     }

+ 2 - 3
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/ExpressOrderDao.java

@@ -2,8 +2,7 @@ package com.zbkj.service.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zbkj.common.model.express.ExpressOrder;
-import com.zbkj.common.model.order.Order;
-import com.zbkj.common.response.PlatformOrderPageResponse;
+import com.zbkj.common.response.express.PlatformExpressOrderPageResponse;
 
 import java.util.List;
 import java.util.Map;
@@ -23,5 +22,5 @@ public interface ExpressOrderDao  extends BaseMapper<ExpressOrder> {
     Integer getPlatformAdminPageCount(Map<String, Object> map);
 
 
-    List<PlatformOrderPageResponse> getPlatformAdminPage(Map<String, Object> map);
+    List<PlatformExpressOrderPageResponse> getPlatformAdminPage(Map<String, Object> map);
 }

+ 8 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/ProductDao.java

@@ -2,6 +2,7 @@ package com.zbkj.service.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zbkj.common.model.product.Product;
+import com.zbkj.common.request.WhatTodayEatSearchRequest;
 import com.zbkj.common.response.PlatformProductListResponse;
 import com.zbkj.common.response.ProductActivityResponse;
 import com.zbkj.common.response.ProductFrontResponse;
@@ -81,4 +82,11 @@ public interface ProductDao extends BaseMapper<Product> {
      * @param map 查询参数
      */
     Integer getPlatformPageCount(Map<String, Object> map);
+
+    /**
+     * 今日吃啥
+     * @param request
+     * @return
+     */
+    List<ProductFrontResponse> getWhatTodayEatByTag(Map<String, Object> map);
 }

+ 21 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/RiderBalanceRecordDao.java

@@ -0,0 +1,21 @@
+package com.zbkj.service.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zbkj.common.model.rider.RiderBalanceRecord;
+import com.zbkj.common.model.user.UserBrokerageRecord;
+
+/**
+ * 用户佣金记录表 Mapper 接口
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+public interface RiderBalanceRecordDao extends BaseMapper<RiderBalanceRecord> {
+
+}

+ 7 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/SecondHandOrderDetailDao.java

@@ -27,6 +27,13 @@ public interface SecondHandOrderDetailDao extends BaseMapper<SecondHandOrderDeta
     List<SecondHandOrderDetail> findAfterSaleApplyList(@Param("uid") Integer uid, @Param("keywords") String keywords);
 
     /**
+     * 售后申请列表(可申请售后列表)
+     * @param uid 用户id
+     * @param keywords 订单号/商品名称
+     */
+    List<SecondHandOrderDetail> findMySendList(@Param("uid") Integer uid, @Param("keywords") String keywords);
+
+    /**
      * 根据时间、商品id获取销售件数
      * @param date 时间,格式'yyyy-MM-dd'
      * @param proId 商品id

+ 23 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/dao/WhatToayEatTagDao.java

@@ -0,0 +1,23 @@
+package com.zbkj.service.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zbkj.common.model.product.ProductTag;
+import com.zbkj.common.model.product.WhatTodayEatTag;
+import com.zbkj.common.response.ProductTagTaskItem;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author dazongzi
+ * @since 2023-10-11
+ */
+public interface WhatToayEatTagDao extends BaseMapper<WhatTodayEatTag> {
+
+
+}

+ 1 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/RefundOrderManagerService.java

@@ -202,4 +202,5 @@ public interface RefundOrderManagerService extends IService<RefundOrder> {
      * @param outRefundNo 第三方单号
      */
     List<RefundOrder> findByOutRefundNo(String outRefundNo);
+
 }

+ 7 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandOrderDetailService.java

@@ -48,6 +48,13 @@ public interface SecondHandOrderDetailService extends IService<SecondHandOrderDe
     PageInfo<SecondHandOrderDetail> findAfterSaleApplyList(Integer uid, CommonSearchRequest request);
 
     /**
+     * 售后申请列表(可申请售后列表)
+     * @param request 分页参数
+     * @return PageInfo
+     */
+    PageInfo<SecondHandOrderDetail> findMySendList(Integer uid, CommonSearchRequest request);
+
+    /**
      * 根据时间、商品id获取销售件数
      * @param date 时间,格式'yyyy-MM-dd'
      * @param proId 商品id

+ 22 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandOrderService.java

@@ -152,4 +152,26 @@ public interface SecondHandOrderService extends IService<SecondHandOrder> {
      */
     LogisticsResultVo getLogisticsInfo(Integer invoiceId);
 
+    /**
+     * 获取可以自动完成的订单
+     * @param autoCompleteDay 自动完成订单天数
+     * @return 可以自动完成的订单列表
+     */
+    List<SecondHandOrder> findCanCompleteOrder(Integer autoCompleteDay);
+
+    /**
+     * 按订单号批量完成订单
+     * @param orderNoList 订单号列表
+     * @return Boolean
+     */
+    Boolean batchCompleteByOrderNo(List<String> orderNoList);
+
+
+    /**
+     * 获取待收货订单
+     * @param sendTime 发货时间
+     * @return List
+     */
+    List<SecondHandOrder> findAwaitTakeDeliveryOrderList(String sendTime);
+
 }

+ 7 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandRefundOrderManagerService.java

@@ -1,7 +1,10 @@
 package com.zbkj.service.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.pagehelper.PageInfo;
+import com.zbkj.common.constants.OrderConstants;
 import com.zbkj.common.model.admin.SystemAdmin;
 import com.zbkj.common.model.order.Order;
 import com.zbkj.common.model.order.OrderDetail;
@@ -13,6 +16,7 @@ import com.zbkj.common.request.*;
 import com.zbkj.common.response.*;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -210,4 +214,7 @@ public interface SecondHandRefundOrderManagerService extends IService<SecondHand
      * @param outRefundNo 第三方单号
      */
     List<SecondHandRefundOrder> findByOutRefundNo(String outRefundNo);
+
+
+    Integer getSellerRefundingCount(Integer userId);
 }

+ 3 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondHandRefundOrderService.java

@@ -210,4 +210,7 @@ public interface SecondHandRefundOrderService extends IService<SecondHandRefundO
      * @param outRefundNo 第三方单号
      */
     List<SecondHandRefundOrder> findByOutRefundNo(String outRefundNo);
+
+
+    Integer getSellerRefundingCount(Integer userId);
 }

+ 29 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/SecondhandOrderTaskService.java

@@ -0,0 +1,29 @@
+package com.zbkj.service.service;
+
+
+/**
+ * 订单任务服务 StoreOrderService 接口
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+public interface SecondhandOrderTaskService {
+    
+    /**
+     * 订单自动完成
+     */
+    void autoComplete();
+
+    /**
+     * 订单自动收货
+     */
+    void autoTakeDelivery();
+
+
+}

+ 8 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderDetailServiceImpl.java

@@ -89,6 +89,14 @@ public class SecondHandOrderDetailServiceImpl extends ServiceImpl<SecondHandOrde
         return CommonPage.copyPageInfo(page, orderDetailList);
     }
 
+    @Override
+    public PageInfo<SecondHandOrderDetail> findMySendList(Integer uid, CommonSearchRequest request) {
+        Page<SecondHandOrderDetail> page = PageHelper.startPage(request.getPage(), request.getLimit());
+        String keywords = StrUtil.isNotBlank(request.getKeywords()) ? URLUtil.decode(request.getKeywords()) : "";
+        List<SecondHandOrderDetail> orderDetailList = dao.findMySendList(uid, keywords);
+        return CommonPage.copyPageInfo(page, orderDetailList);
+    }
+
     /**
      * 根据时间、商品id获取销售件数
      * @param date 时间,格式'yyyy-MM-dd'

+ 77 - 31
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderServiceImpl.java

@@ -6,9 +6,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.URLUtil;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,42 +17,32 @@ import com.zbkj.common.config.CrmebConfig;
 import com.zbkj.common.constants.*;
 import com.zbkj.common.exception.CrmebException;
 import com.zbkj.common.model.admin.SystemAdmin;
-import com.zbkj.common.model.express.Express;
-import com.zbkj.common.model.merchant.Merchant;
 import com.zbkj.common.model.order.*;
 import com.zbkj.common.model.secondhand.SecondHandOrder;
 import com.zbkj.common.model.secondhand.SecondHandOrderDetail;
 import com.zbkj.common.model.secondhand.SecondHandProd;
-import com.zbkj.common.model.system.SystemNotification;
 import com.zbkj.common.model.user.User;
-import com.zbkj.common.model.user.UserToken;
 import com.zbkj.common.page.CommonPage;
 import com.zbkj.common.request.*;
 import com.zbkj.common.request.secondhand.SecondHandOrderSendRequest;
 import com.zbkj.common.response.*;
-import com.zbkj.common.response.onepass.ElectrResponse;
 import com.zbkj.common.result.CommonResultCode;
 import com.zbkj.common.result.OrderResultCode;
 import com.zbkj.common.utils.CrmebDateUtil;
 import com.zbkj.common.utils.CrmebUtil;
-import com.zbkj.common.utils.RedisUtil;
 import com.zbkj.common.utils.ValidateFormUtil;
 import com.zbkj.common.vo.DateLimitUtilVo;
 import com.zbkj.common.vo.LogisticsResultVo;
-import com.zbkj.common.vo.MyRecord;
-import com.zbkj.service.dao.OrderDao;
 import com.zbkj.service.dao.secondhand.SecondHandOrderDao;
 import com.zbkj.service.service.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.support.TransactionTemplate;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -159,15 +147,18 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
         Page<SecondHandOrder> page = PageHelper.startPage(request.getPage(), request.getLimit());
         if (StrUtil.isBlank(request.getKeywords())) {
             LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
-            lqw.eq(SecondHandOrder::getUid, userId);
-            if (request.getStatus() >= 0) {
+            if(request.getIsMyTask()!=null && 1==request.getIsMyTask()){
+                lqw.eq(SecondHandOrder::getSellerId, userId);
+            }else {
+                lqw.eq(SecondHandOrder::getUid, userId);
+            }
+            if (ObjectUtil.isNotNull(request.getStatus())&&request.getStatus() >= 0) {
                 if (request.getStatus() == 1) {
                     lqw.in(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING, OrderConstants.ORDER_STATUS_PART_SHIPPING);
                 } else if(request.getStatus() == 3) {
                     lqw.eq(SecondHandOrder::getStatus, 3);
                 } else {
                     lqw.eq(SecondHandOrder::getStatus, request.getStatus());
-//                    lqw.eq(Order::getGroupBuyRecordStatus, 0);
                 }
                 lqw.lt(SecondHandOrder::getRefundStatus, OrderConstants.ORDER_REFUND_STATUS_REFUND);
             }
@@ -183,6 +174,7 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
         searchMap.put("keywords", keywords);
         searchMap.put("status", request.getStatus());
         searchMap.put("userId", userId);
+        searchMap.put("isMyTask", request.getIsMyTask());
         List<SecondHandOrder> orderList = dao.findFrontList(searchMap);
         return CommonPage.copyPageInfo(page, orderList);
     }
@@ -380,20 +372,22 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
             return 0;
         }
         LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
-        lqw.eq(SecondHandOrder::getUid, userId);
         lqw.eq(SecondHandOrder::getIsDel, false);
         if (OrderConstants.ORDER_STATUS_WAIT_SHIPPING.equals(status)) {
             lqw.in(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING, OrderConstants.ORDER_STATUS_PART_SHIPPING);
-
-        } else if (OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION.equals(status)) {
-            lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION);
+            lqw.eq(SecondHandOrder::getSellerId, userId);
+            lqw.eq(SecondHandOrder::getRefundStatus, 0);
+        } else if (OrderConstants.ORDER_STATUS_WAIT_REFUND.equals(status)) {
+            lqw.eq(SecondHandOrder::getRefundStatus, 1);
+            lqw.eq(SecondHandOrder::getSellerId, userId);
         } else  {
+            lqw.eq(SecondHandOrder::getUid, userId);
             lqw.eq(SecondHandOrder::getStatus, status);
         }
         lqw.eq(SecondHandOrder::getIsUserDel, false);
         lqw.eq(SecondHandOrder::getIsSellerDel, false);
         lqw.eq(SecondHandOrder::getIsDel, false);
-        lqw.notIn(SecondHandOrder::getRefundStatus, OrderConstants.MERCHANT_REFUND_ORDER_STATUS_REFUND,OrderConstants.ORDER_REFUND_STATUS_APPLY);
+        lqw.notIn(SecondHandOrder::getRefundStatus, OrderConstants.MERCHANT_REFUND_ORDER_STATUS_REFUND);
         return dao.selectCount(lqw);
     }
 
@@ -406,14 +400,15 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
     public Boolean takeDelivery(String orderNo) {
         SecondHandOrder order =getByOrderNo(orderNo);
         LambdaUpdateWrapper<SecondHandOrder> wrapper = Wrappers.lambdaUpdate();
-        wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_COMPLETE);
+        wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_TAKE_DELIVERY);
         wrapper.set(SecondHandOrder::getReceivingTime, DateUtil.date());
         wrapper.eq(SecondHandOrder::getOrderNo, orderNo);
-        if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
-            wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING);
-        }else {
-            wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
-        }
+        wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
+//        if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
+//            wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING);
+//        }else {
+//            wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
+//        }
         return update(wrapper);
     }
 
@@ -435,13 +430,13 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
         if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_ALL)) {
             throw new CrmebException(OrderResultCode.ORDER_REFUND_ED);
         }
-        if (!(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_EXPRESS))) {
-            throw new CrmebException(OrderResultCode.ORDER_SHIPPING_TYPE_PICK_UP);
-        }
+//        if (!(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_EXPRESS))) {
+//            throw new CrmebException(OrderResultCode.ORDER_SHIPPING_TYPE_PICK_UP);
+//        }
         if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_APPLY)) {
             throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请先处理售后,再进行发货操作");
         }
-        return sendExpress(request, order);
+        return "selfPickup".equals(request.getDeliveryType())?selfPickup(request, order):sendExpress(request, order);
     }
 
     @Override
@@ -593,6 +588,35 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
         return logisticService.info(orderInvoice.getTrackingNumber(), null, Optional.ofNullable(orderInvoice.getExpressCode()).orElse(""), order.getUserPhone());
     }
 
+    @Override
+    public List<SecondHandOrder> findCanCompleteOrder(Integer autoCompleteDay) {
+        DateTime autoCompleteDate = DateUtil.offsetDay(DateUtil.date(), -autoCompleteDay);
+        LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
+        lqw.select(SecondHandOrder::getId, SecondHandOrder::getUid, SecondHandOrder::getOrderNo);
+        lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_TAKE_DELIVERY);
+        lqw.eq(SecondHandOrder::getLevel, OrderConstants.ORDER_LEVEL_PLATFORM);
+        lqw.le(SecondHandOrder::getReceivingTime, autoCompleteDate);
+        return dao.selectList(lqw);
+    }
+
+    @Override
+    public Boolean batchCompleteByOrderNo(List<String> orderNoList) {
+        LambdaUpdateWrapper<SecondHandOrder> wrapper = Wrappers.lambdaUpdate();
+        wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_COMPLETE);
+        wrapper.in(SecondHandOrder::getOrderNo, orderNoList);
+        return update(wrapper);
+    }
+
+    @Override
+    public List<SecondHandOrder> findAwaitTakeDeliveryOrderList(String sendTime) {
+        LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
+        lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
+        lqw.ne(SecondHandOrder::getRefundStatus, OrderConstants.ORDER_REFUND_STATUS_REFUND);
+        lqw.le(SecondHandOrder::getUpdateTime, sendTime);
+        lqw.eq(SecondHandOrder::getIsDel, false);
+        return dao.selectList(lqw);
+    }
+
     /**
      * 快递发货
      *
@@ -649,6 +673,29 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
         return execute;
     }
     /**
+     * 自提
+     *
+     * @param request       发货参数
+     * @param order         订单信息
+     */
+    private Boolean selfPickup(SecondHandOrderSendRequest request, SecondHandOrder order) {
+        // 筛选需要发货的订单详情
+        List<SecondHandOrderDetail> orderDetailList = orderDetailService.getByOrderNo(order.getOrderNo());
+        if (CollUtil.isEmpty(orderDetailList)) {
+            throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "订单没有需要发货的商品");
+        }
+        order.setStatus(OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
+        SecondHandProd secondHandProd=secondHandProdService.getById(orderDetailList.get(0).getProductId());
+        secondHandProd.setSaleStatus(3);//待收货
+        Boolean execute = transactionTemplate.execute(i -> {
+            updateById(order);
+            secondHandProdService.updateById(secondHandProd);
+            return Boolean.TRUE;
+        });
+        if (!execute) throw new CrmebException("自提发货失败!");
+        return execute;
+    }
+    /**
      * 校验快递发货参数
      *
      * @param request 发货参数
@@ -717,7 +764,6 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
      * 根据订单编号获取订单
      *
      * @param orderNo 订单编号
-     * @param merId   商户ID
      * @return Order
      * @Author 莫名
      * @Date 2022/10/8 11:40

+ 141 - 0
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandOrderTaskServiceImpl.java

@@ -0,0 +1,141 @@
+package com.zbkj.service.service.impl;
+
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.zbkj.common.config.CrmebConfig;
+import com.zbkj.common.constants.*;
+import com.zbkj.common.exception.CrmebException;
+import com.zbkj.common.model.bill.Bill;
+import com.zbkj.common.model.bill.MerchantBill;
+import com.zbkj.common.model.cdkey.CardSecret;
+import com.zbkj.common.model.groupbuy.GroupBuyActivitySku;
+import com.zbkj.common.model.groupbuy.GroupBuyUser;
+import com.zbkj.common.model.merchant.Merchant;
+import com.zbkj.common.model.merchant.MerchantBalanceRecord;
+import com.zbkj.common.model.order.*;
+import com.zbkj.common.model.product.Product;
+import com.zbkj.common.model.product.ProductAttrValue;
+import com.zbkj.common.model.seckill.SeckillProduct;
+import com.zbkj.common.model.secondhand.SecondHandOrder;
+import com.zbkj.common.model.system.SystemNotification;
+import com.zbkj.common.model.user.User;
+import com.zbkj.common.model.user.UserBrokerageRecord;
+import com.zbkj.common.model.user.UserIntegralRecord;
+import com.zbkj.common.model.user.UserToken;
+import com.zbkj.common.utils.CrmebDateUtil;
+import com.zbkj.common.utils.CrmebUtil;
+import com.zbkj.common.utils.RedisUtil;
+import com.zbkj.common.vo.MyRecord;
+import com.zbkj.service.service.*;
+import com.zbkj.service.service.groupbuy.GroupBuyActivitySkuService;
+import com.zbkj.service.service.groupbuy.GroupBuyUserService;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.support.TransactionTemplate;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * StoreOrderServiceImpl 接口实现
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Service
+public class SecondHandOrderTaskServiceImpl implements SecondhandOrderTaskService {
+    //日志
+    private static final Logger logger = LoggerFactory.getLogger(SecondHandOrderTaskServiceImpl.class);
+
+
+    @Autowired
+    private OrderStatusService orderStatusService;
+
+    @Autowired
+    private TransactionTemplate transactionTemplate;
+    @Autowired
+    private SystemConfigService systemConfigService;
+    @Autowired
+    private SecondHandOrderDetailService orderDetailService;
+
+    @Autowired
+    private SecondHandOrderService secondHandorderService;
+
+    @Override
+    public void autoComplete() {
+        Integer autoCompleteDay = Integer.parseInt(systemConfigService.getValueByKey(SysConfigConstants.CONFIG_ORDER_AUTO_COMPLETE_DAY));
+        List<SecondHandOrder> orderList = secondHandorderService.findCanCompleteOrder(autoCompleteDay);
+        if (CollUtil.isEmpty(orderList)) {
+            logger.info("OrderTaskServiceImpl.autoComplete | size:0");
+            return;
+        }
+        List<String> orderNoList = orderList.stream().map(SecondHandOrder::getOrderNo).collect(Collectors.toList());
+        Boolean execute = transactionTemplate.execute(e -> {
+            secondHandorderService.batchCompleteByOrderNo(orderNoList);
+            orderNoList.forEach(orderNo -> {
+                orderStatusService.createLog(orderNo, OrderStatusConstants.ORDER_STATUS_COMPLETE, "订单已完成");
+            });
+            return Boolean.TRUE;
+        });
+        if (execute) {
+            logger.error("二手交易订单自动完成:更新数据库失败,orderNoList = {}", JSON.toJSONString(orderNoList));
+        }
+    }
+
+    @Override
+    public void autoTakeDelivery() {
+        int day = 14;
+        String autoDay = systemConfigService.getValueByKey(SysConfigConstants.CONFIG_ORDER_AUTO_TAKE_DELIVERY_DAY);
+        if (StrUtil.isNotBlank(autoDay) && Integer.parseInt(autoDay) >= 1) {
+            day = Integer.parseInt(autoDay);
+        }
+        DateTime nowDate = DateUtil.date();
+        DateTime dateTime = DateUtil.offsetDay(nowDate, -day);
+        List<SecondHandOrder> orderList = secondHandorderService.findAwaitTakeDeliveryOrderList(dateTime.toString());
+        if (CollUtil.isEmpty(orderList)) {
+            return;
+        }
+        orderList = orderList.stream().filter(order -> !order.getType().equals(1)).collect(Collectors.toList());
+        if (CollUtil.isEmpty(orderList)) {
+            return;
+        }
+        List<String> orderNoList = orderList.stream().map(SecondHandOrder::getOrderNo).collect(Collectors.toList());
+        Boolean execute = transactionTemplate.execute(e -> {
+            orderNoList.forEach(orderNo -> {
+                secondHandorderService.takeDelivery(orderNo);
+                orderDetailService.takeDelivery(orderNo);
+                orderStatusService.createLog(orderNo, OrderStatusConstants.ORDER_STATUS_USER_TAKE_DELIVERY, OrderStatusConstants.ORDER_LOG_SYSTEM_AUTO_RECEIPT);
+            });
+            return Boolean.TRUE;
+        });
+        if (!execute) {
+            logger.error("自动收货操作数据数失败:订单号:{}", StringUtils.join(orderNoList, ","));
+            return;
+        }
+        //后续操作放入redis
+        orderNoList.forEach(orderNo -> {
+           // redisUtil.lPush(TaskConstants.ORDER_TASK_REDIS_KEY_AFTER_TAKE_BY_USER, orderNo);
+        });
+    }
+}

+ 12 - 1
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandRefundOrderManagerServiceImpl.java

@@ -329,7 +329,7 @@ public class SecondHandRefundOrderManagerServiceImpl extends ServiceImpl<SecondH
         Map<String, Object> map = CollUtil.newHashMap();
         map.put("userId", userId);
         if (request.getType()!=null && request.getType().equals(0)) {
-            map.put("refundStatusStr", "0,2,4,5");
+            map.put("refundStatusStr", "0,5");
         }
         if (StrUtil.isNotBlank(request.getKeywords())) {
             map.put("keywords", URLUtil.decode(request.getKeywords()));
@@ -1130,6 +1130,17 @@ public class SecondHandRefundOrderManagerServiceImpl extends ServiceImpl<SecondH
         return dao.selectList(lqw);
     }
 
+    @Override
+    public Integer getSellerRefundingCount(Integer userId) {
+        LambdaQueryWrapper<SecondHandRefundOrder> lqw = Wrappers.lambdaQuery();
+        lqw.eq(SecondHandRefundOrder::getMerId,userId);
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(OrderConstants.MERCHANT_REFUND_ORDER_STATUS_APPLY);
+        statusList.add(OrderConstants.MERCHANT_REFUND_ORDER_STATUS_AWAIT_RECEIVING);
+        lqw.in(SecondHandRefundOrder::getRefundStatus, statusList);
+        return dao.selectCount(lqw);
+    }
+
     private List<SecondHandRefundOrder> findCanAutoRevokeOrderList() {
         DateTime date = DateUtil.date();
         DateTime dateTime = DateUtil.offsetDay(date, -7);

+ 7 - 1
ydd_mer_java/crmeb-service/src/main/java/com/zbkj/service/service/impl/SecondHandRefundOrderServiceImpl.java

@@ -209,7 +209,13 @@ public class SecondHandRefundOrderServiceImpl extends ServiceImpl<SecondHandRefu
     public Integer getRefundingCount(Integer userId) {
         return refundOrderManagerService.getRefundingCount(userId);
     }
-
+    /**
+     * 获取退款中(申请)订单数量
+     */
+    @Override
+    public Integer getSellerRefundingCount(Integer userId) {
+        return refundOrderManagerService.getSellerRefundingCount(userId);
+    }
     /**
      * 获取退款单详情
      * @param refundOrderNo 退款单号

+ 26 - 0
ydd_mer_java/crmeb-service/src/main/resources/mapper/product/ProductMapper.xml

@@ -345,4 +345,30 @@
             id = #{proCateIds} AND is_del = 0)a where a.id=p.category_id)
         </if>
     </select>
+    <select id="getWhatTodayEatByTag" resultType="com.zbkj.common.response.ProductFrontResponse" parameterType="Map">
+       select * from (
+       SELECT p.id,p.image,p.name as name,p.price,p.ot_price as otPrice,p.sales,p.stock,p.ficti,
+        p.unit_name as unitName,p.reason,p.mer_id as merId,m.name as merName,m.category_id as merCategoryId,m.type_id as merTypeId,
+        p.category_id as categoryId,p.brand_id as brandId,p.vip_price as vipPrice,p.is_paid_member as isPaidMember,
+        round((6371 * acos(cos(radians(#{latitude}))
+        * cos(radians(m.latitude))
+        * cos(radians(m.longitude) - radians(#{longitude}))
+        + sin(radians(#{latitude}))
+        * sin(radians(m.latitude)))),2)AS distance
+        FROM  eb_merchant AS m
+        left join eb_product as p on m.id=p.mer_id
+        left join eb_product_category AS pc on p.category_id = pc.id
+        where p.is_del = 0 and p.is_recycle = 0 and p.is_show = 1
+        and p.audit_status =2 and p.marketing_type = 0  and p.is_show =1 and pc.is_del = 0
+        AND EXISTS(
+        SELECT 1 FROM eb_product_category d1
+        LEFT JOIN eb_product_category d2
+        ON d1.pid = d2.id
+        WHERE d2.pid =0
+        AND d1.id = p.category_id and (d2.`name` like '%外卖%' or d2.id=541) )
+        <if test="tagId != null">
+            and find_in_set(#{tagId}, p.what_eat_tag)
+        </if>
+        )a order by a.distance asc,a.merId LIMIT 100
+    </select>
 </mapper>

+ 12 - 1
ydd_mer_java/crmeb-service/src/main/resources/mapper/secondhand/SecondHandOrderDetailMapper.xml

@@ -16,7 +16,18 @@
         </if>
         order by od.id desc
     </select>
-
+    <select id="findMySendList" resultType="com.zbkj.common.model.secondhand.SecondHandOrderDetail">
+        select od.*,o.status,o.shipping_type  from eb_second_hand_order_detail od
+        left join eb_second_hand_order o on o.order_no = od.order_no
+        where od.seller_id = #{uid}
+        and o.status = 1
+        and o.refund_status=0
+        and o.is_user_del = 0 and o.level = 0
+        <if test="keywords != '' and keywords != null ">
+            and (od.order_no = #{keywords} or od.product_name like CONCAT('%', #{keywords}, '%'))
+        </if>
+        order by od.id desc
+    </select>
     <select id="getSalesNumByDateAndProductId" resultType="java.lang.Integer">
         select IFNULL(sum(pay_num), 0) as pay_num from eb_second_hand_order_detail
         where order_no in (SELECT order_no FROM `eb_second_hand_order` where paid = 1 and is_del = 0 and date_format(pay_time, '%Y-%m-%d') = #{date})

+ 14 - 12
ydd_mer_java/crmeb-service/src/main/resources/mapper/secondhand/SecondHandOrderMapper.xml

@@ -15,19 +15,26 @@
         and od.product_id = #{proId}
     </select>
 
-    <select id="findFrontList" resultType="com.zbkj.common.model.order.Order" parameterType="Map">
-        select * from eb_order
-        where
-        uid = #{userId}
+    <select id="findFrontList" resultType="com.zbkj.common.model.secondhand.SecondHandOrder" parameterType="Map">
+        select * from eb_second_hand_order
+        where 1=1
+        <if test="isMyTask != null">
+            <choose>
+                <when test="isMyTask == 1">
+                    and seller_id = #{userId}
+                </when>
+                <otherwise>
+                   and uid = #{userId}
+                </otherwise>
+            </choose>
+        </if>
         <if test="status != null and status &gt;= 0">
             <choose>
                 <when test="status == 1">
                     and `status` in (1,2)
-                    and group_buy_record_status in (99,10)
                 </when>
                 <when test="status == 3">
                     and `status` = 3
-                    and group_buy_record_status in (99,10)
                 </when>
                 <otherwise>
                     and `status` = #{status}
@@ -36,16 +43,11 @@
             and refund_status &lt; 3
         </if>
         and is_user_del  = 0
-        and is_merchant_del  = 0
-        and second_type &lt;&gt; 4
         and is_del = 0
         <if test="keywords != null and keywords !='' ">
             and (order_no like CONCAT('%',#{keywords},'%')
                 or
-                order_no in (select order_no from eb_order_detail where product_name like CONCAT('%',#{keywords},'%')))
-        </if>
-        <if test="secondType != null">
-            and second_type = 1
+                order_no in (select order_no from eb_second_hand_order_detail where product_name like CONCAT('%',#{keywords},'%')))
         </if>
         order by id desc
     </select>