ANDRU-PC\Andru
2023-10-08 572fd8325c78965f462cc19847033dac86fc5be6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.hx.phip.service.order;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hx.common.service.CommonService;
import com.hx.mybatisTool.SqlSentence;
import com.hx.phiappt.model.PlatformApplication;
import com.hx.phiappt.model.Shop;
import com.hx.phiappt.model.User;
import com.hx.phiappt.model.UserMoney;
import com.hx.phiappt.model.coupon.Coupon;
import com.hx.phiappt.model.coupon.CouponNumber;
import com.hx.phiappt.model.order.*;
import com.hz.his.dto.order.OrderRiseDto;
import com.hz.his.dto.order.PayDto;
import com.hz.his.feign.service.sync.SyncOrderService;
import com.platform.entity.ThirtApplication;
 
import java.util.List;
import java.util.Map;
 
/**
 * 订单实现类
 *
 * @Author: zhouxiang
 * @Date: 2022/09/19/14:52
 * @Description:
 */
public interface OrderServiceV2 {
 
    /**
     * 开单接口
     * @return
     */
    Map<String, Object> orderCreate(OrdersTotal ordersTotal, List<OrderItem> items, Integer type, List<OrderDeveloper> orderDeveloperList
            , Map<String, String> operator, Shop shop,String opShopId, UserMoney userMoney, User user, PlatformApplication platformApplication
            , List<OrderRise> orderRiseList, CommonService commonService);
 
    /**
     * 结账接口
     * @return
     */
    Map<String, Object> orderPayMoney(Integer couponCheckVersion,Integer type, OrdersTotal ordersTotal, User user,User payUser, Shop shop, OrderInfo info, List<OrderItem> orderItemList,
                                      Map<String, String> operator, UserMoney userMoney, String total, JSONArray amountList, JSONArray userCouponIds,
                                      PayDto payDto,ThirtApplication thirtApplication);
 
    /**
     * 查询领建订单号
     * @param hisOrderId                            领建订单标识
     * @param orderId                               预约订单标识
     * @param sqlSentence
     * @param paramMap
     * @param syncOrderService                      同步中心服务
     * @param commonService
     * @return
     */
    String  getHisOrderNo(String hisOrderId, String orderId, SqlSentence sqlSentence, Map<String, Object> paramMap,
                          SyncOrderService syncOrderService, CommonService commonService);
 
    /**
     * 异步获取未执行划扣信息,暂时交给同步中心获取itemId
     * @param orderId
     * @param user
     */
    void getExecution(Object orderId, User user);
 
    /**
     * 发送公众号通知
     * @param id                        总订单id
     * @param commonService
     */
    void sendPublicNo(String id, CommonService commonService);
 
    /**
     * 发送短信通知
     * @param id                        总订单id
     * @param commonService
     */
    void sentSMSInfo(String id, CommonService commonService);
 
    /**
     * 结账成功发送企业微信通知给用户所属顾问
     * @param userId                    用户标识
     * @param orderNo                   订单号
     * @param orderId                   订单标识
     * @param commonService
     */
    void sendUserConsultant(String userId,String orderNo,String orderId,JSONObject commissionObject, CommonService commonService);
 
 
    /**
     * 营销助手拒绝审核
     * @param type                      类型:0折扣订单1支付订单
     * @param commonId                  公共标识(订单标识)
     * @param commonType                公共类型(订单类型)
     * @param examEmplId                操作人标识
     * @param examEmplName              操作人名称
     */
    void newMarketingRejectAduit(Integer type,String commonId, Integer commonType, String examEmplId, String examEmplName);
 
    /**
     * 营销助手通过审核
     * @param type                      类型:0折扣订单1支付订单
     * @param commonId                  公共标识(订单标识)
     * @param commonType                公共类型(订单类型)
     * @param examEmplId                操作人标识
     * @param examEmplName              操作人名称
     */
    void newMarketingSuccessAduit(Integer type,String commonId, Integer commonType, String examEmplId, String examEmplName);
 
    /*记录收入确认报表*/
    void statementPerformanceInfo(String orderId);
    /*咨询师现金业绩报表*/
    void statementConsultantCash(String orderId);
 
    void autoTag(String userId);
 
    /** 计算订单应付金额 */
    Map<String, Object> countOrderShouldTotal(Shop shop, List<OrderItem> orderItemList);
}