瀏覽代碼

老师账户统计

liweifan 3 年之前
父節點
當前提交
a3d784f353

+ 13 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserAccountRecordController.java

@@ -2,12 +2,17 @@ package com.yonge.cooleshow.admin.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
+import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
+import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -15,6 +20,8 @@ import com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo;
 import com.yonge.cooleshow.biz.dal.dto.search.UserAccountRecordSearch;
 import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
 
+import javax.validation.Valid;
+
 @RestController
 @RequestMapping("/userAccountRecord")
 @Api(value = "用户账户流水表", tags = "用户账户流水表")
@@ -44,4 +51,10 @@ public class UserAccountRecordController extends BaseController {
         return succeed(PageUtil.pageInfo(pages));
 	}
 
+    @ApiOperation(value = "收入数据统计")
+    @PostMapping("/accountTotal")
+    public HttpResponseResult<UserAccountVo> accountTotal(@RequestBody UserAccountRecordSearch query) {
+        return userAccountRecordService.accountTotal(query);
+    }
+
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountRecordDao.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.TeacherEarningVo;
+import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import org.apache.ibatis.annotations.Param;
 import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
@@ -41,6 +42,8 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
 
     List<UserAccountRecordVo> selectAllPage(@Param("param") UserAccountRecordSearch userAccountRecord);
 
+
+    UserAccountVo accountTotal(@Param("param") UserAccountRecordSearch param);
     /**
      * app查询详情
      *
@@ -94,4 +97,6 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
     UserAccountRecordVo detailByBiz(@Param("orderNo") String orderNo,
                                     @Param("bizType") AccountBizTypeEnum bizType,
                                     @Param("bizId") Long bizId);
+
+
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserAccountRecordService.java

@@ -7,7 +7,10 @@ import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo;
 import com.yonge.cooleshow.biz.dal.dto.search.UserAccountRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
+import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -73,4 +76,7 @@ public interface UserAccountRecordService extends IService<UserAccountRecord> {
      * 通过订单详情查询该详情对应的所有账户记录
      */
     List<UserAccountRecord> selectRecordByOrderDetail(UserOrderDetailVo userOrderDetailVo);
+
+
+    HttpResponseResult<UserAccountVo> accountTotal(UserAccountRecordSearch query);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountRecordServiceImpl.java

@@ -11,7 +11,9 @@ import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.SysMessageService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherEarningVo;
+import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -67,6 +69,11 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
     }
 
     @Override
+    public HttpResponseResult<UserAccountVo> accountTotal(UserAccountRecordSearch query) {
+        return HttpResponseResult.succeed(baseMapper.accountTotal(query));
+    }
+
+    @Override
     public UserAccountRecordVo appDetail(Long id){
         UserAccountRecordVo detail = baseMapper.appDetail(id);
         return detail;
@@ -129,4 +136,6 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
         return baseMapper.selectRecordByOrderDetail(userOrderDetailVo, bizIds);
     }
 
+
+
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserAccountVo.java

@@ -18,6 +18,9 @@ public class UserAccountVo extends UserAccount{
 	@ApiModelProperty("待入账金额 ")
 	private BigDecimal amountUnrecorded;
 
+	@ApiModelProperty("已入账金额 ")
+	private BigDecimal amountRecorded;
+
 	public BigDecimal getAmountUnrecorded() {
 		return amountUnrecorded;
 	}
@@ -25,4 +28,12 @@ public class UserAccountVo extends UserAccount{
 	public void setAmountUnrecorded(BigDecimal amountUnrecorded) {
 		this.amountUnrecorded = amountUnrecorded;
 	}
+
+	public BigDecimal getAmountRecorded() {
+		return amountRecorded;
+	}
+
+	public void setAmountRecorded(BigDecimal amountRecorded) {
+		this.amountRecorded = amountRecorded;
+	}
 }

+ 33 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml

@@ -99,6 +99,39 @@
         <include refid="selectSql"/>
     </select>
 
+    <select id="accountTotal" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountVo">
+        select
+            sum(
+                if(t.post_status_ = 'WAIT' and t.in_or_out_ = 'IN' ,abs(t.trans_amount_),0)
+            ) as amountUnrecorded,
+            sum(
+                if(t.post_status_ = 'RECORDED' and t.in_or_out_ = 'IN',abs(t.trans_amount_),0)
+            ) as amountRecorded,
+            sum(
+                if(t.post_status_ = 'RECORDED' ,if(t.in_or_out_ = 'IN',abs(t.trans_amount_),-abs(t.trans_amount_)),0)
+            ) as amountTotal,
+            sum(
+                if(t.post_status_ in ('FROZEN','RECORDED') ,if(t.in_or_out_ = 'IN',abs(t.trans_amount_),-abs(t.trans_amount_)),0)
+            ) as amountUsable,
+            sum(
+                if(t.post_status_ = 'FROZEN' ,if(t.in_or_out_ = 'IN',abs(t.trans_amount_),-abs(t.trans_amount_)),0)
+            ) as amountFrozen
+        from user_cash_account_record t
+        left join sys_user u on t.account_id_ = u.id_
+        <where>
+            <if test="null != param.search and '' != param.search">
+                AND (
+                u.id_ LIKE CONCAT('%', #{param.search}, '%') or
+                u.username_ LIKE CONCAT('%', #{param.search}, '%') or
+                u.phone_ LIKE CONCAT('%', #{param.search}, '%')
+                )
+            </if>
+            <include refid="selectCondition"/>
+        </where>
+        order by t.update_time_ desc
+    </select>
+
+
     <!-- 表字段 -->
     <sql id="appBaseColumns">
         t.id_ as id