shiyunlong 1 年間 前
コミット
ad1f177d16
31 ファイル変更658 行追加18 行削除
  1. 2 2
      .idea/mybatisx/templates.xml
  2. 40 0
      admin/src/main/java/com/mofangchuxing/aska/admin/controller/FinancialController.java
  3. 37 0
      admin/src/main/java/com/mofangchuxing/aska/admin/cron/StatJob.java
  4. BIN
      admin/target/aska-admin.jar
  5. BIN
      admin/target/aska-admin.jar.original
  6. BIN
      admin/target/classes/com/mofangchuxing/aska/admin/controller/FinancialController.class
  7. BIN
      admin/target/classes/com/mofangchuxing/aska/admin/cron/StatJob.class
  8. 1 0
      admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  9. 1 0
      admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  10. 198 0
      dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaStat.java
  11. 111 0
      dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaStatMapper.java
  12. 1 1
      dao/src/main/resources/mapper/AskaCashrequestMapper.xml
  13. 99 0
      dao/src/main/resources/mapper/AskaStatMapper.xml
  14. BIN
      dao/target/aska-dao-1.0.jar
  15. BIN
      dao/target/classes/com/mofangchuxing/aska/dao/domain/AskaStat.class
  16. BIN
      dao/target/classes/com/mofangchuxing/aska/dao/mapper/AskaStatMapper.class
  17. 1 1
      dao/target/classes/mapper/AskaCashrequestMapper.xml
  18. 99 0
      dao/target/classes/mapper/AskaStatMapper.xml
  19. 2 0
      dao/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  20. 11 9
      dao/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  21. BIN
      domain/target/aska-domain-1.0.jar
  22. 9 0
      main/src/main/java/com/mofangchuxing/aska/controller/AskaController.java
  23. 39 3
      main/src/main/java/com/mofangchuxing/aska/handler/GlobalExceptionHandler.java
  24. BIN
      main/target/aska.jar
  25. BIN
      main/target/aska.jar.original
  26. BIN
      main/target/classes/com/mofangchuxing/aska/controller/AskaController.class
  27. BIN
      main/target/classes/com/mofangchuxing/aska/handler/GlobalExceptionHandler.class
  28. 7 2
      service/src/main/java/com/mofangchuxing/aska/service/common/DelayNotifyComponent.java
  29. BIN
      service/target/aska-service-1.0.jar
  30. BIN
      service/target/classes/com/mofangchuxing/aska/service/common/DelayNotifyComponent$1.class
  31. BIN
      service/target/classes/com/mofangchuxing/aska/service/common/DelayNotifyComponent.class

+ 2 - 2
.idea/mybatisx/templates.xml

@@ -49,8 +49,8 @@
             <option name="tableUIInfoList">
               <list>
                 <TableUIInfo>
-                  <option name="className" value="AskaCashrequest" />
-                  <option name="tableName" value="aska_cashrequest" />
+                  <option name="className" value="AskaStat" />
+                  <option name="tableName" value="aska_stat" />
                 </TableUIInfo>
               </list>
             </option>

+ 40 - 0
admin/src/main/java/com/mofangchuxing/aska/admin/controller/FinancialController.java

@@ -1,8 +1,19 @@
 package com.mofangchuxing.aska.admin.controller;
 
+import com.mofangchuxing.aska.dao.domain.AskaAccounts;
+import com.mofangchuxing.aska.domain.R;
+import com.mofangchuxing.aska.domain.dto.ChannelDto;
+import com.mofangchuxing.aska.domain.dto.OrderDto;
+import com.mofangchuxing.aska.domain.utils.PageUtils;
+import com.mofangchuxing.aska.service.ChannelService;
+import com.mofangchuxing.aska.service.OrderService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * @Author: syl
  * @Date: 2023/9/8
@@ -12,4 +23,33 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/Financial")
 public class FinancialController extends AdminBaseController{
 
+    @Resource
+    private OrderService orderService;
+    @Resource
+    private ChannelService channelService;
+
+    @PostMapping("/getOrderList")
+    public R getOrderList(@RequestBody OrderDto orderDto) {
+        AskaAccounts askaAccounts = getSysUser(orderDto.getT());
+        if (askaAccounts == null){
+            return R.error("token_expire");
+        }
+        PageUtils pageUtils = orderService.getOrderList(orderDto);
+        return R.ok(pageUtils);
+    }
+
+    @PostMapping("/listCashRequest")
+    public R listCashRequest(@RequestBody ChannelDto channelDto) {
+        AskaAccounts askaAccounts = getSysUser(channelDto.getT());
+        if (askaAccounts == null){
+            return R.error("token_expire");
+        }
+        PageUtils pageUtils = channelService.getCashHistory(channelDto);
+        return R.ok(pageUtils);
+    }
+
+    @PostMapping("/getBalance")
+    public R getBalance() {
+        return R.ok();
+    }
 }

+ 37 - 0
admin/src/main/java/com/mofangchuxing/aska/admin/cron/StatJob.java

@@ -0,0 +1,37 @@
+package com.mofangchuxing.aska.admin.cron;
+
+import cn.hutool.core.date.DateUtil;
+import com.mofangchuxing.aska.dao.mapper.AskaStatMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Author: syl
+ * @Date: 2023/9/19
+ * @Description:
+ */
+@Component
+@Slf4j
+public class StatJob {
+
+    @Resource
+    private AskaStatMapper askaStatMapper;
+
+    @Scheduled(cron = "5 0 0 * * ?")
+    public void execute(){
+        DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
+        Calendar calendar=Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY,-24);
+        String yesterdayDate = dateFormat.format(calendar.getTime());
+        askaStatMapper.insertPayAmountStat(yesterdayDate);
+        askaStatMapper.insertRefundAmountStat(yesterdayDate);
+
+    }
+}

BIN
admin/target/aska-admin.jar


BIN
admin/target/aska-admin.jar.original


BIN
admin/target/classes/com/mofangchuxing/aska/admin/controller/FinancialController.class


BIN
admin/target/classes/com/mofangchuxing/aska/admin/cron/StatJob.class


+ 1 - 0
admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -8,4 +8,5 @@ com/mofangchuxing/aska/admin/controller/ChannelController.class
 com/mofangchuxing/aska/admin/controller/SysUserController.class
 com/mofangchuxing/aska/admin/controller/AdminBaseController.class
 com/mofangchuxing/aska/admin/AdminApplication.class
+com/mofangchuxing/aska/admin/cron/StatJob.class
 com/mofangchuxing/aska/admin/controller/RetailMngController.class

+ 1 - 0
admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -2,6 +2,7 @@
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/AdminApplication.java
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/controller/SysUserController.java
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/controller/AdminBaseController.java
+/Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/cron/StatJob.java
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/Intercepter/RequestInterceptor.java
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/controller/FinancialController.java
 /Users/syl/Desktop/work/aska/admin/src/main/java/com/mofangchuxing/aska/admin/controller/ChannelController.java

+ 198 - 0
dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaStat.java

@@ -0,0 +1,198 @@
+package com.mofangchuxing.aska.dao.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 
+ * @TableName aska_stat
+ */
+public class AskaStat implements Serializable {
+    /**
+     * 
+     */
+    private Integer id;
+
+    /**
+     * {门店,渠道,平台}
+     */
+    private String aType;
+
+    /**
+     * 账号id,对应 retailId,channelId, platformId固定为1
+     */
+    private Integer aId;
+
+    /**
+     * 流水类型{佣金,佣金实时退款,佣金收入,佣金记账退款,实时分账佣金,提现,收款,记账佣金,退款}
+     */
+    private String cType;
+
+    /**
+     * 统计日,日期为当天的会在第二天重新进行统计
+     */
+    private Date statDay;
+
+    /**
+     * 涉及笔数
+     */
+    private Integer orders;
+
+    /**
+     * 涉及金额
+     */
+    private Integer amount;
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * 
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * {门店,渠道,平台}
+     */
+    public String getaType() {
+        return aType;
+    }
+
+    /**
+     * {门店,渠道,平台}
+     */
+    public void setaType(String aType) {
+        this.aType = aType;
+    }
+
+    /**
+     * 账号id,对应 retailId,channelId, platformId固定为1
+     */
+    public Integer getaId() {
+        return aId;
+    }
+
+    /**
+     * 账号id,对应 retailId,channelId, platformId固定为1
+     */
+    public void setaId(Integer aId) {
+        this.aId = aId;
+    }
+
+    /**
+     * 流水类型{佣金,佣金实时退款,佣金收入,佣金记账退款,实时分账佣金,提现,收款,记账佣金,退款}
+     */
+    public String getcType() {
+        return cType;
+    }
+
+    /**
+     * 流水类型{佣金,佣金实时退款,佣金收入,佣金记账退款,实时分账佣金,提现,收款,记账佣金,退款}
+     */
+    public void setcType(String cType) {
+        this.cType = cType;
+    }
+
+    /**
+     * 统计日,日期为当天的会在第二天重新进行统计
+     */
+    public Date getStatDay() {
+        return statDay;
+    }
+
+    /**
+     * 统计日,日期为当天的会在第二天重新进行统计
+     */
+    public void setStatDay(Date statDay) {
+        this.statDay = statDay;
+    }
+
+    /**
+     * 涉及笔数
+     */
+    public Integer getOrders() {
+        return orders;
+    }
+
+    /**
+     * 涉及笔数
+     */
+    public void setOrders(Integer orders) {
+        this.orders = orders;
+    }
+
+    /**
+     * 涉及金额
+     */
+    public Integer getAmount() {
+        return amount;
+    }
+
+    /**
+     * 涉及金额
+     */
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        AskaStat other = (AskaStat) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getaType() == null ? other.getaType() == null : this.getaType().equals(other.getaType()))
+            && (this.getaId() == null ? other.getaId() == null : this.getaId().equals(other.getaId()))
+            && (this.getcType() == null ? other.getcType() == null : this.getcType().equals(other.getcType()))
+            && (this.getStatDay() == null ? other.getStatDay() == null : this.getStatDay().equals(other.getStatDay()))
+            && (this.getOrders() == null ? other.getOrders() == null : this.getOrders().equals(other.getOrders()))
+            && (this.getAmount() == null ? other.getAmount() == null : this.getAmount().equals(other.getAmount()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getaType() == null) ? 0 : getaType().hashCode());
+        result = prime * result + ((getaId() == null) ? 0 : getaId().hashCode());
+        result = prime * result + ((getcType() == null) ? 0 : getcType().hashCode());
+        result = prime * result + ((getStatDay() == null) ? 0 : getStatDay().hashCode());
+        result = prime * result + ((getOrders() == null) ? 0 : getOrders().hashCode());
+        result = prime * result + ((getAmount() == null) ? 0 : getAmount().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", aType=").append(aType);
+        sb.append(", aId=").append(aId);
+        sb.append(", cType=").append(cType);
+        sb.append(", statDay=").append(statDay);
+        sb.append(", orders=").append(orders);
+        sb.append(", amount=").append(amount);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 111 - 0
dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaStatMapper.java

@@ -0,0 +1,111 @@
+package com.mofangchuxing.aska.dao.mapper;
+
+import com.mofangchuxing.aska.dao.domain.AskaStat;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author syl
+* @description 针对表【aska_stat】的数据库操作Mapper
+* @createDate 2023-09-20 10:09:32
+* @Entity com.mofangchuxing.aska.dao.domain.AskaStat
+*/
+public interface AskaStatMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(AskaStat record);
+
+    int insertSelective(AskaStat record);
+
+    AskaStat selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(AskaStat record);
+
+    int updateByPrimaryKey(AskaStat record);
+
+    // 平台收款,包含不可分账收款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '收款', \n" +
+            "                date(`pay_time`), count(*) `cc`, sum(`pay_amount`) `pay_amount`\n" +
+            "            from `pay_request`\n" +
+            "            where date(`pay_time`) = #{dateStr}")
+    void insertPayAmountStat(@Param("dateStr") String dateStr);
+
+    // 平台退款,包括不可分账退款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`)      \n" +
+            "            select '平台','1', '退款', \n" +
+            "                date(`create_time`), count(*) cc, sum(`refund_amount`) \n" +
+            "            from `refund_order` where date(`refund_order`.`create_time`) = #{dateStr}")
+    void insertRefundAmountStat(@Param("dateStr") String dateStr);
+
+    // 平台方同意的提现金额
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`)      select '平台','1', '提现', \n" +
+            "                date(`payTime`), count(*) cc, sum(`requestAmount`) `amount`\n" +
+            "            from `aska_cashrequest` where status='同意' or status='已付款' where date(`aska_cashrequest`.`payTime`) = #{dateStr}")
+    void insertRequestAmountStat(@Param("dateStr") String dateStr);
+
+    // 平台方计算给门店分账佣金
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '门店分账佣金', \n" +
+            "                date(`createTime`), count(*) `cc`, sum(`retailRealtimeAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=1 where date(`createTime`) = #{dateStr}")
+    void insertRetailAmountStat(@Param("dateStr") String dateStr);
+
+    // 平台方计算的给门店记账佣金
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '门店记账佣金', \n" +
+            "                date(`createTime`), count(*) `cc`, sum(`retailAccountAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=1 where date(`createTime`) = #{dateStr}")
+    void insertRetailAccountStat(@Param("dateStr") String dateStr);
+
+    // 平台方计算给门店分账退款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '门店分账退款', \n" +
+            "                date(`createTime`), count(*) `cc`, -sum(`retailRealtimeAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=2 where date(`createTime`) = #{dateStr}")
+    void insertRetailRefundAmount(@Param("dateStr") String dateStr);
+
+    // 平台方计算门店记账退款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '门店记账退款', \n" +
+            "                date(`createTime`), count(*) `cc`, -sum(`retailAccountAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=2 where date(`createTime`) = #{dateStr}")
+    void insertRetailRefundAccount(@Param("dateStr") String dateStr);
+
+    // 平台方计算渠道的分账佣金
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '渠道分账佣金', \n" +
+            "                date(`createTime`), count(*) `cc`, sum(`channelRealtimeAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=1 where date(`createTime`) = #{dateStr}")
+    void insertChannelAmount(@Param("dateStr") String dateStr);
+
+    // 平台方计算记账佣金
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '渠道记账佣金', \n" +
+            "                date(`createTime`), count(*) `cc`, sum(`channelAccountAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=1 where date(`createTime`) = #{dateStr}")
+    void insertChannelAccount(@Param("dateStr") String dateStr);
+
+    // 平台方计算分账佣金退款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '渠道分账退款', \n" +
+            "                date(`createTime`), count(*) `cc`, -sum(`channelRealtimeAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=2 where date(`createTime`) = #{dateStr}")
+    void insertChannelRefundAmount(@Param("dateStr") String dateStr);
+
+    // 平台方计算记账佣金退款
+    @Insert("INSERT into `aska_stat`(`aType`,`aId`,`cType`,`statDay`,`orders`,`amount`) \n" +
+            "            select '平台','1', '渠道记账退款', \n" +
+            "                date(`createTime`), count(*) `cc`, -sum(`channelAccountAmount`) `pay_amount`\n" +
+            "            from `aska_splitrecord`\n" +
+            "            where `recordType`=2 where date(`createTime`) = #{dateStr}")
+    void insertChannelRefundAccount(@Param("dateStr") String dateStr);
+}

+ 1 - 1
dao/src/main/resources/mapper/AskaCashrequestMapper.xml

@@ -33,7 +33,7 @@
         where  id = #{id,jdbcType=INTEGER} 
     </select>
     <select id="getCashHistory" resultType="com.mofangchuxing.aska.dao.domain.AskaCashrequest">
-        select amount,partnerId,payTime,requestTime,status
+        select <include refid="Base_Column_List" />
         from aska_cashrequest
         where 1=1
         <if test="channelId != null and channelId != ''">

+ 99 - 0
dao/src/main/resources/mapper/AskaStatMapper.xml

@@ -0,0 +1,99 @@
+<?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="com.mofangchuxing.aska.dao.mapper.AskaStatMapper">
+
+    <resultMap id="BaseResultMap" type="com.mofangchuxing.aska.dao.domain.AskaStat">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="aType" column="aType" jdbcType="CHAR"/>
+            <result property="aId" column="aId" jdbcType="INTEGER"/>
+            <result property="cType" column="cType" jdbcType="CHAR"/>
+            <result property="statDay" column="statDay" jdbcType="DATE"/>
+            <result property="orders" column="orders" jdbcType="INTEGER"/>
+            <result property="amount" column="amount" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,aType,aId,
+        cType,statDay,orders,
+        amount
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from aska_stat
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from aska_stat
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat" useGeneratedKeys="true">
+        insert into aska_stat
+        ( id,aType,aId
+        ,cType,statDay,orders
+        ,amount)
+        values (#{id,jdbcType=INTEGER},#{aType,jdbcType=CHAR},#{aId,jdbcType=INTEGER}
+        ,#{cType,jdbcType=CHAR},#{statDay,jdbcType=DATE},#{orders,jdbcType=INTEGER}
+        ,#{amount,jdbcType=INTEGER})
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat" useGeneratedKeys="true">
+        insert into aska_stat
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="aType != null">aType,</if>
+                <if test="aId != null">aId,</if>
+                <if test="cType != null">cType,</if>
+                <if test="statDay != null">statDay,</if>
+                <if test="orders != null">orders,</if>
+                <if test="amount != null">amount,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="aType != null">#{aType,jdbcType=CHAR},</if>
+                <if test="aId != null">#{aId,jdbcType=INTEGER},</if>
+                <if test="cType != null">#{cType,jdbcType=CHAR},</if>
+                <if test="statDay != null">#{statDay,jdbcType=DATE},</if>
+                <if test="orders != null">#{orders,jdbcType=INTEGER},</if>
+                <if test="amount != null">#{amount,jdbcType=INTEGER},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat">
+        update aska_stat
+        <set>
+                <if test="aType != null">
+                    aType = #{aType,jdbcType=CHAR},
+                </if>
+                <if test="aId != null">
+                    aId = #{aId,jdbcType=INTEGER},
+                </if>
+                <if test="cType != null">
+                    cType = #{cType,jdbcType=CHAR},
+                </if>
+                <if test="statDay != null">
+                    statDay = #{statDay,jdbcType=DATE},
+                </if>
+                <if test="orders != null">
+                    orders = #{orders,jdbcType=INTEGER},
+                </if>
+                <if test="amount != null">
+                    amount = #{amount,jdbcType=INTEGER},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat">
+        update aska_stat
+        set 
+            aType =  #{aType,jdbcType=CHAR},
+            aId =  #{aId,jdbcType=INTEGER},
+            cType =  #{cType,jdbcType=CHAR},
+            statDay =  #{statDay,jdbcType=DATE},
+            orders =  #{orders,jdbcType=INTEGER},
+            amount =  #{amount,jdbcType=INTEGER}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+</mapper>

BIN
dao/target/aska-dao-1.0.jar


BIN
dao/target/classes/com/mofangchuxing/aska/dao/domain/AskaStat.class


BIN
dao/target/classes/com/mofangchuxing/aska/dao/mapper/AskaStatMapper.class


+ 1 - 1
dao/target/classes/mapper/AskaCashrequestMapper.xml

@@ -33,7 +33,7 @@
         where  id = #{id,jdbcType=INTEGER} 
     </select>
     <select id="getCashHistory" resultType="com.mofangchuxing.aska.dao.domain.AskaCashrequest">
-        select amount,partnerId,payTime,requestTime,status
+        select <include refid="Base_Column_List" />
         from aska_cashrequest
         where 1=1
         <if test="channelId != null and channelId != ''">

+ 99 - 0
dao/target/classes/mapper/AskaStatMapper.xml

@@ -0,0 +1,99 @@
+<?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="com.mofangchuxing.aska.dao.mapper.AskaStatMapper">
+
+    <resultMap id="BaseResultMap" type="com.mofangchuxing.aska.dao.domain.AskaStat">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="aType" column="aType" jdbcType="CHAR"/>
+            <result property="aId" column="aId" jdbcType="INTEGER"/>
+            <result property="cType" column="cType" jdbcType="CHAR"/>
+            <result property="statDay" column="statDay" jdbcType="DATE"/>
+            <result property="orders" column="orders" jdbcType="INTEGER"/>
+            <result property="amount" column="amount" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,aType,aId,
+        cType,statDay,orders,
+        amount
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from aska_stat
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from aska_stat
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat" useGeneratedKeys="true">
+        insert into aska_stat
+        ( id,aType,aId
+        ,cType,statDay,orders
+        ,amount)
+        values (#{id,jdbcType=INTEGER},#{aType,jdbcType=CHAR},#{aId,jdbcType=INTEGER}
+        ,#{cType,jdbcType=CHAR},#{statDay,jdbcType=DATE},#{orders,jdbcType=INTEGER}
+        ,#{amount,jdbcType=INTEGER})
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat" useGeneratedKeys="true">
+        insert into aska_stat
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="aType != null">aType,</if>
+                <if test="aId != null">aId,</if>
+                <if test="cType != null">cType,</if>
+                <if test="statDay != null">statDay,</if>
+                <if test="orders != null">orders,</if>
+                <if test="amount != null">amount,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="aType != null">#{aType,jdbcType=CHAR},</if>
+                <if test="aId != null">#{aId,jdbcType=INTEGER},</if>
+                <if test="cType != null">#{cType,jdbcType=CHAR},</if>
+                <if test="statDay != null">#{statDay,jdbcType=DATE},</if>
+                <if test="orders != null">#{orders,jdbcType=INTEGER},</if>
+                <if test="amount != null">#{amount,jdbcType=INTEGER},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat">
+        update aska_stat
+        <set>
+                <if test="aType != null">
+                    aType = #{aType,jdbcType=CHAR},
+                </if>
+                <if test="aId != null">
+                    aId = #{aId,jdbcType=INTEGER},
+                </if>
+                <if test="cType != null">
+                    cType = #{cType,jdbcType=CHAR},
+                </if>
+                <if test="statDay != null">
+                    statDay = #{statDay,jdbcType=DATE},
+                </if>
+                <if test="orders != null">
+                    orders = #{orders,jdbcType=INTEGER},
+                </if>
+                <if test="amount != null">
+                    amount = #{amount,jdbcType=INTEGER},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.mofangchuxing.aska.dao.domain.AskaStat">
+        update aska_stat
+        set 
+            aType =  #{aType,jdbcType=CHAR},
+            aId =  #{aId,jdbcType=INTEGER},
+            cType =  #{cType,jdbcType=CHAR},
+            statDay =  #{statDay,jdbcType=DATE},
+            orders =  #{orders,jdbcType=INTEGER},
+            amount =  #{amount,jdbcType=INTEGER}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+</mapper>

+ 2 - 0
dao/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -5,6 +5,7 @@ com/mofangchuxing/aska/dao/domain/AskaRetails.class
 com/mofangchuxing/aska/dao/mapper/NotifyRecordMapper.class
 com/mofangchuxing/aska/dao/domain/AskaAccounts.class
 com/mofangchuxing/aska/dao/domain/AskaChannelnos.class
+com/mofangchuxing/aska/dao/mapper/AskaStatMapper.class
 com/mofangchuxing/aska/dao/mapper/AskaCashrequestMapper.class
 com/mofangchuxing/aska/dao/mapper/PayRequestMapper.class
 com/mofangchuxing/aska/dao/domain/PayRequest.class
@@ -12,6 +13,7 @@ com/mofangchuxing/aska/dao/mapper/AskaRetailsMapper.class
 com/mofangchuxing/aska/dao/domain/RefundOrder.class
 com/mofangchuxing/aska/dao/domain/AskaChannels.class
 com/mofangchuxing/aska/dao/config/SqlConfig.class
+com/mofangchuxing/aska/dao/domain/AskaStat.class
 com/mofangchuxing/aska/dao/mapper/AskaSplitrecordMapper.class
 com/mofangchuxing/aska/dao/domain/AskaSplitrecord.class
 com/mofangchuxing/aska/dao/mapper/RefundOrderMapper.class

+ 11 - 9
dao/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -1,23 +1,25 @@
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/config/SqlConfig.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/PayRequest.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/SysMenuMapper.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaChannelsMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaCashrequest.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/SysMenu.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/PayRequestMapper.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaChannelcouponnos.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaStat.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaSplitrecordMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaAccountsMapper.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaCashrequestMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaChannelnosMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaRetailsMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/RefundOrder.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaChannelnos.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/NotifyRecord.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaChannelcouponnosMapper.java
-/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaRetails.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaChannels.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaAccounts.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaSplitrecord.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/RefundOrderMapper.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/PayRequest.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaChannelsMapper.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/PayRequestMapper.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaChannelcouponnos.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaCashrequestMapper.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaChannelnos.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/NotifyRecord.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaChannelcouponnosMapper.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/domain/AskaRetails.java
+/Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/AskaStatMapper.java
 /Users/syl/Desktop/work/aska/dao/src/main/java/com/mofangchuxing/aska/dao/mapper/NotifyRecordMapper.java

BIN
domain/target/aska-domain-1.0.jar


+ 9 - 0
main/src/main/java/com/mofangchuxing/aska/controller/AskaController.java

@@ -11,6 +11,7 @@ import com.mofangchuxing.aska.service.CouponService;
 import com.mofangchuxing.aska.service.PayService;
 import com.mofangchuxing.aska.service.ProfitSharingService;
 import com.mofangchuxing.aska.service.RetailService;
+import com.mofangchuxing.aska.service.common.DelayNotifyComponent;
 import lombok.extern.slf4j.Slf4j;
 import org.jdom2.JDOMException;
 import org.springframework.web.bind.annotation.*;
@@ -43,6 +44,8 @@ public class AskaController {
     private CouponService couponService;
     @Resource
     private RetailService retailService;
+    @Resource
+    private DelayNotifyComponent delayNotifyComponent;
 
     /**
      * 礼券支付
@@ -124,4 +127,10 @@ public class AskaController {
         List<AskaRetailsVo> list = retailService.listAllRetails();
         return new ResponseResult(list);
     }
+
+    @PostMapping("/Splitting")
+    public ResponseResult Splitting(String orderSn) {
+        delayNotifyComponent.handleSplit(orderSn);
+        return new ResponseResult<>();
+    }
 }

+ 39 - 3
main/src/main/java/com/mofangchuxing/aska/handler/GlobalExceptionHandler.java

@@ -1,14 +1,20 @@
 package com.mofangchuxing.aska.handler;
 
+import com.alibaba.druid.support.json.JSONUtils;
+import com.mofangchuxing.aska.domain.BizException;
 import com.mofangchuxing.aska.domain.ResponseResult;
 import com.mofangchuxing.aska.domain.enums.ResultEnum;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
 
 @RestControllerAdvice
 @Slf4j
@@ -18,8 +24,38 @@ public class GlobalExceptionHandler {
     @ResponseStatus(HttpStatus.OK)
     @ExceptionHandler(Exception.class)
     public ResponseResult handleBaseException(HttpServletRequest request, Exception e) {
-        e.printStackTrace();
-        log.error(e.getMessage(), e);
-        return new ResponseResult(ResultEnum.UNKNOWN_ERROR);
+        ResponseResult result = new ResponseResult();
+        Map<String, String> map = new HashMap<>();
+        Enumeration enu = request.getParameterNames();
+        while (enu.hasMoreElements()) {
+            String paraName = (String) enu.nextElement();
+            map.put(paraName, request.getParameter(paraName));
+        }
+        String params = JSONUtils.toJSONString(map);
+        if (e instanceof BizException) {
+            BizException appException = (BizException) e;
+            if (appException.getCode() == -1) {
+                // Cat.logError(e);
+                LOGGER.error("Request Url:{},Exception: code:{},message:{},params:{}", request.getRequestURI(), appException.getCode(), appException.getMsg(), appException, params);
+            } else {
+                LOGGER.info("Request Url:{},Business Exception: code:{},message:{},params:{}"  ,request.getRequestURI(), appException.getCode(), appException.getMsg(), params);
+            }
+            if (0 == appException.getCode()) {
+                result.setCode(ResultEnum.UNKNOWN_ERROR.getCode());
+            } else {
+                result.setCode(appException.getCode());
+            }
+
+            if (StringUtils.isEmpty(appException.getMsg())) {
+                result.setMessage(ResultEnum.UNKNOWN_ERROR.getMessage());
+            } else {
+                result.setMessage(appException.getMsg());
+            }
+            return result;
+        } else {
+            // Cat.logError(e);
+            LOGGER.error("Request Url:{},params:{},Exception:{}", request.getRequestURI(),params, e);
+            return new ResponseResult(ResultEnum.UNKNOWN_ERROR);
+        }
     }
 }

BIN
main/target/aska.jar


BIN
main/target/aska.jar.original


BIN
main/target/classes/com/mofangchuxing/aska/controller/AskaController.class


BIN
main/target/classes/com/mofangchuxing/aska/handler/GlobalExceptionHandler.class


+ 7 - 2
service/src/main/java/com/mofangchuxing/aska/service/common/DelayNotifyComponent.java

@@ -7,6 +7,7 @@ import com.mofangchuxing.aska.dao.domain.NotifyRecord;
 import com.mofangchuxing.aska.dao.domain.PayRequest;
 import com.mofangchuxing.aska.dao.mapper.NotifyRecordMapper;
 import com.mofangchuxing.aska.dao.mapper.PayRequestMapper;
+import com.mofangchuxing.aska.domain.BizException;
 import com.mofangchuxing.aska.domain.DelayObjectWrapper;
 import com.mofangchuxing.aska.domain.enums.DelayTypeEnum;
 import com.mofangchuxing.aska.service.ProfitSharingService;
@@ -123,11 +124,15 @@ public class DelayNotifyComponent {
         }
     }
 
-    private void handleSplit(String orderSn) {
+    public void handleSplit(String orderSn) {
         PayRequest payRequest = payRequestMapper.selectByOrderSn(orderSn);
         if (payRequest == null) {
             log.error("handleSplit payRequest 不存在? orderSn = {}",orderSn);
-            return;
+            throw new BizException("订单不存在");
+        }
+        if (payRequest.getCansplit() == 0) {
+            log.error("payRequest 不需要分账");
+            throw new BizException("订单不需要分账");
         }
         profitSharingService.profitSharing(payRequest.getClientType(), orderSn, payRequest.getTransactionId(), payRequest.getPayAmount(), Long.parseLong(payRequest.getRetailId()), payRequest.getUseCouponId());
     }

BIN
service/target/aska-service-1.0.jar


BIN
service/target/classes/com/mofangchuxing/aska/service/common/DelayNotifyComponent$1.class


BIN
service/target/classes/com/mofangchuxing/aska/service/common/DelayNotifyComponent.class