浏览代码

Merge branch 'dev'

yangdamao 1 年之前
父节点
当前提交
b29d754580

+ 15 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderController.java

@@ -5,8 +5,10 @@ import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.bank.vo.QuestionImportV2;
 import com.zhongzheng.modules.top.financial.bo.OrderRefundPayBo;
 import com.zhongzheng.modules.top.financial.bo.TopDivideLogQueryBo;
 import com.zhongzheng.modules.top.financial.bo.TopDivideOrderQueryBo;
@@ -16,6 +18,7 @@ import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
 import com.zhongzheng.modules.top.goods.bo.*;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.goods.vo.*;
+import com.zhongzheng.modules.top.order.bo.TopOldOrderCustomerBo;
 import com.zhongzheng.modules.top.order.vo.TopOldOrderCommissionExportVo;
 import com.zhongzheng.modules.top.order.vo.TopOldOrderCompanyExportVo;
 import com.zhongzheng.modules.top.order.vo.TopOldOrderSellerExportVo;
@@ -25,6 +28,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 import java.util.Map;
@@ -332,4 +336,15 @@ public class TopOldOrderController extends BaseController {
         return AjaxResult.success(iTopOldOrderService.getOrderRefundPayDetail(orderSn));
     }
 
+    /**
+     * 订单导入
+     */
+    @ApiOperation("订单导入")
+    @PostMapping("/customer/import")
+    public AjaxResult importOldOrderCustomer(MultipartFile file) {
+        List<TopOldOrderCustomerBo> customerBos = EasyPoiUtil.importExcel(file,0,1,TopOldOrderCustomerBo.class);
+        iTopOldOrderService.importOldOrderCustomer(customerBos);
+        return AjaxResult.success();
+    }
+
 }

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

@@ -111,4 +111,6 @@ public class OrderAddBo {
     private Integer planId;
     @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
     private Integer openQuestionSign;
+    @ApiModelProperty("业务系统订单标识")
+    private Integer orgSign;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -9,6 +9,7 @@ import com.zhongzheng.modules.top.goods.bo.*;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
 import com.zhongzheng.modules.top.goods.vo.*;
 import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
+import com.zhongzheng.modules.top.order.bo.TopOldOrderCustomerBo;
 import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsBo;
 import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsViewBo;
 import com.zhongzheng.modules.top.order.vo.*;
@@ -194,4 +195,6 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	List<TopTenantDataVo> getSaleListData(TopOrderStatisticsBo bo);
 
 	TopOrderOrgVo getTopOrderGoodsList(TopOldOrderQueryBo bo);
+
+    void importOldOrderCustomer(List<TopOldOrderCustomerBo> customerBos);
 }

+ 59 - 27
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -58,10 +58,7 @@ import com.zhongzheng.modules.top.goods.domain.*;
 import com.zhongzheng.modules.top.goods.mapper.TopOldOrderMapper;
 import com.zhongzheng.modules.top.goods.service.*;
 import com.zhongzheng.modules.top.goods.vo.*;
-import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
-import com.zhongzheng.modules.top.order.bo.TopDetailStatisticsTotal;
-import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsBo;
-import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsViewBo;
+import com.zhongzheng.modules.top.order.bo.*;
 import com.zhongzheng.modules.top.order.domain.TopOrderBankPay;
 import com.zhongzheng.modules.top.order.service.ITopOrderBankPayService;
 import com.zhongzheng.modules.top.order.vo.*;
@@ -345,6 +342,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (ObjectUtils.isNotNull(brokerageCheck)) {
             orderVo.setBrokerageCheck(brokerageCheck.getCheckStatus());
         }
+        //收奖方式
+        if (ObjectUtils.isNotNull(orderVo.getBrokerageType())){
+            switch (orderVo.getBrokerageType()){
+                case 1://微信
+                    orderVo.setBrokerageStr(orderVo.getBrokerageBankAccount());
+                    break;
+                case 5://网银
+                    orderVo.setBrokerageStr(String.format("账号:%s;%s;%s。",orderVo.getBrokerageBankName(),orderVo.getBrokerageBank(),orderVo.getBrokerageBankAccount()));
+                    break;
+            }
+        }
+
         //发票金额
         List<TopNuoMplatformLog> fromLogs = topNuoMplatformLogService
                 .list(new LambdaQueryWrapper<TopNuoMplatformLog>()
@@ -815,7 +824,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         BigDecimal costTotal = new BigDecimal("0.00");//成本
         BigDecimal profitTotal = new BigDecimal("0.00"); //盈亏
         List<TopOldOrderGoods> orderGoodsList = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
-                .eq(TopOldOrderGoods::getOrderSn, order.getOrderSn()).in(TopOldOrderGoods::getCheckStatus, Arrays.asList(0, 1)).eq(TopOldOrderGoods::getStatus, 1));
+                .eq(TopOldOrderGoods::getOrderSn, order.getOrderSn())
+                .in(TopOldOrderGoods::getCheckStatus, Arrays.asList(0, 1 ,2))
+                .eq(TopOldOrderGoods::getStatus, 1));
         //佣金
         BigDecimal brokerage = order.getPretaxBrokerage();
         //平摊佣金
@@ -1108,6 +1119,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
     @Override
     public List<TopOldOrderGoodsListVo> getOrderGoodsList(TopOldOrderGoodsQuery query) {
+        //奖金
+        TopOldOrder oldOrder = baseMapper.getOrderBySn(query.getOrderSn());
         //学员数量
         Integer userCount = 0;
         List<TopOldOrderGoodsListVo> list;
@@ -1116,7 +1129,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             list = orderGoodsService.listByOrderSn(query);
             userCount = 1;
             if (CollectionUtils.isNotEmpty(list)) {
-                list.forEach(item -> {
+                for (TopOldOrderGoodsListVo item : list) {
                     item.setPretaxBrokerage(BigDecimal.ZERO);
                     item.setUserCount(1);
                     item.setCheckStatusStr(item.getCheckStr(item.getCheckStatus()));
@@ -1150,7 +1163,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }else {
                         item.setDivideRateStr(item.getDivideRate().toString());
                     }
-                });
+                }
             }
         } else {
             //旧系统订单
@@ -1207,7 +1220,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             }
                             //分成模式
                             if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
-                                item.setDivideRateStr(item.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                item.setDivideRateStr(item.getDivideRate()+"%");
                             }else {
                                 item.setDivideRateStr(item.getDivideRate().toString());
                             }
@@ -1241,7 +1254,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                     x.setStudyStatus("未开始");
                                     //分成模式
                                     if (ObjectUtils.isNotNull(x.getDivideType()) && x.getDivideType() == 1){
-                                        x.setDivideRateStr(x.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                        x.setDivideRateStr(x.getDivideRate()+"%");
                                     }else {
                                         x.setDivideRateStr(x.getDivideRate().toString());
                                     }
@@ -1264,7 +1277,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                     }
                                     //分成模式
                                     if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
-                                        item.setDivideRateStr(item.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                        item.setDivideRateStr(item.getDivideRate()+"%");
                                     }else {
                                         item.setDivideRateStr(item.getDivideRate().toString());
                                     }
@@ -1278,10 +1291,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
             }
         }
+        BigDecimal money = BigDecimal.ZERO;
+        if (ObjectUtils.isNotNull(oldOrder.getPretaxBrokerage())){
+            money = oldOrder.getPretaxBrokerage().divide(new BigDecimal(list.size()));
+        }
         //数据处理
         for (TopOldOrderGoodsListVo item : list) {
             item.setUserCount(userCount);
             item.setCheckStatusStr(item.getCheckStr(item.getCheckStatus()));
+            item.setRealPrice(item.getGoodsRealPrice().subtract(money));
             //退款发起原因和审核意见
             TopOldOrderRefund orderRefund = topOldOrderRefundService
                     .getOne(new LambdaQueryWrapper<TopOldOrderRefund>()
@@ -3149,8 +3167,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (ObjectUtils.isNotNull(bo.getEndTime())){
             params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleid", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleid", bo.getCreateSysUserId());
         }else {
             params.put("saleid", "0");
         }
@@ -3217,8 +3235,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }else {
             params.put("orgid", "0");
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleId", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleId", bo.getCreateSysUserId());
         }else {
             params.put("saleId", "0");
         }
@@ -3270,8 +3288,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }else {
             params.put("orgid", "0");
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleid", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleid", bo.getCreateSysUserId());
         }else {
             params.put("saleid", "0");
         }
@@ -3329,8 +3347,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }else {
             params.put("orgid", "0");
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleid", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleid", bo.getCreateSysUserId());
         }else {
             params.put("saleid", "0");
         }
@@ -3755,10 +3773,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (ObjectUtils.isNotNull(bo.getTenantId())){
             params.put("orgid", bo.getTenantId().toString());
         }else {
-            params.put("orgid", "1");
+            params.put("orgid", "0");
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleid", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleid", bo.getCreateSysUserId());
         }else {
             params.put("saleid", "0");
         }
@@ -3772,10 +3790,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             Object data = jsonObject.get("Data");
             if (ObjectUtils.isNotNull(data)){
                 trendVos = JSONArray.parseArray(JSONObject.toJSONString(data),TopConversionRateTrendVo.class);
-                trendVos.forEach(item -> {
-                    Long aLong = DateUtils.dateTimeSec("yyyy/MM/dd", item.getDate());
-                    item.setDate(DateUtils.timestampToDateFormat(aLong,"yyyy-MM-dd"));
-                });
+                if (bo.getType() != 3){
+                    trendVos.forEach(item -> {
+                        Long aLong = DateUtils.dateTimeSec("yyyy/MM/dd", item.getDate());
+                        item.setDate(DateUtils.timestampToDateFormat(aLong,"yyyy-MM-dd"));
+                    });
+                }
             }
         }catch (Exception e){
             e.printStackTrace();
@@ -4068,8 +4088,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }else {
             params.put("orgid", "1");
         }
-        if (ObjectUtils.isNotNull(bo.getCreateNo())){
-            params.put("saleid", bo.getCreateNo());
+        if (ObjectUtils.isNotNull(bo.getCreateSysUserId())){
+            params.put("saleid", bo.getCreateSysUserId());
         }else {
             params.put("saleid", "0");
         }
@@ -4304,6 +4324,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return orgVo;
     }
 
+    @Override
+    public void importOldOrderCustomer(List<TopOldOrderCustomerBo> customerBos) {
+        for (TopOldOrderCustomerBo customerBo : customerBos) {
+            update(new LambdaUpdateWrapper<TopOldOrder>()
+                    .set(TopOldOrder::getOldCustomerId,customerBo.getCustomerId())
+                    .set(TopOldOrder::getOldCompanyId,customerBo.getMemberId())
+                    .set(TopOldOrder::getOldInstitutionId,customerBo.getTrainOrgId())
+                    .set(TopOldOrder::getPurchaseOrg,customerBo.getCompanyName())
+                    .eq(TopOldOrder::getOrderSn,customerBo.getOrderSn()));
+        }
+    }
+
     private List<Long> getDayTime(Long startTime,Long endTime){
         List<Long> tiemList = new ArrayList<>();
         Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderGoodsListVo.java

@@ -41,6 +41,8 @@ public class TopOldOrderGoodsListVo {
 	@ApiModelProperty("商品成交价格")
 	@Excel(name = "单价")
 	private BigDecimal goodsRealPrice;
+	@ApiModelProperty("实际价格")
+	private BigDecimal realPrice;
 	/** 专业名称 */
 	@ApiModelProperty("专业名称")
 	@Excel(name = "专业")

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderVo.java

@@ -298,6 +298,14 @@ public class TopOldOrderVo {
 	private BigDecimal acceptanceMoney;
 	@ApiModelProperty("佣金支付类型:1微信 4现金 5网银")
 	private Integer brokerageType;
+	@ApiModelProperty("奖金方式")
+	private String brokerageStr;
+	@ApiModelProperty("奖金支付银行账号")
+	private String brokerageBankAccount;
+	@ApiModelProperty("奖金支付账号名称")
+	private String brokerageBankName;
+	@ApiModelProperty("奖金支付银行名称")
+	private String brokerageBank;
 	@ApiModelProperty("状态:0待审核,1已通过,-1未通过,2待支付,3已支付 4审核中(非自己待审核显示审核中) 5支付失败(佣金结算) 6支付中")
 	private Integer brokerageCheck;
 

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOldOrderCustomerBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.top.order.bo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年11月30日 14:01
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class TopOldOrderCustomerBo implements Serializable {
+
+    @Excel(name = "MemberId")
+    private String memberId;
+
+    @Excel(name = "CustomerId")
+    private String customerId;
+
+    @Excel(name = "TrainOrgId")
+    private String trainOrgId;
+
+    @Excel(name = "OrderNo")
+    private String orderSn;
+
+    @Excel(name = "CompanyName")
+    private String companyName;
+}

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

@@ -263,11 +263,7 @@
         WHERE
         1 = 1 AND o.`status` IN (0,1)
         AND ( `o`.`order_type` != 4 )
-        AND (
-        isnull( `o`.`input_order_sn` )
-        OR (
-        NOT (
-        `o`.`input_order_sn` IN ( SELECT `top_old_order`.`input_order_sn` FROM `top_old_order` ))))
+        AND ( `o`.`org_sign` != 1 )
         <if test="businessFullName != null and businessFullName != ''">
             AND (
             SELECT
@@ -568,14 +564,14 @@
     </select>
 
     <select id="tenantMoneyTotal" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo"
-            resultType="BigDecimal">
+            resultType="java.math.BigDecimal">
         SELECT IFNULL(SUM(too.divide_company_money), 0)
         FROM v_top_order too
         WHERE too.divide_model = 1
           AND too.divide_status = 5
     </select>
     <select id="tenantSellerTotal" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo"
-            resultType="BigDecimal">
+            resultType="java.math.BigDecimal">
         SELECT IFNULL(SUM(too.divide_seller_money), 0)
         FROM v_top_order too
         WHERE too.divide_model = 2