Quellcode durchsuchen

日志重要信息不入库及供应商加款、撤销入流水

杜魏 vor 4 Jahren
Ursprung
Commit
541504e12c

+ 1 - 1
common/fire-dto/src/main/java/com/fire/dto/ChannelInfo.java

@@ -42,7 +42,7 @@ public class ChannelInfo {
     @ApiModelProperty("通道名称")
     private String channelName;
 
-    @ApiModelProperty("对应运营商 1:移动 2:电信 3:联通")
+    @ApiModelProperty("对应运营商 1:移动 2:联通 3:电信")
     private Integer operator;
 
     @ApiModelProperty("是否有效 0:无效 1:有效")

+ 5 - 1
common/fire-dto/src/main/java/com/fire/dto/ChannelSupplier.java

@@ -44,9 +44,13 @@ public class ChannelSupplier {
     @ApiModelProperty("供应商地址")
     private String address;
 
-    @ApiModelProperty("可用余额")
+    @ApiModelProperty("查询余额")
     private Long balance;
 
+    @ApiModelProperty("可用余额")
+    @TableField(exist = false)
+    private Long availableBalance;
+
     @ApiModelProperty("累计消费")
     private Long consumeAmount;
 

+ 12 - 3
modules/admin/src/main/java/com/fire/admin/aop/FireOperationLogAop.java

@@ -79,10 +79,19 @@ public class FireOperationLogAop {
                 if (desc.equals(" SUCCESS")) {
                     rocketMQTemplate.send(UPDATE_TOPIC + ":" + LOG_TAG, MessageBuilder.withPayload(LOG_TAG).build());
                 }
-                LogInfo logInfo = LogInfo.builder().id(jedisCluster.incr(GLOBAL_ID_INCR.key())).createTime(new Date()).optUser(SecurityUtil.getUser().getUsername())
-                        .optInfo(Arrays.toString(joinPoint.getArgs())).interfaceDesc(method.getAnnotation(FireOperationLog.class).description()).type(method.getAnnotation(FireOperationLog.class).type()).build();
+                if (method.getName().equals("login")) {
+                    Object[] args = joinPoint.getArgs();
+                    args[0] = null;
+                    args[1] = null;
+                    LogInfo loginLogInfo = LogInfo.builder().id(jedisCluster.incr(GLOBAL_ID_INCR.key())).createTime(new Date()).optUser(SecurityUtil.getUser().getUsername())
+                            .optInfo(args.toString()).interfaceDesc(method.getAnnotation(FireOperationLog.class).description()).build();
+                    logInfoService.saveLogInfo(loginLogInfo);
+                } else {
+                    LogInfo logInfo = LogInfo.builder().id(jedisCluster.incr(GLOBAL_ID_INCR.key())).createTime(new Date()).optUser(SecurityUtil.getUser().getUsername())
+                            .optInfo(Arrays.toString(joinPoint.getArgs())).interfaceDesc(method.getAnnotation(FireOperationLog.class).description()).type(method.getAnnotation(FireOperationLog.class).type()).build();
+                    logInfoService.saveLogInfo(logInfo);
+                }
 
-                logInfoService.saveLogInfo(logInfo);
             } catch (Throwable throwable) {
                 desc.append(" FAILURE");
                 throw throwable;

+ 9 - 4
modules/admin/src/main/java/com/fire/admin/dto/AdditionalPaymentDto.java

@@ -21,10 +21,12 @@ public class AdditionalPaymentDto  {
      */
     @ApiModelProperty(value = "银行卡")
     String cardNo;
+
     /**
      * 开户行
      */
     private String bankDeposit;
+
     /**
      * 账户
      */
@@ -54,11 +56,13 @@ public class AdditionalPaymentDto  {
      */
     @ApiModelProperty(value = "加款时间")
     private String time;
+
     /**
      * 出款账户
      */
     @ApiModelProperty(value = "出款账户")
     private String paymentAccount;
+
     /**
      * 供应商或者客户的关联关系
      */
@@ -77,9 +81,12 @@ public class AdditionalPaymentDto  {
     @ApiModelProperty(value = "撤销")
     private Integer undo;
 
-
     @ApiModelProperty(value = "客户名称")
     private  String customerName;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
     /**
      * 每页记录条数
      */
@@ -90,10 +97,8 @@ public class AdditionalPaymentDto  {
      */
     private Integer current;
 
-
     /**
-     * type : 如果为 customer : 表示客户的账户信息  , 值为: suppler: 表示供应商
+     * type : 如果为 customer : 表示客户的账户信息  , 值为: supplier: 表示供应商
      */
-
     private String type;
 }

+ 0 - 8
modules/admin/src/main/java/com/fire/admin/request/LogInfoPageParam.java

@@ -6,8 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.util.Date;
-
 /**
  * @author: admin
  * @Description:
@@ -19,9 +17,6 @@ import java.util.Date;
 @Setter
 public class LogInfoPageParam extends Page {
 
-    @ApiModelProperty("日志生成时间")
-    private Date createTime;
-
     @ApiModelProperty("起始时间")
     private String startTime;
 
@@ -31,9 +26,6 @@ public class LogInfoPageParam extends Page {
     @ApiModelProperty("操作人")
     private String optUser;
 
-    @ApiModelProperty("操作信息")
-    private String optInfo;
-
     @ApiModelProperty("接口描述")
     private String interfaceDesc;
 

+ 18 - 3
modules/admin/src/main/java/com/fire/admin/service/impl/AdditionalPaymentServiceImpl.java

@@ -1,7 +1,6 @@
 package com.fire.admin.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSON;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,7 +11,6 @@ import com.fire.admin.dto.AdditionalPaymentDto;
 import com.fire.admin.mapper.AdditionalPaymentMapper;
 import com.fire.admin.service.AdditionalPaymentService;
 import com.fire.admin.service.CustomerService;
-import com.fire.admin.util.AliyunOSSUtil;
 import com.fire.admin.util.SecurityUtil;
 import com.fire.admin.vo.AdditionalPaymentVo;
 import com.fire.common.exception.BaseException;
@@ -41,6 +39,7 @@ import static com.fire.common.constants.RocketTopic.TRANSACTION_TOPIC;
 import static com.fire.common.constants.RocketTopic.UPDATE_TOPIC;
 import static com.fire.dto.enums.RedisKey.*;
 import static com.fire.dto.enums.RelationType.RELATION_CUSTOMER;
+import static com.fire.dto.enums.RelationType.RELATION_SUPPLIER;
 import static com.fire.dto.enums.ServiceType.SERVICE_FINANCE_ADD;
 import static com.fire.dto.enums.ServiceType.SERVICE_FINANCE_SUB;
 
@@ -322,6 +321,17 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
             payment.setUndo(1);
             AdditionalPayment additionalPayment = getAdditionalPaymentOne(additionalPaymentDto.getDistinguish(), additionalPaymentDto.getRelationId(), additionalPaymentDto.getId());
             if (additionalPayment.getId().equals(payment.getId())) {
+                // TODO 构建撤销的对象
+                JSONObject param = JSONUtil.parseObj(createTransactionFlow(
+                        Long.parseLong(jedisCluster.hget(SUPPLIER_AMOUNT.key(), SUPPLIER_AMOUNT.key().concat(payment.getRelationId()))),
+                        payment.getAmount(),
+                        RELATION_SUPPLIER.type(),
+                        Long.parseLong(payment.getRelationId()),
+                        DateUtils.strformatDatetime(LocalDateTime.now()).concat(" ".concat(username).concat(" 为供应商".concat(payment.getRelationId())).concat("款项撤销,撤销金额为:")).concat(additionalPaymentDto.getAmount().divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN).toString()),
+                        additionalPaymentDto.getSupplierName(),
+                        username,
+                        SERVICE_FINANCE_SUB.type()
+                ));
                 // TODO 进行账户撤销
                 Long amount = redisAmountScript.changeAmount(SUPPLIER_AMOUNT.key(), Long.parseLong(payment.getRelationId()), "sub", payment.getAmount(), 100000000000L);
                 if (ObjectUtil.isNotEmpty(amount)) {
@@ -331,6 +341,11 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
                     if (count > 0) {
                         rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
                     }
+                    // TODO 获取撤销的具体金额
+                    BigDecimal canceprice = additionalPaymentDto.getAmount().divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN);
+                    log.info("供应商款项撤销入流水队列,撤销之前的金额为:【{}】,操作金额为:【{}】,撤销之后的金额为:【{}】,详情为:【{}】", new BigDecimal(param.get("beforeAmount").toString()).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN), canceprice, new BigDecimal(param.get("afterAmount").toString()).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN), param);
+                    log.info("供应商款项撤销。 供应商编号为:【{}】,供应商名称为:【{}】 撤销金额为:【{}】 剩余额度为:【{}】", payment.getRelationId(), param.get("name"), canceprice, new BigDecimal(amount).divide(new BigDecimal(10000)).setScale(4, RoundingMode.DOWN));
+                    rocketMQTemplate.syncSend(TRANSACTION_TOPIC, MessageBuilder.withPayload(param).build());
                     return payment.getRelationId().concat("_").concat(amount.toString());
                 } else {
                     // TODO 撤销失败的处理
@@ -338,7 +353,7 @@ public class AdditionalPaymentServiceImpl extends ServiceImpl<AdditionalPaymentM
                     throw new BaseException(Status.ACCOUNT_CANCEL_FAIL.status(), Status.ACCOUNT_CANCEL_FAIL.message());
                 }
             } else {
-                log.info("撤销失败,撤销不能撤销当前客户最近一次的加款记录。如果非要撤销请先加款一次再撤销本次记录");
+                log.info("撤销失败,撤销不能撤销当前客户最近一次的加款记录。非要撤销请先加款一次再撤销本次记录");
                 throw new BaseException("577", "撤销失败");
             }
 

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/service/impl/SupplierServiceImpl.java

@@ -62,7 +62,7 @@ public class SupplierServiceImpl extends ServiceImpl<ChannelSupplierMapper, Chan
 
         if (ObjectUtil.isNotEmpty(supplierList)) {
             for (ChannelSupplier supplier : supplierList.getRecords()) {
-                supplier.setBalance(Long.valueOf(jedisCluster.hget(SUPPLIER_AMOUNT.key(), SUPPLIER_AMOUNT.key() + supplier.getSupplierId())));
+                supplier.setAvailableBalance(Long.valueOf(jedisCluster.hget(SUPPLIER_AMOUNT.key(), SUPPLIER_AMOUNT.key() + supplier.getSupplierId())));
                 supplier.setBankCards(bankCardService.getBankCardList(supplier.getSupplierId(), 1));
             }
             return supplierList;

+ 5 - 2
modules/admin/src/main/resources/mapper/LogInfoMapper.xml

@@ -25,13 +25,16 @@
         <include refid="common_field"/>
         FROM log_info
         <where>
-            <if test="param.startTime != null and param.startTime != '' and param.endTime != null and param.endTime != '' ">
+            <if test="param.startTime != null and param.startTime.trim() != '' and param.endTime != null and param.endTime.trim() != '' ">
                 create_time &gt;= #{param.startTime} AND create_time &lt;= #{param.endTime}
             </if>
             <if test="param.optUser != null and param.optUser.trim() != ''">
                 AND opt_user LIKE CONCAT('%' #{param.optUser},'%')
             </if>
-            <if test="param.type != null and param.type != ''">
+            <if test="param.interfaceDesc != null and param.interfaceDesc.trim() !=''">
+                AND interface_desc LIKE CONCAT('%' #{param.interfaceDesc},'%')
+            </if>
+            <if test="param.type != null and param.type.trim() != ''">
                 AND type = #{param.type}
             </if>
         </where>