Browse Source

fix(app):
1.部门门店创建逻辑修改
2.下单接口保存保险逻辑

wzq 1 day ago
parent
commit
36e6b1e1f1
15 changed files with 165 additions and 47 deletions
  1. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/CreateOrderForm.java
  2. 6 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/InsureOrderInfoForm.java
  3. 17 9
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java
  4. 2 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/quartz/job/OrTeachingJobService.java
  5. 12 15
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppOrderController.java
  6. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/SchoolPlaceAddDTO.java
  7. 5 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppOrder.java
  8. 0 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppSitePlace.java
  9. 43 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/form/AppOrderPageForm.java
  10. 5 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppOrderMapper.java
  11. 3 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppOrderMapper.xml
  12. 6 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppOrderService.java
  13. 17 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppOrderServiceImpl.java
  14. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSitePlaceServiceImpl.java
  15. 44 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/vo/OrderPageVO.java

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/CreateOrderForm.java

@@ -48,7 +48,7 @@ public class CreateOrderForm implements Serializable {
     private InsureOrderInfoForm insureOrderInfoForm;
 
     //参赛资质
-    @Schema(description = "参赛资质")
-    private String gameCertificationForm;
+//    @Schema(description = "参赛资质")
+//    private String gameCertificationForm;
 
 }

+ 6 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/InsureOrderInfoForm.java

@@ -1,9 +1,11 @@
 package org.jeecg.modules.app.form;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -22,9 +24,13 @@ public class InsureOrderInfoForm implements Serializable {
 
     //生效时间
     @Schema(description = "生效时间-起")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat( pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date assertStartTime;
 
     @Schema(description = "生效时间-止")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date assertEndTime;
 
     //保单费用(单价)

+ 17 - 9
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -1,7 +1,6 @@
 package org.jeecg.modules.app.service.impl;
 
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -252,9 +251,12 @@ public class OrderServiceImpl implements IOrderService {
                 .setProductIds(createOrderForm.getProductIds())
                 .setAmount(createOrderForm.getAmount())
         ;
+        BigDecimal totalPrice = BigDecimal.ZERO;
 
         List<AppOrderProInfo> proInfoList = new ArrayList<>();
 
+        List<InsureOrderInfo> insureOrderInfoList = new ArrayList<>();
+
         //订单内容
         switch (createOrderForm.getType()) {
             //场地(学校,包场,无固定场)
@@ -439,9 +441,9 @@ public class OrderServiceImpl implements IOrderService {
                             .setUpdateBy(user.getId())
                             .setStatus(CommonConstant.STATUS_NORMAL)
                             .setDelFlag(CommonConstant.DEL_FLAG_0);
-                    if (StrUtil.isNotBlank(createOrderForm.getGameCertificationForm())) {
-                        appOrder.setGameCertification(createOrderForm.getGameCertificationForm());
-                    }
+//                    if (StrUtil.isNotBlank(createOrderForm.getGameCertificationForm())) {
+//                        appOrder.setGameCertification(createOrderForm.getGameCertificationForm());
+//                    }
                 break;
             //课程
             case 2:
@@ -513,28 +515,29 @@ public class OrderServiceImpl implements IOrderService {
         if (ObjectUtils.isNotEmpty(insureOrderInfoForm)) {
             List<String> ids = Arrays.stream(insureOrderInfoForm.getFamilyMembersIds().split(",")).collect(Collectors.toList());
             AppInsure appInsure = appInsureMapper.selectById(insureOrderInfoForm.getInsureId());
+            DictAnnotationUtil.translateDict(appInsure);
             //保单总价
             BigDecimal sumPrice = new BigDecimal(0);
             for (String id : ids) {
 
                 //查询保单价格
-                InsurePrice insurePrice = insurePriceMapper.selectById(insureOrderInfoForm.getInsureId());
+                InsurePrice insurePrice = insurePriceMapper.selectById(insureOrderInfoForm.getInsurePriceId());
 
                 //创建保单
                 InsureOrderInfo insureOrderInfo = new InsureOrderInfo();
                 insureOrderInfo
                         .setOrderId(appOrder.getId())
                         .setBdOrderNo(generateOrderNumber(2))
-                        .setInsureName(appInsure.getInsuranceType_dictText())
+                        .setInsureName(appInsure.getName())
                         .setInsureCompany(appInsure.getInsuranceName_dictText())
                         .setInsureId(appInsure.getId())
                         .setMoney(insurePrice.getInsurePrice())
-                        .setUserId(id)
+                        .setFamilyMembersId(id)
                         .setAssertStartTime(insureOrderInfoForm.getAssertStartTime())
                         .setAssertEndTime(insureOrderInfoForm.getAssertEndTime())
                         .setIsEnterSystem(CommonConstant.STATUS_0_INT)
                 ;
-                insureOrderInfoMapper.insert(insureOrderInfo);
+                insureOrderInfoList.add(insureOrderInfo);
 
                 sumPrice = sumPrice.add(insurePrice.getInsurePrice()).setScale(2, BigDecimal.ROUND_HALF_UP);
 
@@ -553,7 +556,6 @@ public class OrderServiceImpl implements IOrderService {
                 appOrderProInfo.setDelFlag(CommonConstant.DEL_FLAG_0);
             }
             //计算总价 = 订单金额 + 保单金额
-            appOrder.setPrice(appOrder.getPrice().add(sumPrice));
         }
 
         appOrderMapper.insert(appOrder);
@@ -564,6 +566,12 @@ public class OrderServiceImpl implements IOrderService {
             appOrderProInfoMapper.insert(appOrderProInfo);
         }
 
+        //保存保险
+        for (InsureOrderInfo insureOrderInfo : insureOrderInfoList) {
+            insureOrderInfo.setOrderId(appOrder.getId());
+            insureOrderInfoMapper.insert(insureOrderInfo);
+        }
+
         //构建支付表单返回给前端支撑支付调用
         UserPayForm payForm = new UserPayForm();
         payForm

+ 2 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/quartz/job/OrTeachingJobService.java

@@ -20,7 +20,6 @@ import org.jeecg.modules.system.app.service.IAppSitePlaceService;
 import org.jeecg.modules.system.app.service.IAppSitePriceRulesService;
 import org.jeecg.modules.system.app.service.IAppSiteService;
 import org.jeecg.modules.system.app.service.IAppTeachingTimeService;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -49,7 +48,7 @@ public class OrTeachingJobService {
 
     private final IAppSiteService appSiteService;
 
-    @Scheduled(cron = "0 00 15 ? * *")
+    //@Scheduled(cron = "0 00 15 ? * *")
     @Transactional(rollbackFor = Exception.class)
     public void execute() throws ParseException {
         log.info("开始执行定时任务");
@@ -72,7 +71,7 @@ public class OrTeachingJobService {
             //2、遍历查询所有的学校
             for (AppSite site : appSiteList) {
                 //根据学校查询场地
-                AppSitePlace appSitePlace = appSitePlaceService.getOne(Wrappers.<AppSitePlace>lambdaQuery().eq(AppSitePlace::getTenantId, site.getTenantId()));
+                AppSitePlace appSitePlace = appSitePlaceService.getOne(Wrappers.<AppSitePlace>lambdaQuery().eq(AppSitePlace::getOrgCode, site.getOrgCode()));
                 // 遍历生成一对多教学时段
                 for (Date localDate : dateList) {
                     AppTeachingTime appTeachingTime = new AppTeachingTime();

+ 12 - 15
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppOrderController.java

@@ -12,7 +12,9 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.system.app.entity.AppOrder;
+import org.jeecg.modules.system.app.form.AppOrderPageForm;
 import org.jeecg.modules.system.app.service.IAppOrderService;
+import org.jeecg.modules.system.app.vo.OrderPageVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -58,21 +60,16 @@ public class AppOrderController extends JeecgController<AppOrder, IAppOrderServi
 		return Result.OK(pageList);
 	}
 
-//	 /**
-//	  *
-//	  * @param appOrderPageForm
-//	  * @return
-//	  */
-//	 @Operation(summary="订单-分页列表查询")
-//	 @GetMapping(value = "/page")
-//	 public Result<IPage<AppOrder>> queryPage(@RequestBody AppOrderPageForm appOrderPageForm) {
-//
-//
-//		 QueryWrapper<AppOrder> queryWrapper = QueryGenerator.initQueryWrapper(appOrder, req.getParameterMap());
-//		 Page<AppOrder> page = new Page<AppOrder>(pageNo, pageSize);
-//		 IPage<AppOrder> pageList = appOrderService.page(page, queryWrapper);
-//		 return Result.OK(pageList);
-//	 }
+	 /**
+	  *
+	  * @param appOrderPageForm
+	  * @return
+	  */
+	 @Operation(summary="订单-分页列表查询")
+	 @PostMapping(value = "/queryPage")
+	 public Result<Page<OrderPageVO>> queryPage(@RequestBody AppOrderPageForm appOrderPageForm) {
+		 return Result.OK(appOrderService.queryPage(appOrderPageForm));
+	 }
 	
 	/**
 	 *   添加

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/SchoolPlaceAddDTO.java

@@ -32,7 +32,7 @@ public class SchoolPlaceAddDTO implements Serializable {
     private String cover;
 
     @Schema(description = "配套保险")
-    private Integer insurance;
+    private String insureIds;
 
     @Schema(description = "使用须知")
     private String reminder;

+ 5 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppOrder.java

@@ -93,11 +93,13 @@ public class AppOrder implements Serializable {
 	/**支付类型;0 wx 1zfb 2yl*/
 	@Excel(name = "支付类型;0 wx 1zfb 2yl", width = 15)
     @Schema(description = "支付类型;0 wx 1zfb 2yl 3free")
-    private int payType;
+    private Integer payType;
 	/**订单状态*/
 	@Excel(name = "订单状态", width = 15)
-    @Schema(description = "订单状态0初始 1、支付中 2、待使用 3、已使用 4、待评价 5、退款中 6、已退款")
-    private int orderStatus;
+    @Schema(description = "订单状态 0-待付款 1-待使用 2-已使用 3-已到期 4-已取消")
+    private Integer orderStatus;
+    @Schema(description = "售后状态 0-暂无售后 1-退款中 2-已退款")
+    private Integer afterSaleStatus;
 	/**参赛资质*/
 	@Excel(name = "参赛资质", width = 15)
     @Schema(description = "参赛资质")

+ 0 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppSitePlace.java

@@ -102,10 +102,6 @@ public class AppSitePlace implements Serializable {
 	@Excel(name = "适用人数", width = 15)
     @Schema(description = "适用人数")
     private Integer usableCount;
-    /**配套保险**/
-    @Excel(name = "配套保险", width = 15)
-    @Schema(description = "配套保险")
-    private Integer insurance;
 	/**提示/须知*/
 	@Excel(name = "提示/须知", width = 15)
     @Schema(description = "提示/须知")

+ 43 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/form/AppOrderPageForm.java

@@ -0,0 +1,43 @@
+package org.jeecg.modules.system.app.form;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.system.app.dto.BasePageDTO;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="订单分页表单对象")
+public class AppOrderPageForm extends BasePageDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "手机号码")
+    private String userPhone;
+
+    @Schema(description = "订单编号")
+    private String orderCode;
+
+    @Schema(description = "部门编号")
+    private String orgCode;
+
+    @Schema(description = "订单状态 0-待付款 1-待使用 2-已使用 3-已到期 4-已取消")
+    private Integer orderStatus;
+
+    @Schema(description = "售后状态 0-暂无售后 1-退款中 2-已退款")
+    private Integer afterSaleStatus;
+
+    @Schema(description = "开始时间")
+    private Date startTime;
+
+    @Schema(description = "结束时间")
+    private Date endTime;
+}

+ 5 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppOrderMapper.java

@@ -1,10 +1,10 @@
 package org.jeecg.modules.system.app.mapper;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.system.app.entity.AppOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.system.app.entity.AppOrder;
+import org.jeecg.modules.system.app.form.AppOrderPageForm;
+import org.jeecg.modules.system.app.vo.OrderPageVO;
 
 /**
  * @Description: 订单表
@@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface AppOrderMapper extends BaseMapper<AppOrder> {
 
+    Page<OrderPageVO> queryPage(Page<OrderPageVO> page, AppOrderPageForm appOrderPageForm);
 }

+ 3 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppOrderMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.system.app.mapper.AppOrderMapper">
 
+    <select id="queryPage" resultType="org.jeecg.modules.system.app.vo.OrderPageVO">
+
+    </select>
 </mapper>

+ 6 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppOrderService.java

@@ -1,8 +1,11 @@
 package org.jeecg.modules.system.app.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.system.app.dto.AppOrderDTO;
 import org.jeecg.modules.system.app.entity.AppOrder;
-import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.app.form.AppOrderPageForm;
+import org.jeecg.modules.system.app.vo.OrderPageVO;
 
 /**
  * @Description: 订单表
@@ -39,4 +42,6 @@ public interface IAppOrderService extends IService<AppOrder> {
      */
     AppOrderDTO queryWitchProductById(String id);
 
+    Page<OrderPageVO> queryPage(AppOrderPageForm appOrderPageForm);
+
 }

+ 17 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppOrderServiceImpl.java

@@ -1,14 +1,20 @@
 package org.jeecg.modules.system.app.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.system.app.dto.AppOrderDTO;
 import org.jeecg.modules.system.app.entity.AppOrder;
-import org.jeecg.modules.system.app.mapper.*;
+import org.jeecg.modules.system.app.form.AppOrderPageForm;
+import org.jeecg.modules.system.app.mapper.AppOrderMapper;
 import org.jeecg.modules.system.app.service.IAppOrderService;
+import org.jeecg.modules.system.app.vo.OrderPageVO;
 import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 /**
@@ -42,4 +48,12 @@ public class AppOrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> i
     public AppOrderDTO queryWitchProductById(String id) {
         return null;
     }
+
+    @Override
+    public Page<OrderPageVO> queryPage(AppOrderPageForm appOrderPageForm) {
+        Page<OrderPageVO> page = new Page<>(appOrderPageForm.getPageNum(), appOrderPageForm.getPageSize());
+
+        Page<OrderPageVO> voPage = baseMapper.queryPage(page,appOrderPageForm);
+        return null;
+    }
 }

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSitePlaceServiceImpl.java

@@ -807,7 +807,7 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
         appSitePlace
                 .setCover(schoolPlaceAddDTO.getCover())
                 //todo 设置意外保险字段
-                .setInsurance(schoolPlaceAddDTO.getInsurance())
+                .setInsureIds(schoolPlaceAddDTO.getInsureIds())
                 .setReminder(schoolPlaceAddDTO.getReminder());
         return this.updateById(appSitePlace);
     }
@@ -839,7 +839,7 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
         if (ObjectUtils.isNotEmpty(appSitePlace)) {
             schoolPlaceAddDTO
                     .setCover(appSitePlace.getCover())
-                    .setInsurance(appSitePlace.getInsurance())
+                    .setInsureIds(appSitePlace.getInsureIds())
                     .setReminder(appSitePlace.getReminder());
         }
 

+ 44 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/vo/OrderPageVO.java

@@ -0,0 +1,44 @@
+package org.jeecg.modules.system.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="订单分页列表响应对象")
+public class OrderPageVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "ID")
+    private String id;
+
+    @Schema(description = "订单号")
+    private String orderCode;
+
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "支付时间;支付时间")
+    private Date payTime;
+
+    @Schema(description = "店铺名称")
+    private String siteName;
+
+    @Schema(description = "商品数量")
+    private Integer Amount;
+
+    @Schema(description = "实际支付价")
+    private BigDecimal price;
+}