Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
507e3190
Commit
507e3190
authored
Nov 27, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
总业绩统计
parent
ea8c28c2
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
196 additions
and
71 deletions
+196
-71
BookkeepingTypeEnum.java
...platform/order/contant/enumerate/BookkeepingTypeEnum.java
+25
-0
QueryCriteria.java
...main/java/com/xxfc/platform/order/pojo/QueryCriteria.java
+8
-1
ReturnOrderAmount.java
.../java/com/xxfc/platform/order/pojo/ReturnOrderAmount.java
+33
-0
TotalOrderRevenue.java
.../java/com/xxfc/platform/order/pojo/TotalOrderRevenue.java
+3
-2
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+9
-1
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+5
-0
TotalPerformanceBiz.java
...java/com/xxfc/platform/order/biz/TotalPerformanceBiz.java
+45
-19
OrderAccountMapper.java
...va/com/xxfc/platform/order/mapper/OrderAccountMapper.java
+5
-0
TotalPerformanceStatementController.java
.../rest/background/TotalPerformanceStatementController.java
+14
-24
BaseOrderMapper.xml
...rder-server/src/main/resources/mapper/BaseOrderMapper.xml
+27
-23
OrderAccountMapper.xml
...r-server/src/main/resources/mapper/OrderAccountMapper.xml
+22
-1
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/BookkeepingTypeEnum.java
0 → 100644
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
/**
* 账目类型
* @author Administrator
*/
public
enum
BookkeepingTypeEnum
{
ENTER
(
0
,
"入账"
),
OUT
(
1
,
"出账"
);
private
Integer
code
;
private
String
msg
;
BookkeepingTypeEnum
(
int
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
public
Integer
getCode
()
{
return
code
;
}
public
String
getMsg
()
{
return
msg
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/QueryCriteria.java
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
...
...
@@ -34,7 +35,7 @@ public class QueryCriteria {
@ApiModelProperty
(
value
=
"支付方式: 1-微信支付 2-支付宝支付 3-银联支付 null-全部"
)
private
Integer
paymentMethod
;
@ApiModelProperty
(
value
=
"账目类型:
0-页面展示 1-下载报表
"
)
@ApiModelProperty
(
value
=
"账目类型:
0-入账 1-出账
"
)
private
Integer
type
=
0
;
@ApiModelProperty
(
"用户id"
)
...
...
@@ -42,5 +43,11 @@ public class QueryCriteria {
@ApiModelProperty
(
"权限公司id"
)
private
List
<
Integer
>
jurisdiction
;
@ApiModelProperty
(
value
=
"当前页数"
)
private
Integer
page
;
@ApiModelProperty
(
value
=
"每页条数"
)
private
Integer
limit
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/ReturnOrderAmount.java
0 → 100644
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
java.math.BigDecimal
;
@Data
public
class
ReturnOrderAmount
{
@ApiModelProperty
(
value
=
"时间"
)
private
String
time
;
@ApiModelProperty
(
value
=
"订单号"
)
private
String
no
;
@ApiModelProperty
(
value
=
"订单类型"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"订单明细"
)
@Column
(
name
=
"account_detail"
)
private
String
accountDetailStr
;
@ApiModelProperty
(
value
=
"用户姓名"
)
private
String
realname
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
username
;
@ApiModelProperty
(
value
=
"退款说明"
)
private
String
refundInstruction
;
@ApiModelProperty
(
value
=
"退款明细"
)
private
BigDecimal
refundAmount
=
BigDecimal
.
ZERO
;
public
String
getAccountDetailStr
()
{
return
accountDetailStr
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/Total
PerformanceStatement
.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/Total
OrderRevenue
.java
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
com.github.pagehelper.PageInfo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
...
...
@@ -18,7 +19,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
Total
PerformanceStatement
{
public
class
Total
OrderRevenue
{
@ApiModelProperty
(
value
=
"总订单数"
)
private
Integer
orderSum
;
@ApiModelProperty
(
value
=
"应收总额"
)
...
...
@@ -28,6 +29,6 @@ public class TotalPerformanceStatement {
@ApiModelProperty
(
value
=
"实收金额"
)
private
BigDecimal
actual
=
BigDecimal
.
ZERO
;
@ApiModelProperty
(
value
=
"数据明细"
)
private
List
<
Achievement
>
achievements
;
private
PageInfo
<
Achievement
>
achievements
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
507e3190
...
...
@@ -5,6 +5,8 @@ import cn.hutool.core.bean.copier.CopyOptions;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
...
...
@@ -913,11 +915,17 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
}
public
List
<
Achievement
>
selectTotalStatistical
(
QueryCriteria
queryCriteria
)
{
public
List
<
Achievement
>
entryStatisticalData
(
QueryCriteria
queryCriteria
)
{
return
mapper
.
selectTotalStatistical
(
queryCriteria
);
}
public
PageInfo
<
Achievement
>
getAchievementPageInfo
(
QueryCriteria
queryCriteria
)
{
PageHelper
.
startPage
(
queryCriteria
.
getPage
(),
queryCriteria
.
getLimit
());
List
<
Achievement
>
achievements
=
mapper
.
selectTotalStatistical
(
queryCriteria
);
return
new
PageInfo
<>(
achievements
);
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
View file @
507e3190
...
...
@@ -17,6 +17,8 @@ import com.xxfc.platform.order.contant.enumerate.*;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.mapper.OrderAccountMapper
;
import
com.xxfc.platform.order.pojo.DedDetailDTO
;
import
com.xxfc.platform.order.pojo.QueryCriteria
;
import
com.xxfc.platform.order.pojo.ReturnOrderAmount
;
import
com.xxfc.platform.order.pojo.Term
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDTO
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDeduction
;
...
...
@@ -649,4 +651,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
orderMsgBiz
.
handelMsgDeposit
(
orvd
,
baseOrder
,
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
());
}
public
List
<
ReturnOrderAmount
>
outStatisticalData
(
QueryCriteria
queryCriteria
)
{
return
mapper
.
outStatisticalData
(
queryCriteria
);
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/TotalPerformanceBiz.java
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.pagehelper.PageInfo
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.pojo.Achievement
;
import
com.xxfc.platform.order.pojo.QueryCriteria
;
import
com.xxfc.platform.order.pojo.TotalPerformanceStatement
;
import
com.xxfc.platform.order.pojo.ReturnOrderAmount
;
import
com.xxfc.platform.order.pojo.TotalOrderRevenue
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,30 +25,33 @@ import java.util.List;
public
class
TotalPerformanceBiz
{
private
final
BaseOrderBiz
baseOrderBiz
;
private
final
OrderAccountBiz
accountBiz
;
private
final
UserFeign
userFeign
;
/**
*
*
入账数据统计
* @param queryCriteria 查询条件
* @param userDTO 当前后台账号信息
*
*/
public
Total
PerformanceStatement
statisticalData
(
QueryCriteria
queryCriteria
,
UserDTO
userDTO
)
{
Integer
orderType
=
queryCriteria
.
getOrderType
();
List
<
Achievement
>
achievements
=
baseOrderBiz
.
selectTotalStatistical
(
queryCriteria
);
if
(
CollectionUtil
.
isEmpty
(
achievements
))
{
return
new
TotalPerformanceStatement
();
}
return
incomeDataProcessing
(
achievements
)
;
public
Total
OrderRevenue
entryStatisticalData
(
QueryCriteria
queryCriteria
)
{
//获取总数据
TotalOrderRevenue
totalOrderRevenue
=
incomeDataProcessing
(
queryCriteria
);
//设置订单明细并分页
getAchievementPageInfo
(
totalOrderRevenue
,
queryCriteria
);
return
totalOrderRevenue
;
}
/**
* 核算收益
* 核算
总
收益
* @return
* @param
achievements
* @param
queryCriteria
*/
private
TotalPerformanceStatement
incomeDataProcessing
(
List
<
Achievement
>
achievements
)
{
private
TotalOrderRevenue
incomeDataProcessing
(
QueryCriteria
queryCriteria
)
{
List
<
Achievement
>
achievements
=
baseOrderBiz
.
entryStatisticalData
(
queryCriteria
);
if
(
CollectionUtil
.
isEmpty
(
achievements
))
{
return
new
TotalOrderRevenue
();
}
//应收总额
BigDecimal
totalReceivables
=
BigDecimal
.
ZERO
;
//优惠总额
...
...
@@ -61,7 +63,7 @@ public class TotalPerformanceBiz {
actual
=
actual
.
add
(
achievement
.
getRealAmount
());
discount
=
discount
.
add
(
achievement
.
getOrderAmount
().
subtract
(
achievement
.
getRealAmount
()));
}
return
Total
PerformanceStatement
return
Total
OrderRevenue
.
builder
()
.
orderSum
(
achievements
.
size
())
.
totalReceivables
(
totalReceivables
)
...
...
@@ -70,4 +72,28 @@ public class TotalPerformanceBiz {
.
build
();
}
/**
* 设置支出明细
* @param totalOrderRevenue
* @param queryCriteria 条件
*/
private
void
getAchievementPageInfo
(
TotalOrderRevenue
totalOrderRevenue
,
QueryCriteria
queryCriteria
){
PageInfo
<
Achievement
>
achievementPageInfo
=
baseOrderBiz
.
getAchievementPageInfo
(
queryCriteria
);
totalOrderRevenue
.
setAchievements
(
achievementPageInfo
);
}
public
List
<
ReturnOrderAmount
>
outStatisticalData
(
QueryCriteria
queryCriteria
)
{
List
<
ReturnOrderAmount
>
returnOrderAmounts
=
accountBiz
.
outStatisticalData
(
queryCriteria
);
if
(
CollectionUtils
.
isEmpty
(
returnOrderAmounts
))
{
return
Lists
.
newArrayList
();
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderAccountMapper.java
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.OrderAccount
;
import
com.xxfc.platform.order.pojo.QueryCriteria
;
import
com.xxfc.platform.order.pojo.ReturnOrderAmount
;
import
com.xxfc.platform.order.pojo.Term
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDTO
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -19,4 +22,6 @@ import java.util.List;
public
interface
OrderAccountMapper
extends
Mapper
<
OrderAccount
>
{
List
<
OrderAccountDTO
>
getOrderAccountByOrderType
(
Term
term
);
List
<
ReturnOrderAmount
>
outStatisticalData
(
QueryCriteria
queryCriteria
);
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/TotalPerformanceStatementController.java
View file @
507e3190
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
com.alibaba.druid.sql.visitor.functions.If
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.CommonBaseController
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.biz.TotalPerformanceBiz
;
import
com.xxfc.platform.order.pojo.QueryCriteria
;
import
com.xxfc.platform.order.contant.enumerate.BookkeepingTypeEnum
;
import
com.xxfc.platform.order.pojo.TotalOrderRevenue
;
import
com.xxfc.platform.vehicle.entity.BranchCompany
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -20,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -48,29 +45,22 @@ public class TotalPerformanceStatementController extends CommonBaseController {
//获取用户权限
List
<
Integer
>
Jurisdiction
=
null
;
//判断是按选中的公司查询
Integer
companyId
=
queryCriteria
.
getCompanyId
();
if
(
companyId
!=
null
)
{
//判断查询的公司,是否在该后台用户的权限内
if
(
Jurisdiction
.
contains
(
companyId
))
{
Jurisdiction
=
Lists
.
newArrayList
(
companyId
);
}
}
//是否有查询所有数据的权限
if
(!
HIGHEST_AUTHORITY
.
equals
(
userDTO
.
getDataAll
()))
{
List
<
BranchCompany
>
branchCompanies
=
vehicleFeign
.
companyAll
(
userDTO
.
getDataAll
(),
userDTO
.
getDataCompany
(),
userDTO
.
getDataZone
());
List
<
Integer
>
companyIds
=
branchCompanies
.
parallelStream
().
map
(
BranchCompany:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
companyId
==
null
)
{
Jurisdiction
=
companyIds
;
}
else
{
if
(!
companyIds
.
contains
(
companyId
))
{
return
null
;
}
}
}
Jurisdiction
=
branchCompanies
.
parallelStream
().
map
(
BranchCompany:
:
getId
).
collect
(
Collectors
.
toList
());
}
queryCriteria
.
setJurisdiction
(
Jurisdiction
);
totalPerformanceBiz
.
statisticalData
(
queryCriteria
,
userDTO
);
return
null
;
if
(
BookkeepingTypeEnum
.
ENTER
.
getCode
().
equals
(
queryCriteria
.
getType
()))
{
TotalOrderRevenue
totalOrderRevenue
=
totalPerformanceBiz
.
entryStatisticalData
(
queryCriteria
);
return
ObjectRestResponse
.
succ
(
totalOrderRevenue
);
}
else
if
(
BookkeepingTypeEnum
.
OUT
.
getCode
().
equals
(
queryCriteria
.
getType
())){
totalPerformanceBiz
.
outStatisticalData
(
queryCriteria
);
return
ObjectRestResponse
.
succ
();
}
return
ObjectRestResponse
.
succ
();
}
}
xx-order/xx-order-server/src/main/resources/mapper/BaseOrderMapper.xml
View file @
507e3190
...
...
@@ -412,28 +412,32 @@
</select>
<select
id=
"selectTotalStatistical"
parameterType=
"com.xxfc.platform.order.pojo.QueryCriteria"
resultType=
"com.xxfc.platform.order.pojo.Achievement"
>
select crt_time,no,type,order_amount,real_amount,realname,username,parentRealname,positionName,parentUsername,companyName,pay_way,company_id from order_user_position_company
<select
id=
"selectTotalStatistical"
parameterType=
"com.xxfc.platform.order.pojo.QueryCriteria"
resultType=
"com.xxfc.platform.order.pojo.Achievement"
>
select
crt_time,no,type,order_amount,real_amount,realname,username,parentRealname,positionName,parentUsername,companyName,pay_way,company_id
from order_user_position_company
<where>
<if
test=
"startDate != null"
>
crt_time
<![CDATA[>=]]>
#{startDate}
and
crt_time
<![CDATA[>=]]>
#{startDate}
</if>
<if
test=
"endDate != null"
>
crt_time
<![CDATA[<=]]>
#{endDate}
and
crt_time
<![CDATA[<=]]>
#{endDate}
</if>
<if
test=
"paymentMethod !=null"
>
pay_way = #{paymentMethod}
<if
test=
"paymentMethod !=null"
>
and
pay_way = #{paymentMethod}
</if>
<if
test=
"jurisdiction != null and jurisdiction.size() !=0 "
>
company_id in
and
company_id in
<foreach
collection=
"jurisdiction"
index=
"index"
item=
"companyId"
open=
"("
separator=
","
close=
")"
>
#{companyId}
</foreach>
</if>
<if
test=
"companyId != null "
>
and company_id =#{companyId}
</if>
<if
test=
"orderType != null"
>
type = #{orderType}
and
type = #{orderType}
</if>
order by crt_time DESC
</where>
...
...
xx-order/xx-order-server/src/main/resources/mapper/OrderAccountMapper.xml
View file @
507e3190
...
...
@@ -49,6 +49,27 @@
<if
test=
"subdivide !=null and subdivide ==1"
>
AND date( FROM_UNIXTIME( a.crt_time / 1000 ) ) = date( DATE_SUB( now( ), INTERVAL #{day} DAY ) )
</if>
</select>
<select
id=
"outStatisticalData"
resultType=
"com.xxfc.platform.order.pojo.ReturnOrderAmount"
>
select oa.crt_time as time ,oupc.no,oupc.type,oa.account_detail ,oupc.realname,oupc.username
from order_account oa
left join order_user_position_company oupc ON oa.order_id=oupc.id
WHERE oa.account_type!=101
<if
test=
"startDate != null"
>
and oa.crt_time
<![CDATA[>=]]>
#{startDate}
</if>
<if
test=
"endDate != null"
>
and oa.crt_time
<![CDATA[<=]]>
#{endDate}
</if>
<if
test=
"jurisdiction != null and jurisdiction.size() !=0 "
>
and oupc.company_id in
<foreach
collection=
"jurisdiction"
index=
"index"
item=
"companyId"
open=
"("
separator=
","
close=
")"
>
#{companyId}
</foreach>
</if>
<if
test=
"orderType != null"
>
and oupc.type = #{orderType}
</if>
order by oa.crt_time DESC
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment