From 36e617a6f1bfdec28104a1fa427b9e5d189213c6 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 13 十月 2023 18:09:07 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev
---
admin/src/assets/images/404-tip.png | 0
admin/src/api/business/backgroundRefund.js | 17 ++
server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java | 20 +++
server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java | 4
admin/src/assets/images/404.png | 0
server/platform/src/main/java/com/doumee/api/business/ActionLogController.java | 2
admin/src/views/business/bikeLocation.vue | 3
admin/src/views/business/backgroundRefund.vue | 103 +++++++++++++++++
server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java | 67 +++++++---
admin/src/api/business/actionLog.js | 17 ++
admin/src/views/business/actionLog.vue | 82 +++++++++++++
server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java | 5
12 files changed, 294 insertions(+), 26 deletions(-)
diff --git a/admin/src/api/business/actionLog.js b/admin/src/api/business/actionLog.js
new file mode 100644
index 0000000..2bf436e
--- /dev/null
+++ b/admin/src/api/business/actionLog.js
@@ -0,0 +1,17 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/actionLog/findRidePae', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/actionLog/exportRideExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
diff --git a/admin/src/api/business/backgroundRefund.js b/admin/src/api/business/backgroundRefund.js
new file mode 100644
index 0000000..34b6f60
--- /dev/null
+++ b/admin/src/api/business/backgroundRefund.js
@@ -0,0 +1,17 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/refund/findPlatPage', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/refund/exportPlatExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
diff --git a/admin/src/assets/images/404-tip.png b/admin/src/assets/images/404-tip.png
new file mode 100644
index 0000000..5182634
--- /dev/null
+++ b/admin/src/assets/images/404-tip.png
Binary files differ
diff --git a/admin/src/assets/images/404.png b/admin/src/assets/images/404.png
new file mode 100644
index 0000000..a386e02
--- /dev/null
+++ b/admin/src/assets/images/404.png
Binary files differ
diff --git a/admin/src/views/business/actionLog.vue b/admin/src/views/business/actionLog.vue
new file mode 100644
index 0000000..5eded99
--- /dev/null
+++ b/admin/src/views/business/actionLog.vue
@@ -0,0 +1,82 @@
+<template>
+ <TableLayout :permissions="['business:actionLog:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+
+ <el-form-item label="鐢ㄦ埛" prop="openid">
+ <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏ョ敤鎴�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="杞﹁締缂栫爜" prop="bikeCode">
+ <el-input v-model="searchForm.bikeCode" placeholder="璇疯緭鍏ヨ溅杈嗙紪鐮�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔浜�" prop="creator">
+ <el-select v-model="searchForm.userId" placeholder="璇烽�夋嫨">
+ <el-option label="鏈綊杩�" :value="1">
+ </el-option>
+ <el-option label="宸插綊杩�" :value="1">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:actionLog:exportExcel']">
+ <li>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:actionLog:exportExcel']"
+ @click="exportExcel">瀵煎嚭</el-button>
+ </li>
+ </ul>
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe border>
+ <el-table-column prop="openid" label="鐢ㄦ埛" min-width="180px" align="center"></el-table-column>
+ <el-table-column prop="bikeCode" label="杞﹁締缂栫爜" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="rentSiteId" label="鍊熷嚭绔欑偣" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="rentDate" label="鍊熷嚭鏃堕棿" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="type" label="璋冩暣绫诲瀷" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ <div>{{ row.type == 0 ? '寮哄埗杩樿溅' : '楠戣鏃堕暱淇敼' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="creator" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="actReason" label="鍘熷洜" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="paactInforamId" label="澶囨敞" min-width="100px" align="center"></el-table-column>
+ </el-table>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+ </pagination>
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+export default {
+ name: 'MemberRides',
+ extends: BaseTable,
+ components: { TableLayout, Pagination },
+ data() {
+ return {
+ // 鎼滅储
+ searchForm: {
+ openid: '',
+ creator: '',
+ bikeCode: '',
+ },
+ }
+ },
+ created() {
+ this.config({
+ module: '鐢ㄦ埛楠戣璁板綍琛�',
+ api: '/business/actionLog',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/backgroundRefund.vue b/admin/src/views/business/backgroundRefund.vue
new file mode 100644
index 0000000..607889c
--- /dev/null
+++ b/admin/src/views/business/backgroundRefund.vue
@@ -0,0 +1,103 @@
+<template>
+ <TableLayout :permissions="['business:actionLog:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+
+ <el-form-item label="鐢ㄦ埛" prop="openid">
+ <el-date-picker
+ v-model="value1"
+ type="daterange"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
+ @change="selectDate"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔浜�" prop="creator">
+ <el-select v-model="searchForm.creator" placeholder="璇烽�夋嫨">
+ <el-option label="鏈綊杩�" :value="1">
+ </el-option>
+ <el-option label="宸插綊杩�" :value="1">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:actionLog:exportExcel']">
+ <li>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:actionLog:exportExcel']"
+ @click="exportExcel">瀵煎嚭</el-button>
+ </li>
+ </ul>
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe border>
+ <el-table-column prop="openid" label="鐢ㄦ埛" min-width="180px" align="center"></el-table-column>
+ <el-table-column prop="payOnlineOrderid" label="绯荤粺鍗曞彿" min-width="100px" align="center"></el-table-column>
+ <!-- payOnlineOrderid 鏀粯鎶奸噾浜ゆ槗鍗曞彿 -->
+ <!-- onlineOrderid 鍦ㄧ嚎浜ゆ槗鍗曞彿 -->
+ <!-- preOrderid 浜ゆ槗棰勮鍗曞彿 -->
+ <el-table-column prop="onlineOrderid" label="浜ゆ槗鍗曞彿" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="canBalance" label="褰撳墠鍙��鍥炴娂閲�(鍏�)" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="money" label="閫�鍥炴娂閲�(鍏�)" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="creator" label="鎿嶄綔浜�" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="actReason" label="鍘熷洜" min-width="100px" align="center"></el-table-column>
+ </el-table>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+ </pagination>
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+export default {
+ name: 'MemberRides',
+ extends: BaseTable,
+ components: { TableLayout, Pagination },
+ data() {
+ return {
+ value1: [],
+ // 鎼滅储
+ searchForm: {
+ startDate: '',
+ endDate: '',
+ creator: '',
+ },
+ }
+ },
+ created() {
+ this.config({
+ module: '鐢ㄦ埛楠戣璁板綍琛�',
+ api: '/business/backgroundRefund',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ selectDate(v) {
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
+ if (v) {
+ this.searchForm.startDate = v[0]
+ this.searchForm.endDate = v[1]
+ }
+ this.search()
+ },
+ reset() {
+ this.searchForm.startDate = ''
+ this.searchForm.endDate = ''
+ this.value1 = []
+ this.search()
+ },
+ },
+}
+</script>
diff --git a/admin/src/views/business/bikeLocation.vue b/admin/src/views/business/bikeLocation.vue
index e3932e5..ec5987d 100644
--- a/admin/src/views/business/bikeLocation.vue
+++ b/admin/src/views/business/bikeLocation.vue
@@ -66,4 +66,7 @@
this.search()
}
}
+/**
+ *
+ */
</script>
diff --git a/server/platform/src/main/java/com/doumee/api/business/ActionLogController.java b/server/platform/src/main/java/com/doumee/api/business/ActionLogController.java
index 2fa0f30..067266d 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ActionLogController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ActionLogController.java
@@ -75,7 +75,7 @@
public ApiResponse<PageData<ActionLog>> findPage (@RequestBody PageWrap<ActionLog> pageWrap) {
return ApiResponse.success(actionLogService.findPage(pageWrap));
}
- @ApiOperation("鍒嗛〉鏌ヨ")
+ @ApiOperation("鍒嗛〉鏌ヨ-璋冩暣璁板綍")
@PostMapping("/findRidePae")
@RequiresPermissions("business:actionlog:query")
public ApiResponse<PageData<ActionLog>> findRidePae (@RequestBody PageWrap<ActionLog> pageWrap) {
diff --git a/server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java b/server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java
index f329cd4..c06e0d4 100644
--- a/server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java
@@ -3,6 +3,7 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.Constants;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
@@ -15,6 +16,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
@@ -34,7 +36,7 @@
@ApiOperation("鏂板缓")
@PostMapping("/create")
@RequiresPermissions("business:pricingdetail:create")
- public ApiResponse create(@RequestBody PricingDetail pricingDetail) {
+ public ApiResponse create(@RequestBody @Valid PricingDetail pricingDetail) {
return ApiResponse.success(pricingDetailService.create(pricingDetail));
}
@@ -87,4 +89,20 @@
public ApiResponse findById(@PathVariable String id) {
return ApiResponse.success(pricingDetailService.findById(id));
}
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param pricePramId 瀹炰綋瀵硅薄
+ * @return List<PricingDetail>
+ */
+ @ApiOperation("鏍规嵁瀹氫环閰嶇疆ID鏌ヨ")
+ @GetMapping("/findListByPricePramId")
+ @RequiresPermissions("business:pricingdetail:query")
+ public ApiResponse<List<PricingDetail>> findList(@RequestParam String pricePramId){
+ PricingDetail pricingDetail = new PricingDetail();
+ pricingDetail.setPricePramId(pricePramId);
+ pricingDetail.setIsdeleted(Constants.ZERO);
+ return ApiResponse.success(pricingDetailService.findList(pricingDetail));
+ }
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java b/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
index e87fb89..2581f7a 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/PricingDetail.java
@@ -10,6 +10,8 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.Date;
@@ -51,10 +53,12 @@
@ApiModelProperty(value = "瀹氫环鏂规缂栫爜(鍏宠仈price_param)")
@ExcelColumn(name="瀹氫环鏂规缂栫爜(鍏宠仈price_param)")
+ @NotBlank(message = "瀹氫环鏂规缂栫爜涓嶅厑璁镐负绌�")
private String pricePramId;
@ApiModelProperty(value = "杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級")
@ExcelColumn(name="杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級")
+ @NotBlank(message = "杞﹁締绫诲瀷涓嶅厑璁镐负绌�")
private String bikeTypeId;
@ApiModelProperty(value = "杞﹁締绫诲瀷缂栫爜(鍏宠仈bike_types琛級")
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
index b274ad8..c07143d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
@@ -45,28 +45,7 @@
@Override
public String create(PricingDetail pricingDetail) {
- if ((pricingDetail.getBaseTime() < 0) &&
- Objects.isNull(pricingDetail.getBasePrice())){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓�鍙d环浠锋牸涓嶅彲涓虹┖");
- }
-
- if ((pricingDetail.getBaseTime() > 0) &&
- (Objects.isNull(pricingDetail.getBasePrice())
- || Objects.isNull(pricingDetail.getUnitTime())
- || Objects.isNull(pricingDetail.getUnitPrice()))){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闃舵瀹氫环鍙傛暟涓嶅彲涓虹┖");
- }
-
- if ( Objects.isNull(pricingDetail.getBasePrice()) && (pricingDetail.getHolidayBasePrice().compareTo(BigDecimal.ZERO)<Constants.ZERO)
- ){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑺傚亣涓�鍙d环浠锋牸涓嶅彲涓虹┖");
- }
-
- if ((Objects.isNull(pricingDetail.getHolidayBasePrice())
- || Objects.isNull(pricingDetail.getHolidayBasePrice())
- || Objects.isNull(pricingDetail.getHolidayBasePrice()))&&(pricingDetail.getHolidayBasePrice().compareTo(BigDecimal.ZERO)>Constants.ZERO)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑺傚亣闃舵瀹氫环鍙傛暟涓嶅彲涓虹┖");
- }
+ checkPricingDetail(pricingDetail);
LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
PricingDetail insert = new PricingDetail();
insert.setCreateDate(new Date());
@@ -90,6 +69,46 @@
return pricingDetail.getId();
}
+ private void checkPricingDetail(PricingDetail pricingDetail){
+ if ((Objects.nonNull(pricingDetail.getBaseTime()) && pricingDetail.getBaseTime() < 0) &&
+ Objects.isNull(pricingDetail.getBasePrice())){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓�鍙d环浠锋牸涓嶅彲涓虹┖");
+ }
+
+ if ((Objects.nonNull(pricingDetail.getBaseTime()) && pricingDetail.getBaseTime() > 0) &&
+ (Objects.isNull(pricingDetail.getBasePrice())
+ || Objects.isNull(pricingDetail.getUnitTime())
+ || Objects.isNull(pricingDetail.getUnitPrice()))){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闃舵瀹氫环鍙傛暟涓嶅彲涓虹┖");
+ }
+
+ if ( (Objects.nonNull(pricingDetail.getHolidayBaseTime()) && pricingDetail.getHolidayBaseTime() < 0)
+ && ( Objects.isNull(pricingDetail.getHolidayBasePrice()))
+ ){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑺傚亣涓�鍙d环浠锋牸涓嶅彲涓虹┖");
+ }
+
+ if (((Objects.nonNull(pricingDetail.getHolidayBaseTime()) && pricingDetail.getHolidayBaseTime() > 0))
+ && (Objects.isNull(pricingDetail.getHolidayBasePrice())
+ || Objects.isNull(pricingDetail.getHolidayUnitTime())
+ || Objects.isNull(pricingDetail.getHolidayUnitPrice()))){
+
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑺傚亣闃舵瀹氫环鍙傛暟涓嶅彲涓虹┖");
+ }
+
+ QueryWrapper<PricingDetail> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(PricingDetail::getIsdeleted,Constants.ZERO)
+ .eq(PricingDetail::getBikeTypeId,pricingDetail.getBikeTypeId())
+ .eq(PricingDetail::getPricePramId,pricingDetail.getPricePramId());
+ Integer exitCount = pricingDetailMapper.selectCount(wrapper);
+
+ if (exitCount > Constants.ZERO){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ヨ溅鍨嬪凡閰嶇疆");
+ }
+
+ }
+
@Override
public void deleteById(String id) {
pricingDetailMapper.deleteById(id);
@@ -111,6 +130,10 @@
@Override
public void updateById(PricingDetail pricingDetail) {
+ checkPricingDetail(pricingDetail);
+ LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ pricingDetail.setEditDate(new Date());
+ pricingDetail.setEditor(principal.getId());
pricingDetailMapper.updateById(pricingDetail);
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
index a77d0db..48cfe8a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
@@ -46,8 +46,9 @@
insert.setEndDate(pricingParam.getEndDate());
insert.setSortnum(pricingParam.getSortnum());
insert.setStatus(Constants.ZERO);
- pricingParamMapper.insert(pricingParam);
- return pricingParam.getId();
+ insert.setInfo(pricingParam.getInfo());
+ pricingParamMapper.insert(insert);
+ return insert.getId();
}
@Override
--
Gitblit v1.9.3