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 }) } 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 }) } admin/src/assets/images/404-tip.png
admin/src/assets/images/404.png
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> 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> admin/src/views/business/bikeLocation.vue
@@ -66,4 +66,7 @@ this.search() } } /** * */ </script> 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) { 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)); } } 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表ï¼") 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(),"ä¸å£ä»·ä»·æ ¼ä¸å¯ä¸ºç©º"); } 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(),"èåä¸å£ä»·ä»·æ ¼ä¸å¯ä¸ºç©º"); } 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(),"ä¸å£ä»·ä»·æ ¼ä¸å¯ä¸ºç©º"); } 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(),"èåä¸å£ä»·ä»·æ ¼ä¸å¯ä¸ºç©º"); } 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); } 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