Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
R
run-score
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
jackma
run-score
Commits
1ac3bc13
提交
1ac3bc13
authored
11月 13, 2021
作者:
jacksmith1988
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
//add code
上级
425a771c
全部展开
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
146 行增加
和
28 行删除
+146
-28
CorsFilter.java
...in/java/me/zohar/runscore/config/security/CorsFilter.java
+4
-2
BizError.java
...ain/java/me/zohar/runscore/common/exception/BizError.java
+4
-2
Constant.java
...i/src/main/java/me/zohar/runscore/constants/Constant.java
+2
-0
Merchant.java
...main/java/me/zohar/runscore/merchant/domain/Merchant.java
+7
-0
MerchantOrder.java
...java/me/zohar/runscore/merchant/domain/MerchantOrder.java
+10
-0
MerchantOrderService.java
...zohar/runscore/merchant/service/MerchantOrderService.java
+55
-15
MerchantOrderVO.java
...n/java/me/zohar/runscore/merchant/vo/MerchantOrderVO.java
+8
-0
TotalAccountReceiveOrderSituation.java
...calanalysis/domain/TotalAccountReceiveOrderSituation.java
+1
-1
AccountChangeLog.java
...e/zohar/runscore/useraccount/domain/AccountChangeLog.java
+20
-0
UserAccountRepo.java
...a/me/zohar/runscore/useraccount/repo/UserAccountRepo.java
+3
-0
PageController.java
...chant/src/main/java/me/zohar/runscore/PageController.java
+5
-0
CorsFilter.java
...in/java/me/zohar/runscore/config/security/CorsFilter.java
+4
-2
bankpay.html
runscore-merchant/src/main/resources/templates/bankpay.html
+0
-0
header.html
...-merchant/src/main/resources/templates/common/header.html
+4
-2
CorsFilter.java
...in/java/me/zohar/runscore/config/security/CorsFilter.java
+4
-2
runscore.sql
实施输出/runscore.sql
+2
-2
view.sql
实施输出/view.sql
+13
-0
没有找到文件。
runscore-admin/src/main/java/me/zohar/runscore/config/security/CorsFilter.java
浏览文件 @
1ac3bc13
package
me
.
zohar
.
runscore
.
config
.
security
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
...
...
@@ -9,12 +10,13 @@ import javax.servlet.FilterChain;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.annotation.WebFilter
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
@
Slf4j
@Co
mponent
@
WebFilter
(
filterName
=
"CorsFilter"
)
@Co
nfiguration
public
class
CorsFilter
implements
Filter
{
@Override
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
,
FilterChain
filterChain
)
throws
IOException
,
ServletException
{
...
...
runscore-api/src/main/java/me/zohar/runscore/common/exception/BizError.java
浏览文件 @
1ac3bc13
...
...
@@ -8,7 +8,6 @@ import lombok.Getter;
*
* @author zohar
* @date 2019年1月7日
*
*/
@Getter
@AllArgsConstructor
...
...
@@ -64,6 +63,8 @@ public enum BizError {
商户未接入
(
"1015"
,
"商户未接入"
),
系统无可用商户
(
"1015"
,
"系统无可用商户"
),
商户订单不存在
(
"1015"
,
"商户订单不存在"
),
不支持该支付类型
(
"1015"
,
"不支持该支付类型"
),
...
...
@@ -168,7 +169,8 @@ public enum BizError {
不是上级账号无权查看该账号及下级的充值记录
(
"1014"
,
"不是上级账号无权查看该账号及下级的充值记录"
),
不是上级账号无权查看该账号及下级的提现记录
(
"1014"
,
"不是上级账号无权查看该账号及下级的提现记录"
),;
不是上级账号无权查看该账号及下级的提现记录
(
"1014"
,
"不是上级账号无权查看该账号及下级的提现记录"
),
;
private
String
code
;
...
...
runscore-api/src/main/java/me/zohar/runscore/constants/Constant.java
浏览文件 @
1ac3bc13
...
...
@@ -124,6 +124,8 @@ public class Constant {
public
static
final
String
账变日志类型
_
奖励金返点
=
"12"
;
public
static
final
String
账变日志类型
_
订单结算
=
"13"
;
public
static
final
String
充提日志订单类型
_
充值
=
"1"
;
public
static
final
String
充提日志订单类型
_
提现
=
"2"
;
...
...
runscore-api/src/main/java/me/zohar/runscore/merchant/domain/Merchant.java
浏览文件 @
1ac3bc13
package
me
.
zohar
.
runscore
.
merchant
.
domain
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
javax.persistence.Column
;
...
...
@@ -77,4 +78,10 @@ public class Merchant {
@JoinColumn
(
name
=
"relevance_account_id"
,
updatable
=
false
,
insertable
=
false
,
foreignKey
=
@ForeignKey
(
value
=
ConstraintMode
.
NO_CONSTRAINT
))
private
UserAccount
relevanceAccount
;
private
BigDecimal
alipayRate
;
private
BigDecimal
wechatRate
;
private
BigDecimal
bankcardRate
;
}
runscore-api/src/main/java/me/zohar/runscore/merchant/domain/MerchantOrder.java
浏览文件 @
1ac3bc13
...
...
@@ -110,6 +110,11 @@ public class MerchantOrder {
*/
private
Double
bounty
;
/**
* 扣除手续费的金额
*/
private
Double
settleAmount
;
/**
* 乐观锁版本号
*/
...
...
@@ -134,6 +139,11 @@ public class MerchantOrder {
@JoinColumn
(
name
=
"pay_info_id"
,
updatable
=
false
,
insertable
=
false
,
foreignKey
=
@ForeignKey
(
value
=
ConstraintMode
.
NO_CONSTRAINT
))
private
MerchantOrderPayInfo
payInfo
;
public
void
updateSettleAmount
(
Double
settleAmount
)
{
this
.
setSettleAmount
(
settleAmount
);
}
public
void
updateBounty
(
Double
bounty
)
{
this
.
setBounty
(
bounty
);
}
...
...
runscore-api/src/main/java/me/zohar/runscore/merchant/service/MerchantOrderService.java
浏览文件 @
1ac3bc13
package
me
.
zohar
.
runscore
.
merchant
.
service
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
import
java.text.MessageFormat
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.Map.Entry
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -28,6 +22,7 @@ import org.springframework.data.jpa.domain.Specification;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.validation.annotation.Validated
;
import
com.zengtengpeng.annotation.Lock
;
...
...
@@ -113,7 +108,6 @@ public class MerchantOrderService {
private
OrderRebateRepo
orderRebateRepo
;
@Transactional
(
readOnly
=
true
)
public
MerchantOrderDetailsVO
findMerchantOrderDetailsById
(
@NotBlank
String
orderId
)
{
MerchantOrderDetailsVO
vo
=
MerchantOrderDetailsVO
.
convertFor
(
merchantOrderRepo
.
getOne
(
orderId
));
...
...
@@ -219,7 +213,7 @@ public class MerchantOrderService {
return
gatheringCode
;
}
}
return
n
ull
;
return
n
ew
GatheringCode
()
;
}
@Transactional
...
...
@@ -234,7 +228,8 @@ public class MerchantOrderService {
}
platformOrder
.
confirmToPaid
(
null
);
merchantOrderRepo
.
save
(
platformOrder
);
receiveOrderBountySettlement
(
platformOrder
);
merchantSettlement
(
platformOrder
);
// receiveOrderBountySettlement(platformOrder);
}
/**
...
...
@@ -251,7 +246,51 @@ public class MerchantOrderService {
}
platformOrder
.
confirmToPaid
(
note
);
merchantOrderRepo
.
save
(
platformOrder
);
receiveOrderBountySettlement
(
platformOrder
);
merchantSettlement
(
platformOrder
);
// receiveOrderBountySettlement(platformOrder);
}
/**
* 商户加钱
*/
@Transactional
public
void
merchantSettlement
(
MerchantOrder
merchantOrder
)
{
UserAccount
userAccount
=
merchantOrder
.
getReceivedAccount
();
Merchant
merchant
=
merchantOrder
.
getMerchant
();
BigDecimal
rate
=
new
BigDecimal
(
0
);
switch
(
merchantOrder
.
getGatheringChannelCode
())
{
case
Constant
.
支付渠道
_
微信码
:
rate
=
Optional
.
ofNullable
(
merchant
.
getWechatRate
()).
orElse
(
new
BigDecimal
(
0
));
break
;
case
Constant
.
支付渠道
_
支付宝码
:
rate
=
Optional
.
ofNullable
(
merchant
.
getAlipayRate
()).
orElse
(
new
BigDecimal
(
0
));
break
;
case
Constant
.
支付渠道
_
银行卡
:
rate
=
Optional
.
ofNullable
(
merchant
.
getBankcardRate
()).
orElse
(
new
BigDecimal
(
0
));
break
;
default
:
break
;
}
double
rateFee
=
NumberUtil
.
round
(
merchantOrder
.
getGatheringAmount
()
*
rate
.
doubleValue
(),
4
)
.
doubleValue
();
double
merchantSettleAmount
=
merchantOrder
.
getGatheringAmount
()
-
rateFee
;
merchantOrder
.
updateSettleAmount
(
merchantSettleAmount
);
//商户结算
UserAccount
merchantAccount
=
merchant
.
getRelevanceAccount
();
double
cashDeposit
=
merchantAccount
.
getCashDeposit
()
+
merchantSettleAmount
;
merchantAccount
.
setCashDeposit
(
NumberUtil
.
round
(
cashDeposit
,
4
).
doubleValue
());
userAccountRepo
.
save
(
merchantAccount
);
accountChangeLogRepo
.
save
(
AccountChangeLog
.
buildWithMerchantSettle
(
userAccount
,
merchantOrder
));
}
/**
...
...
@@ -419,8 +458,9 @@ public class MerchantOrderService {
merchantOrderPayInfoRepo
.
save
(
payInfo
);
//todo this is temporary code 这里要匹配有资源的用户接单
List
<
UserAccount
>
userAccounts
=
userAccountRepo
.
findAllByAccountType
(
Constant
.
账号类型
_
会员
);
;
List
<
UserAccount
>
userAccounts
=
userAccountRepo
.
findAllByAccountTypeAndState
(
Constant
.
账号类型
_
会员
,
Constant
.
账号状态
_
启用
).
orElseThrow
(()
->
new
BizException
(
BizError
.
系统无可用商户
));
this
.
receiveOrder
(
userAccounts
.
get
(
RandomUtil
.
randomInt
(
0
,
userAccounts
.
size
())).
getId
(),
merchantOrder
.
getId
());
return
MerchantOrderVO
.
convertFor
(
merchantOrder
);
...
...
@@ -446,7 +486,7 @@ public class MerchantOrderService {
String
gatheringCodeStorageId
=
getGatheringCodeStorageId
(
userAccountId
,
platformOrder
.
getGatheringChannelCode
(),
platformOrder
.
getGatheringAmount
());
//支付宝和微信才有收款码
if
(
StrUtil
.
isBlank
(
gatheringCodeStorageId
)
&&
!
platformOrder
.
getGatheringChannelCode
().
equals
(
Constant
.
支付渠道
_
银行卡
)
)
{
if
(
StrUtil
.
isBlank
(
gatheringCodeStorageId
)
&&
!
platformOrder
.
getGatheringChannelCode
().
equals
(
Constant
.
支付渠道
_
银行卡
))
{
throw
new
BizException
(
BizError
.
无法接单找不到对应金额的收款码
);
}
// 校验用户是否达到接单上限,若达到上限,则不能接单
...
...
runscore-api/src/main/java/me/zohar/runscore/merchant/vo/MerchantOrderVO.java
浏览文件 @
1ac3bc13
...
...
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
lombok.Data
;
import
me.zohar.runscore.constants.Constant
;
import
me.zohar.runscore.dictconfig.ConfigHolder
;
import
me.zohar.runscore.dictconfig.DictHolder
;
import
me.zohar.runscore.merchant.domain.MerchantOrder
;
...
...
@@ -136,7 +137,14 @@ public class MerchantOrderVO {
if
(
StrUtil
.
isNotBlank
(
merchantOrder
.
getReceivedAccountId
())
&&
merchantOrder
.
getReceivedAccount
()
!=
null
)
{
vo
.
setReceiverUserName
(
merchantOrder
.
getReceivedAccount
().
getUserName
());
}
if
(
merchantOrder
.
getGatheringChannelCode
().
equals
(
Constant
.
支付渠道
_
银行卡
))
{
vo
.
setPayUrl
(
ConfigHolder
.
getConfigValue
(
"merchantOrderPayUrlForCard"
)
+
vo
.
getOrderNo
());
}
else
{
vo
.
setPayUrl
(
ConfigHolder
.
getConfigValue
(
"merchantOrderPayUrl"
)
+
vo
.
getOrderNo
());
}
vo
.
setPayInfo
(
MerchantOrderPayInfoVO
.
convertFor
(
merchantOrder
.
getPayInfo
()));
return
vo
;
}
...
...
runscore-api/src/main/java/me/zohar/runscore/statisticalanalysis/domain/TotalAccountReceiveOrderSituation.java
浏览文件 @
1ac3bc13
...
...
@@ -35,6 +35,6 @@ public class TotalAccountReceiveOrderSituation {
private
Long
paidOrderNum
;
private
Double
rebateAmount
;
//
private Double rebateAmount;
}
runscore-api/src/main/java/me/zohar/runscore/useraccount/domain/AccountChangeLog.java
浏览文件 @
1ac3bc13
...
...
@@ -302,4 +302,24 @@ public class AccountChangeLog {
return
log
;
}
/**
* 构建商户结算账变日志
*
* @param userAccount
* @param merchantOrder
* @return
*/
public
static
AccountChangeLog
buildWithMerchantSettle
(
UserAccount
userAccount
,
MerchantOrder
merchantOrder
)
{
AccountChangeLog
log
=
new
AccountChangeLog
();
log
.
setId
(
IdUtils
.
getId
());
log
.
setOrderNo
(
merchantOrder
.
getId
());
log
.
setAccountChangeTime
(
new
Date
());
log
.
setAccountChangeTypeCode
(
Constant
.
账变日志类型
_
订单结算
);
log
.
setAccountChangeAmount
(
NumberUtil
.
round
(
merchantOrder
.
getSettleAmount
(),
4
).
doubleValue
());
log
.
setCashDeposit
(
userAccount
.
getCashDeposit
());
log
.
setUserAccountId
(
userAccount
.
getId
());
return
log
;
}
}
runscore-api/src/main/java/me/zohar/runscore/useraccount/repo/UserAccountRepo.java
浏览文件 @
1ac3bc13
...
...
@@ -4,6 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.List
;
import
java.util.Optional
;
import
me.zohar.runscore.useraccount.domain.UserAccount
;
...
...
@@ -15,4 +16,6 @@ public interface UserAccountRepo extends JpaRepository<UserAccount, String>, Jpa
Long
countByInviterId
(
String
inviterId
);
List
<
UserAccount
>
findAllByAccountType
(
String
accountType
);
Optional
<
List
<
UserAccount
>>
findAllByAccountTypeAndState
(
String
accountType
,
String
state
);
}
runscore-merchant/src/main/java/me/zohar/runscore/PageController.java
浏览文件 @
1ac3bc13
...
...
@@ -86,4 +86,9 @@ public class PageController {
return
"pay"
;
}
@GetMapping
(
"/bankpay"
)
public
String
bankpay
()
{
return
"bankpay"
;
}
}
runscore-merchant/src/main/java/me/zohar/runscore/config/security/CorsFilter.java
浏览文件 @
1ac3bc13
package
me
.
zohar
.
runscore
.
config
.
security
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
...
...
@@ -9,12 +10,13 @@ import javax.servlet.FilterChain;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.annotation.WebFilter
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
@
Slf4j
@Co
mponent
@
WebFilter
(
filterName
=
"CorsFilter"
)
@Co
nfiguration
public
class
CorsFilter
implements
Filter
{
@Override
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
,
FilterChain
filterChain
)
throws
IOException
,
ServletException
{
...
...
runscore-merchant/src/main/resources/templates/bankpay.html
0 → 100644
浏览文件 @
1ac3bc13
差异被折叠。
点击展开。
runscore-merchant/src/main/resources/templates/common/header.html
浏览文件 @
1ac3bc13
...
...
@@ -18,7 +18,7 @@
<li
class=
"nav-item"
v-bind:class=
"{'active': currentPathName == '/appeal-record'}"
v-on:click=
"navTo('/appeal-record')"
><a
class=
"nav-link"
>
申诉记录
</a></li>
</ul>
<form
class=
"form-inline"
style=
"float: right;"
>
<span
style=
"padding-right: 20px;"
>
商户端:{{userName}}
</span>
<span
style=
"padding-right: 20px;"
>
商户端:{{userName}}
当前余额:{{cashDeposit}}
</span>
<button
type=
"button"
class=
"btn btn-light btn-sm"
v-on:click=
"logout"
>
退出登录
</button>
</form>
</nav>
...
...
@@ -41,7 +41,8 @@
el
:
'#header'
,
data
:
{
userName
:
''
,
currentPathName
:
''
currentPathName
:
''
,
cashDeposit
:
''
},
computed
:
{},
created
:
function
()
{
...
...
@@ -63,6 +64,7 @@
that
.
isLoggedInFlag
=
false
;
}
else
{
that
.
userName
=
res
.
body
.
data
.
userName
;
that
.
cashDeposit
=
res
.
body
.
data
.
cashDeposit
;
}
});
},
...
...
runscore-mobile/src/main/java/me/zohar/runscore/config/security/CorsFilter.java
浏览文件 @
1ac3bc13
package
me
.
zohar
.
runscore
.
config
.
security
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
...
...
@@ -9,12 +10,13 @@ import javax.servlet.FilterChain;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.annotation.WebFilter
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
@
Slf4j
@Co
mponent
@
WebFilter
(
filterName
=
"CorsFilter"
)
@Co
nfiguration
public
class
CorsFilter
implements
Filter
{
@Override
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
,
FilterChain
filterChain
)
throws
IOException
,
ServletException
{
...
...
实施输出/runscore.sql
浏览文件 @
1ac3bc13
...
...
@@ -866,7 +866,7 @@ CREATE TABLE `v_merchant_everyday_statistical` (
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
-- ----------------------------
/*
-- ----------------------------
-- Table structure for v_merchant_month_statistical
-- ----------------------------
DROP TABLE IF EXISTS `v_merchant_month_statistical`;
...
...
@@ -901,7 +901,7 @@ CREATE TABLE `v_merchant_total_statistical` (
`trade_amount` double DEFAULT NULL,
PRIMARY KEY (`merchant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
*/
-- ----------------------------
-- Table structure for v_rebate_situation
-- ----------------------------
...
...
实施输出/view.sql
0 → 100644
浏览文件 @
1ac3bc13
/*
MySQL Backup
Database: runscore
Backup Time: 2021-11-13 10:39:45
*/
SET
FOREIGN_KEY_CHECKS
=
0
;
DROP
VIEW
IF
EXISTS
`runscore`
.
`v_merchant_month_statistical`
;
DROP
VIEW
IF
EXISTS
`runscore`
.
`v_merchant_today_statistical`
;
DROP
VIEW
IF
EXISTS
`runscore`
.
`v_merchant_total_statistical`
;
CREATE
ALGORITHM
=
UNDEFINED
DEFINER
=
`root`
@
`%`
SQL
SECURITY
DEFINER
VIEW
`v_merchant_month_statistical`
AS
select
`po`
.
`merchant_id`
AS
`merchant_id`
,
round
(
sum
(
`po`
.
`gathering_amount`
),
4
)
AS
`gathering_amount`
,
count
(
1
)
AS
`order_num`
,
round
(
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
`po`
.
`gathering_amount`
else
0
end
)),
4
)
AS
`trade_amount`
,
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
1
else
0
end
))
AS
`paid_order_num`
from
(
`merchant_order`
`po`
left
join
`merchant`
`ua`
on
((
`po`
.
`merchant_id`
=
`ua`
.
`id`
)))
where
((
`po`
.
`received_account_id`
is
not
null
)
and
(
`po`
.
`submit_time`
>=
str_to_date
(
date_format
(
curdate
(),
'%Y-%m-01 00:00:00'
),
'%Y-%m-%d %H:%i:%s'
))
and
(
`po`
.
`submit_time`
<
(
str_to_date
(
date_format
(
curdate
(),
'%Y-%m-01 00:00:00'
),
'%Y-%m-%d %H:%i:%s'
)
+
interval
1
month
)))
group
by
`po`
.
`merchant_id`
;
CREATE
ALGORITHM
=
UNDEFINED
DEFINER
=
`root`
@
`%`
SQL
SECURITY
DEFINER
VIEW
`v_merchant_today_statistical`
AS
select
`po`
.
`merchant_id`
AS
`merchant_id`
,
round
(
sum
(
`po`
.
`gathering_amount`
),
4
)
AS
`gathering_amount`
,
count
(
1
)
AS
`order_num`
,
round
(
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
`po`
.
`gathering_amount`
else
0
end
)),
4
)
AS
`trade_amount`
,
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
1
else
0
end
))
AS
`paid_order_num`
from
(
`merchant_order`
`po`
left
join
`merchant`
`ua`
on
((
`po`
.
`merchant_id`
=
`ua`
.
`id`
)))
where
((
`po`
.
`received_account_id`
is
not
null
)
and
(
`po`
.
`received_time`
>=
str_to_date
(
date_format
(
now
(),
'%Y-%m-%d'
),
'%Y-%m-%d %H:%i:%s'
))
and
(
`po`
.
`received_time`
<
(
str_to_date
(
date_format
(
now
(),
'%Y-%m-%d'
),
'%Y-%m-%d %H:%i:%s'
)
+
interval
1
day
)))
group
by
`po`
.
`merchant_id`
;
CREATE
ALGORITHM
=
UNDEFINED
DEFINER
=
`root`
@
`%`
SQL
SECURITY
DEFINER
VIEW
`v_merchant_total_statistical`
AS
select
`po`
.
`merchant_id`
AS
`merchant_id`
,
round
(
sum
(
`po`
.
`gathering_amount`
),
4
)
AS
`gathering_amount`
,
count
(
1
)
AS
`order_num`
,
round
(
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
`po`
.
`gathering_amount`
else
0
end
)),
4
)
AS
`trade_amount`
,
sum
((
case
when
(
`po`
.
`order_state`
=
'4'
)
then
1
else
0
end
))
AS
`paid_order_num`
from
(
`merchant_order`
`po`
left
join
`merchant`
`ua`
on
((
`po`
.
`merchant_id`
=
`ua`
.
`id`
)))
where
(
`po`
.
`received_account_id`
is
not
null
)
group
by
`po`
.
`merchant_id`
;
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论