yangdamao 1 year ago
parent
commit
7dd6c7087f

+ 16 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -18,6 +18,7 @@ import com.zhongzheng.modules.goods.vo.QuestionOpenImportVo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.MailOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.order.vo.OrderVo;
@@ -229,4 +230,19 @@ public class OrderController extends BaseController {
         return toAjax(iSysTenantService.updateByEditBo(editBo)?1:0);
     }
 
+
+    @ApiOperation("寄件订单列表")
+    @GetMapping("/mail/list")
+    public TableDataInfo<MailOrderVo> getMailList(MailOrderBo bo) {
+        startPage();
+        List<MailOrderVo> list = iOrderGoodsService.getMailList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("寄件订单批量处理")
+    @PostMapping("/mail/handle")
+    public AjaxResult<Void> mailOrderHandle(@RequestBody MailOrderHandleBo bo) {
+        return toAjax(iOrderGoodsService.mailOrderHandle(bo)?1:0);
+    }
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/Goods.java

@@ -185,4 +185,6 @@ private static final long serialVersionUID=1L;
     private String questionRelIds;
     /** 视频标签:1保利威 2腾讯 */
     private Integer viewSign;
+    /** 寄件标签:1是 0否 */
+    private Integer mailSign;
 }

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/MailOrderBo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.order.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年02月27日 15:40
+ */
+@Data
+public class MailOrderBo implements Serializable {
+
+    private String orderSn;
+
+    private Integer mailStatus;
+}

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/MailOrderHandleBo.java

@@ -0,0 +1,20 @@
+package com.zhongzheng.modules.order.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2024年02月27日 16:20
+ */
+@Data
+public class MailOrderHandleBo implements Serializable {
+
+    private List<String> orderSnList;
+
+    private Integer mailStatus;
+
+    private String mailRemark;
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java

@@ -115,4 +115,10 @@ public class OrderAddBo {
     private Integer orgSign;
     @ApiModelProperty("经办人订单编号")
     private String handleOrderSn;
+    @ApiModelProperty("收件人")
+    private String consignee;
+    @ApiModelProperty("手机号码")
+    private String consigneePhone;
+    @ApiModelProperty("手机地址")
+    private String consigneeSite;
 }

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/Order.java

@@ -191,4 +191,15 @@ private static final long serialVersionUID=1L;
     private Integer orgSign;
 
     private String handleOrderSn;
+
+    private String consignee;
+    private String consigneePhone;
+    private String consigneeSite;
+    /** 寄件状态:0未寄件 1已寄件 */
+    private Integer mailStatus;
+
+    /** 寄件备注 */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String mailRemark;
+
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.vo.CourseLiveVo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.vo.GoodsSectionListVo;
+import com.zhongzheng.modules.order.bo.MailOrderBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.vo.MailOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo;
@@ -76,4 +78,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
 
     @InterceptorIgnore(tenantLine = "true")
     OrderGoods getByIdNoTenant(Long orderGoodsId);
+
+    List<MailOrderVo> getMailList(MailOrderBo bo);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -10,6 +10,7 @@ import com.zhongzheng.modules.goods.vo.GoodsSectionListVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.vo.MailOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderUserGoodsVo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery;
@@ -132,4 +133,8 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     OrderGoods getByIdNoTenant(Long orderGoodsId);
 
     GoodsVo getCourseViewSign(Long orderGoodsId);
+
+    List<MailOrderVo> getMailList(MailOrderBo bo);
+
+    boolean mailOrderHandle(MailOrderHandleBo bo);
 }

+ 67 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -25,14 +25,10 @@ import com.zhongzheng.modules.base.service.IProfileTpService;
 import com.zhongzheng.modules.base.service.IShoppingCartService;
 import com.zhongzheng.modules.base.service.IUserProfileService;
 import com.zhongzheng.modules.base.vo.ProfileTpVo;
-import com.zhongzheng.modules.course.domain.Course;
-import com.zhongzheng.modules.course.domain.CourseBusiness;
-import com.zhongzheng.modules.course.domain.CourseMenu;
+import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.mapper.CourseMapper;
 import com.zhongzheng.modules.course.mapper.CourseMenuMapper;
-import com.zhongzheng.modules.course.service.ICourseChapterSectionService;
-import com.zhongzheng.modules.course.service.ICourseMenuService;
-import com.zhongzheng.modules.course.service.ICourseSectionService;
+import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.course.vo.CourseLiveVo;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeTwoAddBo;
@@ -73,6 +69,7 @@ import com.zhongzheng.modules.order.mapper.OrderGoodsMapper;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderInputService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.MailOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.order.vo.OrderUserGoodsVo;
@@ -80,6 +77,7 @@ import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.tencentcloud.service.IFaceOcrService;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
@@ -197,6 +195,15 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
     @Autowired
     private ISysTenantService iSysTenantService;
 
+    @Autowired
+    private ICourseEducationTypeService iCourseEducationTypeService;
+    @Autowired
+    private ICourseProjectTypeService iCourseProjectTypeService;
+    @Autowired
+    private ICourseBusinessService iCourseBusinessService;
+    @Autowired
+    private IMajorService iMajorService;
+
 
 
     @Override
@@ -889,6 +896,60 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return BeanUtil.toBean(goods,GoodsVo.class);
     }
 
+    @Override
+    public List<MailOrderVo> getMailList(MailOrderBo bo) {
+        List<MailOrderVo> mailOrderVos = baseMapper.getMailList(bo);
+        if (CollectionUtils.isEmpty(mailOrderVos)){
+            return new ArrayList<>();
+        }
+        mailOrderVos.forEach(item -> {
+            List<OrderGoods> list = list(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderSn, item.getOrderSn()));
+            if (CollectionUtils.isNotEmpty(list)){
+                Map<Long, List<OrderGoods>> map = list.stream().collect(Collectors.groupingBy(OrderGoods::getGoodsId));
+                Integer mailNum = 0;
+                List<String> mailTail = new ArrayList<>();
+                for (Long goodsId : map.keySet()) {
+                    Goods goods = iGoodsService.getById(goodsId);
+                    if (ObjectUtils.isNull(goods.getMailSign()) || goods.getMailSign() != 1){
+                        //非寄件商品
+                        continue;
+                    }
+                    int size = map.get(goodsId).size();
+                    mailNum += size;
+                    CourseEducationType educationType = iCourseEducationTypeService.getById(goods.getEducationTypeId());
+                    CourseProjectType projectType = iCourseProjectTypeService.getById(goods.getProjectId());
+                    CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
+                    String format = String.format("%s/%s%s", educationType.getEducationName(), business.getBusinessName(), projectType.getProjectName());
+                    if (ObjectUtils.isNotNull(goods.getMajorId())){
+                        Major major = iMajorService.getById(goods.getMajorId());
+                        format = format +"/"+ major.getCategoryName();
+                    }
+                    format = format + String.format("%s套教材",size);
+                    mailTail.add(format);
+                }
+                item.setMailDetail(mailTail);
+                item.setMailNum(mailNum);
+            }
+        });
+        return mailOrderVos;
+    }
+
+    @Override
+    public boolean mailOrderHandle(MailOrderHandleBo bo) {
+        List<Order> list = iOrderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderSn, bo.getOrderSnList()));
+        if (CollectionUtils.isEmpty(list)){
+            throw new CustomException("订单信息错误");
+        }
+        list.forEach(item -> {
+            if (ObjectUtils.isNotNull(bo.getMailStatus())){
+                item.setMailStatus(bo.getMailStatus());
+            }else if (ObjectUtils.isNotNull(bo.getMailRemark())){
+                item.setMailRemark(bo.getMailRemark());
+            }
+        });
+        return iOrderService.updateBatchById(list);
+    }
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 10 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1310,7 +1310,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        add.setOrderType(Order.CONSUME_ORDER);
+        if (ObjectUtils.isNotNull(add.getOrderType())){
+            add.setOrderType(add.getOrderType());
+        }else {
+            add.setOrderType(Order.CONSUME_ORDER);
+        }
         //订单运营类型
         String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         SysOldOrg oldOrg = iSysOldOrgService.getOne(new LambdaQueryWrapper<SysOldOrg>().eq(SysOldOrg::getTenantId, Long.valueOf(tenantId)).last("limit 1"));
@@ -1937,7 +1941,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        add.setOrderType(Order.CONSUME_ORDER);
+        if (ObjectUtils.isNotNull(add.getOrderType())){
+            add.setOrderType(add.getOrderType());
+        }else {
+            add.setOrderType(Order.CONSUME_ORDER);
+        }
         //订单运营类型
         String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         SysOldOrg oldOrg = iSysOldOrgService.getOne(new LambdaQueryWrapper<SysOldOrg>().eq(SysOldOrg::getTenantId, Long.valueOf(tenantId)).last("limit 1"));

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/MailOrderVo.java

@@ -0,0 +1,30 @@
+package com.zhongzheng.modules.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2024年02月27日 15:40
+ */
+@Data
+public class MailOrderVo implements Serializable {
+
+    private String OrderSn;
+
+    private Integer mailStatus;
+
+    @ApiModelProperty("收件人")
+    private String consignee;
+    @ApiModelProperty("手机号码")
+    private String consigneePhone;
+    @ApiModelProperty("手机地址")
+    private String consigneeSite;
+
+    private Integer mailNum;
+    private List<String> mailDetail;
+    private String mailRemark;
+}

+ 22 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -939,4 +939,26 @@
         WHERE
             order_goods_id = #{orderGoodsId}
     </select>
+
+    <select id="getMailList" parameterType="com.zhongzheng.modules.order.bo.MailOrderBo" resultType="com.zhongzheng.modules.order.vo.MailOrderVo">
+        SELECT
+            order_sn,
+            mail_status,
+            consignee,
+            consignee_phone,
+            consignee_site,
+            mail_remark
+        FROM
+            `order`
+        WHERE
+            `status` = 1
+          AND order_type = 5
+            <if test="orderSn != null and orderSn != ''">
+                AND order_sn = #{orderSn}
+            </if>
+            <if test="mailStatus != null">
+                AND mail_status = #{mail_status}
+            </if>
+    </select>
+
 </mapper>

+ 3 - 3
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -1141,7 +1141,7 @@
         SELECT
         too.order_id as order_id,
         too.check_time as timeStr,
-        too.order_received - too.order_refunded as money
+        too.order_price as money
         FROM
         top_old_order too
         WHERE
@@ -2460,7 +2460,7 @@
         too.order_sn as order_sn,
         too.order_id as order_id,
         too.check_time as timeStr,
-        too.order_received - too.order_refunded as money,
+        too.order_price as money,
         too.create_username,
         st.tenant_name
         FROM
@@ -2559,7 +2559,7 @@
         LIMIT 1
         )
         ) AS `business_name`,
-        too.order_received - too.order_refunded AS money,
+        too.order_price AS money,
         too.check_time as timeStr,
         too.create_username,
         st.tenant_name