From 0a27546e1491fcaee616683349218d0c35805947 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 27 一月 2026 10:33:00 +0800
Subject: [PATCH] 经销商管理
---
server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsorderController.java | 8 +
server/dmmall_service/src/main/java/com/doumee/service/business/WorkbenchService.java | 3
admin/src/views/index.vue | 135 +++++++++++++++++++++++----
server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java | 3
server/dmmall_service/src/main/java/com/doumee/dao/system/vo/NumberDataCountVO.java | 28 +++++
server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java | 3
server/dmmall_admin/src/main/java/com/doumee/api/business/WorkbenchController.java | 11 ++
admin/src/components/business/OperaGoodsOrderDetail.vue | 2
server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java | 87 +++++++++++++++++
admin/src/api/business/workbench.js | 10 ++
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 1
11 files changed, 267 insertions(+), 24 deletions(-)
diff --git a/admin/src/api/business/workbench.js b/admin/src/api/business/workbench.js
index 1b61405..1faead8 100644
--- a/admin/src/api/business/workbench.js
+++ b/admin/src/api/business/workbench.js
@@ -15,3 +15,13 @@
trim: true
})
}
+export function couponData (data) {
+ return request.post('/business/workbench/couponData', data, {
+ trim: true
+ })
+}
+export function integralData (data) {
+ return request.post('/business/workbench/integralData', data, {
+ trim: true
+ })
+}
diff --git a/admin/src/components/business/OperaGoodsOrderDetail.vue b/admin/src/components/business/OperaGoodsOrderDetail.vue
index 093ec81..b0271d0 100644
--- a/admin/src/components/business/OperaGoodsOrderDetail.vue
+++ b/admin/src/components/business/OperaGoodsOrderDetail.vue
@@ -105,7 +105,7 @@
<div class="info-item" >
<div class="info-item-a">杩旇繕鐢ㄦ埛绉垎锛�<span class="orange"> {{(info.returnMemberIntegral||0)}}</span></div>
<div class="info-item-a">杩旇繕缁忛攢鍟嗙Н鍒嗭細<span class="orange">{{info.returnCustomerIntegral || 0 }}</span></div>
- <div class="info-item-a"></div>
+ <div class="info-item-a">缁忛攢鍟嗛噾棰濓細<span class="orange"> 锟{(info.shopSettlement||0).toFixed(2)}}</span></div>
</div>
<div class="info-item"></div>
<div class="header">
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 34ad636..2cd5e29 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -56,7 +56,7 @@
<div class="change-style">
<div class="count-left">
<div class="item-title" style="display: flex;">
- <span style="flex: 1">缁忛攢鍟咺OP10</span>
+ <span style="flex: 1">缁忛攢鍟員OP10</span>
<div class="tab-item" style="text-align: right;flex: 1.5; ">
<span v-for="(item,index) in tabs1" :key="'tab'+index" :class="item.index==tabIndex1?'active-tab tab-btn':'tab-btn'" @click="changeTab1(item)">{{item.name}}</span>
</div>
@@ -98,7 +98,7 @@
<div class="tab-title" style="display: flex;align-items: center; ">
<span style="">钀ラ攢鏁版嵁鍒嗘瀽</span>
<div class="tab-item" style="margin-left: 20px;" >
- <el-date-picker style="width: 110px;height: 22px;margin-right: 10px;" v-model="searchForm.topYear2" type="year"
+ <el-date-picker style="width: 110px;height: 22px;margin-right: 10px;" v-model="searchForm.topYear2" type="year" @change="changeYear"
clearable value-format="yyyy" format="yyyy'骞�'" placeholder="骞翠唤" ></el-date-picker>
</div>
</div>
@@ -106,25 +106,26 @@
<div class="change-style">
<div class="count-left">
<div class="item-title">绉垎鍙戞斁绫诲瀷鍗犳瘮</div>
- <div class="bottom2" style="display: flex">
- <div ref="integralCount" style="flex: 1"></div>
- <div style="flex: 1;font-size: 14px;font-weight: 500;">
- <div>绱娑堣�楋細{{10000}}</div>
- <div>绱浼樻儬閲戦锛氾骏{{10000 }}</div>
+ <div class="bottom2" style="display: flex;align-items: center">
+ <div ref="integralCount" style="flex: 1;min-height: 200px;"></div>
+ <div style="flex: 1;font-size: 14px;font-weight: 500;margin-left: 20px;">
+ <div>绱鍙戞斁鏁伴噺锛歿{( dataList4.num || 0 ) +( dataList4.num1 || 0 )+( dataList4.num2 || 0 )+( dataList4.num3 || 0 )}}</div>
+ <div>绱娑堣�楋細{{ dataList4.useNum || 0 }}</div>
+ <div>绱浼樻儬閲戦锛氾骏{{(dataList4.price || 0 ).toFixed(2) }}</div>
</div>
</div>
</div>
<div class="count-right">
<div class="item-title">浼樻儬鍒稿彂鏀剧被鍨嬪崰姣�</div>
- <div class="bottom2">
- <div class="bottom2" style="display: flex">
- <div ref="couponCount" style="flex: 1"></div>
- <div style="flex: 1;font-size: 14px;font-weight: 500;">
- <div>宸蹭娇鐢ㄤ紭鎯犲埜锛歿{10000}}</div>
- <div>绱浼樻儬閲戦锛氾骏{{10000 }}</div>
+ <div class="bottom2" style="display: flex;align-items: center">
+ <div ref="couponCount" style="flex: 1;min-height: 200px;"></div>
+ <div style="flex: 1;font-size: 14px;font-weight: 500;margin-left: 20px;">
+ <div>绱鍙戞斁鏁伴噺锛歿{( dataList3.num || 0 ) +( dataList3.num1 || 0 )}}</div>
+ <div>宸蹭娇鐢ㄤ紭鎯犲埜锛歿{ dataList3.useNum || 0 }}</div>
+ <div>绱浼樻儬閲戦锛氾骏{{(dataList3.price || 0 ).toFixed(2) }}</div>
+ <div>淇冩垚浜ゆ槗閲戦锛氾骏{{(dataList3.orderPrice || 0 ).toFixed(2) }}</div>
</div>
</div>
- </div>
</div>
</div>
<div class="change-style" v-if="1==2">
@@ -150,6 +151,8 @@
loading1: false,
loading2: false,
loading3: false,
+ loading4: false,
+ loading5: false,
tabs2: [{ index: 0, name: '鎸夐攢閲�' }, { index: 1, name: '鎸夐攢鍞' }],
tabs1: [{ index: 0, name: '鎸夎鍗曢噺' }, { index: 1, name: '鎸夐攢鍞' }, { index: 2, name: '鎸変細鍛樻暟' }],
tabs: [{ index: 0, name: '浠婃棩' }, { index: 1, name: '杩�7鏃�' }, { index: 2, name: '杩�30鏃�' }, { index: 3, name: '杩�12鏈�' }],
@@ -181,8 +184,12 @@
},
dataList1: [],
dataList2: [],
+ dataList4: [],
+ dataList3: [],
myChart0: null,
- myChart1: null
+ myChart1: null,
+ myChart2: null,
+ myChart3: null
}
},
created () {
@@ -197,11 +204,37 @@
this.initTopData()
this.initShopRankData()
this.initGoodsRankData()
+ this.initIntegralData()
+ this.initCouponData()
},
methods: {
changeYearMonth(){
this.initGoodsRankData()
this.initShopRankData()
+ },
+ changeYear(){
+ this.initIntegralData()
+ this.initCouponData()
+ },
+ initCouponData () {
+ this.loading4 = true
+ this.api.couponData({year: this.searchForm.topYear2}).then(res => {
+ res = res || {}
+ this.dataList3 = res
+ this.renderEchartOption3()
+ }).finally(() => {
+ this.loading4 = false
+ })
+ },
+ initIntegralData () {
+ this.loading5 = true
+ this.api.integralData({ year: this.searchForm.topYear2}).then(res => {
+ res = res || {}
+ this.dataList4 = res
+ this.renderEchartOption2()
+ }).finally(() => {
+ this.loading5 = false
+ })
},
initShopRankData () {
this.loading2 = true
@@ -236,7 +269,7 @@
res.cateList = res.cateList || []
this.topData = res
this.renderEchartOption0()
- this.renderEchartOption2()
+ this.renderEchartOption1()
}).finally(() => {
this.loading1 = false
})
@@ -250,8 +283,18 @@
window.addEventListener('resize', () => {
this.myChart1.resize()
})
+ this.myChart2 = echarts.init(this.$refs.integralCount)
+ window.addEventListener('resize', () => {
+ this.myChart2.resize()
+ })
+ this.myChart3 = echarts.init(this.$refs.couponCount)
+ window.addEventListener('resize', () => {
+ this.myChart3.resize()
+ })
this.renderEchartOption0()
+ this.renderEchartOption1()
this.renderEchartOption2()
+ this.renderEchartOption3()
},
changeTab (item) {
if (this.loading1) {
@@ -336,7 +379,7 @@
]
})
},
- renderEchartOption2 () {
+ renderEchartOption1 () {
const series = []
this.topData.cateList.forEach((item, index) => {
series.push( {
@@ -347,7 +390,7 @@
label: {
// show: true
},
- data: item.data||[]
+ data: item.data || []
})
})
this.myChart1.setOption({
@@ -375,10 +418,62 @@
boundaryGap: false,
data: this.topData.dateStrList || []
},
- yAxis: { type: 'value' } ,
+ yAxis: { type: 'value' },
series
})
- }
+ },
+ renderEchartOption2() {
+ this.myChart2.setOption({
+ tooltip: {
+ trigger: 'item'
+ },
+ series: [
+ {
+ name: 'Access From',
+ type: 'pie',
+ radius: '50%',
+ data: [
+ { value: this.dataList4.num || 0, name: '鎵嬪姩澧炲姞' },
+ { value: this.dataList4.num1 || 0, name: '閭�璇峰ソ鍙�' },
+ { value: this.dataList4.num2 || 0, name: '娑堣垂杩斿埄' },
+ { value: this.dataList4.num3 || 0, name: '娉ㄥ唽璧犻��' }
+ ],
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }
+ ]
+ })
+ },
+ renderEchartOption3() {
+ this.myChart3.setOption({
+ tooltip: {
+ trigger: 'item'
+ },
+ series: [
+ {
+ name: '浼樻儬鍒稿彂鏀�',
+ type: 'pie',
+ radius: '50%',
+ data: [
+ { value: this.dataList3.num1 || 0, name: '鎶樻墸鍒�' },
+ { value: this.dataList3.num || 0, name: '婊″噺鍒�' }
+ ],
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }
+ ]
+ })
+ },
}
}
</script>
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsorderController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsorderController.java
index 4cf2711..7c29c2a 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsorderController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -12,6 +12,8 @@
import com.doumee.core.utils.kuaidi100.ExpressUtils;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.GoodsorderExport;
+import com.doumee.dao.web.request.AfterSaleApplyRequest;
+import com.doumee.service.business.AftersaleService;
import com.doumee.service.business.GoodsorderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -36,6 +38,8 @@
@Autowired
private GoodsorderService goodsorderService;
+ @Autowired
+ private AftersaleService aftersaleService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -140,8 +144,8 @@
@ApiOperation("璁㈠崟閫�娆�")
@PostMapping("/orderRefund")
@RequiresPermissions("business:goodsorder:update")
- public ApiResponse orderRefund(@RequestBody Goodsorder goodsorder) {
- goodsorderService.orderRefund(goodsorder);
+ public ApiResponse orderRefund(@RequestBody AfterSaleApplyRequest goodsorder) {
+ aftersaleService.afterSaleApply(goodsorder);
return ApiResponse.success(null);
}
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/WorkbenchController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/WorkbenchController.java
index 6b7afac..b92b655 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/WorkbenchController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/WorkbenchController.java
@@ -7,6 +7,7 @@
import com.doumee.dao.system.dto.CountDataDTO;
import com.doumee.dao.system.vo.BusinessDataCountVO;
import com.doumee.dao.system.vo.CountDataVO;
+import com.doumee.dao.system.vo.NumberDataCountVO;
import com.doumee.service.business.FundService;
import com.doumee.service.business.WorkbenchService;
import io.swagger.annotations.Api;
@@ -34,6 +35,16 @@
public ApiResponse<BusinessDataCountVO> businessData(@RequestBody CountDataDTO param) {
return ApiResponse.success(workbenchService.businessData(param));
}
+ @ApiOperation("绉垎鍙戞斁鏁版嵁缁熻")
+ @PostMapping("/integralData")
+ public ApiResponse<NumberDataCountVO> integralData(@RequestBody CountDataDTO param) {
+ return ApiResponse.success(workbenchService.integralData(param));
+ }
+ @ApiOperation("浼樻儬鍒稿彂鏀炬暟鎹粺璁�")
+ @PostMapping("/couponData")
+ public ApiResponse<NumberDataCountVO> couponData(@RequestBody CountDataDTO param) {
+ return ApiResponse.success(workbenchService.couponData(param));
+ }
@ApiOperation("缁忛攢鍟員OP10")
@PostMapping("/shopRankList10")
public ApiResponse<List<BusinessDataCountVO>> shopRankList10(@RequestBody CountDataDTO param) {
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
index f607b6e..9bf145e 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
@@ -7,6 +7,7 @@
import com.doumee.dao.business.model.MemberCoupon;
import com.doumee.dao.web.dto.CouponDTO;
import com.doumee.dao.web.response.MemberCouponResponse;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -14,7 +15,7 @@
* @author 姹熻箘韫�
* @date 2023/03/21 15:48
*/
-public interface MemberCouponMapper extends BaseMapper<MemberCoupon> {
+public interface MemberCouponMapper extends MPJJoinMapper<MemberCoupon> {
@Select(" select m.* " +
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
index 9d6bff5..1b3922e 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
@@ -117,6 +117,9 @@
@TableField(exist = false)
@ExcelColumn(name="鐢ㄦ埛",width = 10,index = 1)
private String nikeName;
+ @ApiModelProperty(value = "缁熻鏁伴噺")
+ @TableField(exist = false)
+ private Long num;
@ApiModelProperty(value = "鍏宠仈璁㈠崟鍙峰彿")
@ExcelColumn(name="鍏宠仈璁㈠崟鍙�",width = 10,index = 10)
@TableField(exist = false)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/vo/NumberDataCountVO.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/vo/NumberDataCountVO.java
new file mode 100644
index 0000000..686c236
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/vo/NumberDataCountVO.java
@@ -0,0 +1,28 @@
+package com.doumee.dao.system.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("绉垎銆佷紭鎯犲埜鍙戞斁缁熻鏁版嵁")
+public class NumberDataCountVO {
+ @ApiModelProperty(value = "绉垎鎵嬪姩澧炲姞銆佹弧鍑忎紭鎯犲埜鏁伴噺")
+ private Long num;
+ @ApiModelProperty(value = "绉垎閭�璇峰ソ鍙嬪鍔犮�佹姌鎵e埜鏁版嵁")
+ private Long num1;
+ @ApiModelProperty(value = "绉垎娑堣垂杩斿埄澧炲姞")
+ private Long num2;
+ @ApiModelProperty(value = "绉垎娉ㄥ唽璧犻�佸鍔�")
+ private Long num3;
+ @ApiModelProperty(value = "绱娑堣�楃Н鍒嗐�佺疮璁′娇鐢ㄤ紭鎯犲埜鏁伴噺")
+ private Long useNum;
+ @ApiModelProperty(value = "绱浼樻儬閲戦")
+ private BigDecimal price;
+ @ApiModelProperty(value = "绱浜ゆ槗閲戦")
+ private BigDecimal orderPrice;
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/WorkbenchService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/WorkbenchService.java
index 170ac07..c650c02 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/WorkbenchService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/WorkbenchService.java
@@ -6,6 +6,7 @@
import com.doumee.dao.system.dto.CountDataDTO;
import com.doumee.dao.system.vo.BusinessDataCountVO;
import com.doumee.dao.system.vo.CountDataVO;
+import com.doumee.dao.system.vo.NumberDataCountVO;
import java.util.List;
@@ -16,6 +17,8 @@
*/
public interface WorkbenchService {
+ NumberDataCountVO integralData(CountDataDTO param);
+ NumberDataCountVO couponData(CountDataDTO param);
BusinessDataCountVO businessData(CountDataDTO param);
List<BusinessDataCountVO> shopRankList10(CountDataDTO param);
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 0d71799..277edae 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1845,6 +1845,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曟湭瀹屾垚锛屾棤娉曢��娆撅紒");
}
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
index 0a6262c..c8e576b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
@@ -23,6 +23,7 @@
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.system.vo.BusinessDataCountVO;
import com.doumee.dao.system.vo.CountDataVO;
+import com.doumee.dao.system.vo.NumberDataCountVO;
import com.doumee.dao.web.dto.CollectDTO;
import com.doumee.dao.web.dto.MemberDTO;
import com.doumee.dao.web.dto.MultiFileDTO;
@@ -59,6 +60,12 @@
public class WorkbenchServiceImpl implements WorkbenchService {
@Autowired
private GoodsorderMapper goodsorderMapper;
+ @Autowired
+ private MemberCouponMapper memberCouponMapper;
+ @Autowired
+ private InviteRecordMapper inviteRecordMapper;
+ @Autowired
+ private IntegralMapper integralMapper;
@Autowired
private GoodsorderDetailMapper goodsorderDetailMapper;
@Override
@@ -122,6 +129,86 @@
return list1;
}
@Override
+ public NumberDataCountVO couponData(CountDataDTO param){
+ NumberDataCountVO data = new NumberDataCountVO();
+ //鍙戞斁绫诲瀷缁熻
+ List<MemberCoupon> r1 = memberCouponMapper.selectList(new MPJLambdaWrapper<MemberCoupon>()
+ .select("(select count(t.id) )",MemberCoupon::getNum)
+ .select( MemberCoupon::getCouponType)
+ .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+ .eq(MemberCoupon::getIsdeleted,Constants.ZERO)
+ .groupBy(MemberCoupon::getCouponType));
+ if(r1!=null){
+ for(MemberCoupon c : r1){
+ if(Constants.equalsInteger(c.getCouponType(),Constants.ZERO)){
+ data.setNum(Constants.formatLongNum(c.getNum()));//婊″噺鍒�
+ }else{
+ data.setNum1(Constants.formatLongNum(c.getNum()));//婊″噺鍒�
+ }
+ }
+ }
+ //宸蹭娇鐢�
+ Long r2 = memberCouponMapper.selectCount(new MPJLambdaWrapper<MemberCoupon>()
+ .apply(param.getYear()!=null,"YEAR ( t.use_Date )="+param.getYear() )
+ .eq(MemberCoupon::getIsdeleted,Constants.ZERO));
+ data.setUseNum(Constants.formatLongNum(r2));
+ //浼樻儬閲戦鍜屼氦鏄撻噾棰�
+ Goodsorder r3 = goodsorderMapper.selectOne(new MPJLambdaWrapper<Goodsorder>()
+ .select("(select sum(t.total_price) )",Goodsorder::getTotalPrice)
+ .select("(select sum(t.coupon_price) )",Goodsorder::getCouponPrice)
+ .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey(),Constants.OrderStatus.REFUND.getKey()) );
+ if(r3!=null){
+ data.setPrice(Constants.formatBigdecimal(r3.getCouponPrice()));
+ data.setOrderPrice(Constants.formatBigdecimal(r3.getTotalPrice()));
+ }
+ return data;
+
+ }
+ @Override
+ public NumberDataCountVO integralData(CountDataDTO param){
+ NumberDataCountVO data = new NumberDataCountVO();
+ //鍙戞斁绉垎绫诲瀷缁熻
+ List<Integral> r1 = integralMapper.selectList(new MPJLambdaWrapper<Integral>()
+ .select("(select sum(t.num) )",Integral::getNum)
+ .select( Integral::getObjType)
+ .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+ .eq(Integral::getIsdeleted,Constants.ZERO)
+ .eq(Integral::getType,Constants.ZERO)
+ .in(Integral::getObjType,Constants.IntegralObjType.REGISTER.getKey(),
+ Constants.IntegralObjType.INVITENEWUSER.getKey(),
+ Constants.IntegralObjType.ORDER_DONATE.getKey(),
+ Constants.IntegralObjType.SYSTEM_RECHARGE.getKey())
+ .groupBy(Integral::getObjType));
+ if(r1!=null){
+ for(Integral c : r1){
+ if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.SYSTEM_RECHARGE.getKey())){
+ data.setNum(Constants.formatBigdecimal(c.getNum()).longValue());//骞冲彴娣诲姞
+ }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.INVITENEWUSER.getKey())){
+ data.setNum1(Constants.formatBigdecimal(c.getNum()).longValue());//閭�璇�
+ }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.ORDER_DONATE.getKey())){
+ data.setNum2(Constants.formatBigdecimal(c.getNum()).longValue());//娑堣垂杩斿埄
+ }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.REGISTER.getKey())){
+ data.setNum3(Constants.formatBigdecimal(c.getNum()).longValue());//娉ㄥ唽
+ }
+ }
+ }
+ //浼樻儬閲戦鍜屼氦鏄撻噾棰�
+ Goodsorder r3 = goodsorderMapper.selectOne(new MPJLambdaWrapper<Goodsorder>()
+ .select("(select sum(t.integral) )",Goodsorder::getIntegral)
+ .select("(select sum(t.use_integral) )",Goodsorder::getUseIntegral)
+ .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey(),Constants.OrderStatus.REFUND.getKey()) );
+ if(r3!=null){
+ data.setUseNum(Constants.formatBigdecimal(r3.getUseIntegral()).longValue());
+ data.setPrice(Constants.formatBigdecimal(r3.getIntegral()));
+ }
+ return data;
+
+ }
+ @Override
public BusinessDataCountVO businessData(CountDataDTO param) {
BusinessDataCountVO data = new BusinessDataCountVO();
int dataType = param.getDateType();//0浠婃棩 1杩戜竷鏃� 2杩�30鏃� 3杩�1骞�
--
Gitblit v1.9.3