已添加2个文件
已修改27个文件
已重命名3个文件
| | |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | ddd |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/diandongche_admin_api' |
| | | VUE_APP_API_PREFIX = '/admin_interface' |
| | |
| | | # 项ç®ä¸ä¸æè·¯å¾ |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | VUE_APP_API_URL = 'http://localhost:12010' |
| | | |
| | | |
| | | #VUE_APP_API_URL = 'https://pay.smartbee.run/admin_interface' |
| | |
| | | |
| | | # å
³éDEBUG |
| | | VUE_APP_DEBUG = 'off' |
| | | VUE_APP_CONTEXT_PATH = '/diandongche_admin' |
| | | VUE_APP_API_URL = ' ' |
| | | VUE_APP_CONTEXT_PATH = '/admin' |
| | | VUE_APP_API_URL = 'https://pay.smartbee.run/admin_interface' |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | export function getIndexData (data) { |
| | | return request.post('/business/orders/getIndexData', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function commentList (data) { |
| | | return request.post('/business/orders/commentList', data, { |
| | | trim: true |
| | |
| | | export function create (data) { |
| | | return request.post('/business/orders/create', data) |
| | | } |
| | | export function updateByPayStatus (data) { |
| | | return request.post('/business/orders/updateByPayStatus', data) |
| | | } |
| | | export function cancel (id) { |
| | | return request.get(`/business/orders/cancel?id=${id}`) |
| | | } |
| | |
| | | .grey{ |
| | | color: grey; |
| | | } |
| | | .black{ |
| | | color: #333; |
| | | } |
| | | .green{ |
| | | color: green; |
| | | } |
| | |
| | | <span v-if="row.type==1">å»¶ææ¬¾</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" label="订å夿³¨" width="100px" ></el-table-column> |
| | | <el-table-column prop="remark" label="订å夿³¨" width="200px" ></el-table-column> |
| | | <el-table-column prop="userRealname" label="æ¶æ¬¾äººå§å" width="100px" ></el-table-column> |
| | | <el-table-column prop="username" label="è´è´£äººè´¦å·" width="120px" ></el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="payDate" label="仿¬¾æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="cancelDate" label="åæ¶æ¶é´" min-width="150px"></el-table-column> |
| | | <!-- <el-table-column |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | min-width="150" |
| | | fixed="right" |
| | | min-width="100" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" class="redstate" @click="cancelDo(row)" v-if="row.status!=5 && row.status!=4&& row.status!=99" icon="el-icon-delete" v-permissions="['business:orders:update']">åæ¶</el-button> |
| | | <el-button type="text" @click="openDetail( row)" icon="el-icon-info" >详æ
</el-button> |
| | | <el-button type="text" @click="payStatus(row)" icon="el-icon-refresh" v-permissions="['business:orders:update']">åæ¥ç¶æ</el-button> |
| | | </template> |
| | | </el-table-column>--> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | status: null, |
| | | type: null, |
| | | starttime: null, |
| | | endTime: null, |
| | | endtime: null, |
| | | username: null, |
| | | userRealName: null, |
| | | name: null, |
| | |
| | | this.dealing = false |
| | | }) |
| | | }) |
| | | }, |
| | | payStatus (row) { |
| | | this.$dialog.actionConfirm('æ¨ç¡®è®¤ã忥ãè¯¥è®¢åææ°ç¶æåï¼', 'æä½ç¡®è®¤') |
| | | .then(() => { |
| | | this.dealing = true |
| | | this.api.updateByPayStatus({id:row.id}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess('æä½æå') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.dealing = false |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | ä»å¤©æ¯ {{ nowDate }} {{ nowWeek }}ï¼æ¬¢è¿è®¿é®æºç§èåå°ç®¡çç³»ç» |
| | | </div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="app_content"> |
| | | <div class="static_card"> |
| | | <div class="card"> |
| | | <div class="header" > |
| | | <div class="left"> |
| | | <div class="fs15">仿¥æ»äº¤æï¼éé¢ | 订åéï¼</div> |
| | | <div class="num "> |
| | | <span class=" orange" style="display: inline;">ï¿¥{{( (headerData.todayMoney ||0 )/100).toFixed(2)}}</span> |
| | | <span > | </span> |
| | | <span > {{ headerData.todayNum || 0}}</span> |
| | | </div> |
| | | </div> |
| | | <!-- <img src="@/assets/images/bg_a.png" alt="" />--> |
| | | </div> |
| | | <div class="content"> |
| | | <div>çå¾
æ¯ä»ï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayWaitMoney ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayWaitNum || 0}}</span> |
| | | </div> |
| | | <div>交ææåï¼ |
| | | <span class=" orange" >ï¿¥{{( (headerData.todayDoneMoney ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split" > | </span> |
| | | <span class="numtxt"> {{ headerData.todayDoneNum || 0}}</span> |
| | | </div> |
| | | <div>交æå¤±è´¥ï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayFailMoney ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split" > | </span> |
| | | <span class="numtxt"> {{ headerData.todayFailNum || 0}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card"> |
| | | <div class="header" > |
| | | <div class="left"> |
| | | <div class="fs15">仿¥è½¦æ¬¾äº¤æï¼éé¢ | 订åéï¼</div> |
| | | <div class="num "> |
| | | <span class=" orange" style="display: inline;">ï¿¥{{( (headerData.todayMoney0 ||0 )/100).toFixed(2)}}</span> |
| | | <span class=" " > | </span> |
| | | <span class=" "> {{ headerData.todayNum0 || 0}}</span> |
| | | </div> |
| | | </div> |
| | | <!-- <img src="@/assets/images/bg_a.png" alt="" />--> |
| | | </div> |
| | | <div class="content"> |
| | | <div>çå¾
æ¯ä»ï¼ |
| | | <span class=" orange">ï¿¥{{( (headerData.todayWaitMoney0 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayWaitNum0 || 0}}</span> |
| | | </div> |
| | | <div>交ææåï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayDoneMoney0 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayDoneNum0 || 0}}</span> |
| | | </div> |
| | | <div>交æå¤±è´¥ï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayFailMoney0 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split" > | </span> |
| | | <span class="numtxt"> {{ headerData.todayFailNum0 || 0}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card"> |
| | | <div class="header" > |
| | | <div class="left"> |
| | | <div class="fs15">仿¥å»¶ææ¬¾äº¤æï¼éé¢ | 订åéï¼</div> |
| | | <div class="num "> |
| | | <span class=" orange" style="display: inline;">ï¿¥{{( (headerData.todayMoney1 ||0 )/100).toFixed(2)}}</span> |
| | | <span > | </span> |
| | | <span > {{ headerData.todayNum1 || 0}}</span> |
| | | </div> |
| | | </div> |
| | | <!-- <img src="@/assets/images/bg_a.png" alt="" />--> |
| | | </div> |
| | | <div class="content"> |
| | | <div>çå¾
æ¯ä»ï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayWaitMoney1 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayWaitNum1 || 0}}</span> |
| | | </div> |
| | | <div>交ææåï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayDoneMoney1 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayDoneNum1 || 0}}</span> |
| | | </div> |
| | | <div>交æå¤±è´¥ï¼ |
| | | <span class=" orange">ï¿¥{{ ((headerData.todayFailMoney1 ||0 )/100).toFixed(2)}}</span> |
| | | <span class="split"> | </span> |
| | | <span class="numtxt"> {{ headerData.todayFailNum1 || 0}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="static_wrap"> |
| | | <!-- <div class="df mb50" > |
| | | <div class="wrap static1"> |
| | | <div class="header" style="text-align: center"> |
| | | <div class="home_title" style="text-align: center;width: 80%">åç±»å交æç»è®¡ï¼{{searchForm.timeName}}ï¼</div> |
| | | <div style="text-align: right;width: 150px;font-size: 12px;height: 25px"> |
| | | <el-form :model="searchForm" label-width="100px" inline > |
| | | <el-select v-model="searchForm.timeType" :popper-append-to-body="true" clearable placeholder="æ¶é´èå´" @change="reloadDataByType()"> |
| | | <el-option value="0" label="æ¬å¨"/> |
| | | <el-option value="1" label="æ¬æ"/> |
| | | <el-option value="2" label="æ¬å£åº¦"/> |
| | | <el-option value="3" label="æ¬å¹´"/> |
| | | </el-select> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="echart" style="height: 400px" > |
| | | <div id="circleChart0"></div> |
| | | <div id="circleChart1"></div> |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | <!-- <div class="df mb50" > |
| | | <div class="wrap static1"> |
| | | <div class="header"> |
| | | <div class="home_title">1.SHEäºä»¶ä¸æ¥</div> |
| | | </div> |
| | | <div class="echart" > |
| | | <div id="echart0"></div> |
| | | <div id="echart01"></div> |
| | | </div> |
| | | </div> |
| | | <div class="wrap static2"> |
| | | <div class="header"> |
| | | <div class="home_title">2.æ·±åº¦ç¬¦åæ§å®¡æ¥DCA䏿¥è®°å½</div> |
| | | </div> |
| | | <div class="echart" > |
| | | <div id="echart1"> </div> |
| | | <div id="echart11"> </div> |
| | | </div> |
| | | </div> |
| | | <div class="wrap static3"> |
| | | <div class="header"> |
| | | <div class="home_title">3.æ·±åº¦ç¬¦åæ§å®¡æ¥DCAäºä»¶å·¥å</div> |
| | | </div> |
| | | <div class="echart" > |
| | | <div id="echart2"> </div> |
| | | <div id="echart21"> </div> |
| | | </div> |
| | | </div> |
| | | <div class="wrap static4"> |
| | | <div class="header"> |
| | | <div class="home_title">4.è·ç»æ»é£é©ä¸æ¥</div> |
| | | </div> |
| | | <div class="echart" > |
| | | <div id="echart3"> </div> |
| | | <div id="echart31"> </div> |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import dayjs from 'dayjs' |
| | | import * as echarts from 'echarts' |
| | | import { weeks } from '@/utils/config' |
| | | import { getIndexData} from '@/api/business/orders' |
| | | const colors = ['#52a4f7', '#7678f7', '#5fc6d5'] |
| | | export default { |
| | | components: { |
| | |
| | | } |
| | | }, |
| | | created () { |
| | | this.initData() |
| | | }, |
| | | mounted () { |
| | | this.updateDate() |
| | | // this.initData() |
| | | }, |
| | | methods: { |
| | | initData () { |
| | | this.updateDate() |
| | | this.getWorkHead() |
| | | this.getWorkBody0() |
| | | this.getWorkBody1() |
| | | this.getWorkBody2() |
| | | this.getWorkBody3() |
| | | // this.getWorkBody() |
| | | }, |
| | | reloadDataByType () { |
| | | getIndexData({timeType: this.searchForm.timeType }).then(res => { |
| | | if (this.searchForm.timeType == '0') { |
| | | this.searchForm.timeName = 'æ¬å¨' |
| | | } else if (this.searchForm.timeType =='1') { |
| | | this.searchForm.timeName = 'æ¬æ' |
| | | } else if (this.searchForm.timeType =='2') { |
| | | this.searchForm.timeName = 'æ¬å£åº¦' |
| | | } else if (this.searchForm.timeType == '3') { |
| | | this.searchForm.timeName = 'æ¬å¹´' |
| | | } else { |
| | | this.searchForm.timeName = 'å
¨é¨' |
| | | } |
| | | this.headerData1 =res || [] |
| | | this.initAllData() |
| | | }) |
| | | }, |
| | | getWorkBody0 () { |
| | | getWorkOrderData({ queryType: 0, orderType: 0 }).then(res => { |
| | | this.staticData0 = res || [] |
| | | this.initEchart0() |
| | | }) |
| | | getWorkOrderData({ queryType: 1, orderType: 0 }).then(res => { |
| | | this.staticData01 = res || [] |
| | | this.initEchart01() |
| | | }) |
| | | }, |
| | | getWorkBody1 () { |
| | | getWorkOrderData({ queryType: 0, orderType: 1 }).then(res => { |
| | | this.staticData1 = res || [] |
| | | this.initEchart1() |
| | | }) |
| | | getWorkOrderData({ queryType: 1, orderType: 1 }).then(res => { |
| | | this.staticData11 = res || [] |
| | | this.initEchart11() |
| | | }) |
| | | }, |
| | | getWorkBody2 () { |
| | | getWorkOrderData({ queryType: 0, orderType: 2 }).then(res => { |
| | | this.staticData2 = res || [] |
| | | this.initEchart2() |
| | | }) |
| | | getWorkOrderData({ queryType: 1, orderType: 2 }).then(res => { |
| | | this.staticData21 = res || [] |
| | | this.initEchart21() |
| | | }) |
| | | }, |
| | | getWorkBody3 () { |
| | | getWorkOrderData({ queryType: 0, orderType: 3 }).then(res => { |
| | | this.staticData3 = res || [] |
| | | this.initEchart3() |
| | | }) |
| | | getWorkOrderData({ queryType: 1, orderType: 3 }).then(res => { |
| | | this.staticData31 = res || [] |
| | | this.initEchart31() |
| | | }) |
| | | }, |
| | | getWorkHead () { |
| | | getIndexData({ }).then(res => { |
| | | this.headerData = res || {} |
| | | this.headerData1 = res || {} |
| | | this.initAllData() |
| | | }) |
| | | }, |
| | | initAllData(){ |
| | | var cdata = [] |
| | | cdata.push({ name: 'è·ç»æ»äºä»¶', value: this.headerData1.dbhNum || 0 }) |
| | | cdata.push({ name: 'DCAäºä»¶', value: this.headerData1.dcaChildNum || 0 }) |
| | | cdata.push({ name: 'SHEäºä»¶', value: this.headerData1.sheNum || 0 }) |
| | | this.initEchartCircleDo('circleChart0', 'åç±»åäºä»¶å·¥å䏿¥ç»è®¡', '', cdata) |
| | | var xdata = ['SHEäºä»¶', 'è·ç»æ»äºä»¶', 'DCAäºä»¶'] |
| | | var ydata = [] |
| | | ydata.push({ name: '已解å³', stack: 'cateNum', type: 'bar', unit: '项', color: '#f07e6f', data: [this.headerData1.sheNum || 0, this.headerData1.dbhYesNum || 0, this.headerData1.dcaChildYesNum || 0] }) |
| | | ydata.push({ name: 'æªè§£å³', stack: 'cateNum', type: 'bar', unit: '项', color: '#8383ff', data: [0, this.headerData1.dbhNoNum || 0, this.headerData1.dcaChildNoNum || 0] }) |
| | | ydata.push({ name: 'æ»åé', type: 'bar', unit: '次', color: '#29aeff', data: [this.headerData1.sheNum || 0, this.headerData1.dbhNum || 0, this.headerData1.dcaChildNum || 0] }) |
| | | this.initEchartDataDo('åç±»åäºä»¶ç¶æç»è®¡', 'circleChart1', xdata, ydata) |
| | | }, |
| | | updateDate () { |
| | | this.nowDate = dayjs().format('YYYYå¹´MæDæ¥') |
| | | this.nowWeek = weeks[new Date().getDay()] |
| | | }, |
| | | initEchart0 () { |
| | | var ydata = [{ name: '工忰é', type: 'line', unit: 'å', color: '#29aeff', data: this.staticData0.map(i => i.total) }] |
| | | this.initEchartDataDo('æåº¦ç»è®¡', 'echart0', this.staticData0.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart01 () { |
| | | var ydata = [{ name: '工忰é', type: 'bar', unit: 'å', color: '#29aeff', data: this.staticData01.map(i => i.total) }] |
| | | this.initEchartDataDo('å£åº¦ç»è®¡', 'echart01', this.staticData01.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart1 () { |
| | | var ydata = [] |
| | | ydata.push({ name: '符å项', type: 'line', unit: '项', color: '#f07e6f', data: this.staticData1.map(i => i.dcaYesTotal) }) |
| | | ydata.push({ name: 'ä¸ç¬¦å项', type: 'line', unit: '项', color: '#8383ff', data: this.staticData1.map(i => i.dcaNoTotal) }) |
| | | ydata.push({ name: '䏿¥æ¬¡æ°', type: 'bar', unit: '次', color: '#29aeff', data: this.staticData1.map(i => i.total) }) |
| | | this.initEchartDataDo('æåº¦ç»è®¡', 'echart1', this.staticData1.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart11 () { |
| | | var ydata = [] |
| | | ydata.push({ name: '符å项', type: 'line', unit: '项', color: '#f07e6f', data: this.staticData11.map(i => i.dcaYesTotal) }) |
| | | ydata.push({ name: 'ä¸ç¬¦å项', type: 'line', unit: '项', color: '#8383ff', data: this.staticData11.map(i => i.dcaNoTotal) }) |
| | | ydata.push({ name: '䏿¥æ¬¡æ°', type: 'bar', unit: '次', color: '#29aeff', data: this.staticData11.map(i => i.total) }) |
| | | this.initEchartDataDo('å£åº¦ç»è®¡', 'echart11', this.staticData11.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart2 () { |
| | | var ydata = [] |
| | | ydata.push({ name: 'å·¥ç¨å¸å
³éåé', type: 'line', unit: 'å', color: '#f0ee6f', data: this.staticData2.map(i => i.gcsTotal) }) |
| | | ydata.push({ name: 'WTSå
³éåé', type: 'line', unit: 'å', color: '#29aeff', data: this.staticData2.map(i => i.wtsTotal) }) |
| | | ydata.push({ name: 'SHEå
³éåé', type: 'line', unit: 'å', color: '#e75314', data: this.staticData2.map(i => i.sheTotal) }) |
| | | ydata.push({ name: 'æªè§£å³åé', type: 'line', unit: 'å', color: '#8383ff', data: this.staticData2.map(i => i.unCloseTotal) }) |
| | | ydata.push({ name: '工忻é', type: 'line', unit: 'å', color: '#30d3de', data: this.staticData2.map(i => i.total) }) |
| | | this.initEchartDataDo('æåº¦ç»è®¡', 'echart2', this.staticData2.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart21 () { |
| | | var ydata = [] |
| | | ydata.push({ name: 'å·¥ç¨å¸å
³éåé', type: 'bar', unit: 'å', color: '#f0ee6f', data: this.staticData21.map(i => i.gcsTotal) }) |
| | | ydata.push({ name: 'WTSå
³éåé', type: 'bar', unit: 'å', color: '#29aeff', data: this.staticData21.map(i => i.wtsTotal) }) |
| | | ydata.push({ name: 'SHEå
³éåé', type: 'bar', unit: 'å', color: '#e75314', data: this.staticData21.map(i => i.sheTotal) }) |
| | | ydata.push({ name: 'æªè§£å³åé', type: 'bar', unit: 'å', color: '#8383ff', data: this.staticData21.map(i => i.unCloseTotal) }) |
| | | ydata.push({ name: '工忻é', type: 'line', unit: 'å', color: '#30d3de', data: this.staticData21.map(i => i.total) }) |
| | | this.initEchartDataDo('å£åº¦ç»è®¡', 'echart21', this.staticData21.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart3 () { |
| | | var ydata = [] |
| | | ydata.push({ name: 'å·¥ç¨å¸å
³éåé', type: 'line', unit: 'å', color: '#6feef0', data: this.staticData3.map(i => i.gcsTotal) }) |
| | | ydata.push({ name: 'WTSå
³éåé', type: 'line', unit: 'å', color: 'rgba(217,4,34,0.83)', data: this.staticData3.map(i => i.wtsTotal) }) |
| | | ydata.push({ name: 'SHEå
³éåé', type: 'line', unit: 'å', color: '#e75314', data: this.staticData3.map(i => i.sheTotal) }) |
| | | ydata.push({ name: 'æªè§£å³åé', type: 'line', unit: 'å', color: '#8383ff', data: this.staticData3.map(i => i.unCloseTotal) }) |
| | | ydata.push({ name: '工忻é', type: 'line', unit: 'å', color: '#30d3de', data: this.staticData3.map(i => i.total) }) |
| | | this.initEchartDataDo('æåº¦ç»è®¡', 'echart3', this.staticData3.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchart31 () { |
| | | var ydata = [] |
| | | ydata.push({ name: 'å·¥ç¨å¸å
³éåé', type: 'bar', unit: 'å', color: '#6feef0', data: this.staticData31.map(i => i.gcsTotal) }) |
| | | ydata.push({ name: 'WTSå
³éåé', type: 'bar', unit: 'å', color: 'rgba(217,4,34,0.83)', data: this.staticData31.map(i => i.wtsTotal) }) |
| | | ydata.push({ name: 'SHEå
³éåé', type: 'bar', unit: 'å', color: '#e75314', data: this.staticData31.map(i => i.sheTotal) }) |
| | | ydata.push({ name: 'æªè§£å³åé', type: 'bar', unit: 'å', color: '#8383ff', data: this.staticData31.map(i => i.unCloseTotal) }) |
| | | ydata.push({ name: '工忻é', type: 'line', unit: 'å', color: '#30d3de', data: this.staticData31.map(i => i.total) }) |
| | | this.initEchartDataDo('å£åº¦ç»è®¡', 'echart31', this.staticData31.map(i => i.dateStr), ydata) |
| | | }, |
| | | initEchartDataDo (title, id, xdata, ydata) { |
| | | const myChart = echarts.init(document.getElementById(id)) |
| | | myChart.setOption({ |
| | | title: { |
| | | text: (title || ''), |
| | | textStyle: { |
| | | fontSize: 12, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'bold' |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | }, |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'normal' |
| | | } |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'right', |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'normal' |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | // boundaryGap: false, |
| | | data: xdata |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: '', |
| | | min: 0, |
| | | axisLabel: { |
| | | formatter: function (value) { |
| | | return Number.isInteger(value) ? value : '' |
| | | } |
| | | }, |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'normal' |
| | | }, |
| | | nameTextStyle: { |
| | | padding: [0, 0, 4, -30] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | // è¿éè¾å
¥çº¿æ¡çæ ·å¼ |
| | | color: 'rgba(255,255,255,0.14)' |
| | | } |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '16%', |
| | | left: '2%', |
| | | right: '8%', |
| | | bottom: '2%', |
| | | containLabel: true |
| | | }, |
| | | series: this.seriesInitData(ydata) |
| | | }) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | }, |
| | | seriesInitData (ydata) { |
| | | var array = [] |
| | | for (let i = 0; i < ydata.length; i++) { |
| | | array.push({ |
| | | data: ydata[i].data, |
| | | name: ydata[i].name, |
| | | stack: ydata[i].stack || '', |
| | | type: ydata[i].type || 'line', |
| | | areaStyle: { |
| | | normal: { |
| | | color: { |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, |
| | | color: ydata[i].color || '#207FF7' // 0% å¤çé¢è² |
| | | }, { |
| | | offset: 1, |
| | | color: 'rgba(255,255,255,.2)' // 100% å¤çé¢è² |
| | | }], |
| | | globalCoord: false // 缺ç为 false |
| | | } |
| | | } |
| | | }, |
| | | lineStyle: { // çº¿æ¡æ ·å¼ |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, color: ydata[i].color || '#207FF7' // 0% å¤çé¢è² |
| | | }, { |
| | | offset: 1, color: ydata[i].color || '#207FF7' // 100% å¤çé¢è² |
| | | }] |
| | | }, |
| | | width: 2 // 线æ¡ç²ç» |
| | | }, |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | itemStyle: { |
| | | borderWidth: 1, |
| | | borderColor: '#fff', |
| | | color: ydata[i].color || '#207FF7' |
| | | }, |
| | | smooth: false |
| | | }) |
| | | } |
| | | |
| | | return array |
| | | }, |
| | | initEchartCircleDo (id, title, subTitle, data) { |
| | | var option = { |
| | | title: { |
| | | text: '', |
| | | subtext: '', |
| | | left: 'center', |
| | | bottom: 'bottom', |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'bold' |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'left', |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'normal' |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | name: title || '', |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: data, |
| | | label: { |
| | | show: true, |
| | | formatter: '{b}:{d}%', |
| | | textStyle: { |
| | | fontSize: 10, |
| | | fontStyle: 'normal', |
| | | fontWeight: 'normal' |
| | | } |
| | | }, |
| | | labelLine: { |
| | | show: true |
| | | }, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | const myChart = echarts.init(document.getElementById(id)) |
| | | myChart.setOption(option) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | &:nth-of-type(3) { |
| | | |
| | | background: linear-gradient(270deg, #42d49d 0%, #12bb8b 100%); |
| | | } |
| | | |
| | | &:nth-of-type(4) { |
| | | margin-right: 0; |
| | | background: linear-gradient(270deg, #c430dee3 0%, #cd04b9cf 100%); |
| | | //linear-gradient(270deg, #de3049b8 0%, #cd0421d4 100%); |
| | | //linear-gradient(270deg, #de3049b8 0%, #cd0421d4 100%); |
| | | //background: linear-gradient(270deg, #30d3de 0%, #04b7cd 100%); |
| | | } |
| | | |
| | |
| | | align-items: center; |
| | | padding: 20px 20px 12px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.2); |
| | | |
| | | img { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .num { |
| | | .num{ |
| | | font-weight: 600; |
| | | font-size: 30px; |
| | | margin-top: 12px; |
| | | } |
| | | } |
| | | |
| | | .orange{ |
| | | display: inline-block; |
| | | width: 100px; |
| | | text-shadow: 2px 2px 5px #606266;; |
| | | font-weight: 600; |
| | | } |
| | | .split{ |
| | | display: inline-block; |
| | | width: 40px; |
| | | font-size: 10px; |
| | | } |
| | | .numtxt{ |
| | | display: inline-block; |
| | | text-shadow: 2px 2px 5px #606266; |
| | | } |
| | | .content { |
| | | height: 82px; |
| | | display: flex; |
| | |
| | | background: linear-gradient(180deg, #076ae5 0%, rgba(32, 127, 247, 0) 100%); |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="avatar" label="æ¶æ¬¾ç " width="100px" class-name="table-column-avatar" > |
| | | <el-table-column prop="avatar" label="æ¶æ¬¾ç " width="220px" class-name="table-column-avatar" > |
| | | <template slot-scope="{ row }"> |
| | | <div class="qrcodediv" :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div> |
| | | </template> |
| | |
| | | v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])" |
| | | label="æä½" |
| | | width="270" |
| | | fixed="right" |
| | | > |
| | | <template v-if="isAdmin || (row.id !== userInfo.id && row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> |
| | |
| | | return |
| | | } |
| | | return new QRCode(div, { |
| | | width: 80, |
| | | height: 80, |
| | | text: qrcode1, |
| | | correctLevel: QRCode.CorrectLevel.H, |
| | | useSVG: true |
| | | width: 200, |
| | | height: 200, |
| | | text: qrcode1 |
| | | }) |
| | | } |
| | | } |
| | |
| | | } |
| | | module.exports = { |
| | | publicPath: process.env.VUE_APP_CONTEXT_PATH, |
| | | outputDir: 'dianjiang_admin', |
| | | outputDir: 'admin', |
| | | assetsDir: 'static', |
| | | lintOnSave: false, |
| | | devServer: { |
| | |
| | | </dependencies> |
| | | |
| | | <build> |
| | | <finalName>dianjiang_admin</finalName> |
| | | <finalName>diandongche_admin</finalName> |
| | | <resources> |
| | | <resource> |
| | | <directory>src/main/resources</directory> |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.vo.IndexOrderCountVO; |
| | | import com.doumee.service.business.OrdersService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | ordersService.updateById(orders); |
| | | return ApiResponse.success(null); |
| | | } |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢äº¤ææµæ°´ä¿¡æ¯æ´æ°ææ°äº¤æç¶æ") |
| | | @PostMapping("/updateByPayStatus") |
| | | @RequiresPermissions("business:orders:update") |
| | | public ApiResponse updateByPayStatus(@RequestBody Orders orders) { |
| | | ordersService.updateByPayStatus(orders); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | |
| | | return ApiResponse.success(ordersService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("æ°æ®ç»è®¡") |
| | | @PostMapping("/getIndexData") |
| | | public ApiResponse<IndexOrderCountVO> getIndexData (@RequestBody Orders pageWrap) { |
| | | return ApiResponse.success(ordersService.getIndexData(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:orders:exportExcel") |
| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.allinpay.syb.lib.SybConstants; |
| | | import com.allinpay.syb.lib.SybUtil; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.business.dto.PayOrderNotifyParam; |
| | | import com.doumee.dao.business.dto.PayOrderParam; |
| | | import com.doumee.dao.business.dto.PayOrderResponse; |
| | | import com.allinpay.syb.model.PayOrderParam; |
| | | import com.allinpay.syb.model.PayOrderResponse; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.service.business.OrdersService; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.mvc.support.RedirectAttributes; |
| | | |
| | | import javax.servlet.ServletException; |
| | | import javax.servlet.ServletInputStream; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | import java.io.IOException; |
| | | import java.io.InputStreamReader; |
| | | import java.net.URLDecoder; |
| | | import java.util.Map; |
| | | import java.util.TreeMap; |
| | | |
| | | /** |
| | | * 订åè®°å½è¡¨ä¿¡æ¯è¡¨Controllerå®ä¹ |
| | |
| | | project: |
| | | name: è±ç±³çµå¨è½¦ |
| | | version: 1.0.0 |
| | | # ç¯å¢ï¼ç产ç¯å¢productionï¼å¼åç¯å¢development |
| | | env: production |
| | | # 模å¼ï¼testingæµè¯æ¨¡å¼ |
| | | mode: testing |
| | | |
| | | spring: |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | # JSONè¿åé
ç½® |
| | | jackson: |
| | | # é»è®¤æ¶åº |
| | |
| | | <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern> |
| | | </layout> |
| | | </appender> |
| | | <property name="log.path" value="/usr/local/jars/logs/admin"></property> |
| | | <property name="log.path" value="/www/server/dmpay/logs/admin"></property> |
| | | <property name="log.fileSize" value="100MB"></property> |
| | | <property name="log.historyDays" value="7"></property> |
| | | <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | |
| | | package com.allinpay.syb.lib; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.security.KeyFactory; |
| | | import java.security.MessageDigest; |
| | | import java.security.NoSuchAlgorithmException; |
| | |
| | | import java.security.PublicKey; |
| | | import java.security.spec.PKCS8EncodedKeySpec; |
| | | import java.security.spec.X509EncodedKeySpec; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Random; |
| | | import java.util.TreeMap; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.doumee.dao.business.dto.PayOrderNotifyParam; |
| | | import com.allinpay.syb.model.PayOrderNotifyParam; |
| | | import org.apache.commons.codec.binary.Base64; |
| | | |
| | | public class SybUtil { |
| ÎļþÃû´Ó server/services/src/main/java/com/doumee/dao/business/dto/PayOrderNotifyParam.java ÐÞ¸Ä |
| | |
| | | package com.doumee.dao.business.dto; |
| | | package com.allinpay.syb.model; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | |
| | | @ApiModel("è®¢åæ¯ä»åæ°å¼æ¥éç¥è¿å") |
| | | public class PayOrderNotifyParam { |
| | | |
| | | private String retcode;// string å¦ æ¶é¶å®APPID 8 |
| | | private String retmsg;// string å¦ æ¶é¶å®APPID 8 |
| | | private String appid;// string å¦ æ¶é¶å®APPID 8 |
| | | private String outtrxid ;// string å¦ ç¬¬ä¸æ¹äº¤æå· 50 ææªå¯ç¨ |
| | | private String trxcode;// string å¦ äº¤æç±»å 8 详è§éå½äº¤æç±»å |
| ÎļþÃû´Ó server/services/src/main/java/com/doumee/dao/business/dto/PayOrderParam.java ÐÞ¸Ä |
| | |
| | | package com.doumee.dao.business.dto; |
| | | package com.allinpay.syb.model; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| ÎļþÃû´Ó server/services/src/main/java/com/doumee/dao/business/dto/PayOrderResponse.java ÐÞ¸Ä |
| | |
| | | package com.doumee.dao.business.dto; |
| | | package com.allinpay.syb.model; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.allinpay.syb.model; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * å工信æ¯å¯¼å
¥è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Data |
| | | @ApiModel("éèå
Œ
±é
ç½®åæ°") |
| | | public class PayPublicModel { |
| | | |
| | | private String appid; |
| | | private String cusid; |
| | | private String version; |
| | | private String signtype; |
| | | private String appkey; |
| | | private String url; |
| | | private String appPubkey; |
| | | |
| | | |
| | | } |
| | |
| | | private Date cancelDate; |
| | | @ApiModelProperty("åæ¶æ¹å¼ 0èªå¨åæ¶;1æå¨åæ¶") |
| | | @ExcelColumn(name="åæ¶æ¹å¼ 0èªå¨åæ¶;1æå¨åæ¶",index=22 ,width=10) |
| | | private String cancelWay; |
| | | private Integer cancelWay; |
| | | @ApiModelProperty("忶夿³¨") |
| | | @ExcelColumn(name="忶夿³¨",index=23 ,width=10) |
| | | private String cancelInfo; |
| | |
| | | @ApiModelProperty("è´è´£äººå§å") |
| | | @TableField(exist = false) |
| | | private String userRealname; |
| | | @ApiModelProperty("ç»è®¡é") |
| | | @TableField(exist = false) |
| | | private Long num; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2026/1/28 10:43 |
| | | */ |
| | | @Data |
| | | @ApiModel("å·¥ä½å°æ°æ®ç»è®¡å¯¹è±¡") |
| | | public class IndexOrderCountVO { |
| | | |
| | | @ApiModelProperty(value = "æ»äº¤æé¢") |
| | | private BigDecimal todayMoney; |
| | | @ApiModelProperty(value = "车款交æé¢") |
| | | private BigDecimal todayMoney0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤æé¢") |
| | | private BigDecimal todayMoney1; |
| | | @ApiModelProperty(value = "æ»äº¤æé¢ï¼æªæ¯ä»ï¼") |
| | | private BigDecimal todayWaitMoney; |
| | | @ApiModelProperty(value = "车款交æé¢ï¼æªæ¯ä»ï¼") |
| | | private BigDecimal todayWaitMoney0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤æé¢ï¼æªæ¯ä»ï¼") |
| | | private BigDecimal todayWaitMoney1; |
| | | @ApiModelProperty(value = "æ»äº¤æé¢ï¼å®ææ¯ä»ï¼") |
| | | private BigDecimal todayDoneMoney; |
| | | @ApiModelProperty(value = "车款交æé¢ï¼å®ææ¯ä»ï¼") |
| | | private BigDecimal todayDoneMoney0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤æé¢ï¼å®ææ¯ä»ï¼") |
| | | private BigDecimal todayDoneMoney1; |
| | | @ApiModelProperty(value = "æ»äº¤æé¢ï¼æ¯ä»å¤±è´¥ï¼") |
| | | private BigDecimal todayFailMoney; |
| | | @ApiModelProperty(value = "车款交æé¢ï¼æ¯ä»å¤±è´¥ï¼") |
| | | private BigDecimal todayFailMoney0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤æé¢ï¼æ¯ä»å¤±è´¥ï¼") |
| | | private BigDecimal todayFailMoney1; |
| | | @ApiModelProperty(value = "æ»äº¤ææ°é") |
| | | private Long todayNum; |
| | | @ApiModelProperty(value = "è½¦æ¬¾äº¤ææ°é") |
| | | private Long todayNum0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤ææ°é") |
| | | private Long todayNum1; |
| | | @ApiModelProperty(value = "æ»äº¤ææ°éï¼æªæ¯ä»ï¼") |
| | | private Long todayWaitNum; |
| | | @ApiModelProperty(value = "è½¦æ¬¾äº¤ææ°éï¼æªæ¯ä»ï¼") |
| | | private Long todayWaitNum0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤ææ°éï¼æªæ¯ä»ï¼") |
| | | private Long todayWaitNum1; |
| | | @ApiModelProperty(value = "æ»äº¤ææ°éï¼å®ææ¯ä»ï¼") |
| | | private Long todayDoneNum; |
| | | @ApiModelProperty(value = "è½¦æ¬¾äº¤ææ°éï¼å®ææ¯ä»ï¼") |
| | | private Long todayDoneNum0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤ææ°éï¼å®ææ¯ä»ï¼") |
| | | private Long todayDoneNum1; |
| | | @ApiModelProperty(value = "æ»äº¤ææ°éï¼æ¯ä»å¤±è´¥ï¼") |
| | | private Long todayFailNum; |
| | | @ApiModelProperty(value = "è½¦æ¬¾äº¤ææ°éï¼æ¯ä»å¤±è´¥ï¼") |
| | | private Long todayFailNum0; |
| | | @ApiModelProperty(value = "å»¶ææ¬¾äº¤ææ°éï¼æ¯ä»å¤±è´¥ï¼") |
| | | private Long todayFailNum1; |
| | | |
| | | } |
| | |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.dto.PayOrderNotifyParam; |
| | | import com.doumee.dao.business.dto.PayOrderParam; |
| | | import com.doumee.dao.business.dto.PayOrderResponse; |
| | | import com.allinpay.syb.model.PayOrderParam; |
| | | import com.allinpay.syb.model.PayOrderResponse; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.dao.vo.IndexOrderCountVO; |
| | | import io.swagger.models.auth.In; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | |
| | | void returnPage(PayOrderParam param, HttpServletResponse response) throws IOException; |
| | | |
| | | void autoCancelNoPay(); |
| | | void updateByPayStatus(Orders orders); |
| | | |
| | | IndexOrderCountVO getIndexData(Orders pageWrap); |
| | | } |
| | |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.allinpay.syb.lib.SybConstants; |
| | | import com.allinpay.syb.lib.SybUtil; |
| | | import com.allinpay.syb.model.PayPublicModel; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.dao.business.dto.PayOrderNotifyParam; |
| | | import com.doumee.dao.business.dto.PayOrderParam; |
| | | import com.doumee.dao.business.dto.PayOrderResponse; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.allinpay.syb.model.PayOrderNotifyParam; |
| | | import com.allinpay.syb.model.PayOrderParam; |
| | | import com.allinpay.syb.model.PayOrderResponse; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.OrdersMapper; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.vo.IndexOrderCountVO; |
| | | import com.doumee.service.business.OrdersService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | param.setCusid(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_CUSID).getCode()); |
| | | param.setVersion(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VERSION).getCode()); |
| | | param.setCharset("utf-8"); |
| | | param.setTrxamt("1");//åä½å |
| | | param.setTrxamt(orders.getMoney().intValue()+"");//åä½å |
| | | param.setRandomstr(UUID.randomUUID().toString().replace("-","")); |
| | | param.setReqsn(""+orders.getId()); |
| | | param.setReturl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_RETURN_URL).getCode()); |
| | | param.setNotify_url( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_NOTIFY_URL).getCode()); |
| | | param.setBody(StringUtils.defaultString(orders.getName(),"") +"-" |
| | | + StringUtils.defaultString(orders.getPhone(),"")+ "-" |
| | | +StringUtils.defaultString(orders.getRemark(),"")); |
| | | String remark = (Constants.equalsInteger(orders.getType(),Constants.ZERO)?"车款":"å»¶ææ¬¾") |
| | | +"-"+ StringUtils.defaultString(orders.getName(),"") +"-" |
| | | + StringUtils.defaultString(orders.getPhone(),""); |
| | | if(StringUtils.isNotBlank(orders.getRemark())){ |
| | | remark += "-"+StringUtils.defaultString(orders.getRemark(),""); |
| | | } |
| | | if(remark.length()>300){ |
| | | remark = remark.substring(0,300); |
| | | } |
| | | param.setBody(remark); |
| | | param.setValidtime( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VALID_TIME).getCode()); |
| | | param.setSigntype( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SIGN_TYPE).getCode()); |
| | | |
| | |
| | | queryWrapper.eq(pageWrap.getModel().getPayMethod() != null,Orders::getPayMethod, pageWrap.getModel().getPayMethod()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayOrderId() != null,Orders::getPayOrderId, pageWrap.getModel().getPayOrderId()); |
| | | queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Orders::getCreateTime , pageWrap.getModel().getStarttime()); |
| | | queryWrapper.ne(pageWrap.getModel().getEndtime()!=null,Orders::getCreateTime , pageWrap.getModel().getEndtime()); |
| | | queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Orders::getCreateTime , pageWrap.getModel().getEndtime()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelWay() != null,Orders::getCancelWay, pageWrap.getModel().getCancelWay()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelInfo() != null,Orders::getCancelInfo, pageWrap.getModel().getCancelInfo()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelUserId() != null,Orders::getCancelUserId, pageWrap.getModel().getCancelUserId()); |
| | |
| | | queryWrapper.orderByDesc(Orders::getId); |
| | | return PageData.from(ordersMapper.selectJoinPage(page,Orders.class, queryWrapper)); |
| | | } |
| | | @Override |
| | | public IndexOrderCountVO getIndexData(Orders pageWrap) { |
| | | IndexOrderCountVO data = initIndexOrderCountMoel(); |
| | | List<Orders> list = ordersMapper.selectList(new QueryWrapper<Orders>() |
| | | .select("status,type,count(id) as num,sum(money) as money") |
| | | .lambda() |
| | | .eq(Orders::getDeleted,Constants.ZERO ) |
| | | .apply("to_days(create_time) =to_days(now())") |
| | | .groupBy(Orders::getType,Orders::getStatus));//æç±»ååç¶æåç» |
| | | if(list!=null){ |
| | | for(Orders model:list){ |
| | | data.setTodayNum(data.getTodayNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayMoney(data.getTodayMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | data.setTodayNum1(data.getTodayNum1()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayMoney1(data.getTodayMoney1().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | //å»¶ææ¬¾ |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | //交ææå |
| | | data.setTodayDoneNum(data.getTodayDoneNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayDoneMoney(data.getTodayDoneMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayDoneNum1(data.getTodayDoneNum1()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayDoneMoney1(data.getTodayDoneMoney1().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | }else if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | //交æä¸ |
| | | data.setTodayWaitNum(data.getTodayWaitNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayWaitMoney(data.getTodayWaitMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayWaitNum1(data.getTodayWaitNum1()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayWaitMoney1(data.getTodayWaitMoney1().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | }else { |
| | | //交æå¤±è´¥ |
| | | data.setTodayFailNum1(data.getTodayFailNum1()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayFailMoney1(data.getTodayFailMoney1().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayFailNum(data.getTodayFailNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayFailMoney(data.getTodayFailMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | } |
| | | }else{ |
| | | //车款 |
| | | data.setTodayNum0(data.getTodayNum0()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayMoney0(data.getTodayMoney0().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | //å»¶ææ¬¾ |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | //交ææå |
| | | data.setTodayDoneNum(data.getTodayDoneNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayDoneMoney(data.getTodayDoneMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayDoneNum0(data.getTodayDoneNum0()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayDoneMoney0(data.getTodayDoneMoney0().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | }else if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | //交æä¸ |
| | | data.setTodayWaitNum(data.getTodayWaitNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayWaitMoney(data.getTodayWaitMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayWaitNum0(data.getTodayWaitNum0()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayWaitMoney0(data.getTodayWaitMoney0().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | }else { |
| | | //交æå¤±è´¥ |
| | | data.setTodayFailNum(data.getTodayFailNum()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayFailMoney(data.getTodayFailMoney().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | data.setTodayFailNum0(data.getTodayFailNum0()+Constants.formatLongNum(model.getNum())); |
| | | data.setTodayFailMoney0(data.getTodayFailMoney0().add(Constants.formatBigDecimal(model.getMoney()))); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | |
| | | private IndexOrderCountVO initIndexOrderCountMoel() { |
| | | IndexOrderCountVO data = new IndexOrderCountVO(); |
| | | data.setTodayMoney(new BigDecimal(0)); |
| | | data.setTodayMoney0(new BigDecimal(0)); |
| | | data.setTodayMoney1(new BigDecimal(0)); |
| | | data.setTodayNum(0l); |
| | | data.setTodayNum0(0l); |
| | | data.setTodayNum1(0l); |
| | | |
| | | data.setTodayDoneMoney(new BigDecimal(0)); |
| | | data.setTodayDoneMoney0(new BigDecimal(0)); |
| | | data.setTodayDoneMoney1(new BigDecimal(0)); |
| | | data.setTodayDoneNum(0l); |
| | | data.setTodayDoneNum0(0l); |
| | | data.setTodayDoneNum1(0l); |
| | | |
| | | data.setTodayWaitMoney(new BigDecimal(0)); |
| | | data.setTodayWaitMoney0(new BigDecimal(0)); |
| | | data.setTodayWaitMoney1(new BigDecimal(0)); |
| | | data.setTodayWaitNum(0l); |
| | | data.setTodayWaitNum0(0l); |
| | | data.setTodayWaitNum1(0l); |
| | | |
| | | data.setTodayFailMoney(new BigDecimal(0)); |
| | | data.setTodayFailMoney0(new BigDecimal(0)); |
| | | data.setTodayFailMoney1(new BigDecimal(0)); |
| | | data.setTodayFailNum(0l); |
| | | data.setTodayFailNum0(0l); |
| | | data.setTodayFailNum1(0l); |
| | | |
| | | return data; |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public long count(Orders orders) { |
| | | QueryWrapper<Orders> wrapper = new QueryWrapper<>(orders); |
| | |
| | | try { |
| | | time = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VALID_TIME).getCode()); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | Date date = new Date(); |
| | | ordersMapper.update(null,new UpdateWrapper<Orders>().lambda() |
| | | .set(Orders::getStatus,Constants.TWO) |
| | | .set(Orders::getCancelInfo,"è¶
æ¶æªæ¯ä»ï¼èªå¨åæ¶") |
| | | .set(Orders::getCancelWay,Constants.ZERO) |
| | | .set(Orders::getCancelDate,date) |
| | | .set(Orders::getUpdateTime,date) |
| | | List<Orders> orderList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda() |
| | | .eq(Orders::getStatus,Constants.ZERO) |
| | | .apply("TIMESTAMPDIFF(MINUTE, create_time ,now()) > "+time)); |
| | | if(orderList !=null && orderList.size()>0){ |
| | | PayPublicModel publicModel = initPayPublicModel(); |
| | | Date date = new Date(); |
| | | for(Orders model : orderList){ |
| | | queryPayOrderDetailBiz(model,publicModel,date,time); |
| | | } |
| | | } |
| | | } |
| | | @Override |
| | | public void updateByPayStatus(Orders param) { |
| | | int time = 30; |
| | | try { |
| | | time = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VALID_TIME).getCode()); |
| | | }catch (Exception e){ |
| | | } |
| | | Orders model = ordersMapper.selectById(param.getId()); |
| | | if(model !=null ){ |
| | | PayPublicModel publicModel = initPayPublicModel(); |
| | | Date date = new Date(); |
| | | queryPayOrderDetailBiz(model,publicModel,date,time); |
| | | } |
| | | } |
| | | |
| | | private void queryPayOrderDetailBiz(Orders model, PayPublicModel publicModel, Date date,int time) { |
| | | TreeMap<String,String> params = new TreeMap<String,String>(); |
| | | params.put("cusid",publicModel.getCusid()); |
| | | params.put("appid",publicModel.getAppid()); |
| | | params.put("version",publicModel.getVersion()); |
| | | params.put("trxid", ""); |
| | | params.put("randomstr", SybUtil.getValidatecode(8)); |
| | | params.put("signtype", publicModel.getSigntype()); |
| | | String appkey = publicModel.getAppkey(); |
| | | String url = publicModel.getUrl(); |
| | | String appPubkey = publicModel.getAppPubkey(); |
| | | params.remove("sign"); |
| | | params.put("reqsn", model.getId()+""); |
| | | PayOrderNotifyParam map = query(params,url,appkey,appPubkey); |
| | | int status = Constants.TWO; |
| | | if(map!=null){ |
| | | String info = SybUtil.getPayInfoByStatus(map); |
| | | if(StringUtils.equals(map.getTrxcode(),"VSP501") |
| | | ||StringUtils.equals(map.getTrxcode(),"VSP511") |
| | | ||StringUtils.equals(map.getTrxcode(),"VSP551")){ |
| | | //交æç±»åæ¯ å¾®ä¿¡æ¯ä» ãæ¯ä»å®æ¯ä»æè
é¶èæ«ç æ¯ä»ï¼è®°å½æ¯ä»ç¶æ |
| | | if(StringUtils.equals(map.getTrxstatus(),"0000")){ |
| | | //交ææå |
| | | model.setPayStatus(Constants.ONE); |
| | | status = Constants.ONE; |
| | | } else if (StringUtils.equals(map.getTrxstatus(),"2000") || StringUtils.equals(map.getTrxstatus(),"2008")) { |
| | | //å¦æäº¤ææªæ¯ä»ï¼å¹¶ä¸æªè¶
è¿åå°æ¶ï¼ä¸å¤ç |
| | | if(date.getTime() - model.getCreateTime().getTime() < 30*60*1000){ |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | model.setPayFee(map.getFee()); |
| | | model.setStatus(status); |
| | | model.setPayDate(DateUtil.fromStringToDate("yyyyMMddHHmmss",map.getPaytime())); |
| | | model.setPayOrderId(map.getSrctrxid());//éè订åå· |
| | | model.setPayThirdOrderId(map.getChnltrxid());//æ¯ä»å®å¾®ä¿¡è®¢åå· |
| | | model.setPayThirdOrderData(map.getChnldata());//䏿¹äº¤ææ¸ éæ°æ® |
| | | model.setPayInfo(info); |
| | | model.setPayCode(map.getTrxcode()); |
| | | }else{ |
| | | model.setCancelDate(date); |
| | | model.setCancelInfo("è¶
æ¶æªæ¯ä»ï¼èªå¨åæ¶"); |
| | | model.setCancelWay(Constants.ZERO); |
| | | model.setStatus(Constants.TWO); |
| | | } |
| | | model.setUpdateTime(date); |
| | | ordersMapper.updateById(model) ; |
| | | } |
| | | |
| | | private PayPublicModel initPayPublicModel() { |
| | | PayPublicModel model = new PayPublicModel(); |
| | | model.setUrl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_CUSID).getCode()); |
| | | model.setCusid( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_CUSID).getCode()); |
| | | model.setAppid(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_APPID).getCode()); |
| | | model.setVersion(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VERSION).getCode()); |
| | | model.setSigntype( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SIGN_TYPE).getCode()); |
| | | model.setAppkey(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_APPKEY).getCode()); |
| | | model.setUrl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_APIURL).getCode()); |
| | | model.setAppPubkey( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SYB_RSATLPUBKEY).getCode()); |
| | | return model; |
| | | } |
| | | |
| | | public PayOrderNotifyParam query( TreeMap<String,String> params,String url,String appkey,String pubKey ) { |
| | | try { |
| | | params.put("sign", SybUtil.unionSign(params,appkey,SybConstants.SIGN_TYPE)); |
| | | String data =getHttpParamsStr(params); |
| | | log.error("è®¢åæ¥è¯¢æ°æ®è¯·æ±================{}",data); |
| | | String result = HttpsUtil.post(url+"/tranx/query",data,"application/x-www-form-urlencoded",true); |
| | | log.error("è®¢åæ¥è¯¢æ°æ®è¿å================{}",result); |
| | | PayOrderNotifyParam map = handleResult(result,pubKey,params.get("signtype")); |
| | | return map; |
| | | }catch (Exception e){ |
| | | log.error("éèè®¢åæ¥è¯¢å¼å¸¸================{}",e); |
| | | } |
| | | return null; |
| | | } |
| | | public String getHttpParamsStr(Map<String, String> params ) throws IOException { |
| | | StringBuilder outBuf = new StringBuilder(); |
| | | boolean isNotFirst = false; |
| | | for (Map.Entry<String, String> entry: params.entrySet()){ |
| | | if (isNotFirst) |
| | | outBuf.append('&'); |
| | | isNotFirst = true; |
| | | outBuf |
| | | .append(entry.getKey()) |
| | | .append('=') |
| | | .append(URLEncoder.encode(entry.getValue(), "UTF-8")); |
| | | } |
| | | System.out.println("åæ°:"+outBuf.toString()); |
| | | return outBuf.toString(); |
| | | } |
| | | |
| | | public static PayOrderNotifyParam handleResult(String result,String pubKey,String signType) throws Exception{ |
| | | log.error("è¿åæ°æ®è¿å================{}",result); |
| | | Map map = SybUtil.json2ObjMap(result); |
| | | if(map == null){ |
| | | log.error("è¿åæ°æ®è¿åé误================{}",result); |
| | | throw new Exception("è¿åæ°æ®é误"); |
| | | } |
| | | if("SUCCESS".equals(map.get("retcode"))){ |
| | | TreeMap tmap = new TreeMap(); |
| | | tmap.putAll(map); |
| | | if(SybUtil.validSign(tmap, pubKey, signType)){ |
| | | PayOrderNotifyParam param = JSONObject.toJavaObject(JSONObject.parseObject(result),PayOrderNotifyParam.class); |
| | | return param; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public void returnPage(PayOrderParam param, HttpServletResponse response) throws IOException { |
| | |
| | | r ="æ¯ä»ç»æå¼å¸¸ï¼è®¢åæ¥è¯¢å¤±è´¥ï¼å¦æçé®è¯·è系客æäººå"; |
| | | return; |
| | | } |
| | | if(Constants.equalsInteger(model.getPayStatus(),Constants.ONE)){ |
| | | if(Constants.equalsInteger(model.getPayStatus(),Constants.ONE)){ |
| | | log.error("æ¯ä»å¤ç======订åå·²æ¯ä»"+map.getCusorderid()); |
| | | return; |
| | | } |
| | |
| | | return map; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); |
| | | loginLog.setOsInfo(Utils.User_Client.getOS(request)); |
| | | loginLog.setServerIp(Utils.Server.getIP()); |
| | | if(StringUtils.equals(projectEnv,"development")){ |
| | | if(!StringUtils.equals(projectEnv,"development")){ |
| | | // æ ¡éªéªè¯ç |
| | | try { |
| | | captchaService.check(dto.getUuid(), dto.getCode()); |
| | |
| | | spring: |
| | | # æ°æ®æºé
ç½® |
| | | datasource: |
| | | url: jdbc:mysql://192.168.0.211:3306/diandongche?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: root |
| | | password: Doumee@168 |
| | | url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/diandongche?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: test |
| | | password: doumee@168 |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | redis: |
| | | # database: 0 |
| | | host: 127.0.0.1 |
| | | port: 6379 |
| | | password: |
| | | password: ms!123! |
| | | timeout: 5000 # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ |
| | | jackson: |
| | | time-zone: GMT+8 |
| | | date-format: yyyy-MM-dd HH:mm:ss |
| | | |
| | | mail: |
| | | host: smtp.aliyun.com |
| | | port: 465 |
| | | username: your_email@aliyun.com |
| | | password: your_password |
| | | host: smtp.exmail.qq.com |
| | | username: jp@doumee.com |
| | | password: 2Jz9HFW2U7vRnCRu |
| | | default-encoding: UTF-8 |
| | | properties: |
| | | mail: |
| | | smtp: |
| | | auth: true |
| | | starttls: |
| | | enable: true |
| | | required: true |
| | | ssl: |
| | | enable: true |
| | | debug_model: false |
| | | starttls: |
| | | enable: true |
| | | required: true |
| | | |
| | | debug_model: true |
| | | |
| | | # Swaggeré
ç½® |
| | | swagger: |
| | | host: 127.0.0.1 |
| | | host: |
| | | title: ${project.name}æ¥å£ææ¡£ |
| | | description: ${project.name}æ¥å£ææ¡£ |
| | | # å¯ç¨Swaggerï¼ç产ç¯å¢å»ºè®®å
³é |
| | | enabled: true |
| | | context-path: |
| | | # å¯ç¨swaggerå å¯ |
| | | enable-encrypt: true |
| | | # ç¦ç¨swaggeræ¶çéå®åå°å |
| | | redirect-uri: / |
| | | |
| | | des_pwd: 123456SDFKDJF |
| | | |
| | | des_pwd: 123456SDFKDJF |
| | | knife4j: |
| | | enable: true |
| | | basic: |
| | | enable: true |
| | | username: admin |
| | | password: doumee@168 |
| | | upload: |
| | | type: blob |
| | | password: 111111 |
| | | |
| | | aes: |
| | | encrypt: |
| | | open: true # æ¯å¦å¼å¯å å¯ true or false |
| | | showLog: true # æ¯å¦æå°å è§£å¯log true or false |
| | | publicKey: mN4Yn8Or8r7SH1w3 # AESå¯é¥ |
| | | privateKey: # RSAç§é¥ |
| | | time: 600000 |
| | | |
| | | upload: |
| | | type: ftp |
| | | |
| | | project: |
| | | # ç¯å¢ï¼ç产ç¯å¢productionï¼å¼åç¯å¢development |
| | | env: production |
| | | # 模å¼ï¼testingæµè¯æ¨¡å¼ |
| | | mode: production |
| | | mode: production |
| | | |
| | | dingtalk: |
| | | clientId: dingulzemj5bynjciapg |
| | | clientSecret: tLnWtSmmTuqjX9a1MvJzYxI1iXVJxEwtyZZYYFQ5cLg57pzzCZ4J8VsVwvmRNtkK |
| | | |
| | | |
| | | |
| | |
| | | spring: |
| | | # æ°æ®æºé
ç½® |
| | | datasource: |
| | | url: jdbc:mysql://192.168.0.211:3306/diandongche?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: root |
| | | password: Doumee@168 |
| | | url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/diandongche?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: test |
| | | password: doumee@168 |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | redis: |
| | |
| | | jackson: |
| | | time-zone: GMT+8 |
| | | date-format: yyyy-MM-dd HH:mm:ss |
| | | # mail: |
| | | # username: jiangping0849@outlook.com |
| | | # password: mwzaislgioyhxnig |
| | | # host: smtp-mail.outlook.com |
| | | # port: 587 |
| | | # default-encoding: UTF-8 |
| | | # properties: |
| | | # mail: |
| | | # debug: true |
| | | # smtp: |
| | | # ssl: |
| | | # socketFactory: |
| | | # class: com.sun.mail.util.MailSSLSocketFactory |
| | | # fallback: false |
| | | # auth: true |
| | | # starttls: |
| | | # enable: true |
| | | # required: true |
| | | |
| | | mail: |
| | | host: smtp.exmail.qq.com |
| | | username: jp@doumee.com |
| | |
| | | username: admin |
| | | password: 111111 |
| | | |
| | | aes: |
| | | encrypt: |
| | | open: true # æ¯å¦å¼å¯å å¯ true or false |
| | | showLog: true # æ¯å¦æå°å è§£å¯log true or false |
| | | publicKey: mN4Yn8Or8r7SH1w3 # AESå¯é¥ |
| | | privateKey: # RSAç§é¥ |
| | | time: 600000 |
| | | |
| | | upload: |
| | | type: blob |
| | | |
| | | type: ftp |
| | | |
| | | project: |
| | | # ç¯å¢ï¼ç产ç¯å¢productionï¼å¼åç¯å¢development |
| | | env: production |
| | | env: development |
| | | # 模å¼ï¼testingæµè¯æ¨¡å¼ |
| | | mode: testing |
| | | mode: testing |
| | | |
| | | dingtalk: |
| | | clientId: dingulzemj5bynjciapg |
| | | clientSecret: tLnWtSmmTuqjX9a1MvJzYxI1iXVJxEwtyZZYYFQ5cLg57pzzCZ4J8VsVwvmRNtkK |
| | | |
| | | |
| | | |
| | |
| | | |
| | | killall java |
| | | |
| | | nohup java -jar /usr/local/jars/jinkuai/jinkuai_admin.jar > /dev/null 2>&1 & |
| | | nohup java -jar /usr/local/jars/jinkuai/jinkuai_web.jar > /dev/null 2>&1 & |
| | | nohup java -jar /www/server/dmpay/diandongche_admin.jar > /dev/null 2>&1 & |
| | | |
| | | cd /data/jars/lianhelihua/logs |
| | | tail -f /data/jars/lianhelihua/logs/info.2025-05-19.1.log |
| | | cd /www/server/dmpay/logs |
| | | tail -f /www/server/dmpay/logs/info.2025-05-19.1.log |
| | |
| | | { |
| | | "path": "pages/index/index", |
| | | "style": { |
| | | "navigationBarTitleText": "çµå¨è½¦æ¶æ¬¾", |
| | | "navigationBarTitleText": "æºç§è", |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | | "navigationBarTitleText": "çµå¨è½¦æ¶æ¬¾", |
| | | "navigationBarTitleText": "æºç§è", |
| | | "navigationBarBackgroundColor": "#F8F8F8", |
| | | "backgroundColor": "#F8F8F8" |
| | | }, |
| | |
| | | <template> |
| | | <view class="content"> |
| | | <view class="content" v-if="validPath"> |
| | | <view class="banner"> |
| | | <image src="/static/banner.png" mode="widthFix"></image> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="btn" @click="sendSave">廿¯ä»</view> |
| | | </view> |
| | | <view class="box" v-else> |
| | | <image src="/static/ic_payfail.png" mode="widthFix" class="icon"></image> |
| | | <view class="title" >请使ç¨å¾®ä¿¡æè
æ¯ä»å®åºç¨æ«ç æå¼</view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | data() { |
| | | return { |
| | | flag:'name', |
| | | validPath : true, |
| | | form: { |
| | | type: 0, |
| | | name: '', |
| | |
| | | }, |
| | | mounted() { |
| | | this.loading=false |
| | | this.validPath = this.isWeChatBrowser() || this.isAlipayBrowser() |
| | | this.form.userId = this.fetchParams("userId",window.location.href) |
| | | }, |
| | | methods: { |
| | | // 夿æ¯å¦å¨å¾®ä¿¡æµè§å¨ä¸æå¼ |
| | | isWeChatBrowser() { |
| | | // #ifdef H5 |
| | | const userAgent = navigator.userAgent.toLowerCase(); |
| | | return userAgent.indexOf('micromessenger') !== -1; |
| | | // #endif |
| | | return false; |
| | | }, |
| | | // 夿æ¯å¦å¨æ¯ä»å®æµè§å¨ä¸æå¼ |
| | | isAlipayBrowser() { |
| | | // #ifdef H5 |
| | | const userAgent = navigator.userAgent.toLowerCase(); |
| | | return userAgent.indexOf('alipayclient') !== -1; |
| | | // #endif |
| | | return false; |
| | | }, |
| | | toSuccess() { |
| | | uni.navigateTo({ |
| | | url: '/pages/success/success' |
| | |
| | | }, |
| | | async sendSave() { |
| | | if(this.loading){ |
| | | return |
| | | // return |
| | | } |
| | | this.loading=true |
| | | var that = this |
| | |
| | | if(!this.form.phone){ |
| | | uni.showToast({ |
| | | 'title': '请è¾å
¥ææºå·',icon:'none' |
| | | }) |
| | | this.loading=false |
| | | return |
| | | } |
| | | if(this.form.phone.length != 11){ |
| | | uni.showToast({ |
| | | 'title': '请è¾å
¥æ£ç¡®ç11使æºå·',icon:'none' |
| | | }) |
| | | this.loading=false |
| | | return |
| | |
| | | demo_form.submit() |
| | | |
| | | // this.toSuccess() |
| | | } |
| | | } |
| | | this.loading=false |
| | | }, |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | padding: 0 40rpx; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | .icon { |
| | | width: 180rpx; |
| | | height: 180rpx; |
| | | margin-top: 54rpx; |
| | | } |
| | | .title { |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-top: 32rpx; |
| | | } |
| | | } |
| | | .content { |
| | | width: 100%; |
| | | padding: 20rpx 30rpx; |
| | |
| | | width: 100%; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #999999; |
| | | //color: #999999; |
| | | text-align: right; |
| | | } |
| | | } |
| | |
| | | <image v-else src="/static/ic_paysuccess@2x.png" mode="widthFix" class="icon"></image> |
| | | |
| | | </template> |
| | | <view class="title">{{info.status==0?'çå¾
æ¯ä»':(info.status==1?'æ¯ä»æå':'æ¯ä»å¤±è´¥')}}</view> |
| | | <view class="title" v-if="info.id">{{info.status==0?'çå¾
æ¯ä»':(info.status==1?'æ¯ä»æå':'æ¯ä»å¤±è´¥')}}</view> |
| | | <view class="title" v-if="!info.id">æ¥è¯¢ä¸</view> |
| | | <view class="info"> |
| | | <view class="info-item"> |
| | | <view class="info-item-label">仿¬¾äºç±</view> |
| | |
| | | <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>æºç§è</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)')) |
| | | document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/web/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/web/static/js/chunk-vendors.b176ace3.js></script><script src=/web/static/js/index.a2491d9d.js></script></body></html> |
| | | document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/web/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/web/static/js/chunk-vendors.b176ace3.js></script><script src=/web/static/js/index.8a442d3d.js></script></body></html> |
| | |
| | | //export const baseUrl = 'http://localhost:11010/' |
| | | export const baseUrl = 'http://t569e369.natappfree.cc/admin_interface/' |
| | | export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' |
| | | //export const baseUrl = 'http://t569e369.natappfree.cc/admin_interface/' |
| | | export const baseUrl = 'https://pay.smartbee.run/admin_interface/' |
| | | export const app_url = 'https://pay.smartbee.run/web/#/' |
| | | |
| | | |