Bläddra i källkod

优化费用信息

wuxw 6 år sedan
förälder
incheckning
1b13df101b

+ 15 - 4
Api/src/main/java/com/java110/api/listener/fee/SaveRoomCreateFeeListener.java

@@ -6,8 +6,10 @@ import com.java110.api.listener.AbstractServiceApiDataFlowListener;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
 import com.java110.core.smo.room.IRoomInnerServiceSMO;
 import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeConfigDto;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.BusinessTypeConstant;
@@ -43,6 +45,9 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
     @Autowired
     private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_SAVE_ROOM_CREATE_FEE;
@@ -68,6 +73,12 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
         logger.debug("ServiceDataFlowEvent : {}", event);
         List<RoomDto> roomDtos = null;
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+        feeConfigDto.setConfigId(reqJson.getString("configId"));
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        Assert.listOnlyOne(feeConfigDtos, "当前费用项ID不存在或存在多条" + reqJson.getString("configId"));
+        reqJson.put("feeTypeCd", reqJson.getString("feeTypeCd"));
         //判断收费范围
         if ("1000".equals(reqJson.getString("locationTypeCd"))) {//小区
             RoomDto roomDto = new RoomDto();
@@ -106,7 +117,6 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         AppService service = event.getAppService();
 
 
-
         HttpHeaders header = new HttpHeaders();
         context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
         JSONArray businesses = new JSONArray();
@@ -117,7 +127,7 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         for (int roomIndex = 0; roomIndex < roomDtos.size(); roomIndex++) {
             businesses.add(addFee(roomDtos.get(0), reqJson, context));
 
-            if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0) {
+            if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
                 paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
                 //将 rest header 信息传递到下层服务中去
                 super.freshHttpHeader(header, context.getRequestCurrentHeaders());
@@ -125,7 +135,7 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
                 responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
 
                 if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                    failRooms++;
+                    failRooms += businesses.size();
                 }
 
                 businesses = new JSONArray();
@@ -138,7 +148,7 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
             super.freshHttpHeader(header, context.getRequestCurrentHeaders());
             responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
             if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                failRooms++;
+                failRooms += businesses.size();
             }
         }
 
@@ -169,6 +179,7 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         JSONObject businessUnit = new JSONObject();
         businessUnit.put("feeId", "-1");
         businessUnit.put("configId", paramInJson.getString("configId"));
+        businessUnit.put("feeTypeCd", paramInJson.getString("feeTypeCd"));
         businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
         businessUnit.put("amount", "-1.00");
         businessUnit.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));

+ 2 - 0
FeeService/src/main/java/com/java110/fee/listener/fee/AbstractFeeBusinessServiceDataFlowListener.java

@@ -49,6 +49,7 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         businessFeeInfo.put("payerObjId", businessFeeInfo.get("payer_obj_id"));
         businessFeeInfo.put("feeFlag", businessFeeInfo.get("fee_flag"));
         businessFeeInfo.put("state", businessFeeInfo.get("state"));
+        businessFeeInfo.put("configId", businessFeeInfo.get("config_id"));
         businessFeeInfo.remove("bId");
         businessFeeInfo.put("statusCd", statusCd);
     }
@@ -86,6 +87,7 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         currentFeeInfo.put("payerObjId", currentFeeInfo.get("payer_obj_id"));
         currentFeeInfo.put("feeFlag", currentFeeInfo.get("fee_flag"));
         currentFeeInfo.put("state", currentFeeInfo.get("state"));
+        currentFeeInfo.put("configId", currentFeeInfo.get("config_id"));
 
         currentFeeInfo.put("operate", StatusConstant.OPERATE_DEL);
         getFeeServiceDaoImpl().saveBusinessFeeInfo(currentFeeInfo);

+ 1 - 1
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/RoomCreateFeeSMOImpl.java

@@ -51,7 +51,7 @@ public class RoomCreateFeeSMOImpl extends AbstractComponentSMO implements IRoomC
         String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/fee.saveRoomCreateFee";
 
 
-        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, JSONObject.toJSONString(paramMap),
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, JSONObject.toJSONString(paramIn),
                 apiUrl,
                 HttpMethod.POST);
 

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -26,6 +26,7 @@ public class FeeDto extends PageDto implements Serializable {
     private String payerObjId;
     private String[] payerObjIds;
     private String[] feeTypeCds;
+    private String configId;
 
     private String squarePrice;
     private String additionalAmount;
@@ -194,4 +195,12 @@ public class FeeDto extends PageDto implements Serializable {
     public void setNoArrearsEndTime(Date noArrearsEndTime) {
         this.noArrearsEndTime = noArrearsEndTime;
     }
+
+    public String getConfigId() {
+        return configId;
+    }
+
+    public void setConfigId(String configId) {
+        this.configId = configId;
+    }
 }

+ 20 - 6
java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml

@@ -7,10 +7,10 @@
     <!-- 保存费用信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessFeeInfo" parameterType="Map">
         insert into business_pay_fee(
-        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state
+        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id
         ) values (
         #{amount},#{operate},#{incomeObjId},#{feeTypeCd},#{startTime},#{endTime},#{communityId},#{bId},#{feeId},#{userId},#{payerObjId},
-        #{feeFlag},#{state}
+        #{feeFlag},#{state},#{configId}
         )
     </insert>
 
@@ -20,7 +20,7 @@
         select t.amount,t.operate,t.income_obj_id,t.income_obj_id incomeObjId,t.fee_type_cd,t.fee_type_cd
         feeTypeCd,t.start_time,t.start_time startTime,t.end_time,t.end_time endTime,t.community_id,t.community_id
         communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id userId,t.payer_obj_id,t.payer_obj_id
-        payerObjId,t.fee_flag,t.fee_flag feeFlag,t.state
+        payerObjId,t.fee_flag,t.fee_flag feeFlag,t.state,t.config_id,t.config_id configId
         from business_pay_fee t
         where 1 =1
         <if test="amount !=null and amount != ''">
@@ -62,6 +62,9 @@
         <if test="feeFlag !=null and feeFlag != ''">
             and t.fee_flag= #{feeFlag}
         </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
 
     </select>
 
@@ -69,10 +72,10 @@
     <!-- 保存费用信息至 instance表中 add by wuxw 2018-07-03 -->
     <insert id="saveFeeInfoInstance" parameterType="Map">
         insert into pay_fee(
-        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state
+        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id
         ) select
         t.amount,t.income_obj_id,t.fee_type_cd,t.start_time,'0',t.end_time,t.community_id,t.b_id,t.fee_id,t.user_id,t.payer_obj_id
-        ,t.fee_flag,t.state
+        ,t.fee_flag,t.state,t.config_id
         from business_pay_fee t where 1=1
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
@@ -111,6 +114,9 @@
         <if test="feeFlag !=null and feeFlag != ''">
             and t.fee_flag= #{feeFlag}
         </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
 
     </insert>
 
@@ -121,10 +127,11 @@
         feeTypeCd,t.start_time,t.start_time startTime,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time
         endTime,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id
         userId,t.payer_obj_id,t.payer_obj_id payerObjId,pfc.square_price squarePrice,pfc.additional_amount
-        additionalAmount,t.fee_flag,t.fee_flag feeFlag,t.state
+        additionalAmount,t.fee_flag,t.fee_flag feeFlag,t.state,t.config_id,t.config_id configId
         from pay_fee t,pay_fee_config pfc
         where 1 =1
         and t.fee_type_cd = pfc.fee_type_cd
+        and t.config_id = pfc.config_id
         and pfc.status_cd = '0'
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
@@ -181,6 +188,9 @@
         <if test="feeFlag !=null and feeFlag != ''">
             and t.fee_flag= #{feeFlag}
         </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -241,6 +251,7 @@
         from pay_fee t,pay_fee_config pfc
         where 1 =1
         and t.fee_type_cd = pfc.fee_type_cd
+        and t.config_id = pfc.config_id
         and pfc.status_cd = '0'
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
@@ -300,6 +311,9 @@
         <if test="feeFlag !=null and feeFlag != ''">
             and t.fee_flag= #{feeFlag}
         </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
 
 
     </select>