From eec6d612475e5080a9d3148d9c6ef20104a77b13 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 19 一月 2026 11:06:38 +0800
Subject: [PATCH] 经销商管理
---
admin/src/api/business/member.js | 4 -
admin/src/components/business/OperaMemberDetail.vue | 15 +--
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java | 10 +-
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 1
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java | 79 +++++++++++++++++++
server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java | 8 +
admin/src/api/business/integral.js | 4 +
server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java | 7 -
admin/src/components/business/OperaChangeIntegralWindow.vue | 7 +
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java | 2
admin/src/views/business/integral.vue | 6 -
server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java | 2
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 59 --------------
server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java | 1
14 files changed, 112 insertions(+), 93 deletions(-)
diff --git a/admin/src/api/business/integral.js b/admin/src/api/business/integral.js
index fc283de..c7c6765 100644
--- a/admin/src/api/business/integral.js
+++ b/admin/src/api/business/integral.js
@@ -14,3 +14,7 @@
download: true
})
}
+
+export function updateIntegral (data) {
+ return request.post('/business/integral/updateIntegral', data)
+}
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index a47c83e..fed275e 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -17,10 +17,6 @@
export function updateShop (data) {
return request.post('/business/member/updateShop', data)
}
-export function updateIntegral (data) {
- return request.post('/business/member/updateIntegral', data)
-}
-
export function updateById (data) {
return request.post('/business/member/updateById', data)
}
diff --git a/admin/src/components/business/OperaChangeIntegralWindow.vue b/admin/src/components/business/OperaChangeIntegralWindow.vue
index 97f1cd9..ec60a63 100644
--- a/admin/src/components/business/OperaChangeIntegralWindow.vue
+++ b/admin/src/components/business/OperaChangeIntegralWindow.vue
@@ -30,7 +30,6 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
-import { allList as shopList } from '@/api/business/shop'
export default {
name: 'OperaChangeShopWindow',
extends: BaseOpera,
@@ -43,6 +42,7 @@
form: {
memberId: null,
remark: null,
+ userType:null,
num: null,
type: 0
},
@@ -58,7 +58,7 @@
},
created () {
this.config({
- api: '/business/member',
+ api: '/business/integral',
'field.id': 'id'
})
},
@@ -83,11 +83,12 @@
})
})
},
- open (title, target) {
+ open (title, target,userType) {
this.title = title
this.visible = true
this.info = target
this.form.type = 0
+ this.form.userType = 0
this.form.memberId = target.id
this.form.num = null
this.form.remark = null
diff --git a/admin/src/components/business/OperaMemberDetail.vue b/admin/src/components/business/OperaMemberDetail.vue
index 20b0145..f7ac9a6 100644
--- a/admin/src/components/business/OperaMemberDetail.vue
+++ b/admin/src/components/business/OperaMemberDetail.vue
@@ -60,6 +60,7 @@
</el-table-column>
<el-table-column prop="num" label="鏁伴噺" fixed align="center" min-width="100px"> </el-table-column>
<el-table-column prop="strObjType" label="娑堣垂绫诲瀷" align="center" min-width="100px"></el-table-column>
+ <el-table-column prop="content" label="娑堣垂鍐呭" align="center" min-width="150px" show-overflow-tooltip></el-table-column>
<el-table-column prop="orderCode" label="鍏宠仈璁㈠崟" align="center" min-width="150px"></el-table-column>
<el-table-column prop="remark" label="澶囨敞" align="center" min-width="200px"></el-table-column>
<el-table-column prop="createDate" label="鍙樺姩鏃堕棿" align="center" min-width="200px"></el-table-column>
@@ -92,7 +93,7 @@
export default {
name: 'OperaShopGoodsWindow',
extends: BaseTable,
- components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow,OperaChangeIntegralWindow },
+ components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow, OperaChangeIntegralWindow },
data () {
return {
title: '',
@@ -117,19 +118,15 @@
})
},
methods: {
- successBiz(){
+ successBiz () {
this.handlePageChange()
this.loadInfo()
this.$emit('success')
},
- loadInfo(){
+ loadInfo () {
detail(this.info.id).then(res => {
- this.info =res || this.info
+ this.info = res || this.info
})
- },
- loadInfo(){
- this.handlePageChange()
- this.$emit('success')
},
showChangeRecord () {
if (this.info) {
@@ -138,7 +135,7 @@
},
changeIntegral () {
if (this.info) {
- this.$refs.OperaChangeIntegralWindow.open('瀹㈡埛绉垎璋冩暣', this.info)
+ this.$refs.OperaChangeIntegralWindow.open('瀹㈡埛绉垎璋冩暣', this.info, 0)
}
},
open (title, goods) {
diff --git a/admin/src/views/business/integral.vue b/admin/src/views/business/integral.vue
index 87fe4ca..012a1a3 100644
--- a/admin/src/views/business/integral.vue
+++ b/admin/src/views/business/integral.vue
@@ -73,9 +73,7 @@
</template>
</el-table-column>
<el-table-column prop="num" align="center" label="鏁伴噺" min-width="100px"></el-table-column>
-<!--
<el-table-column prop="totalNum" align="center" label="褰撳墠浣欓" min-width="100px"></el-table-column>
--->
<el-table-column prop="strObjType" align="center" label="娑堣垂绫诲瀷" min-width="100px"></el-table-column>
<el-table-column prop="orderCode" align="center" label="浜ゆ槗鍗曞彿" min-width="100px"></el-table-column>
<el-table-column prop="content" align="center" label="鏀舵敮璇存槑" min-width="100px"></el-table-column>
@@ -134,7 +132,7 @@
this.searchForm.endDate = ''
this.$refs.searchForm.resetFields()
this.search()
- },
- },
+ }
+ }
}
</script>
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java
index 4cfcad6..3d8ebd4 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java
@@ -61,7 +61,13 @@
integralService.deleteByIdInBatch(idList);
return ApiResponse.success(null);
}
-
+ @ApiOperation("璋冩暣绉垎")
+ @PostMapping("/updateIntegral")
+ @RequiresPermissions("business:member:update")
+ public ApiResponse updateIntegral(@RequestBody Integral param) {
+ integralService.updateIntegral(param);
+ return ApiResponse.success(null);
+ }
@ApiOperation("鏍规嵁ID淇敼")
@PostMapping("/updateById")
@RequiresPermissions("business:integral:update")
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java
index 2d732a7..5d92440 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -80,13 +80,6 @@
memberService.updateShop(member);
return ApiResponse.success(null);
}
- @ApiOperation("璋冩暣绉垎")
- @PostMapping("/updateIntegral")
- @RequiresPermissions("business:member:update")
- public ApiResponse updateIntegral(@RequestBody Integral param) {
- memberService.updateIntegral(param);
- return ApiResponse.success(null);
- }
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
index 644b673..d7b26b3 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -866,13 +866,13 @@
SHOP_YEAR_SETTLEMENT(18,"绉垎杩囨湡","绉垎杩囨湡锛屾秷鑰�${param}绉垎",0,0),
- ORDER_DONE_AMOUNT(16,"璁㈠崟缁撶畻閲戦","璁㈠崟缁撶畻閲戦",0,1),
- WITHDRAW_APPLY(17,"鎻愮幇","鎻愮幇",0,1),
- WITHDRAW_APPLY_BACK(19,"鎻愮幇鍙栨秷","浣欓鎻愮幇鍙栨秷閫�鍥�",0,1),
- ORDER_DONE_AMOUNT_BACK(20,"璁㈠崟缁撶畻閫�鍥�","璁㈠崟缁撶畻閫�鍥為��鍥�",0,1),
+ ORDER_DONE_AMOUNT(16,"璁㈠崟缁撶畻","${param}璁㈠崟缁撶畻鎴愬姛锛岃幏寰楋骏${param1}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
+ WITHDRAW_APPLY(17,"浣欓鎻愮幇","浣欓鎻愮幇宸叉彁浜わ紝娑堣�楋骏${param}鍏�",0,1),
+ WITHDRAW_APPLY_BACK(19,"鎻愮幇閫�鍥�","浣欓鎻愮幇澶辫触锛岃幏寰楋骏${param}鍏�",0,1),
+ ORDER_DONE_AMOUNT_BACK(20,"璁㈠崟缁撶畻閫�鍥�","${param}璁㈠崟缁撶畻閫�鍥烇紝娑堣�楋骏${param1}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
- SHOP_ORDER(21,"娑堣垂杩旂Н鍒�","浼氬憳${param}浜ゆ槗鎴愬姛锛岃幏寰�${param1}绉垎",0,0),
+ SHOP_ORDER(21,"娑堣垂杩旂Н鍒�","浼氬憳${param}浜ゆ槗鎴愬姛锛岃幏寰�${param1}绉垎",0,0),//${param}鏄电О-鎵嬫満鍙�
SHOP_ORDER_CANCEL(22,"閫�鍗曟墸闄�","浜ゆ槗閫�娆鹃��鍥烇紝娑堣��100绉垎",0,0),
SHOP_SYSTEM_RECHARGE(23,"绉垎鍙戞斁","骞冲彴濂栧姳锛岃幏寰�${param}绉垎",0,0),
SHOP_SYSTEM_DEDUCT(24,"绉垎鎵i櫎","骞冲彴鎵e噺锛屾秷鑰�${param}绉垎",0,0),
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
index 5986bcf..52028d5 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
@@ -152,5 +152,7 @@
* @return
*/
IntegralDataResponse getIntegralData(IntegralRecordDTO model);
+
+ void updateIntegral(Integral param);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
index 6e89bfa..af571b1 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -197,5 +197,4 @@
void updateShop(Member member);
- void updateIntegral(Integral param);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java
index eea1737..9aa503c 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Integral;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.web.dto.MemberDTO;
@@ -212,4 +213,5 @@
String setGoodsPrice(Shop shop);
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
index 7838eb0..0ba089a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -422,7 +422,86 @@
return PageData.from(result);
}
+ @Override
+ @Transactional
+ public void updateIntegral(Integral param) {
+ if(param.getMemberId()==null || param.getType()==null
+ || param.getType()<0
+ || param.getType()>2
+ || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ Date date = new Date();
+ Integral integral = new Integral();
+ Constants.IntegralObjType integralObjType =null;
+ if(Constants.equalsInteger(param.getUserType(), Constants.ZERO)){
+ MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Member.class);
+ queryWrapper.selectAs(Shop::getName,Member::getShopName);
+ queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId);
+ queryWrapper.eq(Member::getId,param.getMemberId());
+ Member model = memberMapper.selectJoinOne(Member.class,queryWrapper);
+ if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀹㈡埛淇℃伅鏌ヨ鏃犳晥锛�");
+ }
+
+ BigDecimal num = param.getNum();
+ if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
+ //濡傛灉鏄噺灏戯紝鍒ゆ柇鐢ㄦ埛浣欓鏄惁婊¤冻
+ num = num.multiply(new BigDecimal(-1));//鍑忓皯
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛璐︽埛浣欓涓嶈冻锛�");
+ }
+ //璐︽埛浣欓
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .eq(Member::getId,model.getId())
+ .set(Member::getEditDate,date)
+ .set(Member::getEditor,user.getId())
+ .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//绱澧炲姞
+ .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
+ .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
+
+ integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
+ integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
+ }else{
+ Shop model = shopMapper.selectById(param.getMemberId());
+ if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"缁忛攢鍟嗕俊鎭煡璇㈡棤鏁堬紒");
+ }
+ BigDecimal num = param.getNum();
+ if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
+ //濡傛灉鏄噺灏戯紝鍒ゆ柇鐢ㄦ埛浣欓鏄惁婊¤冻
+ num = num.multiply(new BigDecimal(-1));//鍑忓皯
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"缁忛攢鍟嗚处鎴风Н鍒嗕綑棰濅笉瓒筹紒");
+ }
+ //璐︽埛浣欓
+ shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
+ .eq(Shop::getId,model.getId())
+ .set(Shop::getEditDate,date)
+ .set(Shop::getEditor,user.getId())
+ .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//绱澧炲姞
+ .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
+ .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
+
+ integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
+ integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
+ }
+ integral.setCreateDate(new Date());
+ integral.setCreator(user.getId());
+ integral.setIsdeleted(Constants.ZERO);
+ integral.setNum(param.getNum());
+ integral.setTitle(integralObjType.getName());
+ integral.setContent(integralObjType.getNoteinfo().replace("${param}",integral.getNum().toString()));
+ integral.setMemberId(param.getMemberId());
+ integral.setObjId(param.getMemberId());
+ integral.setObjType(integralObjType.getKey());
+ integral.setType(param.getType());
+ integral.setRemark(param.getRemark());
+ integral.setOrderCode(null);
+ integral.setUserType(Constants.ZERO);
+ integralMapper.insert(integral);
+ }
@Override
public IntegralDataResponse getIntegralData(IntegralRecordDTO model){
IntegralDataResponse integralDataResponse = new IntegralDataResponse();
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 29176f7..f405e38 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -188,65 +188,6 @@
JSONObject.toJSONString(member) ,
model.getShopName(), shop.getName());
}
- @Override
- @Transactional
- public void updateIntegral(Integral param) {
- if(param.getMemberId()==null || param.getType()==null
- || param.getType()<0
- || param.getType()>2
- || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
- }
-
- MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
- queryWrapper.selectAll(Member.class);
- queryWrapper.selectAs(Shop::getName,Member::getShopName);
- queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId);
- queryWrapper.eq(Member::getId,param.getMemberId());
- Member model = memberMapper.selectJoinOne(Member.class,queryWrapper);
- if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀹㈡埛淇℃伅鏌ヨ鏃犳晥锛�");
- }
-
- BigDecimal num = param.getNum();
- if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
- //濡傛灉鏄噺灏戯紝鍒ゆ柇鐢ㄦ埛浣欓鏄惁婊¤冻
- num = num.multiply(new BigDecimal(-1));//鍑忓皯
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛璐︽埛浣欓涓嶈冻锛�");
- }
-
- LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
- Date date = new Date();
- //璐︽埛浣欓
- memberMapper.update(null,new UpdateWrapper<Member>().lambda()
- .eq(Member::getId,model.getId())
- .set(Member::getEditDate,date)
- .set(Member::getEditor,user.getId())
- .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//绱澧炲姞
- .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
- .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
-
- Constants.IntegralObjType integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
-
- Integral integral = new Integral();
- integral.setMemberId(model.getId());
- integral.setCreateDate(new Date());
- integral.setCreator(user.getId());
- integral.setIsdeleted(Constants.ZERO);
- integral.setTitle(integralObjType.getName());
- integral.setContent(integralObjType.getNoteinfo());
- integral.setObjId(model.getId());
- integral.setObjType(integralObjType.getKey());
- integral.setType(param.getType());
- integral.setRemark(param.getRemark());
- integral.setNum(param.getNum());
- integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
- integral.setOrderCode(null);
- integral.setUserType(Constants.ZERO);
- integralMapper.insert(integral);
-
- }
@Override
public void updateByIdInBatch(List<Member> members) {
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index ee8f7e8..895268e 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -337,6 +337,7 @@
return shop;
}
+
@Override
public Shop findOne(Shop shop) {
QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop);
--
Gitblit v1.9.3