Blame view

service-job/src/main/java/com/java110/job/adapt/fee/PayFeeDetailToMonthAdapt.java 4.41 KB
88e030b7   王彪总   init project
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
121
122
  package com.java110.job.adapt.fee;
  
  import com.alibaba.fastjson.JSONArray;
  import com.alibaba.fastjson.JSONObject;
  import com.alibaba.fastjson.serializer.SerializerFeature;
  import com.java110.dto.fee.FeeDetailDto;
  import com.java110.dto.system.Business;
  import com.java110.intf.community.ICommunityInnerServiceSMO;
  import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
  import com.java110.intf.user.IOwnerAppUserInnerServiceSMO;
  import com.java110.intf.user.IOwnerCarInnerServiceSMO;
  import com.java110.intf.user.IOwnerInnerServiceSMO;
  import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
  import com.java110.job.adapt.DatabusAdaptImpl;
  import com.java110.job.adapt.fee.asyn.IPayFeeDetailToMonth;
  import com.java110.po.fee.PayFeeDetailPo;
  import com.java110.utils.util.Assert;
  import org.slf4j.Logger;
  import com.java110.core.log.LoggerFactory;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Component;
  
  import java.util.List;
  import java.util.Map;
  
  /**
   *  缴费数据离散到每个月
   *
   *  主要为了解决 华宁物业需求
   *
   * @author 吴学文
   * @date 2020-12-11  18:54
   */
  @Component(value = "payFeeDetailToMonthAdapt")
  public class PayFeeDetailToMonthAdapt extends DatabusAdaptImpl {
  
      private static Logger logger = LoggerFactory.getLogger(PayFeeDetailToMonthAdapt.class);
  
      @Autowired
      private ICommunityInnerServiceSMO communityInnerServiceSMO;
  
  
  
      @Autowired
      private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
  
  
  
      @Autowired
      private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
  
      @Autowired
      private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMO;
  
      @Autowired
      private IOwnerInnerServiceSMO ownerInnerServiceSMO;
  
      @Autowired
      private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
  
      @Autowired
      private IPayFeeDetailToMonth payFeeDetailToMonthImpl;
  
      //模板信息推送地址
      private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
  
      public final static String ALI_SMS_DOMAIN = "ALI_SMS";
  
      @Override
      public void execute(Business business, List<Business> businesses) {
          JSONObject data = business.getData();
          JSONArray businessPayFeeDetails = null;
          if (data == null) {
              FeeDetailDto feeDetailDto = new FeeDetailDto();
              feeDetailDto.setbId(business.getbId());
              List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
              Assert.listOnlyOne(feeDetailDtos, "未查询到缴费记录");
              businessPayFeeDetails = JSONArray.parseArray(JSONArray.toJSONString(feeDetailDtos, SerializerFeature.WriteDateUseDateFormat));
          } else if (data.containsKey(PayFeeDetailPo.class.getSimpleName())) {
              Object bObj = data.get(PayFeeDetailPo.class.getSimpleName());
              if (bObj instanceof JSONObject) {
                  businessPayFeeDetails = new JSONArray();
                  businessPayFeeDetails.add(bObj);
              } else if (bObj instanceof Map) {
                  businessPayFeeDetails = new JSONArray();
                  businessPayFeeDetails.add(JSONObject.parseObject(JSONObject.toJSONString(bObj)));
              } else if (bObj instanceof List) {
                  businessPayFeeDetails = JSONArray.parseArray(JSONObject.toJSONString(bObj));
              } else {
                  businessPayFeeDetails = (JSONArray) bObj;
              }
          } else {
              if (data instanceof JSONObject) {
                  businessPayFeeDetails = new JSONArray();
                  businessPayFeeDetails.add(data);
              }
          }
  
          if (businessPayFeeDetails == null) {
              return;
          }
          for (int bPayFeeDetailIndex = 0; bPayFeeDetailIndex < businessPayFeeDetails.size(); bPayFeeDetailIndex++) {
              JSONObject businessPayFeeDetail = businessPayFeeDetails.getJSONObject(bPayFeeDetailIndex);
              doPayFeeDetail(business, businessPayFeeDetail);
          }
      }
  
      /**
       * 转异步处理
       * @param business
       * @param businessPayFeeDetail
       */
      private void doPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
  //        if(businessPayFeeDetail.containsKey("receivedAmount")
  //                && businessPayFeeDetail.getDoubleValue("receivedAmount")<0){
  //            return ;
  //        }
          payFeeDetailToMonthImpl.doPayFeeDetail(business,businessPayFeeDetail);
      }
  
  
  }