Commit e6c4de2f authored by machengbo's avatar machengbo

商城---收支情况统计列表---每天收支情况列表

parent 76a52875
alter table t_finance_customer_assets add remark text COMMENT '备注';
alter table t_platform_log add caller_type char(2) NOT NULL COMMENT '调用类型:01商城用户,02平台用户';
alter table t_finance_trade_flow add assets_id Bigint(20) default NULL COMMENT'企业资产id';
\ No newline at end of file
package com.jz.common.bean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**分页信息封装
* @author ybz
*
*/
@ApiModel(value = "分页参数对象", description = "分页参数对象")
public class BasePageBean {
@ApiModelProperty(value = "当前页码值")
private int pageNum = 1;
@ApiModelProperty(value = "每页条数")
private int pageSize = 10;
public int getPageNum() {
......
......@@ -43,4 +43,15 @@ public class CommonsUtil implements Serializable {
}
return dt;
}
/**
* 按指定格式返回字符串当前日期时间
*
* @return
*/
public static String getDate2String(String curDateFormat,Date date) {
SimpleDateFormat sdf = new SimpleDateFormat(curDateFormat);
String sd = sdf.format(date);
return sd;
}
}
package com.jz.dm.mall.moduls.controller.finance;
import com.jz.common.base.BaseController;
import com.jz.common.bean.BasePageBean;
import com.jz.common.bean.PageInfoResponse;
import com.jz.common.constant.Constants;
import com.jz.common.utils.Result;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerAssetsDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerBalanceRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.*;
import com.jz.dm.mall.moduls.service.FinanceTradeFlowService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -26,7 +26,7 @@ import java.util.Map;
*/
@RestController
@RequestMapping("/financeTradeFlow")
@Api(tags = "利润中心")
@Api(tags = "商城--利润中心")
public class FinanceTradeFlowController extends BaseController {
/**
* 服务对象
......@@ -63,14 +63,14 @@ public class FinanceTradeFlowController extends BaseController {
@ApiOperation(value = "充值----保存充值金额", notes = "保存充值金额")
@ApiParam()
public Result<Object> uptAccountMoney(@RequestBody FinanceCustomerBalanceRequest customerBalanceRequest, HttpServletRequest requset) throws Exception {
if(StringUtils.isEmpty(customerBalanceRequest.getAssetsId().toString())){ //企业资产id
if (StringUtils.isEmpty(customerBalanceRequest.getAssetsId().toString())) { //企业资产id
return Result.error("参数不能为空!");
}
if(StringUtils.isEmpty(customerBalanceRequest.getBalanceMoney().toString())){ //充值金额
if (StringUtils.isEmpty(customerBalanceRequest.getBalanceMoney().toString())) { //充值金额
return Result.error("参数不能为空!");
}
Boolean str = financeTradeFlowService.uptAccountMoney(customerBalanceRequest);
if(!str){
if (!str) {
return Result.error("提交失败!");
}
return Result.ok("提交成功!");
......@@ -110,7 +110,7 @@ public class FinanceTradeFlowController extends BaseController {
map.put("assetsId", 1); //企业资产账户id
map.put("departmentId", 1); //企业ID
FinanceCashOutDto dto = financeTradeFlowService.getCashOutAuditStutas(map);
if(dto.getCashOutMoney() != null){
if (dto.getCashOutMoney() != null) {
result.setData(dto.getCashOutMoney());
result.setMessage("存在提现审核记录!");
} else {
......@@ -128,7 +128,7 @@ public class FinanceTradeFlowController extends BaseController {
@PostMapping(value = "/addCashOutMoney")
@ApiOperation(value = "提现----保存提现金额", notes = "保存提现金额")
public Result<Object> addCashOutMoney(@RequestBody FinanceCashOutRequest financeCashOutRequest, HttpServletRequest requset) throws Exception {
if(financeCashOutRequest.getCashOutMoney() == null){ //提现金额
if (financeCashOutRequest.getCashOutMoney() == null) { //提现金额
return Result.error("参数不能为空!");
}
Result<Object> result = financeTradeFlowService.addCashOutMoney(financeCashOutRequest);
......@@ -136,22 +136,50 @@ public class FinanceTradeFlowController extends BaseController {
}
/**
* 订单管理列表(分页查询)
* 收支情况(分页查询)
*
* @author Bellamy
* @since 2020-12-04
*/
/*@PostMapping(value = "/list")
@ApiOperation(value = "订单管理列表(分页查询)", notes = "订单列表(分页查询)")
public PageInfoResponse<FinanceTradeFlow> queryPageList(HttpServletRequest req) throws Exception {
PageInfoResponse<FinanceTradeFlow> pageInfo = new PageInfoResponse<FinanceTradeFlow>();
@PostMapping(value = "/receiveListInfo")
@ApiOperation(value = "收支情况(分页查询)", notes = "收支情况(分页查询)")
public PageInfoResponse<FinanceTradeFlowDto> queryPageList(@RequestBody BasePageBean pageBean, HttpServletRequest req) throws Exception {
PageInfoResponse<FinanceTradeFlowDto> pageInfo = new PageInfoResponse<FinanceTradeFlowDto>();
Map map = new HashMap();
try {
pageInfo = financeTradeFlowService.findListTradeFlow(map,req);
pageInfo = financeTradeFlowService.findListScTradeFlow(pageBean, req);
} catch (Exception e) {
pageInfo.setMessage("查询失败");
pageInfo.setCode(Constants.FAILURE_CODE);
e.printStackTrace();
}
return pageInfo;
}*/
}
/**
* 点击查看--每天--收支情况(分页查询)
*
* @author Bellamy
* @since 2020-12-04
*/
@PostMapping(value = "/everyPageLisInfo")
@ApiOperation(value = "点击查看--每天--收支情况(分页查询)", notes = "点击查看--每天--收支情况(分页查询)")
public PageInfoResponse<EveryTradeFlowDto> queryEveryDayPageList(@RequestBody EveryTradeFlowRequest everyTradeFlowRequest, HttpServletRequest req) throws Exception {
PageInfoResponse<EveryTradeFlowDto> pageInfo = new PageInfoResponse<EveryTradeFlowDto>();
if (everyTradeFlowRequest.getCreTime() == null || "".equals(everyTradeFlowRequest.getCreTime())) {
pageInfo.setMessage("参数为空");
pageInfo.setCode(Constants.FAILURE_CODE);
return pageInfo;
}
Map map = new HashMap();
try {
pageInfo = financeTradeFlowService.findListEveryDayScInfo(everyTradeFlowRequest, req);
} catch (Exception e) {
pageInfo.setMessage("查询失败");
pageInfo.setCode(Constants.FAILURE_CODE);
e.printStackTrace();
}
return pageInfo;
}
}
\ No newline at end of file
package com.jz.dm.mall.moduls.controller.finance.bean;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
/**
* 企业客户交易流水 收支情况
*
* @author makejava
* @since 2020-12-01 10:41:39
*/
@ApiModel(value = "每天收支情况明细返回对象", description = "每天收支情况明细返回对象")
public class EveryTradeFlowDto {
/**
* 交易流水编号
*/
@ApiModelProperty(value = "交易流水编号")
private String tradeFlowNumber;
/**
* 交易流水金额
*/
@ApiModelProperty(value = "交易流水金额")
private BigDecimal tradeMoney;
/**
* 交易类型:01提现,02充值,03付款,04收款,05续费
*/
@ApiModelProperty(value = "交易类型")
private String tradeType;
/**
* 交易类型id
*/
@ApiModelProperty(value = "交易类型:01提现,02充值,03付款,04收款,05续费")
private String tradeTypeId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern="HH:mm:ss")
private Date creTime;
/**
* 数据名称
*/
@ApiModelProperty(value = "数据名称")
private String dataName;
/**
* 订单方式
*/
@ApiModelProperty(value = "订单方式")
private String purchaseMethod;
/**
* 余额
*/
@ApiModelProperty(value = "余额")
private BigDecimal balanceMoney;
public String getTradeFlowNumber() {
return tradeFlowNumber;
}
public void setTradeFlowNumber(String tradeFlowNumber) {
this.tradeFlowNumber = tradeFlowNumber;
}
public BigDecimal getTradeMoney() {
return tradeMoney;
}
public void setTradeMoney(BigDecimal tradeMoney) {
this.tradeMoney = tradeMoney;
}
public String getTradeType() {
return tradeType;
}
public void setTradeType(String tradeType) {
this.tradeType = tradeType;
}
public Date getCreTime() {
return creTime;
}
public void setCreTime(Date creTime) {
this.creTime = creTime;
}
public String getTradeTypeId() {
return tradeTypeId;
}
public void setTradeTypeId(String tradeTypeId) {
this.tradeTypeId = tradeTypeId;
}
public String getDataName() {
return dataName;
}
public void setDataName(String dataName) {
this.dataName = dataName;
}
public String getPurchaseMethod() {
return purchaseMethod;
}
public void setPurchaseMethod(String purchaseMethod) {
this.purchaseMethod = purchaseMethod;
}
public BigDecimal getBalanceMoney() {
return balanceMoney;
}
public void setBalanceMoney(BigDecimal balanceMoney) {
this.balanceMoney = balanceMoney;
}
}
\ No newline at end of file
package com.jz.dm.mall.moduls.controller.finance.bean;
import com.jz.common.bean.BasePageBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 每天收支情况参数接收对象
*
* @author Bellamy
* @since 2020-12-04 10:41:39
*/
@ApiModel(value = "每天收支情况参数接收对象", description = "每天收支情况参数接收对象")
public class EveryTradeFlowRequest extends BasePageBean {
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间 yyyy-MM-dd")
private String creTime;
public String getCreTime() {
return creTime;
}
public void setCreTime(String creTime) {
this.creTime = creTime;
}
}
\ No newline at end of file
package com.jz.dm.mall.moduls.controller.finance.bean;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 企业客户交易流水(TFinanceTradeFlow)实体类
*
* @author Bellamy
* @since 2020-12-01 10:41:39
*/
@ApiModel(value = "收支情况返回对象", description = "收支情况返回对象")
public class FinanceTradeFlowDto implements Serializable {
private static final long serialVersionUID = -55257582310832314L;
/**
* 收入金额
*/
@ApiModelProperty(value = "收入金额")
private BigDecimal receiveMoey;
/**
* 提现金额
*/
@ApiModelProperty(value = "提现金额")
private BigDecimal cashOutMoney;
/**
* 充值金额
*/
@ApiModelProperty(value = "充值金额")
private BigDecimal rechargeMoney;
/**
* 支出金额
*/
@ApiModelProperty(value = "支出金额")
private BigDecimal payMoey;
/**
* 结余
*/
@ApiModelProperty(value = "结余")
private BigDecimal balanceMoney;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern="yyyy-MM-dd")
private Date creTime;
public BigDecimal getReceiveMoey() {
return receiveMoey;
}
public void setReceiveMoey(BigDecimal receiveMoey) {
this.receiveMoey = receiveMoey;
}
public BigDecimal getCashOutMoney() {
return cashOutMoney;
}
public void setCashOutMoney(BigDecimal cashOutMoney) {
this.cashOutMoney = cashOutMoney;
}
public BigDecimal getRechargeMoney() {
return rechargeMoney;
}
public void setRechargeMoney(BigDecimal rechargeMoney) {
this.rechargeMoney = rechargeMoney;
}
public BigDecimal getPayMoey() {
return payMoey;
}
public void setPayMoey(BigDecimal payMoey) {
this.payMoey = payMoey;
}
public BigDecimal getBalanceMoney() {
return balanceMoney;
}
public void setBalanceMoney(BigDecimal balanceMoney) {
this.balanceMoney = balanceMoney;
}
public Date getCreTime() {
return creTime;
}
public void setCreTime(Date creTime) {
this.creTime = creTime;
}
}
\ No newline at end of file
package com.jz.dm.mall.moduls.mapper;
import com.jz.common.base.BaseMapper;
import com.jz.dm.mall.moduls.controller.finance.bean.EveryTradeFlowDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerAssetsDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceTradeFlowDto;
import com.jz.dm.mall.moduls.entity.FinanceCashOut;
import com.jz.dm.mall.moduls.entity.FinanceTradeFlow;
......@@ -24,4 +26,8 @@ public interface FinanceTradeFlowDao extends BaseMapper<FinanceTradeFlow> {
List<FinanceCashOutDto> getCashOutAuditStutas(Map map) throws Exception;
int addCashOutMoney(FinanceCashOut financeCashOut) throws Exception;
List<FinanceTradeFlowDto> findListScTradeFlow(Map param) throws Exception;
List<EveryTradeFlowDto> findListEveryDayScInfo(Map param) throws Exception;
}
\ No newline at end of file
package com.jz.dm.mall.moduls.service;
import com.jz.common.bean.BasePageBean;
import com.jz.common.bean.PageInfoResponse;
import com.jz.common.utils.Result;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerAssetsDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerBalanceRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
......@@ -24,4 +24,8 @@ public interface FinanceTradeFlowService {
FinanceCashOutDto getCashOutAuditStutas(Map map) throws Exception;
Result<Object> addCashOutMoney(FinanceCashOutRequest financeCashOutRequest) throws Exception;
PageInfoResponse<FinanceTradeFlowDto> findListScTradeFlow(BasePageBean pageBean, HttpServletRequest req) throws Exception;
PageInfoResponse<EveryTradeFlowDto> findListEveryDayScInfo(EveryTradeFlowRequest everyTradeFlowRequest, HttpServletRequest req) throws Exception;
}
\ No newline at end of file
package com.jz.dm.mall.moduls.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jz.common.bean.BasePageBean;
import com.jz.common.bean.PageInfoResponse;
import com.jz.common.constant.Constants;
import com.jz.common.enums.AuditStatusEnum;
import com.jz.common.utils.CommonsUtil;
import com.jz.common.utils.Result;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCashOutRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerAssetsDto;
import com.jz.dm.mall.moduls.controller.finance.bean.FinanceCustomerBalanceRequest;
import com.jz.dm.mall.moduls.controller.finance.bean.*;
import com.jz.dm.mall.moduls.entity.FinanceCashOut;
import com.jz.dm.mall.moduls.entity.FinanceCustomerAssets;
import com.jz.dm.mall.moduls.entity.FinanceCustomerBalance;
import com.jz.dm.mall.moduls.mapper.FinanceCustomerAssetsDao;
import com.jz.dm.mall.moduls.mapper.FinanceTradeFlowDao;
import com.jz.dm.mall.moduls.service.FinanceTradeFlowService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
......@@ -124,11 +129,47 @@ public class FinanceTradeFlowServiceImpl implements FinanceTradeFlowService {
return result;
}
} else {
result.setMessage("提交失败!");
result.setMessage("提现金额必须小于等于可用金额!");
result.setCode(500);
return result;
}
}
return result;
}
@Override
public PageInfoResponse<FinanceTradeFlowDto> findListScTradeFlow(BasePageBean pageBean, HttpServletRequest req) throws Exception {
PageInfoResponse<FinanceTradeFlowDto> pageInfoResponse = new PageInfoResponse<>();
PageHelper.startPage(pageBean.getPageNum(), pageBean.getPageSize());
Map param = new HashMap();
//param.put("assetsId",assetsId); //企业资产id
List<FinanceTradeFlowDto> list = financeTradeFlowDao.findListScTradeFlow(param);
PageInfo<FinanceTradeFlowDto> pageInfo = new PageInfo<>(list);
pageInfoResponse.setCode(Constants.SUCCESS_CODE);
pageInfoResponse.setMessage("查询成功");
pageInfoResponse.setData(pageInfo);
return pageInfoResponse;
}
@Override
public PageInfoResponse<EveryTradeFlowDto> findListEveryDayScInfo(EveryTradeFlowRequest everyTradeFlowRequest, HttpServletRequest req) throws Exception {
PageInfoResponse<EveryTradeFlowDto> pageInfoResponse = new PageInfoResponse<>();
PageHelper.startPage(everyTradeFlowRequest.getPageNum(), everyTradeFlowRequest.getPageSize());
Map param = new HashMap();
//商品分类id(行业)
if (!StringUtils.isEmpty(everyTradeFlowRequest.getCreTime())) {
param.put("creTime", everyTradeFlowRequest.getCreTime());
}
//param.put("assetsId",assetsId); //企业资产id
List<EveryTradeFlowDto> list = financeTradeFlowDao.findListEveryDayScInfo(param);
PageInfo<EveryTradeFlowDto> pageInfo = new PageInfo<>(list);
pageInfoResponse.setCode(Constants.SUCCESS_CODE);
pageInfoResponse.setMessage("查询成功");
pageInfoResponse.setData(pageInfo);
return pageInfoResponse;
}
}
\ No newline at end of file
......@@ -136,6 +136,9 @@
<if test="totalMoney != null">
total_money = #{totalMoney},
</if>
<if test="frozenMoney != null">
frozen_money = #{frozenMoney},
</if>
<if test="uptTime != null">
upt_time = #{uptTime},
</if>
......
......@@ -35,4 +35,56 @@
#{payTime}, #{payPerson}, #{remark}, #{auditStatus}, #{crePerson}, #{creTime}, #{delFlag})
</insert>
<!--商城利润中心每天收支情况-->
<select id="findListScTradeFlow" resultType="com.jz.dm.mall.moduls.controller.finance.bean.FinanceTradeFlowDto" parameterType="map">
select
sum(case when a.tradeType='01' then a.tradeMoney else 0 end) cashOutMoney,
sum(case when a.tradeType='02' then a.tradeMoney else 0 end) rechargeMoney,
sum(case when a.tradeType='03' then a.tradeMoney else 0 end) payMoey,
sum(case when a.tradeType='04' then a.tradeMoney else 0 end) receiveMoey,
a.creTime,
a.balanceMoney
from(
select
t.trade_type as tradeType,
t.trade_money as tradeMoney,
t.balance_money as balanceMoney,
date_format(t.cre_time,'%Y-%m-%d') as creTime
from t_finance_trade_flow t
inner join t_finance_customer_assets t1 on t1.assets_id=t.assets_id
where 1=1 and date_format(NOW(),'%Y-%m-%d') > date_format(t.cre_time,'%Y-%m-%d')
<if test="assetsId != null">and t.assets_id = #{assetsId}</if>
) a
group by a.creTime
order by a.creTime desc
</select>
<!--商城利润中心每天收支情况明细-->
<select id="findListEveryDayScInfo" resultType="com.jz.dm.mall.moduls.controller.finance.bean.EveryTradeFlowDto" parameterType="map">
select
t.trade_flow_number as tradeFlowNumber,
(case when t.trade_type ='01' then '提现' when t.trade_type ='02' then '充值' when t.trade_type ='03' then '支付'
when t.trade_type ='04' then '收入' end) as tradeType,
t.trade_type as tradeTypeId,
t.cre_time as creTime,
t.trade_money as tradeMoney,
t.balance_money as balanceMoney,
a.data_name as dataName,
(case when a.purchase_method ='01' then '年' when a.purchase_method ='02' then '季' when a.purchase_method ='03' then '月'
when a.purchase_method ='04' then '次' end) as purchaseMethod
from t_finance_trade_flow t
left join (
select
t1.order_id,
t3.data_name,
t1.purchase_method
from t_order_goods_info t2
inner join t_order t1 on t1.order_id=t2.order_id
inner join t_data_goods t3 on t2.data_goods_id=t3.data_goods_id
) a on a.order_id=t.order_id
where 1=1
<if test="assetsId != null">and t.assets_id = #{assetsId}</if>
<if test="creTime != null">and date_format(t.cre_time,'%Y-%m-%d')= #{creTime}</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment