Procházet zdrojové kódy

新增预存费用功能

jinhai před 5 roky
rodič
revize
2bac44b5f5
21 změnil soubory, kde provedl 1171 přidání a 3 odebrání
  1. 109 0
      java110-bean/src/main/java/com/java110/dto/prestoreFee/PrestoreFeeDto.java
  2. 91 0
      java110-bean/src/main/java/com/java110/po/prestoreFee/PrestoreFeePo.java
  3. 1 1
      java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
  4. 133 0
      java110-db/src/main/resources/mapper/fee/PrestoreFeeServiceDaoImplMapper.xml
  5. 1 1
      java110-generator/src/main/java/com/java110/code/newBack/BackCoderGeneratorStart.java
  6. 1 1
      java110-generator/src/main/java/com/java110/code/web/GeneratorStart.java
  7. 40 0
      java110-generator/src/main/resources/newBack/template_prestoreFee.json
  8. 113 0
      java110-generator/src/main/resources/web/template_prestoreFee.json
  9. 53 0
      java110-interface/src/main/java/com/java110/intf/fee/IPrestoreFeeInnerServiceSMO.java
  10. 119 0
      service-fee/src/main/java/com/java110/fee/api/PrestoreFeeApi.java
  11. 18 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IDeletePrestoreFeeBMO.java
  12. 16 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IGetPrestoreFeeBMO.java
  13. 17 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/ISavePrestoreFeeBMO.java
  14. 17 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IUpdatePrestoreFeeBMO.java
  15. 50 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/DeletePrestoreFeeBMOImpl.java
  16. 56 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/GetPrestoreFeeBMOImpl.java
  17. 51 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/SavePrestoreFeeBMOImpl.java
  18. 42 0
      service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/UpdatePrestoreFeeBMOImpl.java
  19. 61 0
      service-fee/src/main/java/com/java110/fee/dao/IPrestoreFeeServiceDao.java
  20. 98 0
      service-fee/src/main/java/com/java110/fee/dao/impl/PrestoreFeeServiceDaoImpl.java
  21. 84 0
      service-fee/src/main/java/com/java110/fee/smo/impl/PrestoreFeeInnerServiceSMOImpl.java

+ 109 - 0
java110-bean/src/main/java/com/java110/dto/prestoreFee/PrestoreFeeDto.java

@@ -0,0 +1,109 @@
+package com.java110.dto.prestoreFee;
+
+import com.java110.dto.PageDto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 预存费用数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class PrestoreFeeDto extends PageDto implements Serializable {
+
+    private String prestoreFeeAmount;
+    private String prestoreFeeObjType;
+    private String prestoreFeeId;
+    private String remark;
+    private String state;
+    private String communityId;
+    private String prestoreFeeType;
+    private String roomId;
+
+    private Date createTime;
+    private String statusCd = "0";
+
+    public String getPrestoreFeeAmount() {
+        return prestoreFeeAmount;
+    }
+
+    public void setPrestoreFeeAmount(String prestoreFeeAmount) {
+        this.prestoreFeeAmount = prestoreFeeAmount;
+    }
+
+    public String getPrestoreFeeObjType() {
+        return prestoreFeeObjType;
+    }
+
+    public void setPrestoreFeeObjType(String prestoreFeeObjType) {
+        this.prestoreFeeObjType = prestoreFeeObjType;
+    }
+
+    public String getPrestoreFeeId() {
+        return prestoreFeeId;
+    }
+
+    public void setPrestoreFeeId(String prestoreFeeId) {
+        this.prestoreFeeId = prestoreFeeId;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getPrestoreFeeType() {
+        return prestoreFeeType;
+    }
+
+    public void setPrestoreFeeType(String prestoreFeeType) {
+        this.prestoreFeeType = prestoreFeeType;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+}

+ 91 - 0
java110-bean/src/main/java/com/java110/po/prestoreFee/PrestoreFeePo.java

@@ -0,0 +1,91 @@
+package com.java110.po.prestoreFee;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class PrestoreFeePo implements Serializable {
+
+    private String prestoreFeeAmount;
+    private String prestoreFeeObjType;
+    private String prestoreFeeId;
+    private String remark;
+    private String statusCd = "0";
+    private String state;
+    private String communityId;
+    private String prestoreFeeType;
+    private String roomId;
+
+    public String getprestoreFeeAmount() {
+        return prestoreFeeAmount;
+    }
+
+    public void setprestoreFeeAmount(String prestoreFeeAmount) {
+        this.prestoreFeeAmount = prestoreFeeAmount;
+    }
+
+    public String getPrestoreFeeObjType() {
+        return prestoreFeeObjType;
+    }
+
+    public void setPrestoreFeeObjType(String prestoreFeeObjType) {
+        this.prestoreFeeObjType = prestoreFeeObjType;
+    }
+
+    public String getPrestoreFeeId() {
+        return prestoreFeeId;
+    }
+
+    public void setPrestoreFeeId(String prestoreFeeId) {
+        this.prestoreFeeId = prestoreFeeId;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getPrestoreFeeType() {
+        return prestoreFeeType;
+    }
+
+    public void setPrestoreFeeType(String prestoreFeeType) {
+        this.prestoreFeeType = prestoreFeeType;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+
+}

+ 1 - 1
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java

@@ -142,7 +142,7 @@ public class GenerateCodeFactory {
 
 
     public static final String CODE_PREFIX_waterId = "78";
-
+    public static final String CODE_PREFIX_prestoreFeeId = "78";
 
     /**
      * 只有在不调用服务生成ID时有用

+ 133 - 0
java110-db/src/main/resources/mapper/fee/PrestoreFeeServiceDaoImplMapper.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="prestoreFeeServiceDaoImpl">
+
+
+
+
+
+    <!-- 保存预存费用信息 add by wuxw 2018-07-03 -->
+    <insert id="savePrestoreFeeInfo" parameterType="Map">
+        insert into prestore_fee(
+prestore_fee_amount,prestore_fee_obj_type,prestore_fee_id,remark,state,community_id,prestore_fee_type,room_id
+) values (
+#{prestoreFeeAmount},#{prestoreFeeObjType},#{prestoreFeeId},#{remark},#{state},#{communityId},#{prestoreFeeType},#{roomId}
+)
+    </insert>
+
+
+
+    <!-- 查询预存费用信息 add by wuxw 2018-07-03 -->
+    <select id="getPrestoreFeeInfo" parameterType="Map" resultType="Map">
+        select  t.prestore_fee_amount,t.prestore_fee_amount prestoreFeeAmount,t.prestore_fee_obj_type,t.prestore_fee_obj_type prestoreFeeObjType,t.prestore_fee_id,t.prestore_fee_id prestoreFeeId,t.remark,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.prestore_fee_type,t.prestore_fee_type prestoreFeeType,t.room_id,t.room_id roomId
+from prestore_fee t 
+where 1 =1 
+<if test="prestoreFeeAmount !=null and prestoreFeeAmount != ''">
+   and t.prestore_fee_amount= #{prestoreFeeAmount}
+</if> 
+<if test="prestoreFeeObjType !=null and prestoreFeeObjType != ''">
+   and t.prestore_fee_obj_type= #{prestoreFeeObjType}
+</if> 
+<if test="prestoreFeeId !=null and prestoreFeeId != ''">
+   and t.prestore_fee_id= #{prestoreFeeId}
+</if> 
+<if test="remark !=null and remark != ''">
+   and t.remark= #{remark}
+</if> 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="state !=null and state != ''">
+   and t.state= #{state}
+</if> 
+<if test="communityId !=null and communityId != ''">
+   and t.community_id= #{communityId}
+</if> 
+<if test="prestoreFeeType !=null and prestoreFeeType != ''">
+   and t.prestore_fee_type= #{prestoreFeeType}
+</if> 
+<if test="roomId !=null and roomId != ''">
+   and t.room_id= #{roomId}
+</if> 
+order by t.create_time desc
+<if test="page != -1 and page != null ">
+   limit #{page}, #{row}
+</if> 
+
+    </select>
+
+
+
+
+    <!-- 修改预存费用信息 add by wuxw 2018-07-03 -->
+    <update id="updatePrestoreFeeInfo" parameterType="Map">
+        update  prestore_fee t set t.status_cd = #{statusCd}
+<if test="newBId != null and newBId != ''">
+,t.b_id = #{newBId}
+</if> 
+<if test="prestoreFeeAmount !=null and prestoreFeeAmount != ''">
+, t.prestore_fee_amount= #{prestoreFeeAmount}
+</if> 
+<if test="prestoreFeeObjType !=null and prestoreFeeObjType != ''">
+, t.prestore_fee_obj_type= #{prestoreFeeObjType}
+</if> 
+<if test="remark !=null and remark != ''">
+, t.remark= #{remark}
+</if> 
+<if test="state !=null and state != ''">
+, t.state= #{state}
+</if> 
+<if test="communityId !=null and communityId != ''">
+, t.community_id= #{communityId}
+</if> 
+<if test="prestoreFeeType !=null and prestoreFeeType != ''">
+, t.prestore_fee_type= #{prestoreFeeType}
+</if> 
+<if test="roomId !=null and roomId != ''">
+, t.room_id= #{roomId}
+</if> 
+ where 1=1 <if test="prestoreFeeId !=null and prestoreFeeId != ''">
+and t.prestore_fee_id= #{prestoreFeeId}
+</if> 
+
+    </update>
+
+    <!-- 查询预存费用数量 add by wuxw 2018-07-03 -->
+     <select id="queryPrestoreFeesCount" parameterType="Map" resultType="Map">
+        select  count(1) count 
+from prestore_fee t 
+where 1 =1 
+<if test="prestoreFeeAmount !=null and prestoreFeeAmount != ''">
+   and t.prestore_fee_amount= #{prestoreFeeAmount}
+</if> 
+<if test="prestoreFeeObjType !=null and prestoreFeeObjType != ''">
+   and t.prestore_fee_obj_type= #{prestoreFeeObjType}
+</if> 
+<if test="prestoreFeeId !=null and prestoreFeeId != ''">
+   and t.prestore_fee_id= #{prestoreFeeId}
+</if> 
+<if test="remark !=null and remark != ''">
+   and t.remark= #{remark}
+</if> 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="state !=null and state != ''">
+   and t.state= #{state}
+</if> 
+<if test="communityId !=null and communityId != ''">
+   and t.community_id= #{communityId}
+</if> 
+<if test="prestoreFeeType !=null and prestoreFeeType != ''">
+   and t.prestore_fee_type= #{prestoreFeeType}
+</if> 
+<if test="roomId !=null and roomId != ''">
+   and t.room_id= #{roomId}
+</if> 
+
+
+     </select>
+
+</mapper>

+ 1 - 1
java110-generator/src/main/java/com/java110/code/newBack/BackCoderGeneratorStart.java

@@ -29,7 +29,7 @@ public class BackCoderGeneratorStart extends BaseGenerator {
     public static void main(String[] args) throws Exception {
 
         //加载配置
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/newBack/template_1.json").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/newBack/template_prestoreFee.json").getFile());
 
         JSONObject dataJson = JSONObject.parseObject(sb.toString());
 

+ 1 - 1
java110-generator/src/main/java/com/java110/code/web/GeneratorStart.java

@@ -7,7 +7,7 @@ public class GeneratorStart extends BaseGenerator {
 
     public static void main(String[] args) throws Exception {
         //加载配置
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/template_1.json").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/template_prestoreFee.json").getFile());
 
         JSONObject data = JSONObject.parseObject(sb.toString());
 

+ 40 - 0
java110-generator/src/main/resources/newBack/template_prestoreFee.json

@@ -0,0 +1,40 @@
+{
+  "autoMove": true,
+  "id": "prestoreFeeId",
+  "name": "prestoreFee",
+  "desc": "预存费用",
+  "shareParam": "prestoreFeeId",
+  "shareColumn": "prestore_fee_id",
+  "shareName": "fee",
+  "tableName": "prestore_fee",
+  "param": {
+    "prestoreFeeId": "prestore_fee_id",
+    "prestoreFeeType": "prestore_fee_type",
+    "roomId": "room_id",
+    "prestoreFeeObjType": "prestore_fee_obj_type",
+    "prestoreFeeAmount": "prestore_fee_amount",
+    "remark": "remark",
+    "communityId": "community_id",
+    "state": "state",
+    "statusCd": "status_cd"
+  },
+  "required": [
+    {
+      "code": "prestoreFeeType",
+      "msg": "预存费用类型不能为空"
+    },
+    {
+      "code": "roomId",
+      "msg": "房屋不能为空"
+    },
+    {
+      "code": "prestoreFeeObjType",
+      "msg": "预存费用对象不能为空"
+    },
+    {
+      "code": "prestoreFeeAmount",
+      "msg": "预存费用金额不能为空"
+    }
+  ]
+}
+

+ 113 - 0
java110-generator/src/main/resources/web/template_prestoreFee.json

@@ -0,0 +1,113 @@
+{
+  "templateName":"预付费用",
+  "directories": "property",
+  "templateCode":"prestoreFee",
+  "templateKey":"prestoreFeeId",
+  "templateKeyName":"预付费用ID",
+  "searchCode": "prestoreFeeId",
+  "searchName": "预付费用ID",
+  "conditions": [
+    {
+      "name": "预存类型",
+      "inputType": "select",
+      "selectValue":"8003,8004",
+      "selectValueName":"水费,电费",
+      "code": "prestoreFeeType",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "预存金额",
+      "inputType": "input",
+      "code": "prestoreFeeAmount",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "状态",
+      "inputType": "select",
+      "selectValue":"1001,2002",
+      "selectValueName":"未使用,已使用",
+      "code": "state",
+      "whereCondition": "equal"
+    }
+  ],
+  "columns":[
+    {
+      "code": "roomId",
+      "cnCode":"房屋ID",
+      "desc":"必填,请填写房屋ID",
+      "required":true,
+      "hasDefaultValue":false,
+      "inputType": "input",
+      "limit":"maxLength",
+      "limitParam":"100",
+      "limitErrInfo":"标题太长 超过100位",
+      "show": true
+    },
+    {
+      "inputType": "select",
+      "selectValue":"8003,8004",
+      "selectValueName":"水费,电费",
+      "code": "prestoreFeeType",
+      "cnCode":"预付类型",
+      "desc":"必选,请选择水费或电费",
+      "required":true,
+      "hasDefaultValue":false,
+      "limit":"num",
+      "limitParam":"",
+      "limitErrInfo":"格式错误",
+      "show": true
+    },
+    {
+      "inputType": "select",
+      "selectValue":"3333,6666",
+      "selectValueName":"房屋,车位",
+      "code": "prestoreFeeObjType",
+      "cnCode":"预存对象类型",
+      "desc":"必选,请选择预存对象类型",
+      "required":true,
+      "hasDefaultValue":false,
+      "limit":"num",
+      "limitParam":"",
+      "limitErrInfo":"预存对象类型格式错误",
+      "show": true
+    },
+    {
+      "code": "prestoreFeeAmount",
+      "cnCode":"预付金额",
+      "desc":"必填,请填写预付金额",
+      "required":true,
+      "hasDefaultValue":false,
+      "inputType": "input",
+      "limit":"num",
+      "limitParam":"",
+      "limitErrInfo":"预付金额格式错误",
+      "show": true
+    },
+    {
+      "inputType": "select",
+      "selectValue":"1001,2002",
+      "selectValueName":"未使用,已使用",
+      "code": "state",
+      "cnCode":"状态",
+      "desc":"必选,请选择状态",
+      "required":true,
+      "hasDefaultValue":false,
+      "limit":"maxLength",
+      "limitParam":"8",
+      "limitErrInfo":"状态格式错误",
+      "show": true
+    },
+    {
+      "code": "remark",
+      "cnCode":"备注",
+      "desc":"必填,请填写入住时间",
+      "required":true,
+      "hasDefaultValue":false,
+      "inputType": "input",
+      "limit":"maxLength",
+      "limitParam":"100",
+      "limitErrInfo":"备注格式错误",
+      "show": true
+    }
+  ]
+}

+ 53 - 0
java110-interface/src/main/java/com/java110/intf/fee/IPrestoreFeeInnerServiceSMO.java

@@ -0,0 +1,53 @@
+package com.java110.intf.fee;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * @ClassName IPrestoreFeeInnerServiceSMO
+ * @Description 预存费用接口类
+ * @Author wuxw
+ * @Date 2019/4/24 9:04
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@FeignClient(name = "community-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/prestoreFeeApi")
+public interface IPrestoreFeeInnerServiceSMO {
+
+
+    @RequestMapping(value = "/savePrestoreFee", method = RequestMethod.POST)
+    public int savePrestoreFee(@RequestBody PrestoreFeePo prestoreFeePo);
+
+    @RequestMapping(value = "/updatePrestoreFee", method = RequestMethod.POST)
+    public int updatePrestoreFee(@RequestBody  PrestoreFeePo prestoreFeePo);
+
+    @RequestMapping(value = "/deletePrestoreFee", method = RequestMethod.POST)
+    public int deletePrestoreFee(@RequestBody  PrestoreFeePo prestoreFeePo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param prestoreFeeDto 数据对象分享
+     * @return PrestoreFeeDto 对象数据
+     */
+    @RequestMapping(value = "/queryPrestoreFees", method = RequestMethod.POST)
+    List<PrestoreFeeDto> queryPrestoreFees(@RequestBody PrestoreFeeDto prestoreFeeDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param prestoreFeeDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryPrestoreFeesCount", method = RequestMethod.POST)
+    int queryPrestoreFeesCount(@RequestBody PrestoreFeeDto prestoreFeeDto);
+}

+ 119 - 0
service-fee/src/main/java/com/java110/fee/api/PrestoreFeeApi.java

@@ -0,0 +1,119 @@
+package com.java110.fee.api;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.fee.bmo.prestoreFee.IDeletePrestoreFeeBMO;
+import com.java110.fee.bmo.prestoreFee.IGetPrestoreFeeBMO;
+import com.java110.fee.bmo.prestoreFee.ISavePrestoreFeeBMO;
+import com.java110.fee.bmo.prestoreFee.IUpdatePrestoreFeeBMO;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping(value = "/prestoreFee")
+public class PrestoreFeeApi {
+
+    @Autowired
+    private ISavePrestoreFeeBMO savePrestoreFeeBMOImpl;
+    @Autowired
+    private IUpdatePrestoreFeeBMO updatePrestoreFeeBMOImpl;
+    @Autowired
+    private IDeletePrestoreFeeBMO deletePrestoreFeeBMOImpl;
+
+    @Autowired
+    private IGetPrestoreFeeBMO getPrestoreFeeBMOImpl;
+
+    /**
+     * 微信保存消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /prestoreFee/savePrestoreFee
+     * @path /app/prestoreFee/savePrestoreFee
+     */
+    @RequestMapping(value = "/savePrestoreFee", method = RequestMethod.POST)
+    public ResponseEntity<String> savePrestoreFee(@RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeType", "请求报文中未包含prestoreFeeType");
+        Assert.hasKeyAndValue(reqJson, "roomId", "请求报文中未包含roomId");
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeObjType", "请求报文中未包含prestoreFeeObjType");
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeAmount", "请求报文中未包含prestoreFeeAmount");
+
+
+        PrestoreFeePo prestoreFeePo = BeanConvertUtil.covertBean(reqJson, PrestoreFeePo.class);
+        return savePrestoreFeeBMOImpl.save(prestoreFeePo);
+    }
+
+    /**
+     * 微信修改消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /prestoreFee/updatePrestoreFee
+     * @path /app/prestoreFee/updatePrestoreFee
+     */
+    @RequestMapping(value = "/updatePrestoreFee", method = RequestMethod.POST)
+    public ResponseEntity<String> updatePrestoreFee(@RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeType", "请求报文中未包含prestoreFeeType");
+        Assert.hasKeyAndValue(reqJson, "roomId", "请求报文中未包含roomId");
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeObjType", "请求报文中未包含prestoreFeeObjType");
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeAmount", "请求报文中未包含prestoreFeeAmount");
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeId", "prestoreFeeId不能为空");
+
+
+        PrestoreFeePo prestoreFeePo = BeanConvertUtil.covertBean(reqJson, PrestoreFeePo.class);
+        return updatePrestoreFeeBMOImpl.update(prestoreFeePo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /prestoreFee/deletePrestoreFee
+     * @path /app/prestoreFee/deletePrestoreFee
+     */
+    @RequestMapping(value = "/deletePrestoreFee", method = RequestMethod.POST)
+    public ResponseEntity<String> deletePrestoreFee(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
+
+        Assert.hasKeyAndValue(reqJson, "prestoreFeeId", "prestoreFeeId不能为空");
+
+
+        PrestoreFeePo prestoreFeePo = BeanConvertUtil.covertBean(reqJson, PrestoreFeePo.class);
+        return deletePrestoreFeeBMOImpl.delete(prestoreFeePo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param communityId 小区ID
+     * @return
+     * @serviceCode /prestoreFee/queryPrestoreFee
+     * @path /app/prestoreFee/queryPrestoreFee
+     */
+    @RequestMapping(value = "/queryPrestoreFee", method = RequestMethod.GET)
+    public ResponseEntity<String> queryPrestoreFee(@RequestParam(value = "communityId") String communityId,
+                                                   @RequestParam(value = "prestoreFeeAmount", required = false) String prestoreFeeAmount,
+                                                   @RequestParam(value = "prestoreFeeType", required = false) String prestoreFeeType,
+                                                   @RequestParam(value = "state", required = false) String state,
+                                                   @RequestParam(value = "roomId", required = false) String roomId,
+                                                   @RequestParam(value = "page") int page,
+                                                   @RequestParam(value = "row") int row) {
+        PrestoreFeeDto prestoreFeeDto = new PrestoreFeeDto();
+        prestoreFeeDto.setPage(page);
+        prestoreFeeDto.setRow(row);
+        prestoreFeeDto.setRoomId(roomId);
+        prestoreFeeDto.setCommunityId(communityId);
+        prestoreFeeDto.setPrestoreFeeAmount(prestoreFeeType);
+        prestoreFeeDto.setPrestoreFeeAmount(prestoreFeeAmount);
+        prestoreFeeDto.setState(state);
+        return getPrestoreFeeBMOImpl.get(prestoreFeeDto);
+    }
+}

+ 18 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IDeletePrestoreFeeBMO.java

@@ -0,0 +1,18 @@
+package com.java110.fee.bmo.prestoreFee;
+
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import org.springframework.http.ResponseEntity;
+
+public interface IDeletePrestoreFeeBMO {
+
+
+    /**
+     * 修改预存费用
+     * add by wuxw
+     * @param prestoreFeePo
+     * @return
+     */
+    ResponseEntity<String> delete(PrestoreFeePo prestoreFeePo);
+
+
+}

+ 16 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IGetPrestoreFeeBMO.java

@@ -0,0 +1,16 @@
+package com.java110.fee.bmo.prestoreFee;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import org.springframework.http.ResponseEntity;
+public interface IGetPrestoreFeeBMO {
+
+
+    /**
+     * 查询预存费用
+     * add by wuxw
+     * @param  prestoreFeeDto
+     * @return
+     */
+    ResponseEntity<String> get(PrestoreFeeDto prestoreFeeDto);
+
+
+}

+ 17 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/ISavePrestoreFeeBMO.java

@@ -0,0 +1,17 @@
+package com.java110.fee.bmo.prestoreFee;
+
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import org.springframework.http.ResponseEntity;
+public interface ISavePrestoreFeeBMO {
+
+
+    /**
+     * 添加预存费用
+     * add by wuxw
+     * @param prestoreFeePo
+     * @return
+     */
+    ResponseEntity<String> save(PrestoreFeePo prestoreFeePo);
+
+
+}

+ 17 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/IUpdatePrestoreFeeBMO.java

@@ -0,0 +1,17 @@
+package com.java110.fee.bmo.prestoreFee;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import org.springframework.http.ResponseEntity;
+
+public interface IUpdatePrestoreFeeBMO {
+
+
+    /**
+     * 修改预存费用
+     * add by wuxw
+     * @param prestoreFeePo
+     * @return
+     */
+    ResponseEntity<String> update(PrestoreFeePo prestoreFeePo);
+
+
+}

+ 50 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/DeletePrestoreFeeBMOImpl.java

@@ -0,0 +1,50 @@
+package com.java110.fee.bmo.prestoreFee.impl;
+
+
+import com.alibaba.fastjson.JSONObject;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.fee.bmo.prestoreFee.IDeletePrestoreFeeBMO;
+import com.java110.intf.fee.IPrestoreFeeInnerServiceSMO;
+import com.java110.intf.store.IWechatSmsTemplateInnerServiceSMO;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import com.java110.po.wechatSmsTemplate.WechatSmsTemplatePo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import com.java110.core.context.DataFlowContext;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("deletePrestoreFeeBMOImpl")
+public class DeletePrestoreFeeBMOImpl implements IDeletePrestoreFeeBMO {
+
+    @Autowired
+    private IPrestoreFeeInnerServiceSMO prestoreFeeInnerServiceSMOImpl;
+
+    /**
+     * @param prestoreFeePo 数据
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> delete(PrestoreFeePo prestoreFeePo) {
+
+        int flag = prestoreFeeInnerServiceSMOImpl.deletePrestoreFee(prestoreFeePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 56 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/GetPrestoreFeeBMOImpl.java

@@ -0,0 +1,56 @@
+package com.java110.fee.bmo.prestoreFee.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.fee.bmo.prestoreFee.IGetPrestoreFeeBMO;
+import com.java110.intf.fee.IPrestoreFeeInnerServiceSMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import com.java110.core.context.DataFlowContext;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("getPrestoreFeeBMOImpl")
+public class GetPrestoreFeeBMOImpl implements IGetPrestoreFeeBMO {
+
+    @Autowired
+    private IPrestoreFeeInnerServiceSMO prestoreFeeInnerServiceSMOImpl;
+
+    /**
+     *
+     *
+     * @param  prestoreFeeDto
+     * @return 订单服务能够接受的报文
+     */
+    public ResponseEntity<String> get(PrestoreFeeDto prestoreFeeDto) {
+
+
+        int count = prestoreFeeInnerServiceSMOImpl.queryPrestoreFeesCount(prestoreFeeDto);
+
+        List<PrestoreFeeDto> prestoreFeeDtos = null;
+        if (count > 0) {
+            prestoreFeeDtos = prestoreFeeInnerServiceSMOImpl.queryPrestoreFees(prestoreFeeDto);
+        } else {
+            prestoreFeeDtos = new ArrayList<>();
+        }
+
+
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) prestoreFeeDto.getRow()), count, prestoreFeeDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+}

+ 51 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/SavePrestoreFeeBMOImpl.java

@@ -0,0 +1,51 @@
+package com.java110.fee.bmo.prestoreFee.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.fee.bmo.prestoreFee.ISavePrestoreFeeBMO;
+import com.java110.intf.fee.IPrestoreFeeInnerServiceSMO;
+import com.java110.intf.store.IWechatSmsTemplateInnerServiceSMO;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import com.java110.po.wechatSmsTemplate.WechatSmsTemplatePo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import com.java110.core.context.DataFlowContext;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("savePrestoreFeeBMOImpl")
+public class SavePrestoreFeeBMOImpl implements ISavePrestoreFeeBMO {
+
+    @Autowired
+    private IPrestoreFeeInnerServiceSMO prestoreFeeInnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param prestoreFeePo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> save(PrestoreFeePo prestoreFeePo) {
+
+        prestoreFeePo.setPrestoreFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_prestoreFeeId));
+        int flag = prestoreFeeInnerServiceSMOImpl.savePrestoreFee(prestoreFeePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 42 - 0
service-fee/src/main/java/com/java110/fee/bmo/prestoreFee/impl/UpdatePrestoreFeeBMOImpl.java

@@ -0,0 +1,42 @@
+package com.java110.fee.bmo.prestoreFee.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.fee.bmo.prestoreFee.IUpdatePrestoreFeeBMO;
+import com.java110.intf.fee.IPrestoreFeeInnerServiceSMO;
+import com.java110.intf.store.IWechatSmsTemplateInnerServiceSMO;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import com.java110.po.wechatSmsTemplate.WechatSmsTemplatePo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("updatePrestoreFeeBMOImpl")
+public class UpdatePrestoreFeeBMOImpl implements IUpdatePrestoreFeeBMO {
+
+    @Autowired
+    private IPrestoreFeeInnerServiceSMO prestoreFeeInnerServiceSMOImpl;
+
+    /**
+     *
+     *
+     * @param prestoreFeePo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> update(PrestoreFeePo prestoreFeePo) {
+
+        int flag = prestoreFeeInnerServiceSMOImpl.updatePrestoreFee(prestoreFeePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 61 - 0
service-fee/src/main/java/com/java110/fee/dao/IPrestoreFeeServiceDao.java

@@ -0,0 +1,61 @@
+package com.java110.fee.dao;
+
+
+import com.java110.utils.exception.DAOException;
+import com.java110.entity.merchant.BoMerchant;
+import com.java110.entity.merchant.BoMerchantAttr;
+import com.java110.entity.merchant.Merchant;
+import com.java110.entity.merchant.MerchantAttr;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 预存费用组件内部之间使用,没有给外围系统提供服务能力
+ * 预存费用服务接口类,要求全部以字符串传输,方便微服务化
+ * 新建客户,修改客户,删除客户,查询客户等功能
+ *
+ * Created by wuxw on 2016/12/27.
+ */
+public interface IPrestoreFeeServiceDao {
+
+
+    /**
+     * 保存 预存费用信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    void savePrestoreFeeInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询预存费用信息(instance过程)
+     * 根据bId 查询预存费用信息
+     * @param info bId 信息
+     * @return 预存费用信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getPrestoreFeeInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改预存费用信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    void updatePrestoreFeeInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询预存费用总数
+     *
+     * @param info 预存费用信息
+     * @return 预存费用数量
+     */
+    int queryPrestoreFeesCount(Map info);
+
+}

+ 98 - 0
service-fee/src/main/java/com/java110/fee/dao/impl/PrestoreFeeServiceDaoImpl.java

@@ -0,0 +1,98 @@
+package com.java110.fee.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.DAOException;
+import com.java110.utils.util.DateUtil;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.fee.dao.IPrestoreFeeServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 预存费用服务 与数据库交互
+ * Created by wuxw on 2017/4/5.
+ */
+@Service("prestoreFeeServiceDaoImpl")
+//@Transactional
+public class PrestoreFeeServiceDaoImpl extends BaseServiceDao implements IPrestoreFeeServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(PrestoreFeeServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存预存费用信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void savePrestoreFeeInfo(Map info) throws DAOException {
+        logger.debug("保存预存费用信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("prestoreFeeServiceDaoImpl.savePrestoreFeeInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存预存费用信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+
+    /**
+     * 查询预存费用信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getPrestoreFeeInfo(Map info) throws DAOException {
+        logger.debug("查询预存费用信息 入参 info : {}",info);
+
+        List<Map> businessPrestoreFeeInfos = sqlSessionTemplate.selectList("prestoreFeeServiceDaoImpl.getPrestoreFeeInfo",info);
+
+        return businessPrestoreFeeInfos;
+    }
+
+
+    /**
+     * 修改预存费用信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void updatePrestoreFeeInfo(Map info) throws DAOException {
+        logger.debug("修改预存费用信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("prestoreFeeServiceDaoImpl.updatePrestoreFeeInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改预存费用信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+     /**
+     * 查询预存费用数量
+     * @param info 预存费用信息
+     * @return 预存费用数量
+     */
+    @Override
+    public int queryPrestoreFeesCount(Map info) {
+        logger.debug("查询预存费用数据 入参 info : {}",info);
+
+        List<Map> businessPrestoreFeeInfos = sqlSessionTemplate.selectList("prestoreFeeServiceDaoImpl.queryPrestoreFeesCount", info);
+        if (businessPrestoreFeeInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessPrestoreFeeInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 84 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/PrestoreFeeInnerServiceSMOImpl.java

@@ -0,0 +1,84 @@
+package com.java110.fee.smo.impl;
+
+
+import com.java110.fee.dao.IPrestoreFeeServiceDao;
+import com.java110.dto.prestoreFee.PrestoreFeeDto;
+import com.java110.intf.fee.IPrestoreFeeInnerServiceSMO;
+import com.java110.po.prestoreFee.PrestoreFeePo;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.user.UserDto;
+import com.java110.dto.PageDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 预存费用内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class PrestoreFeeInnerServiceSMOImpl extends BaseServiceSMO implements IPrestoreFeeInnerServiceSMO {
+
+    @Autowired
+    private IPrestoreFeeServiceDao prestoreFeeServiceDaoImpl;
+
+
+    @Override
+    public int savePrestoreFee(@RequestBody PrestoreFeePo prestoreFeePo) {
+        int saveFlag = 1;
+        prestoreFeeServiceDaoImpl.savePrestoreFeeInfo(BeanConvertUtil.beanCovertMap(prestoreFeePo));
+        return saveFlag;
+    }
+
+     @Override
+    public int updatePrestoreFee(@RequestBody  PrestoreFeePo prestoreFeePo) {
+        int saveFlag = 1;
+         prestoreFeeServiceDaoImpl.updatePrestoreFeeInfo(BeanConvertUtil.beanCovertMap(prestoreFeePo));
+        return saveFlag;
+    }
+
+     @Override
+    public int deletePrestoreFee(@RequestBody  PrestoreFeePo prestoreFeePo) {
+        int saveFlag = 1;
+        prestoreFeePo.setStatusCd("1");
+        prestoreFeeServiceDaoImpl.updatePrestoreFeeInfo(BeanConvertUtil.beanCovertMap(prestoreFeePo));
+        return saveFlag;
+    }
+
+    @Override
+    public List<PrestoreFeeDto> queryPrestoreFees(@RequestBody  PrestoreFeeDto prestoreFeeDto) {
+
+        //校验是否传了 分页信息
+
+        int page = prestoreFeeDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            prestoreFeeDto.setPage((page - 1) * prestoreFeeDto.getRow());
+        }
+
+        List<PrestoreFeeDto> prestoreFees = BeanConvertUtil.covertBeanList(prestoreFeeServiceDaoImpl.getPrestoreFeeInfo(BeanConvertUtil.beanCovertMap(prestoreFeeDto)), PrestoreFeeDto.class);
+
+        return prestoreFees;
+    }
+
+
+    @Override
+    public int queryPrestoreFeesCount(@RequestBody PrestoreFeeDto prestoreFeeDto) {
+        return prestoreFeeServiceDaoImpl.queryPrestoreFeesCount(BeanConvertUtil.beanCovertMap(prestoreFeeDto));    }
+
+    public IPrestoreFeeServiceDao getPrestoreFeeServiceDaoImpl() {
+        return prestoreFeeServiceDaoImpl;
+    }
+
+    public void setPrestoreFeeServiceDaoImpl(IPrestoreFeeServiceDao prestoreFeeServiceDaoImpl) {
+        this.prestoreFeeServiceDaoImpl = prestoreFeeServiceDaoImpl;
+    }
+}