Просмотр исходного кода

Merge remote-tracking branch 'origin/20210716' into 20210716

lihui001 3 лет назад
Родитель
Сommit
b0b52041a2

+ 1 - 0
zoniot-pay/zoniot-pay-core/src/main/java/com/zcxk/rmcp/pay/dao/UserMapper.java

@@ -37,5 +37,6 @@ public interface UserMapper {
 
     User findUserByName(@Param("name") String name, @Param("sitId") BigInteger sitId);
 
+    void replaceInsertSelective(@Param("user") User user);
 }
 

+ 16 - 0
zoniot-pay/zoniot-pay-core/src/main/resources/mapper/UserMapper.xml

@@ -200,6 +200,22 @@
     <update id="deleteSiteUser">
         update sc_site_user set status = 0,update_date=NOW() where status=1 and user_id = #{userId} and site_id = #{siteId}
     </update>
+    <insert id="replaceInsertSelective" useGeneratedKeys="true" keyProperty="user.id">
+        REPLACE INTO sc_community
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="user.id!=null"> id,</if>
+            <if test="user.username!=null"> username,</if>
+
+        </trim>
+        VALUES
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="user.id!=null">#{user.id,jdbcType=INTEGER},
+            </if>
+            <if test="user.username!=null">#{user.username,jdbcType=VARCHAR},
+            </if>
+
+        </trim>
+    </insert>
 
 
     <select id="findUserByMobilePhoneUnique" resultType="int">

+ 17 - 17
zoniot-pay/zoniot-pay-core/src/main/resources/mapper/pay/PayBaseAccountMapper.xml

@@ -371,19 +371,19 @@
 
     <select id="findMeterWaterInfo" resultType="com.zcxk.rmcp.pay.dto.pay.PayBaseAccountWaterusedamountDto">
         select
-            paw.metercode,
-            paw.lastreading,
-            paw.lastrecorddate,
-            paw.reading,
-            paw.recorddate,
-            paw.amount,
-            IFNULL(paw.payamount,0) as payamount,
-            IFNULL(paw.payamount,0) as receivableAmount,
-            paw.year as year,
-            paw.month as month,
-            CONCAT(CAST(paw.year AS CHAR),'年',CAST(paw.month AS CHAR),'月') credit,
+            device.metercode,
+            paw.last_reading lastreading,
+            paw.last_period_date lastrecorddate,
+            paw.current_reading reading,
+            paw.current_period_date recorddate,
+            paw.real_water_consumption amount,
+            IFNULL(paw.water_consumption,0) as payamount,
+            IFNULL(paw.water_consumption,0) as receivableAmount,
+            year(paw.create_date) as year,
+            month(paw.create_date) as month,
+            CONCAT(year(paw.create_date),'年',month(paw.create_date),'月') credit,
             IFNULL(ppre.debt,0) debt
-        from pay_amount_waterusedamount paw
+        from rmcp_measurement_record paw join sc_device device on paw.device_id=device.id
         left join
             (select IFNULL(sum(ppr.debt),0) debt,ppr.month
             from pay_pay_receivable ppr
@@ -392,12 +392,12 @@
             and ppr.year =#{year,jdbcType=INTEGER}
             and ppr.tenant_id=#{tenantId}
 
-            group by ppr.month) ppre on ppre.month = paw.month
+            group by ppr.month) ppre on ppre.month = month(paw.create_date)
         where
-            paw.tenant_id=#{tenantId}
-            and paw.year=#{year,jdbcType=INTEGER}
-            and paw.metercode = #{metercode}
-        order by paw.`month` DESC
+
+             year(paw.create_date)=#{year,jdbcType=INTEGER}
+            and device.metercode = #{metercode}
+        order by month(paw.create_date) DESC
     </select>
 
     <select id="findTransactionDetail" resultType="com.zcxk.rmcp.pay.dto.pay.PayBaseAccountTransactionsDto">

+ 112 - 0
zoniot-pay/zoniot-pay-web/src/main/java/com/zcxk/rmcp/pay/mq/SyncUserConsumer.java

@@ -0,0 +1,112 @@
+package com.zcxk.rmcp.pay.mq;
+
+import com.bz.zoneiot.core.common.exception.BusinessException;
+import com.zcxk.rmcp.pay.commom.BaseSync;
+import com.zcxk.rmcp.pay.commom.constant.MqConstant;
+import com.zcxk.rmcp.pay.dao.CommunityMapper;
+import com.zcxk.rmcp.pay.dao.UserMapper;
+import com.zcxk.rmcp.pay.entity.Community;
+import com.zcxk.rmcp.pay.entity.User;
+import com.zcxk.rmcp.pay.enums.SqlType;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Andy
+ * @version V1.0
+ * @description: 同步小区
+ * @date 2021/7/28
+ **/
+@Slf4j
+@Component
+public class SyncUserConsumer extends BaseSync<User> {
+
+    @Resource
+    private UserMapper userMapper;
+
+    /**
+     * 确定同步来的表名字
+     */
+    private static final String TABLE_NAME = "uims_user";
+
+    /**
+    * @author Andy
+    * @description mq入口
+    * @date 11:33 2021/7/29
+    * @param message
+    * @return void
+    **/
+    @RabbitListener(queues = MqConstant.SYNC_COMMUNITY_QUEUE)
+    @RabbitHandler
+    public void exec(Message message) {
+        log.info("======================同步用户数据 begin======================");
+        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+        if (StringUtils.isEmpty(msg)) {
+            log.info("同步用户数据 消费为空");
+            return;
+        }
+        try {
+            exec(msg);
+        } catch (Exception e) {
+            log.error("同步用户数据异常:{}", msg);
+        }
+        log.info("======================同步用户数据  end=======================");
+    }
+
+    /**
+    * @author Andy
+    * @description 执行入口
+    * @date 11:33 2021/7/29
+    * @param msg
+    * @return void
+    **/
+    private void exec(String msg) throws Exception {
+        try {
+            Map<String, List<User>> mmp = super.stringConvertMap(msg, TABLE_NAME, User.class);
+            mmp.forEach((key, value) -> {
+                log.info("同步用户数据{}操作,需要执行:{}条", key, value.size());
+                tableOperation(key, value);
+                log.info("同步用户数据{}操作,执行成功:{}条", key, value.size());
+            });
+        } catch (BusinessException e) {
+            log.error(e.getMsg());
+        }
+    }
+
+    /**
+    * @author Andy
+    * @description 执行表操作
+    * @date 10:19 2021/7/29
+    * @param operationType, communitys
+    * @return void
+    **/
+    private void tableOperation (String operationType, List<User> list){
+        switch (SqlType.valueOf(operationType)) {
+            case INSERT:
+            case UPDATE:
+                for (User user : list) {
+                    userMapper.replaceInsertSelective(user);
+                    log.info("同步用户数据,"+ operationType +"操作,操作数据:{}", user.toString());
+                }
+                break;
+            case DELETE:
+                for (User user : list) {
+                    /*userMapper.deleteByUserId();
+                    log.info("同步用户数据,DELETE操作,操作数据:Id:{}", community.getId());*/
+                }
+                break;
+            default:
+                return;
+        }
+    }
+
+}