diff --git a/code/base-project/base-app/datagrid-scrollview.js b/code/base-project/base-app/datagrid-scrollview.js deleted file mode 100644 index d8b4dcb5..00000000 --- a/code/base-project/base-app/datagrid-scrollview.js +++ /dev/null @@ -1,901 +0,0 @@ -/** - * DataGrid ScrollView for jQuery EasyUI - * version: 1.0.2 - */ - -$.extend($.fn.datagrid.defaults, { - rowHeight: null, - maxDivHeight: 10000000, - maxVisibleHeight: 15000000, - deltaTopHeight: 0, - onBeforeFetch(page) {}, - onFetch(page, rows) {}, - loader(param, success, error) { - let opts = $(this).datagrid('options') - if (!opts.url) - return false - if (opts.view.type == 'scrollview') { - param.page = param.page || 1 - param.rows = param.rows || opts.pageSize - } - $.ajax({ - type: opts.method, - url: opts.url, - data: param, - dataType: 'json', - success(data) { - success(data) - }, - error() { - error.apply(this, arguments) - }, - }) - }, -}) -$.extend($.fn.datagrid.defaults.finder, { - getRow(target, p) { // p can be row index or tr object - let index = (typeof p == 'object') ? p.attr('datagrid-row-index') : p - let data = $.data(target, 'datagrid').data - let opts = $(target).datagrid('options') - if (opts.view.type == 'scrollview') { - let firstRows = data.firstRows || [] - if (index < firstRows.length) { - return firstRows[index] - } - else { - index -= opts.view.index - } - } - return data.rows[index] - }, -}) - -let scrollview = $.extend({}, $.fn.datagrid.defaults.view, { - type: 'scrollview', - index: 0, - r1: [], - r2: [], - rows: [], - render(target, container, frozen) { - let state = $.data(target, 'datagrid') - let opts = state.options - let rows = this.rows || [] - if (!rows.length) { - return - } - let fields = $(target).datagrid('getColumnFields', frozen) - - if (frozen) { - if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))) { - return - } - } - - let index = this.index - let table = ['
', ''] - for (let i = 0; i < rows.length; i++) { - let css = opts.rowStyler ? opts.rowStyler.call(target, index, rows[i]) : '' - let classValue = '' - let styleValue = '' - if (typeof css == 'string') { - styleValue = css - } - else if (css) { - classValue = css.class || '' - styleValue = css.style || '' - } - let cls = `class="datagrid-row ${index % 2 && opts.striped ? 'datagrid-row-alt ' : ' '}${classValue}"` - let style = styleValue ? `style="${styleValue}"` : '' - let rowId = `${state.rowIdPrefix}-${frozen ? 1 : 2}-${index}` - table.push(``) - table.push(this.renderRow.call(this, target, fields, frozen, index, rows[i])) - table.push('') - - // render the detail row - if (opts.detailFormatter) { - table.push('') - if (frozen) { - table.push(`') - table.push('') - } - - index++ - } - table.push('
`) - } - else { - table.push(``) - } - table.push('
') - if (frozen) { - table.push(' ') - } - else { - table.push(opts.detailFormatter.call(target, index, rows[i])) - } - table.push('
') - table.push('
') - table.push('
') - - $(container).html(table.join('')) - }, - - renderRow(target, fields, frozen, rowIndex, rowData) { - let opts = $.data(target, 'datagrid').options - - let cc = [] - if (frozen && opts.rownumbers) { - let rownumber = rowIndex + 1 - // if (opts.pagination){ - // rownumber += (opts.pageNumber-1)*opts.pageSize; - // } - cc.push(`
${rownumber}
`) - } - for (let i = 0; i < fields.length; i++) { - let field = fields[i] - let col = $(target).datagrid('getColumnOption', field) - if (col) { - let value = rowData[field] // the field value - let css = col.styler ? (col.styler(value, rowData, rowIndex) || '') : '' - let classValue = '' - let styleValue = '' - if (typeof css == 'string') { - styleValue = css - } - else if (cc) { - classValue = css.class || '' - styleValue = css.style || '' - } - let cls = classValue ? `class="${classValue}"` : '' - let style = col.hidden ? `style="display:none;${styleValue}"` : (styleValue ? `style="${styleValue}"` : '') - - cc.push(``) - - if (col.checkbox) { - style = '' - } - else if (col.expander) { - style = 'text-align:center;height:16px;' - } - else { - style = styleValue - if (col.align) { style += `;text-align:${col.align};` } - if (!opts.nowrap) { - style += ';white-space:normal;height:auto;' - } - else if (opts.autoRowHeight) { - style += ';height:auto;' - } - } - - cc.push(`
') - - if (col.checkbox) { - cc.push(``) - } - else if (col.expander) { - // cc.push('
'); - cc.push('') - // cc.push('
'); - } - else if (col.formatter) { - cc.push(col.formatter(value, rowData, rowIndex)) - } - else { - cc.push(value) - } - - cc.push('
') - cc.push('') - } - } - return cc.join('') - }, - - bindEvents(target) { - let state = $.data(target, 'datagrid') - let dc = state.dc - let opts = state.options - let body = dc.body1.add(dc.body2) - let clickHandler = ($.data(body[0], 'events') || $._data(body[0], 'events')).click[0].handler - body.unbind('click').bind('click', (e) => { - let tt = $(e.target) - let tr = tt.closest('tr.datagrid-row') - if (!tr.length) { return } - if (tt.hasClass('datagrid-row-expander')) { - let rowIndex = Number.parseInt(tr.attr('datagrid-row-index')) - if (tt.hasClass('datagrid-row-expand')) { - $(target).datagrid('expandRow', rowIndex) - } - else { - $(target).datagrid('collapseRow', rowIndex) - } - $(target).datagrid('fixRowHeight') - } - else { - clickHandler(e) - } - e.stopPropagation() - }) - }, - - onBeforeRender(target) { - let state = $.data(target, 'datagrid') - let opts = state.options - let dc = state.dc - let view = this - - opts._emptyMsg = opts.emptyMsg // store the emptyMsg value - opts.emptyMsg = '' // erase it to prevent from displaying it - state.data.firstRows = state.data.rows - state.data.rows = [] - - dc.body1.add(dc.body2).empty() - this.rows = [] // the rows to be rendered - this.r1 = this.r2 = [] // the first part and last part of rows - - init() - createHeaderExpander() - - function init() { - opts.rowHeight = $(target).datagrid('getRowHeight') - let pager = $(target).datagrid('getPager') - pager.each(function () { - $(this).pagination('options').onSelectPage = function (pageNum, pageSize) { - opts.pageNumber = pageNum || 1 - opts.pageSize = pageSize - pager.pagination('refresh', { - pageNumber: pageNum, - pageSize, - }) - $(target).datagrid('gotoPage', opts.pageNumber) - } - }) - // erase the onLoadSuccess event, make sure it can't be triggered - state.onLoadSuccess = opts.onLoadSuccess - opts.onLoadSuccess = function () {} - if (!opts.remoteSort) { - let onBeforeSortColumn = opts.onBeforeSortColumn - opts.onBeforeSortColumn = function (name, order) { - let result = onBeforeSortColumn.call(this, name, order) - if (result == false) { - return false - } - state.data.rows = state.data.firstRows - } - } - dc.body2.unbind('.datagrid') - setTimeout(() => { - dc.body2.unbind('.datagrid').bind('scroll.datagrid', (e) => { - if (state.onLoadSuccess) { - opts.onLoadSuccess = state.onLoadSuccess // restore the onLoadSuccess event - state.onLoadSuccess = undefined - state.originalRows = $.extend(true, [], state.data.firstRows) - } - if (view.scrollTimer) { - clearTimeout(view.scrollTimer) - } - view.scrollTimer = setTimeout(() => { - view.scrolling.call(view, target) - }, 50) - }) - dc.body2.triggerHandler('scroll.datagrid') - }, 0) - } - function createHeaderExpander() { - if (!opts.detailFormatter) { return } - - var t = $(target) - let hasExpander = false - let fields = t.datagrid('getColumnFields', true).concat(t.datagrid('getColumnFields')) - for (let i = 0; i < fields.length; i++) { - let col = t.datagrid('getColumnOption', fields[i]) - if (col.expander) { - hasExpander = true - break - } - } - if (!hasExpander) { - if (opts.frozenColumns && opts.frozenColumns.length) { - opts.frozenColumns[0].splice(0, 0, { field: '_expander', expander: true, width: 24, resizable: false, fixed: true }) - } - else { - opts.frozenColumns = [[{ field: '_expander', expander: true, width: 24, resizable: false, fixed: true }]] - } - - var t = dc.view1.children('div.datagrid-header').find('table') - let td = $(`
`) - if ($('tr', t).length == 0) { - td.wrap('').parent().appendTo($('tbody', t)) - } - else if (opts.rownumbers) { - td.insertAfter(t.find('td:has(div.datagrid-header-rownumber)')) - } - else { - td.prependTo(t.find('tr:first')) - } - } - - setTimeout(() => { - view.bindEvents(target) - }, 0) - } - }, - - onAfterRender(target) { - $.fn.datagrid.defaults.view.onAfterRender.call(this, target) - let dc = $.data(target, 'datagrid').dc - let footer = dc.footer1.add(dc.footer2) - footer.find('span.datagrid-row-expander').css('visibility', 'hidden') - }, - - scrolling(target) { - let state = $.data(target, 'datagrid') - let opts = state.options - let dc = state.dc - if (!opts.finder.getRows(target).length) { - this.reload.call(this, target) - } - else { - if (!dc.body2.is(':visible')) { return } - let headerHeight = dc.view2.children('div.datagrid-header').outerHeight() - - let topDiv = dc.body2.children('div.datagrid-btable-top') - let bottomDiv = dc.body2.children('div.datagrid-btable-bottom') - if (!topDiv.length || !bottomDiv.length) { return } - let top = topDiv.position().top + topDiv._outerHeight() - headerHeight - let bottom = bottomDiv.position().top - headerHeight - top = Math.floor(top) - bottom = Math.floor(bottom) - - if (top > dc.body2.height() || bottom < 0) { - this.reload.call(this, target) - } - else if (top > 0) { - var page = Math.floor(this.index / opts.pageSize) - this.getRows.call(this, target, page, function (rows) { - this.page = page - this.r2 = this.r1 - this.r1 = rows - this.index = (page - 1) * opts.pageSize - this.rows = this.r1.concat(this.r2) - this.populate.call(this, target) - }) - } - else if (bottom < dc.body2.height()) { - if (state.data.rows.length + this.index >= state.data.total) { - return - } - var page = Math.floor(this.index / opts.pageSize) + 2 - if (this.r2.length) { - page++ - } - this.getRows.call(this, target, page, function (rows) { - this.page = page - if (!this.r2.length) { - this.r2 = rows - } - else { - this.r1 = this.r2 - this.r2 = rows - this.index += opts.pageSize - } - this.rows = this.r1.concat(this.r2) - this.populate.call(this, target) - }) - } - } - }, - reload(target) { - let state = $.data(target, 'datagrid') - let opts = state.options - let dc = state.dc - let top = $(dc.body2).scrollTop() + opts.deltaTopHeight - let index = Math.floor(top / opts.rowHeight) - let page = Math.floor(index / opts.pageSize) + 1 - - this.getRows.call(this, target, page, function (rows) { - this.page = page - this.index = (page - 1) * opts.pageSize - this.rows = rows - this.r1 = rows - this.r2 = [] - this.populate.call(this, target) - dc.body2.triggerHandler('scroll.datagrid') - }) - }, - - getRows(target, page, callback) { - let state = $.data(target, 'datagrid') - let opts = state.options - let index = (page - 1) * opts.pageSize - - // if possible display the empty message - opts.emptyMsg = opts._emptyMsg - if (this.setEmptyMsg) { - this.setEmptyMsg(target) - } - - if (index < 0) { return } - if (opts.onBeforeFetch.call(target, page) == false) { return } - - let rows = (state.data.firstRows || []).slice(index, index + opts.pageSize) - if (rows.length && (rows.length == opts.pageSize || index + rows.length == state.data.total)) { - opts.onFetch.call(target, page, rows) - callback.call(this, rows) - } - else { - let param = $.extend({}, opts.queryParams, { - page, - rows: opts.pageSize, - }) - if (opts.sortName) { - $.extend(param, { - sort: opts.sortName, - order: opts.sortOrder, - }) - } - if (opts.onBeforeLoad.call(target, param) == false) - return - - $(target).datagrid('loading') - let result = opts.loader.call(target, param, (data) => { - $(target).datagrid('loaded') - var data = opts.loadFilter.call(target, data) - opts.onFetch.call(target, page, data.rows) - if (data.rows && data.rows.length) { - callback.call(opts.view, data.rows) - } - else { - opts.onLoadSuccess.call(target, data) - } - }, function () { - $(target).datagrid('loaded') - opts.onLoadError.apply(target, arguments) - }) - if (result == false) { - $(target).datagrid('loaded') - if (!(state.data.firstRows || []).length) { - opts.onFetch.call(target, page, state.data.firstRows) - opts.onLoadSuccess.call(target, state.data) - } - } - } - }, - - populate(target) { - let state = $.data(target, 'datagrid') - let opts = state.options - let dc = state.dc - let rowHeight = opts.rowHeight - let maxHeight = opts.maxDivHeight - - if (this.rows.length) { - opts.view.render.call(opts.view, target, dc.body2, false) - opts.view.render.call(opts.view, target, dc.body1, true) - - let body = dc.body1.add(dc.body2) - let topDiv = body.children('div.datagrid-btable-top') - let bottomDiv = body.children('div.datagrid-btable-bottom') - let topHeight = this.index * rowHeight - let bottomHeight = state.data.total * rowHeight - this.rows.length * rowHeight - topHeight - fillHeight(topDiv, topHeight) - fillHeight(bottomDiv, bottomHeight) - - state.data.rows = this.rows - - let spos = dc.body2.scrollTop() + opts.deltaTopHeight - if (topHeight > opts.maxVisibleHeight) { - opts.deltaTopHeight = topHeight - opts.maxVisibleHeight - fillHeight(topDiv, topHeight - opts.deltaTopHeight) - } - else { - opts.deltaTopHeight = 0 - } - if (bottomHeight > opts.maxVisibleHeight) { - fillHeight(bottomDiv, opts.maxVisibleHeight) - } - else if (bottomHeight == 0) { - let lastCount = state.data.total % opts.pageSize - if (lastCount) { - fillHeight(bottomDiv, dc.body2.height() - lastCount * rowHeight) - } - } - - $(target).datagrid('setSelectionState') - dc.body2.scrollTop(spos - opts.deltaTopHeight) - - opts.pageNumber = this.page - let pager = $(target).datagrid('getPager') - if (pager.length) { - let popts = pager.pagination('options') - let displayMsg = popts.displayMsg - let msg = displayMsg.replace(/\{from\}/, this.index + 1) - msg = msg.replace(/\{to\}/, this.index + this.rows.length) - pager.pagination('refresh', { - pageNumber: this.page, - displayMsg: msg, - }) - popts.displayMsg = displayMsg - } - if (this.setEmptyMsg) { - this.setEmptyMsg(target) - } - - opts.onLoadSuccess.call(target, { - total: state.data.total, - rows: this.rows, - }) - } - function fillHeight(div, height) { - let count = Math.floor(height / maxHeight) - let leftHeight = height - maxHeight * count - if (height < 0) { - leftHeight = 0 - } - let cc = [] - for (let i = 0; i < count; i++) { - cc.push(`
`) - } - cc.push(`
`) - $(div).html(cc.join('')) - } - }, - - updateRow(target, rowIndex, row) { - let opts = $.data(target, 'datagrid').options - let rows = $(target).datagrid('getRows') - let rowData = opts.finder.getRow(target, rowIndex) - let oldStyle = _getRowStyle(rowIndex) - $.extend(rowData, row) - let newStyle = _getRowStyle(rowIndex) - let oldClassValue = oldStyle.c - let styleValue = newStyle.s - let classValue = `datagrid-row ${rowIndex % 2 && opts.striped ? 'datagrid-row-alt ' : ' '}${newStyle.c}` - - function _getRowStyle(rowIndex) { - let css = opts.rowStyler ? opts.rowStyler.call(target, rowIndex, rowData) : '' - let classValue = '' - let styleValue = '' - if (typeof css == 'string') { - styleValue = css - } - else if (css) { - classValue = css.class || '' - styleValue = css.style || '' - } - return { c: classValue, s: styleValue } - } - function _update(frozen) { - let fields = $(target).datagrid('getColumnFields', frozen) - let tr = opts.finder.getTr(target, rowIndex, 'body', (frozen ? 1 : 2)) - let checked = tr.find('div.datagrid-cell-check input[type=checkbox]').is(':checked') - tr.html(this.renderRow.call(this, target, fields, frozen, rowIndex, rowData)) - tr.attr('style', styleValue).removeClass(oldClassValue).addClass(classValue) - if (checked) { - tr.find('div.datagrid-cell-check input[type=checkbox]')._propAttr('checked', true) - } - } - - _update.call(this, true) - _update.call(this, false) - $(target).datagrid('fixRowHeight', rowIndex) - }, - - // insertRow: function(target, index, row){ - // var state = $.data(target, 'datagrid'); - // var data = state.data; - - // if (index == undefined || index == null) index = data.rows.length; - // if (index > data.rows.length) index = data.rows.length; - // $.fn.datagrid.defaults.view.insertRow.call(this, target, index, row); - // if (data.firstRows && index <= data.firstRows.length){ - // data.firstRows.splice(index, 0, row); - // } - // }, - insertRow(target, index, row) { - let state = $.data(target, 'datagrid') - let opts = state.options - let data = state.data - - let total = $(target).datagrid('getData').total - if (index == null) { index = total } - if (index > total) { index = total } - if (data.firstRows && index <= data.firstRows.length) { - data.firstRows.splice(index, 0, row) - } - data.total++ - - let rows = this.r1.concat(this.r2) - if (index < this.index) { - this.reload.call(this, target) - } - else if (index <= this.index + rows.length) { - rows.splice(index - this.index, 0, row) - this.r1 = rows.splice(0, opts.pageSize) - if (this.r2.length) { - this.r2 = rows.splice(0, opts.pageSize) - } - this.rows = this.r1.concat(this.r2) - this.populate.call(this, target) - state.dc.body2.triggerHandler('scroll.datagrid') - } - }, - - // deleteRow: function(target, index){ - // var data = $(target).datagrid('getData'); - // $.fn.datagrid.defaults.view.deleteRow.call(this, target, index); - // if (data.firstRows){ - // data.firstRows.splice(index, 1); - // } - // }, - deleteRow(target, index) { - let state = $.data(target, 'datagrid') - let data = state.data - let opts = state.options - data.total-- - if (data.firstRows) { - if (index < data.firstRows.length) { - data.firstRows.splice(index, 1) - if (data.total) { - this.reload.call(this, target) - } - else { - // $(target).datagrid('loadData', []) - state.data.rows = [] - $(state.dc.body1).empty() - $(state.dc.body2).empty() - if (this.setEmptyMsg) { - this.setEmptyMsg.call(this, target) - } - } - // this.reload.call(this, target); - return - } - } - - let rows = this.r1.concat(this.r2) - if (index < this.index) { - this.reload.call(this, target) - } - else if (index < this.index + rows.length) { - rows.splice(index - this.index, 1) - this.r1 = rows.splice(0, opts.pageSize) - if (this.r1.length < opts.pageSize) { - this.reload.call(this, target) - } - else { - this.r2 = [] - this.rows = this.r1.concat(this.r2) - this.populate.call(this, target) - state.dc.body2.triggerHandler('scroll.datagrid') - } - } - }, -}) - -$.fn.datagrid.methods.baseUpdateRow = $.fn.datagrid.methods.updateRow -$.fn.datagrid.methods.baseGetRowIndex = $.fn.datagrid.methods.getRowIndex -$.fn.datagrid.methods.baseScrollTo = $.fn.datagrid.methods.scrollTo -$.fn.datagrid.methods.baseGotoPage = $.fn.datagrid.methods.gotoPage -$.fn.datagrid.methods.baseSetSelectionState = $.fn.datagrid.methods.setSelectionState -$.extend($.fn.datagrid.methods, { - getRowHeight(jq) { - let opts = jq.datagrid('options') - if (!opts.rowHeight) { - let d = $('
cell
').appendTo('body') - let rowHeight = d.find('tr').outerHeight() - d.remove() - opts.rowHeight = rowHeight - } - return opts.rowHeight - }, - updateRow(jq, param) { - return jq.each(function () { - let opts = $(this).datagrid('options') - let row = opts.finder.getRow(this, param.index) - if (row) { - $(this).datagrid('baseUpdateRow', param) - } - else { - let firstRows = $(this).datagrid('getData').firstRows || [] - if (param.index < firstRows.length) { - $.extend(firstRows[param.index], param.row) - } - } - }) - }, - getRowIndex(jq, row) { - let opts = jq.datagrid('options') - if (opts.view.type == 'scrollview') { - let data = jq.datagrid('getData') - let firstRows = data.firstRows || [] - if (typeof row == 'object') { - var index = $.easyui.indexOfArray(firstRows, row) - } - else { - var index = $.easyui.indexOfArray(firstRows, opts.idField, row) - } - if (index >= 0) { - return index - } - else { - index = jq.datagrid('baseGetRowIndex', row) - return (index == -1) ? -1 : index + opts.view.index - } - } - else { - return jq.datagrid('baseGetRowIndex', row) - } - }, - getRow(jq, index) { - return jq.datagrid('options').finder.getRow(jq[0], index) - }, - gotoPage(jq, param) { - return jq.each(function () { - let target = this - let opts = $(target).datagrid('options') - if (opts.view.type == 'scrollview') { - let page, callback - if (typeof param == 'object') { - page = param.page - callback = param.callback - } - else { - page = param - } - opts.view.getRows.call(opts.view, target, page, function (rows) { - this.page = page - this.index = (page - 1) * opts.pageSize - this.rows = rows - this.r1 = rows - this.r2 = [] - this.populate.call(this, target) - $(target).data('datagrid').dc.body2.scrollTop(this.index * opts.rowHeight - opts.deltaTopHeight) - if (callback) { - callback.call(target, page) - } - }) - } - else { - $(target).datagrid('baseGotoPage', param) - } - }) - }, - scrollTo(jq, param) { - return jq.each(function () { - let target = this - let opts = $(target).datagrid('options') - let index, callback - if (typeof param == 'object') { - index = param.index - callback = param.callback - } - else { - index = param - } - let view = opts.view - if (view.type == 'scrollview') { - if (index >= view.index && index < view.index + view.rows.length) { - $(target).datagrid('baseScrollTo', index) - if (callback) { - callback.call(target, index) - } - } - else if (index >= 0) { - let page = Math.floor(index / opts.pageSize) + 1 - $(target).datagrid('gotoPage', { - page, - callback() { - setTimeout(() => { - $(target).datagrid('baseScrollTo', index) - if (callback) { - callback.call(target, index) - } - }, 0) - }, - }) - } - } - else { - $(target).datagrid('baseScrollTo', index) - if (callback) { - callback.call(target, index) - } - } - }) - }, - setSelectionState(jq) { - return jq.each(function () { - let target = this - let opts = $(target).datagrid('options') - if (opts.view.type == 'scrollview') { - $(target).datagrid('baseSetSelectionState') - let state = $(target).data('datagrid') - if ((state.data.firstRows || []).length != state.checkedRows.length) { - let dc = state.dc - dc.header1.add(dc.header2).find('input[type=checkbox]')._propAttr('checked', false) - } - } - else { - $(target).datagrid('baseSetSelectionState') - } - }) - }, -}) - -$.extend($.fn.datagrid.methods, { - fixDetailRowHeight(jq, index) { - return jq.each(function () { - let opts = $.data(this, 'datagrid').options - let dc = $.data(this, 'datagrid').dc - let tr1 = opts.finder.getTr(this, index, 'body', 1).next() - let tr2 = opts.finder.getTr(this, index, 'body', 2).next() - // fix the detail row height - if (tr2.is(':visible')) { - tr1.css('height', '') - tr2.css('height', '') - let height = Math.max(tr1.height(), tr2.height()) - tr1.css('height', height) - tr2.css('height', height) - } - dc.body2.triggerHandler('scroll') - }) - }, - getExpander(jq, index) { // get row expander object - let opts = $.data(jq[0], 'datagrid').options - return opts.finder.getTr(jq[0], index).find('span.datagrid-row-expander') - }, - // get row detail container - getRowDetail(jq, index) { - let opts = $.data(jq[0], 'datagrid').options - let tr = opts.finder.getTr(jq[0], index, 'body', 2) - return tr.next().find('div.datagrid-row-detail') - }, - expandRow(jq, index) { - return jq.each(function () { - let opts = $(this).datagrid('options') - let dc = $.data(this, 'datagrid').dc - let expander = $(this).datagrid('getExpander', index) - if (expander.hasClass('datagrid-row-expand')) { - expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse') - let tr1 = opts.finder.getTr(this, index, 'body', 1).next() - let tr2 = opts.finder.getTr(this, index, 'body', 2).next() - tr1.show() - tr2.show() - $(this).datagrid('fixDetailRowHeight', index) - if (opts.onExpandRow) { - // var row = $(this).datagrid('getRows')[index]; - let row = $(this).datagrid('getRow', index) - opts.onExpandRow.call(this, index, row) - } - } - }) - }, - collapseRow(jq, index) { - return jq.each(function () { - let opts = $(this).datagrid('options') - let dc = $.data(this, 'datagrid').dc - let expander = $(this).datagrid('getExpander', index) - if (expander.hasClass('datagrid-row-collapse')) { - expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand') - let tr1 = opts.finder.getTr(this, index, 'body', 1).next() - let tr2 = opts.finder.getTr(this, index, 'body', 2).next() - tr1.hide() - tr2.hide() - dc.body2.triggerHandler('scroll') - if (opts.onCollapseRow) { - let row = $(this).datagrid('getRows')[index] - opts.onCollapseRow.call(this, index, row) - } - } - }) - }, -}) diff --git a/code/base-project/base-app/editbuyin.jsp b/code/base-project/base-app/editbuyin.jsp deleted file mode 100644 index 711dfa10..00000000 --- a/code/base-project/base-app/editbuyin.jsp +++ /dev/null @@ -1,5520 +0,0 @@ -<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> -<%@ include file="../ini.jsp"%> -<% - String id = request.getParameter("id"); - if (id == null) { - id = ""; - } - String father = request.getParameter("father"); - if (father == null) { - father = ""; - } -%> - - - - - 买箱入库 - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- 买箱入库 -
-
-
- - - - -
-
- - -
-
- - - -
- -
- - -
- -
- - -
-
- - - - -
-
- - -
- -
- - - -
-
- - -
-
- - - -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- - -
- - - -
- -
-
-
-
-
-
-
- -
- -
-
-
-
- - - - - - - - - - - - - -
- - - - - - - - - - - -
- 删除日志 -
- -
- - - -
- -
-
- 删除 -
- - -
- 栏位设定 -
-
-
- - - diff --git a/code/base-project/base-app/src/app/(tabs)/chat.tsx b/code/base-project/base-app/src/app/(tabs)/chat.tsx index c666d8e2..6928aedb 100644 --- a/code/base-project/base-app/src/app/(tabs)/chat.tsx +++ b/code/base-project/base-app/src/app/(tabs)/chat.tsx @@ -1,7 +1,19 @@ import { Text, View } from 'react-native' -import { ACell, ACellGroup } from '@/components/common/ao' +import { AButton, ACell, ACellGroup } from '@/components/common/ao' +import { useMoneyCategoryStore } from '@/store/moneyCategory' export default function Demo() { + const moneyCategoryStore = useMoneyCategoryStore() + + function getCategories() { + console.log(moneyCategoryStore.categories) + } + + async function resetCategory() { + moneyCategoryStore.setCategories([]) + await moneyCategoryStore.init() + } + return ( - - + + + + resetCategory()}>重置记账分类 + getCategories()}>获取记账分类 ) } diff --git a/code/base-project/base-app/src/app/(tabs)/money/components/TransactionsList.tsx b/code/base-project/base-app/src/app/(tabs)/money/components/TransactionsList.tsx index 32ed99bc..b219f555 100644 --- a/code/base-project/base-app/src/app/(tabs)/money/components/TransactionsList.tsx +++ b/code/base-project/base-app/src/app/(tabs)/money/components/TransactionsList.tsx @@ -1,6 +1,6 @@ import type { MoneyRecordGroup, MoneyRecordItem } from '@/types/money/record' -import React, { useState } from 'react' -import { SectionList, Text, TouchableHighlight, View } from 'react-native' +import React, { useCallback, useState } from 'react' +import { RefreshControl, SectionList, Text, TouchableHighlight, View } from 'react-native' import { Menu, MenuOption, @@ -11,12 +11,15 @@ import { import { LucideIcon } from '@/components/common/ao' import EmptyState from '@/components/common/EmptyStatus' import MoneyCategoryIcon from '@/components/common/MoneyCategoryIcon' +import { useMoneyCategoryStore } from '@/store/moneyCategory' interface StaticTransactionsProps { records: MoneyRecordGroup[] onUpdate?: (data: MoneyRecordItem) => void onDelete?: (id: number) => void onDetail?: (id: number) => void + onRefreshData?: () => void + onLoadMore?: () => void } export default function StaticTransactions({ @@ -24,9 +27,45 @@ export default function StaticTransactions({ onUpdate, onDelete, onDetail, + onLoadMore, + onRefreshData, }: StaticTransactionsProps) { + const moneyCategoryStore = useMoneyCategoryStore() + const [refreshing, setRefreshing] = useState(false) + const [loadingMore, setLoadingMore] = useState(false) const [selectedId, setSelectedId] = useState(null) + const handleRefresh = useCallback(async () => { + if (!onRefreshData) + return + setRefreshing(true) + try { + await onRefreshData() + } + finally { + setRefreshing(false) + } + }, [onRefreshData]) + + const handleLoadMore = useCallback(async () => { + if (!onLoadMore || loadingMore) + return + setLoadingMore(true) + try { + await onLoadMore() + } + finally { + setLoadingMore(false) + } + }, [onLoadMore, loadingMore]) + + const sections = records.map(group => ({ + title: group.record_time, + totalIncome: group.income, + totalExpense: group.expense, + data: group.records, + })) + if (records.length === 0) { return ( ({ - title: group.record_time, - totalIncome: group.income, - totalExpense: group.expense, - data: group.records, - })) - return ( item.id.toString()} stickySectionHeadersEnabled={true} showsVerticalScrollIndicator={false} + onEndReached={handleLoadMore} + onEndReachedThreshold={0.1} + refreshControl={ + + } renderSectionHeader={({ section }) => ( @@ -82,6 +119,8 @@ export default function StaticTransactions({ )} renderItem={({ item, index }) => { + const category = moneyCategoryStore.getCategoryById(item.category_id) + return ( - + - {item.remark ? item.remark : item.category_name} + {item.remark ? item.remark : category?.name} { index === 1 && ( @@ -125,7 +164,7 @@ export default function StaticTransactions({ - {item.category_type === 1 ? '+' : '-'} + {category?.type === 1 ? '+' : '-'} {' '} {item.amount} diff --git a/code/base-project/base-app/src/app/(tabs)/money/index.tsx b/code/base-project/base-app/src/app/(tabs)/money/index.tsx index 34643e9f..3ec6b8e8 100644 --- a/code/base-project/base-app/src/app/(tabs)/money/index.tsx +++ b/code/base-project/base-app/src/app/(tabs)/money/index.tsx @@ -24,7 +24,7 @@ export default function Money() { record_time: getCurrentYearMonth(), }) - useEffect(() => { + function getMoneyRecords() { queryMoneyRecordsApi({ record_time: searchParams.record_time, }).then((res) => { @@ -39,6 +39,10 @@ export default function Money() { }).catch((err) => { console.log(err) }) + } + + useEffect(() => { + getMoneyRecords() }, [searchParams]) return ( @@ -141,6 +145,9 @@ export default function Money() { onDelete={(id) => { moneyRecordStore.deleteMoneyRecord(id) }} + onRefreshData={() => { + getMoneyRecords() + }} /> diff --git a/code/base-project/base-app/src/app/_layout.tsx b/code/base-project/base-app/src/app/_layout.tsx index d40a51b5..8232219b 100644 --- a/code/base-project/base-app/src/app/_layout.tsx +++ b/code/base-project/base-app/src/app/_layout.tsx @@ -1,7 +1,7 @@ import type { ErrorBoundaryProps } from 'expo-router' import { ToastProvider } from '@gluestack-ui/core/toast/creator' import { useFonts } from 'expo-font' -import { Stack, useRouter } from 'expo-router' +import { Stack, usePathname, useRouter } from 'expo-router' import * as SplashScreen from 'expo-splash-screen' import { StatusBar } from 'expo-status-bar' import { useEffect } from 'react' @@ -12,6 +12,7 @@ import { AButton } from '@/components/common/ao' import EmptyState from '@/components/common/EmptyStatus' import { GluestackUIProvider } from '@/components/ui/gluestack-ui-provider' import { useMoneyCategoryStore } from '@/store/moneyCategory' +import { useNavStore } from '@/store/navigation' import { useUserStore } from '@/store/user' import { ToastProviderWrapper } from '@/utils/toast' import '@/styles/global.css' @@ -44,29 +45,32 @@ export default function RootLayout() { const router = useRouter() const userStore = useUserStore() const moneyCategoryStore = useMoneyCategoryStore() + const pathname = usePathname() + const navStore = useNavStore() const [fontsLoaded] = useFonts({ SpaceMono: require('@/static/fonts/SpaceMono-Regular.ttf'), }) - // splash screen 隐藏 & 登录跳转 useEffect(() => { - if (fontsLoaded) { - SplashScreen.hideAsync() + navStore.setPathname(pathname) + }, [pathname]) + + useEffect(() => { + if (!fontsLoaded) + return + + // 初始化分类 + moneyCategoryStore.init() + + // 登录跳转 + if (!userStore.isLoggedIn()) { + navStore.navigateToAuth() } - }, [fontsLoaded]) - if (!fontsLoaded) { - // 字体未加载,显示空白或 Splash - return null - } - - if (!userStore.isLoggedIn()) { - router.replace('/auth/index') - return null - } - - moneyCategoryStore.init() + // 隐藏 splash + SplashScreen.hideAsync() + }, [fontsLoaded, userStore, moneyCategoryStore, router]) return ( diff --git a/code/base-project/base-app/src/app/money/category/setting/index.tsx b/code/base-project/base-app/src/app/money/category/setting/index.tsx index f324a5d0..8e121747 100644 --- a/code/base-project/base-app/src/app/money/category/setting/index.tsx +++ b/code/base-project/base-app/src/app/money/category/setting/index.tsx @@ -83,7 +83,6 @@ export default function Example() { /> - () const moneryRecord = moneyRecordStore.getMoneyRecordById(Number(detailId)) + const moneyCategory = moneyCategoryStore.getCategoryById(moneryRecord?.category_id || 0) const [showDeleteModal, setShowDeleteModal] = useState(false) @@ -27,12 +29,12 @@ export default function MoneyRecordDetail() { - - {moneryRecord.category_name} + + {moneyCategory?.name} - + diff --git a/code/base-project/base-app/src/app/money/record/editor/index.tsx b/code/base-project/base-app/src/app/money/record/editor/index.tsx index e0cac360..924e1131 100644 --- a/code/base-project/base-app/src/app/money/record/editor/index.tsx +++ b/code/base-project/base-app/src/app/money/record/editor/index.tsx @@ -89,9 +89,6 @@ export default function MoenyRecordEditor() { const result: MoneyRecordItem = { ...moneyRecord, category_id: selectedCategory.id, - category_name: selectedCategory.name, - category_icon: selectedCategory.icon, - category_type: selectedCategory.type, } moneyRecordStore.updateMoneyRecord(result) @@ -104,17 +101,15 @@ export default function MoenyRecordEditor() { } else { insertMoneyRecordApi({ - ...moneyRecord, amount, category_id: selectedCategory.id, + remark: moneyRecord.remark, + record_time: moneyRecord.record_time, }) .then((res) => { if (res.isSuccess) { const result: MoneyRecordItem = { ...res.data, - category_name: selectedCategory.name, - category_icon: selectedCategory.icon, - category_type: selectedCategory.type, } moneyRecordStore.addMoneyRecord(result) diff --git a/code/base-project/base-app/src/app/system/settings/index.tsx b/code/base-project/base-app/src/app/system/settings/index.tsx index f4c30e43..248bd74a 100644 --- a/code/base-project/base-app/src/app/system/settings/index.tsx +++ b/code/base-project/base-app/src/app/system/settings/index.tsx @@ -1,14 +1,51 @@ -import { Text, View } from 'react-native' +import { useRouter } from 'expo-router' +import { useState } from 'react' +import { Text, TouchableOpacity, View } from 'react-native' +import { AModal } from '@/components/common/ao' import CustomHeader from '@/components/custom/Header' +import { useMoneyCategoryStore } from '@/store/moneyCategory' +import { useUserStore } from '@/store/user' export default function Share() { + const router = useRouter() + + const moneyCategoryStore = useMoneyCategoryStore() + const userStore = useUserStore() + + const [showExitModal, setShowExitModal] = useState(false) + + function exitLogin() { + setShowExitModal(false) + + moneyCategoryStore.setCategories([]) + userStore.logout() + + router.navigate('/auth') + } + return ( - 123 + setShowExitModal(true)} + > + 退出登录 + + + setShowExitModal(false)} + onClose={() => setShowExitModal(false)} + onConfirm={exitLogin} + /> ) } diff --git a/code/base-project/base-app/src/app/system/share/index.tsx b/code/base-project/base-app/src/app/system/share/index.tsx index 9a4710eb..e032046c 100644 --- a/code/base-project/base-app/src/app/system/share/index.tsx +++ b/code/base-project/base-app/src/app/system/share/index.tsx @@ -1,11 +1,116 @@ +import type { AFormRef } from '@/components/common/ao' +import { SquareUserRound } from 'lucide-react-native' import * as React from 'react' -import { View } from 'react-native' +import { useRef, useState } from 'react' +import { Text, View } from 'react-native' +import { AButton, AForm, AFormItem, AInput, ASegmentedTabs, ATab, LucideIcon } from '@/components/common/ao' import CustomHeader from '@/components/custom/Header' +import { Badge, BadgeIcon, BadgeText } from '@/components/ui/badge' +import { Divider } from '@/components/ui/divider' export default function PagerWithTab() { + const formRef = useRef(null) + const [form, setForm] = useState({ + code: '', + }) + + function EnterSapce() { + return ( + + + + + + + + 加入空间 + + + + + 或 + + + + + + 扫码加入 + + + ) + } + return ( + + {/* + + + 创建共享空间 + 创建一个专属空间,邀请朋友加入,共享文件、聊天和协作 + 创建我的空间 + + + + + + 或 + + + + + + 加入已有空间 + */} + + + + + 邀请好友加入 + + + + 123456 + 复制代码 + + + + + + 空间成员 + + 3 人 + + + + + 列表 + + + + + ) } diff --git a/code/base-project/base-app/src/components/common/SortableFlatList.tsx b/code/base-project/base-app/src/components/common/SortableFlatList.tsx deleted file mode 100644 index e69de29b..00000000 diff --git a/code/base-project/base-app/src/components/common/ao/SegmentedTabs.tsx b/code/base-project/base-app/src/components/common/ao/SegmentedTabs.tsx index 4681e868..462207d4 100644 --- a/code/base-project/base-app/src/components/common/ao/SegmentedTabs.tsx +++ b/code/base-project/base-app/src/components/common/ao/SegmentedTabs.tsx @@ -2,12 +2,15 @@ import type { icons } from 'lucide-react-native' import type { StyleProp, TextStyle, ViewStyle } from 'react-native' import React, { useEffect, useRef, useState } from 'react' import { Platform, Pressable, Text, View } from 'react-native' +import PagerView from 'react-native-pager-view' import Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated' import LucideIcon from './LucideIcon' export interface SegmentedTabItem { + key: string label: string icon?: keyof typeof icons + content?: React.ReactNode } interface SegmentedTabsProps { @@ -61,13 +64,12 @@ export default function SegmentedTabs({ const [headerMeasuredHeight, setHeaderMeasuredHeight] = useState(tabHeight) const [ready, setReady] = useState(false) + const pagerRef = useRef(null) const sliderX = useSharedValue(0) const initialized = useRef(false) const actualHeaderWidth = width ?? headerMeasuredWidth const tabWidth = actualHeaderWidth ? actualHeaderWidth / tabs.length : 0 - - // 🔹 新逻辑:根据外层实际高度动态决定 slider 高度 const sliderHeight = Math.max(headerMeasuredHeight - spacing * 2, 0) const sliderWidth = tabWidth - spacing * 2 @@ -98,6 +100,13 @@ export default function SegmentedTabs({ if (value === undefined) setSelectedIndex(index) onChange?.(index) + pagerRef.current?.setPage(index) + } + + const handlePageSelected = (e: any) => { + const index = e.nativeEvent.position + setSelectedIndex(index) + onChange?.(index) } const handleHeaderLayout = (event: any) => { @@ -109,72 +118,89 @@ export default function SegmentedTabs({ } return ( - - {ready && ( - - )} + + {/* Tab Header */} + + {ready && ( + + )} - {tabs.map((tab, i) => { - const isActive = i === selectedIndex - return ( - handlePress(i)} - style={{ - width: tabWidth, - alignItems: 'center', - justifyContent: 'center', - flexDirection: 'row', - gap: spacing, - }} - > - {tab.icon && ( - - )} - { + const isActive = i === selectedIndex + return ( + handlePress(i)} + style={{ + width: tabWidth, + alignItems: 'center', + justifyContent: 'center', + flexDirection: 'row', + gap: spacing, + }} > - {tab.label} - - - ) - })} + {tab.icon && ( + + )} + + {tab.label} + + + ) + })} + + + {/* PagerView 内容 */} + + {tabs.map(tab => ( + + {tab.content} + + ))} + ) } diff --git a/code/base-project/base-app/src/components/common/ao/Tab.tsx b/code/base-project/base-app/src/components/common/ao/Tab.tsx index 249d098a..f0ea084a 100644 --- a/code/base-project/base-app/src/components/common/ao/Tab.tsx +++ b/code/base-project/base-app/src/components/common/ao/Tab.tsx @@ -1,19 +1,34 @@ -import { useState } from 'react' -import { Pressable, Text, View } from 'react-native' +import React, { useRef, useState } from 'react' +import { Dimensions, Pressable, Text, View } from 'react-native' +import PagerView from 'react-native-pager-view' + +const { width: SCREEN_WIDTH } = Dimensions.get('window') interface TabItem { label: string key: string + content?: React.ReactNode } interface TabProps { data?: TabItem[] defaultIndex?: number onChange?: (index: number) => void + tabBarClass?: string + tabItemClass?: string + activeTabItemClass?: string } -export default function Tab({ data, defaultIndex = 0, onChange }: TabProps) { +export default function Tab({ + data, + defaultIndex = 0, + onChange, + tabBarClass = 'flex flex-row gap-2 overflow-hidden', + tabItemClass = 'items-center justify-center rounded-md px-4 py-2 bg-gray-200', + activeTabItemClass = 'items-center justify-center rounded-md px-4 py-2 bg-gray-800', +}: TabProps) { const [selectedIndex, setSelectedIndex] = useState(defaultIndex) + const pagerRef = useRef(null) if (!data || data.length === 0) return null @@ -21,26 +36,47 @@ export default function Tab({ data, defaultIndex = 0, onChange }: TabProps) { const handlePress = (index: number) => { setSelectedIndex(index) onChange?.(index) + pagerRef.current?.setPage(index) + } + + const onPageSelected = (e: any) => { + const index = e.nativeEvent.position + setSelectedIndex(index) + onChange?.(index) } return ( - - {data.map((item, index) => { - const isActive = index === selectedIndex - return ( - handlePress(index)} - className={`items-center justify-center rounded-md px-4 py-2 ${ - isActive ? 'bg-gray-800' : 'bg-gray-200' - }`} - > - - {item.label} - - - ) - })} + + {/* Tab Bar */} + + {data.map((item, index) => { + const isActive = index === selectedIndex + return ( + handlePress(index)} + className={isActive ? activeTabItemClass : tabItemClass} + > + + {item.label} + + + ) + })} + + + + {data.map(item => ( + + {item.content} + + ))} + ) } diff --git a/code/base-project/base-app/src/components/custom/Header.tsx b/code/base-project/base-app/src/components/custom/Header.tsx index 714f4d3c..20aa3e04 100644 --- a/code/base-project/base-app/src/components/custom/Header.tsx +++ b/code/base-project/base-app/src/components/custom/Header.tsx @@ -64,13 +64,12 @@ export default function CustomHeader(props: CustomHeaderProps) { headerShown: true, header: () => ( - { left || ( diff --git a/code/base-project/base-app/src/request/api/money/record.ts b/code/base-project/base-app/src/request/api/money/record.ts index 4fc2dc16..a7812ab9 100644 --- a/code/base-project/base-app/src/request/api/money/record.ts +++ b/code/base-project/base-app/src/request/api/money/record.ts @@ -9,7 +9,7 @@ import type { import alovaInstance from '../../index' -const API_PREFIX = '/money' +const API_PREFIX = '/money/record' export function queryMoneyRecordsApi(params: QueryMoneyRecordsParams) { return alovaInstance.Post>(`${API_PREFIX}/query`, params) diff --git a/code/base-project/base-app/src/request/index.ts b/code/base-project/base-app/src/request/index.ts index e7c263fa..5cf7c043 100644 --- a/code/base-project/base-app/src/request/index.ts +++ b/code/base-project/base-app/src/request/index.ts @@ -4,6 +4,7 @@ import type { RefreshTokenResult } from '@/types/auth' import { axiosRequestAdapter } from '@alova/adapter-axios' import { createAlova } from 'alova' import { router } from 'expo-router' +import { useNavStore } from '@/store/navigation' import { useUserStore } from '@/store/user' import { toast } from '@/utils/toast' @@ -45,11 +46,9 @@ const alovaInstance = createAlova({ isSuccess: resData.code === HttpCode.Success, } - console.log(resData) - // Access Token 失效 → 重新登录 if (resData.code === HttpCode.Unauthorized) { - router.replace('/auth/login') + useNavStore.getState().navigateToAuth() return } @@ -58,12 +57,12 @@ const alovaInstance = createAlova({ try { const refreshToken = useUserStore.getState().userInfo?.refreshToken if (!refreshToken) { - router.replace('/auth/login') + useNavStore.getState().navigateToAuth() return } // 调用刷新接口 - const res = await alovaInstance.Get>('/auth/refreshToken', { + const res = await alovaInstance.Get>('/auth/refresh/token', { headers: { refreshToken }, }).send() @@ -146,11 +145,7 @@ const alovaInstance = createAlova({ return if (!useUserStore.getState().isLoggedIn()) { - toast.show({ - title: '尚未登录,请先登录', - }) - - router.replace('/auth/login') + useNavStore.getState().navigateToAuth() return Promise.reject(new Error('未登录')) } diff --git a/code/base-project/base-app/src/store/moneyCategory.ts b/code/base-project/base-app/src/store/moneyCategory.ts index f22464c7..3d7e2510 100644 --- a/code/base-project/base-app/src/store/moneyCategory.ts +++ b/code/base-project/base-app/src/store/moneyCategory.ts @@ -42,10 +42,15 @@ export const useMoneyCategoryStore = create()( } try { - const res = await queryMoneyCategoryApi() - if (res.isSuccess) { - set({ categories: res.data.categories || [] }) - } + await queryMoneyCategoryApi().then((res) => { + if (res.isSuccess) { + set({ categories: res.data.categories || [] }) + } + }).catch((err) => { + console.log(err) + }).finally(() => { + + }) } catch (e) { console.error('Fetch category failed:', e) @@ -61,41 +66,39 @@ export const useMoneyCategoryStore = create()( updateCategories: (data, type) => { // 获取当前所有分类 const allCategories = get().categories - + // 保留另一类分类 const otherCategories = allCategories.filter(c => c.type !== type) - + // 给当前类型的数据重新计算 sort_number const updatedData = data.map((item, index) => ({ ...item, sort_number: index, // 按顺序重新赋值 })) - + // 合并另一类分类 const finalCategories = [...otherCategories, ...updatedData] - + // 构造后端请求 payload,只需要 id 和 sort_number const payload: UpdateMoneyCategorySortItem[] = updatedData.map(item => ({ id: item.id, sort_number: item.sort_number, })) - - // 打印调试 - console.log('更新顺序:', payload) - + // 调用后端接口更新排序 updateMoneyCategorySortApi({ data: payload, - }).then(res => { + }).then((res) => { console.log('后端返回:', res) + }).catch((err) => { + console.log(err) }) - + // 更新前端 state set({ categories: finalCategories }) - } - , + }, - deleteCategoryById: (id: number, type: number) => { + deleteCategoryById: async (id: number, type: number) => { const allCategories = get().categories // 删除指定 id,同时只处理同类型的数据 @@ -112,7 +115,9 @@ export const useMoneyCategoryStore = create()( set({ categories: finalCategories }) // 调用删除接口 - deleteMoneyCategoryApi({ id }) + await deleteMoneyCategoryApi({ id }).catch((err) => { + console.log(err) + }) // 同步更新排序给后端,仅同类型 const payload = finalCategories @@ -121,7 +126,7 @@ export const useMoneyCategoryStore = create()( id: item.id, sort_number: item.sort_number, })) - updateMoneyCategorySortApi({ data: payload }) + await updateMoneyCategorySortApi({ data: payload }) }, }), diff --git a/code/base-project/base-app/src/store/moneyRecord.ts b/code/base-project/base-app/src/store/moneyRecord.ts index b14277b5..49503c68 100644 --- a/code/base-project/base-app/src/store/moneyRecord.ts +++ b/code/base-project/base-app/src/store/moneyRecord.ts @@ -3,6 +3,7 @@ import { create } from 'zustand' import { deleteMoneyRecordApi } from '@/request/api/money/record' import { add, sub } from '@/utils/math' import { isInMonth } from '@/utils/time' +import { useMoneyCategoryStore } from './moneyCategory' interface MoneyRecordStore { records: MoneyRecordGroup[] @@ -39,15 +40,16 @@ export const useMoneyRecordStore = create((set, get) => ({ if (!isInMonth(data.record_time, prev.currentMonth)) return prev + const category = useMoneyCategoryStore.getState().getCategoryById(data.category_id) const records = [...prev.records] const groupIndex = records.findIndex(g => g.record_time === data.record_time) const amount = data.amount if (groupIndex !== -1) { const group = { ...records[groupIndex], records: [data, ...records[groupIndex].records] } - if (data.category_type === 0) + if (category?.type === 0) group.expense = add(group.expense, amount) - if (data.category_type === 1) + if (category?.type === 1) group.income = add(group.income, amount) records[groupIndex] = group } @@ -55,8 +57,8 @@ export const useMoneyRecordStore = create((set, get) => ({ const newGroup: MoneyRecordGroup = { record_time: data.record_time, records: [data], - expense: data.category_type === 0 ? amount : '0.00', - income: data.category_type === 1 ? amount : '0.00', + expense: category?.type === 0 ? amount : '0.00', + income: category?.type === 1 ? amount : '0.00', } const insertIndex = records.findIndex(g => g.record_time < data.record_time) if (insertIndex === -1) @@ -67,8 +69,8 @@ export const useMoneyRecordStore = create((set, get) => ({ return { ...prev, records, - total_expense: data.category_type === 0 ? add(prev.total_expense, amount) : prev.total_expense, - total_income: data.category_type === 1 ? add(prev.total_income, amount) : prev.total_income, + total_expense: category?.type === 0 ? add(prev.total_expense, amount) : prev.total_expense, + total_income: category?.type === 1 ? add(prev.total_income, amount) : prev.total_income, } }) }, @@ -80,9 +82,12 @@ export const useMoneyRecordStore = create((set, get) => ({ if (oldGroupIndex === -1) return prev + const updateRecordCategory = useMoneyCategoryStore.getState().getCategoryById((updated.category_id)) + const oldGroup = { ...records[oldGroupIndex], records: [...records[oldGroupIndex].records] } const oldRecordIndex = oldGroup.records.findIndex(r => r.id === updated.id) const oldRecord = oldGroup.records[oldRecordIndex] + const oldRecordCategory = useMoneyCategoryStore.getState().getCategoryById((oldRecord.category_id)) const oldAmount = oldRecord.amount const newAmount = updated.amount @@ -91,9 +96,9 @@ export const useMoneyRecordStore = create((set, get) => ({ oldGroup.records.splice(oldRecordIndex, 1) let total_expense = prev.total_expense let total_income = prev.total_income - if (oldRecord.category_type === 0) + if (oldRecordCategory?.type === 0) total_expense = sub(total_expense, oldAmount) - if (oldRecord.category_type === 1) + if (oldRecordCategory?.type === 1) total_income = sub(total_income, oldAmount) if (oldGroup.records.length === 0) records.splice(oldGroupIndex, 1) @@ -107,9 +112,9 @@ export const useMoneyRecordStore = create((set, get) => ({ const newGroupIndex = records.findIndex(g => g.record_time === updated.record_time) if (newGroupIndex !== -1) { const group = { ...records[newGroupIndex], records: [updated, ...records[newGroupIndex].records] } - if (updated.category_type === 0) + if (updateRecordCategory?.type === 0) group.expense = add(group.expense, newAmount) - if (updated.category_type === 1) + if (updateRecordCategory?.type === 1) group.income = add(group.income, newAmount) records[newGroupIndex] = group } @@ -117,8 +122,8 @@ export const useMoneyRecordStore = create((set, get) => ({ const newGroup: MoneyRecordGroup = { record_time: updated.record_time, records: [updated], - expense: updated.category_type === 0 ? newAmount : '0.00', - income: updated.category_type === 1 ? newAmount : '0.00', + expense: updateRecordCategory?.type === 0 ? newAmount : '0.00', + income: updateRecordCategory?.type === 1 ? newAmount : '0.00', } const insertIndex = records.findIndex(g => g.record_time < updated.record_time) if (insertIndex === -1) @@ -126,9 +131,9 @@ export const useMoneyRecordStore = create((set, get) => ({ else records.splice(insertIndex, 0, newGroup) } - if (updated.category_type === 0) + if (updateRecordCategory?.type === 0) total_expense = add(total_expense, newAmount) - if (updated.category_type === 1) + if (updateRecordCategory?.type === 1) total_income = add(total_income, newAmount) return { ...prev, records, total_expense, total_income } @@ -145,9 +150,11 @@ export const useMoneyRecordStore = create((set, get) => ({ const index = group.records.findIndex(r => r.id === id) if (index !== -1) { const record = group.records[index] - if (record.category_type === 0) + const category = useMoneyCategoryStore.getState().getCategoryById(record.category_id) + + if (category?.id === 0) total_expense = sub(total_expense, record.amount) - if (record.category_type === 1) + if (category?.id === 1) total_income = sub(total_income, record.amount) group.records.splice(index, 1) } diff --git a/code/base-project/base-app/src/store/navigation.ts b/code/base-project/base-app/src/store/navigation.ts new file mode 100644 index 00000000..b8f9473a --- /dev/null +++ b/code/base-project/base-app/src/store/navigation.ts @@ -0,0 +1,21 @@ +import { router } from 'expo-router' +// store/navigation.ts +import { create } from 'zustand' + +interface NavState { + pathname: string + setPathname: (p: string) => void + navigateToAuth: () => void +} + +export const useNavStore = create(set => ({ + pathname: '/', + setPathname: (p: string) => set({ pathname: p }), + navigateToAuth: () => { + const pathname = useNavStore.getState().pathname + + if (!pathname.startsWith('/auth')) { + router.replace('/auth') + } + }, +})) diff --git a/code/base-project/base-app/src/types/money/record.ts b/code/base-project/base-app/src/types/money/record.ts index 8ce94cee..e2750bb7 100644 --- a/code/base-project/base-app/src/types/money/record.ts +++ b/code/base-project/base-app/src/types/money/record.ts @@ -19,9 +19,7 @@ export interface QueryMoneyRecordsParams { // 查询结果的记录 export interface MoneyRecordItem extends MoneyRecordBase { - category_name: string - category_icon: string - category_type: number + } // 分组 & 查询结果 @@ -39,7 +37,12 @@ export interface QueryMoneyRecordsResult { } // 新增请求参数 -export type InsertMoneyRecordParams = Omit +export interface InsertMoneyRecordParams { + category_id: number + amount: string + remark: string + record_time: string +} export interface InsertMoneyRecordResult extends MoneyRecordBase {} diff --git a/code/base-project/base-app/test2.html b/code/base-project/base-app/test2.html index 95cdb4e1..e85f4023 100644 --- a/code/base-project/base-app/test2.html +++ b/code/base-project/base-app/test2.html @@ -1,170 +1,720 @@ - + - DataGrid 编辑 + 多选删除 + 彻底删除 - - - - - + + 共享空间 +
+
+

共享空间

+

与朋友共享您的空间

+
+
🔒 未加入任何空间
+
+
-

DataGrid 编辑 + 多选删除 + 彻底删除 示例(维护 allRows)

+
+ +
-
- -
- 保存当前行 - 删除所选 - 彻底删除 - 新增一行 - 获取数据 +
+

共享空间 © 2023 - 保护您的隐私安全

+
diff --git a/code/base-project/base-app/箱数据2000行.csv b/code/base-project/base-app/箱数据2000行.csv deleted file mode 100644 index 745535c4..00000000 --- a/code/base-project/base-app/箱数据2000行.csv +++ /dev/null @@ -1,2001 +0,0 @@ -箱号,箱型,制造日期 -PCOD9683272,40HQ,2018-12-10 -WANY7746203,40HQ,2023-07-15 -ZRKP5321921,40GP,2017-12-27 -TSLI0699579,40GP,2010-08-25 -WMMH3875740,20GP,2012-05-02 -GFBH8400948,20GP,2013-12-07 -AWUP0048636,40HQ,2011-07-23 -UHPB3087280,20GP,2008-04-29 -UAOZ1566221,40GP,2015-07-11 -DGFY9848704,40GP,2006-03-21 -PJPV5111909,45HQ,2016-07-22 -ORRJ2504453,20GP,2003-01-30 -CEFZ8107130,45HQ,2020-11-20 -DBGM0924271,45HQ,2015-07-24 -KDXK7861954,20GP,2004-04-05 -GDHH6226012,20GP,2019-08-26 -QUMR4726225,45HQ,2007-05-30 -AHMC5758303,40GP,2015-11-14 -EXJX7415494,45HQ,2020-02-28 -BOQN2283499,45HQ,2006-12-21 -QVQY6358155,45HQ,2008-02-04 -PDQI3809868,40HQ,2004-01-01 -JBJG1945799,45HQ,2006-10-15 -FNFV0386520,40HQ,2014-10-09 -PIOK5663994,20GP,2004-02-14 -RDLW5104403,40HQ,2024-07-14 -VARC8140886,40HQ,2010-08-15 -WMJQ8081829,40GP,2023-12-25 -YCRM0413222,20GP,2007-04-07 -HUQF6085948,45HQ,2015-03-11 -HGCR2700087,40HQ,2001-09-08 -OWQV0164465,45HQ,2018-07-14 -MFAG1201364,20GP,2020-01-22 -MDYC1268850,40GP,2007-11-11 -SRTC9033151,40GP,2022-08-20 -DMWV4393756,20GP,2020-10-03 -TBIB7877644,40HQ,2008-11-11 -NXXT6741803,20GP,2013-12-19 -AJSC5854808,45HQ,2019-09-05 -WXRW8922602,20GP,2020-06-12 -NBUI5110933,40GP,2020-04-01 -QMNZ4255021,40GP,2012-07-01 -DLSB3361443,45HQ,2019-09-22 -LBNV2201725,40HQ,2014-09-16 -CTVZ3347038,40GP,2005-10-28 -UFAD4291746,20GP,2018-05-04 -TGAP7156327,45HQ,2015-11-23 -QRFD7234813,40HQ,2017-12-27 -JHGU6267610,40HQ,2009-07-26 -QSFB7447806,20GP,2005-06-21 -LROG4563467,40GP,2024-09-21 -DNXN3807112,40HQ,2024-01-30 -UDZB5098963,20GP,2019-02-21 -DFJV3073295,20GP,2022-07-12 -PBVT2603532,40GP,2023-06-08 -OMKL9310018,20GP,2013-02-20 -ASWN7844568,40GP,2002-02-07 -OUUH5290316,45HQ,2007-12-22 -DOIB4225005,45HQ,2016-06-26 -IHVV7247184,45HQ,2022-11-01 -UQSU8686242,40GP,2009-03-21 -LIWL1139865,40HQ,2014-12-28 -DHLK9171755,45HQ,2017-03-02 -QCPK6443690,40GP,2013-04-06 -YFQE5259659,40GP,2005-07-31 -YQLV1324667,20GP,2005-06-01 -MHMT3995794,40HQ,2016-08-27 -BWIT5286120,45HQ,2024-09-02 -JLCW9576993,40HQ,2017-01-25 -JVVO0564364,40GP,2017-10-17 -QKMK9280539,40GP,2015-10-11 -AUMO3446484,40GP,2013-08-16 -UXVH7630877,40GP,2015-04-28 -GRVB5009666,20GP,2015-08-26 -MUKH9185622,40HQ,2018-05-05 -SADU9962817,45HQ,2019-03-30 -LGST0095271,20GP,2005-05-16 -NODX0755928,20GP,2002-09-19 -SGFJ0258249,40HQ,2018-06-22 -VXES4132756,40GP,2021-03-29 -JDPM9577513,20GP,2020-06-12 -BJAJ8511284,45HQ,2020-03-21 -MAFI2211303,40HQ,2005-10-20 -VWCZ0647783,40HQ,2003-03-13 -IURJ3562307,45HQ,2022-12-16 -EYYP8167530,40GP,2008-08-21 -THGG2787766,40GP,2013-01-09 -IGWH3310325,40GP,2004-02-18 -IXOW8271043,45HQ,2005-04-14 -UGOV3502917,40GP,2016-06-13 -DEOR0653209,45HQ,2007-02-14 -HSCY3214406,45HQ,2021-01-27 -NALO3402499,20GP,2009-01-15 -TOLT9057475,40HQ,2011-12-01 -ICGD7130096,45HQ,2023-10-06 -VSDB9208303,40HQ,2002-07-17 -VXCP1074477,40HQ,2004-04-18 -YYPU6589583,40HQ,2009-11-14 -DVXS6731933,40HQ,2019-01-21 -WQKH6005661,20GP,2023-01-11 -EDNS9431937,40HQ,2010-11-18 -LMMM1292502,20GP,2021-09-30 -ZWML4598486,45HQ,2001-03-25 -PMVJ7459874,45HQ,2018-02-28 -FRXI5396785,45HQ,2005-07-28 -CAPR0031480,45HQ,2010-04-30 -YUKG8039916,40GP,2005-04-07 -HLWX3378057,40HQ,2010-01-02 -IAKT9907562,40HQ,2009-12-10 -SRHB9916992,45HQ,2009-09-07 -QIPH6093114,20GP,2004-05-24 -CTYS7436966,45HQ,2016-10-26 -XIRL8979530,40HQ,2007-05-02 -WURO3285048,40HQ,2021-02-15 -XQEW6113687,40GP,2005-06-25 -MPXL3531928,40HQ,2000-04-15 -CKHH1896506,40GP,2017-06-05 -OVTS1950839,40HQ,2017-12-25 -WWWZ8081374,40GP,2007-12-27 -LVJI1758103,20GP,2005-08-25 -VRDX6220046,40HQ,2006-12-08 -MERH8077746,45HQ,2015-12-12 -LKKH8269217,40GP,2024-06-02 -POVM3895342,20GP,2022-03-06 -UNOW6728940,45HQ,2018-11-30 -JSBU1660107,20GP,2003-09-17 -PADM4647802,20GP,2007-05-31 -GJER0194360,40HQ,2018-10-07 -UNSX3970473,20GP,2022-09-29 -NQIM2125585,40GP,2018-01-29 -QCQA9110680,45HQ,2013-01-31 -AHVO0454298,45HQ,2011-05-14 -BPRW6022229,40HQ,2012-08-21 -JOMO9097339,20GP,2001-12-31 -GQEX9564443,45HQ,2012-12-20 -IMYA0116220,20GP,2024-09-10 -FNOP2964664,40HQ,2013-03-31 -QDHM1730019,40GP,2000-03-23 -BCJQ3927768,40HQ,2009-10-31 -NDMP3658692,40HQ,2000-01-24 -RGDT4600721,45HQ,2018-10-09 -UUGE7461870,20GP,2019-07-29 -GWYP3022871,40HQ,2021-01-28 -TUEJ9020413,40GP,2007-07-12 -OVUB1007937,40GP,2008-01-21 -NKAZ6540598,45HQ,2007-11-23 -QHIE7245159,40GP,2019-07-09 -YGLT4321998,20GP,2015-02-01 -BAPS3949675,45HQ,2002-10-10 -AUTX0491393,40GP,2006-10-02 -XEJO8647989,45HQ,2017-08-17 -GUHY7014823,20GP,2020-11-15 -HMXG3139863,40GP,2017-12-12 -OLCN2691749,45HQ,2014-10-02 -WMRF1837214,40GP,2019-02-19 -FKSS3646017,20GP,2024-09-27 -OIMV1174012,45HQ,2023-05-23 -BNFY3340160,40GP,2013-04-14 -UTMV6963847,45HQ,2006-03-11 -VIYM3572451,40GP,2005-03-17 -JKYH3570742,20GP,2023-02-04 -PTNX2905603,45HQ,2006-12-18 -PUSC4291731,20GP,2000-05-25 -IWMD6180179,40HQ,2009-06-01 -RKZY4722247,45HQ,2002-05-27 -WDQM8755949,40HQ,2012-05-27 -CBTP1361244,20GP,2023-04-09 -IXVC7462331,20GP,2012-10-05 -CXSY0236269,20GP,2002-07-07 -AABR1879179,20GP,2022-05-04 -NZJT2114310,20GP,2018-07-09 -SFFY9099547,40GP,2017-11-05 -AANA4457738,40GP,2011-12-24 -JGZM2374906,40GP,2003-11-16 -YTMN0950762,40GP,2023-03-10 -QFMP8836067,20GP,2010-05-11 -FEFN7091602,40HQ,2019-11-25 -VZIS1513015,40GP,2023-02-11 -EEGV4431198,40GP,2016-06-30 -ECSC4542969,40GP,2017-01-10 -ZMYC1870191,40GP,2012-07-02 -DPDL1758433,40HQ,2014-05-22 -HLIK1139117,40HQ,2000-09-20 -CQZB6191679,40HQ,2022-11-09 -MTIC6165168,40HQ,2006-04-26 -QFFM2444790,40HQ,2018-09-02 -KOOP2399091,40GP,2001-09-09 -FKDF3484813,20GP,2016-02-18 -QMGZ8126826,20GP,2008-07-18 -HAFL1429530,20GP,2023-05-30 -LZDQ9188830,40HQ,2023-07-13 -JCIP8555485,40GP,2011-07-17 -NUET8050082,45HQ,2009-03-29 -JAGF5415398,45HQ,2013-02-22 -VVAS7522135,40GP,2007-09-02 -WBVM1057899,40GP,2015-08-30 -HLPZ0391823,20GP,2024-06-21 -HGSB4104868,20GP,2016-09-20 -CYZN2687667,40GP,2012-04-23 -FJEF6661406,20GP,2005-11-25 -SPSN5697257,20GP,2018-03-28 -XGAF4393995,45HQ,2018-12-10 -IXLJ1202168,20GP,2013-01-20 -JLQY7677366,40HQ,2011-06-17 -KRIE5981632,20GP,2010-04-07 -DHUR3583305,40HQ,2001-10-06 -FBWZ4466975,40HQ,2013-11-05 -QVZN0965271,40GP,2023-10-16 -QIKS2564471,40HQ,2014-11-09 -AUYY5132009,40HQ,2009-11-07 -MTXJ4956007,20GP,2000-07-21 -XDAT8424161,40GP,2020-07-12 -FDJQ0385648,20GP,2020-12-31 -EUDY1543109,20GP,2022-02-12 -DWZG3534384,20GP,2003-08-13 -RWIW4442918,45HQ,2004-12-03 -PGCT6461046,45HQ,2005-06-23 -GDCE5697351,20GP,2022-06-26 -PFPZ6315837,20GP,2010-04-01 -RIUU1107908,40HQ,2002-07-26 -LGFZ0211144,20GP,2007-12-17 -SADG8444305,40HQ,2014-03-03 -LRGF3107181,40GP,2004-03-18 -YTHY3155361,40HQ,2002-06-24 -COBM2922006,45HQ,2019-02-14 -TDAQ6188736,40HQ,2017-04-13 -TZWD2089390,40HQ,2011-11-29 -XZIA0349622,40HQ,2010-11-19 -XFBJ4164895,40HQ,2006-08-24 -IZNW7385385,40HQ,2002-05-09 -XQKM5318870,20GP,2012-10-16 -TQVI2036775,45HQ,2008-02-17 -DKUF0154397,40GP,2003-02-11 -UFTP3037368,40HQ,2003-02-24 -NOAY5543573,20GP,2010-02-15 -CNMJ3692035,40HQ,2007-06-14 -KYNH0975467,40GP,2021-12-11 -WBTN4938767,20GP,2011-10-19 -VXVQ8692023,20GP,2007-10-04 -RVZJ6176580,20GP,2009-09-11 -NGGP1124944,40HQ,2016-12-08 -SIKE9539323,20GP,2018-12-06 -HQAB0734942,45HQ,2003-07-29 -CADW0006179,40HQ,2011-06-20 -EIRM5382501,40GP,2005-08-14 -QPQD6518676,40GP,2013-12-09 -RMVJ9359257,40GP,2023-05-25 -YNEA3640380,45HQ,2019-02-11 -QWGX3011407,40HQ,2015-01-26 -GIAI7114721,40GP,2022-05-02 -VGHC7945891,20GP,2023-07-10 -YQAW1831131,40HQ,2008-03-11 -KQSC7847325,40GP,2001-07-12 -GYTT4462239,40HQ,2024-02-18 -KBBW1290403,40GP,2012-05-19 -XZCR9591376,40HQ,2018-11-04 -QBLO8677145,40GP,2008-08-09 -XHTX6921245,40HQ,2014-11-14 -VGBD0699751,40HQ,2007-03-29 -YEER4566388,40GP,2024-11-27 -CKYD3827637,45HQ,2023-07-15 -UEKO3239144,40HQ,2019-08-26 -JCLO2373920,45HQ,2007-01-01 -TUCW0331036,40HQ,2002-01-04 -VQMC8276477,40GP,2006-11-16 -HOQT7188597,40HQ,2014-08-24 -WEJL4499930,45HQ,2000-02-11 -WFBK0061165,40GP,2011-11-27 -KMXR1366849,20GP,2008-01-27 -RIXK4098097,40GP,2002-11-08 -PNEM4741211,40HQ,2012-09-19 -DVLX5252381,45HQ,2004-06-29 -ABDM1623961,45HQ,2010-03-13 -DISA6002288,20GP,2018-08-29 -NSNH0916171,45HQ,2021-12-08 -GSBQ1210554,20GP,2005-02-23 -CZWE7125400,40HQ,2004-01-04 -TYOI4010852,40HQ,2004-03-07 -AOTG5141913,40GP,2019-06-27 -WVEO5066253,45HQ,2018-04-06 -NZLA7645745,40GP,2012-06-02 -CRQI6948258,45HQ,2016-08-10 -VGMN5926394,45HQ,2003-09-14 -WWYP2219114,40HQ,2014-09-29 -HIVT8531515,40HQ,2011-11-27 -SXLB2192642,40GP,2006-02-28 -RQIF5561252,20GP,2017-08-07 -VRSC7266064,45HQ,2007-08-08 -XFML8875286,45HQ,2023-07-03 -ORKE4886891,20GP,2012-05-26 -OCJB1150912,20GP,2008-06-18 -GKOR2498630,20GP,2003-08-10 -YRIT5025530,40HQ,2011-05-10 -JVNU4921864,20GP,2005-03-16 -IDWA5743387,45HQ,2020-05-11 -LPIQ6794900,20GP,2020-06-22 -KIWA7149670,20GP,2022-11-08 -OQHN5040607,20GP,2009-12-05 -OYMV3452478,40HQ,2017-04-22 -VIZR1249022,40HQ,2023-01-17 -XSWN4908219,40GP,2003-09-14 -WLYI1880632,20GP,2003-03-09 -SGMR5014508,20GP,2021-09-21 -XZTF1694463,40HQ,2002-05-07 -POIW2482904,40HQ,2001-07-30 -QDAI7306699,20GP,2024-12-20 -CLZO6643751,40GP,2021-01-14 -RKXY0373120,20GP,2021-10-23 -TTZP9650995,45HQ,2006-02-08 -BUJT5407344,20GP,2011-02-23 -QSPC5753139,45HQ,2018-08-29 -NWFL1330733,40HQ,2019-02-20 -HXVS8982374,40GP,2009-07-08 -VDTS4883577,20GP,2018-09-16 -ZUVZ9218956,40GP,2016-06-08 -OJBO2852046,20GP,2009-08-22 -WRYC8133521,40GP,2007-06-16 -PXCP2212842,20GP,2005-05-17 -NZVG8478431,40HQ,2011-08-03 -OFOG6574876,45HQ,2003-01-08 -GSWR6137319,20GP,2000-05-11 -DONN7069760,40GP,2024-05-04 -KXXW0862178,45HQ,2009-01-25 -PKID2784018,20GP,2003-11-29 -BESU4055595,40GP,2024-01-12 -RKSR0669012,45HQ,2016-03-01 -ROJL8036244,40HQ,2003-02-11 -DTST9234811,40GP,2008-04-30 -RTTC8611495,40GP,2019-07-01 -PIIM4040452,40GP,2008-03-17 -TZYF4212628,40HQ,2009-05-07 -MKHY1224999,20GP,2013-06-25 -ELAL3987092,20GP,2020-01-11 -SDMB3845480,45HQ,2024-03-21 -ETPA4870877,20GP,2017-04-14 -HRLY5559648,40HQ,2003-11-28 -YRAD8475851,40GP,2009-11-18 -NOXM2269638,40GP,2000-06-21 -NPHU2770828,45HQ,2018-07-25 -TXGW2599993,40HQ,2008-11-30 -OAIU0866771,20GP,2006-08-12 -JCUY9967501,40GP,2007-11-15 -YIQA7109748,40GP,2023-12-20 -UKRW4604930,40HQ,2012-05-04 -BPVO2515315,20GP,2001-01-01 -EQEP6294826,45HQ,2001-08-31 -TLOU1618700,45HQ,2021-01-02 -XLBM3976974,20GP,2010-09-19 -FKMO5562353,40HQ,2010-03-03 -OQXO8843657,20GP,2000-05-01 -WOBZ9216081,20GP,2007-05-21 -DAJI8793201,40GP,2014-10-15 -MRZL9336226,45HQ,2014-11-14 -CLIP3910256,20GP,2010-04-16 -ZEPD0944383,45HQ,2014-08-30 -JQOZ1617010,40GP,2017-07-27 -KVWR0801977,20GP,2021-05-02 -XPLU3941344,40HQ,2020-10-15 -VYZZ5259958,40GP,2016-09-16 -QRHC8020892,45HQ,2024-07-22 -VSHG8114356,40HQ,2003-12-14 -WJNQ4744333,20GP,2018-10-07 -GOTJ8149080,20GP,2023-02-26 -KBKU3159387,45HQ,2010-11-03 -USSX7731524,45HQ,2001-10-13 -VVJK9509640,40GP,2021-05-16 -JSWA7961762,20GP,2003-08-09 -GTPF7187411,40GP,2000-02-17 -MRTM2752094,40GP,2007-04-11 -JSNU6909925,20GP,2006-07-06 -XVNZ2713181,40GP,2018-09-13 -HAAZ2810613,20GP,2011-03-31 -YJIP8878296,45HQ,2013-11-06 -BXHO4818398,45HQ,2001-11-25 -PBEW2356827,40HQ,2004-12-06 -NNJK1475901,40HQ,2012-09-04 -IYMS5118807,20GP,2015-11-10 -ZIIG7905050,20GP,2021-07-26 -IISR1214490,40GP,2006-04-03 -UVVS4449570,40HQ,2013-01-19 -QRBJ1952715,40HQ,2020-08-19 -TBQQ8957901,20GP,2004-09-30 -GPHX0638670,40HQ,2013-02-28 -UZRS5425602,45HQ,2004-03-28 -FZUS5941209,40HQ,2009-04-26 -NYIU7987441,40HQ,2012-02-22 -OMZT5335336,45HQ,2013-11-23 -MQQA5312128,40GP,2000-10-11 -KAIY1326132,45HQ,2022-05-09 -JKLM3910179,45HQ,2020-07-25 -RAQQ0525685,20GP,2009-08-15 -TQYI7491025,20GP,2016-01-14 -TSQH3921366,40HQ,2014-02-03 -QRID3381566,20GP,2011-01-07 -NMGJ0283999,40HQ,2009-07-15 -BINC2758397,20GP,2016-12-18 -HHIN1647426,45HQ,2003-02-11 -IKDR6224768,40GP,2005-09-06 -HGQA5031086,40HQ,2013-07-05 -HCHP5424826,45HQ,2008-09-15 -DGIQ1613925,40HQ,2021-08-16 -IWZS1552234,45HQ,2024-02-28 -WAML1707153,40HQ,2006-09-04 -HFNW1084571,40GP,2005-11-13 -UFVW2555571,40HQ,2007-12-31 -TWRI3690272,40HQ,2017-10-23 -QFXD7768012,45HQ,2021-11-23 -PLRU9922003,45HQ,2008-01-09 -GJWI4113265,20GP,2001-07-16 -UXLF3467045,20GP,2017-11-12 -YDBO4631994,45HQ,2013-09-11 -KMWN1345945,20GP,2019-03-18 -HJYV2977258,40HQ,2024-09-20 -QEPC3945841,45HQ,2022-10-12 -GSGN2993633,20GP,2019-09-06 -DNHO8443338,40GP,2011-08-05 -SWNE7544384,40HQ,2022-02-07 -PUDI6994953,45HQ,2006-01-09 -KEXN8582437,40GP,2005-07-22 -YBXN0884552,40GP,2020-10-20 -EDSD3448835,20GP,2013-12-02 -FJVX3709585,20GP,2007-12-27 -URMI8210513,45HQ,2006-06-13 -QVCI9507664,40HQ,2021-07-09 -ZQYI2028780,45HQ,2013-11-11 -OPYX2652702,40HQ,2020-10-29 -UMIK3207940,20GP,2000-12-23 -YAPD5403555,40GP,2004-02-21 -JODR8330030,20GP,2023-02-19 -CXHC6800818,40GP,2016-03-07 -XMKI9033103,40GP,2002-08-01 -MIXX0910713,40HQ,2015-10-14 -ARGI3549121,40HQ,2014-02-05 -GJVE9758257,40GP,2022-10-16 -KBNA2876828,45HQ,2019-05-26 -LUXL2549268,45HQ,2016-12-24 -UNZK4111118,40GP,2005-12-14 -GZOP1505543,45HQ,2011-08-16 -LVHD5458818,45HQ,2009-10-04 -HQOD6270362,40HQ,2014-08-23 -HFHU1700269,45HQ,2003-09-24 -ZBPF8554153,20GP,2022-09-03 -EUFU5241238,40HQ,2016-04-16 -QRMG6201554,20GP,2023-06-15 -VSDX3506440,20GP,2011-08-23 -CQQJ5477482,45HQ,2000-01-02 -RODE1682910,40GP,2002-04-07 -TCMD4807131,20GP,2018-05-10 -TPPR7096039,40GP,2023-04-01 -PJPZ1697444,40HQ,2000-07-08 -PKKJ8832548,45HQ,2009-10-12 -YNQZ8382329,20GP,2006-10-18 -AAHZ5974227,45HQ,2022-04-13 -IJGW8551316,40GP,2021-01-25 -CYXR6264603,40HQ,2019-05-12 -ZPEZ2878742,45HQ,2017-11-29 -ARYN4305399,45HQ,2017-05-12 -WXNZ1295367,40GP,2001-10-22 -JZMA1913941,40HQ,2009-02-25 -HGGR3470853,40GP,2022-05-12 -OOYF0641025,45HQ,2008-07-17 -ZCTS4061547,45HQ,2002-10-18 -EBGS8897218,20GP,2024-10-22 -ZFCL5619391,45HQ,2017-05-16 -AWBB5621362,40HQ,2007-11-01 -VEDZ3886758,20GP,2023-11-21 -OJTR3380875,20GP,2013-05-06 -VGVQ5602433,45HQ,2004-05-03 -BBNZ2692889,20GP,2016-07-19 -CEZZ0992778,40GP,2007-10-21 -BHNZ8172420,40HQ,2016-12-30 -QBSS4971242,45HQ,2010-08-15 -GEUK4032766,20GP,2013-08-05 -FQEB8657470,45HQ,2016-05-22 -BUVS9112123,40GP,2000-08-04 -ULBV2660904,40GP,2011-03-29 -WODC9401706,45HQ,2011-08-01 -GJYK5112135,40HQ,2016-02-12 -NYJR3696809,20GP,2004-11-24 -RHDB5966810,40HQ,2002-03-31 -IASO4110557,40GP,2017-07-28 -DRBF0442832,40HQ,2017-03-26 -IUBY6642621,40HQ,2005-08-29 -JJGM1777912,45HQ,2004-02-29 -GKPN1188534,20GP,2003-04-15 -CIUM7016120,45HQ,2015-10-25 -UCQP2112836,20GP,2001-05-22 -UNUO5115381,20GP,2003-08-18 -PQNR4363404,20GP,2019-02-06 -YFLJ3391286,20GP,2011-03-25 -YEIP3303432,20GP,2019-05-12 -LJKA5950416,40HQ,2020-01-23 -SVLM6421442,45HQ,2008-07-07 -HNCU6580762,40GP,2011-04-12 -XDCY6988117,20GP,2022-09-13 -CDZG7352981,45HQ,2015-06-25 -COSX7466226,45HQ,2013-02-19 -GHHB3875610,40GP,2023-02-28 -OQRC2874253,20GP,2005-08-25 -OPQY0696786,40HQ,2018-09-10 -XRGH9105727,40HQ,2018-11-12 -BQVB3655030,20GP,2014-12-02 -APOX4065334,40HQ,2008-01-21 -DICM3952733,45HQ,2015-04-13 -NMLC8398046,40GP,2007-02-24 -LEAB0073989,45HQ,2013-12-10 -JUKZ8721890,40HQ,2020-01-29 -ZDKM2652853,40GP,2010-01-20 -RBJK9275119,45HQ,2016-04-28 -OFBI9961314,40GP,2006-05-31 -ALGD9034146,40GP,2024-01-06 -ZIMA6056697,40HQ,2012-09-13 -HYEX5262405,40HQ,2020-07-28 -OXTF3895134,45HQ,2014-09-30 -UTWX6377913,40GP,2012-03-14 -OCZZ8772728,20GP,2015-04-26 -YGMQ6484097,45HQ,2013-08-15 -BHDJ4655338,45HQ,2021-08-05 -FNAQ6003736,40HQ,2015-04-16 -SJUC7856042,20GP,2018-12-30 -FRXE2840136,20GP,2004-09-28 -KLHL1912245,45HQ,2010-01-27 -CQVY9324330,40GP,2019-12-10 -HTPE1384786,40GP,2004-02-23 -QIUP0933120,40HQ,2005-11-27 -CNNC8982549,40GP,2001-07-08 -HWUF6787948,45HQ,2021-06-26 -JQDO5554035,45HQ,2008-12-05 -ZPQZ5233787,40GP,2008-05-06 -BFIC7370983,40GP,2001-06-24 -EVLD2644282,40GP,2013-04-07 -ASSS8836310,45HQ,2019-05-15 -QOWP3900665,45HQ,2011-01-19 -LVHL7571819,40GP,2017-06-24 -GCBQ0906776,40HQ,2015-05-18 -WAIG4489153,40HQ,2010-08-31 -LNCK7718105,40HQ,2001-12-29 -WQOE3282376,20GP,2007-05-26 -JSLD9653661,40HQ,2002-02-27 -RFSX0423582,40HQ,2000-04-03 -SKKD3851125,40HQ,2012-10-27 -SKJT3459027,40HQ,2019-01-22 -YBRO6897509,40HQ,2012-05-02 -QQWW5147283,45HQ,2002-08-26 -DXOY9318596,40HQ,2002-01-17 -EOML0473146,40HQ,2007-05-30 -ESJF1033275,40HQ,2015-05-01 -YYGM1052853,40GP,2001-03-31 -JVSG5572709,40GP,2017-06-03 -DMPW8209099,40GP,2010-12-30 -NIMR5005487,45HQ,2002-06-30 -ENZR4318395,45HQ,2001-08-26 -FYBM2772696,40HQ,2019-06-01 -KVKL1333878,20GP,2002-01-14 -KXJX8501966,45HQ,2021-01-31 -TVOB5564764,20GP,2000-05-14 -GAHA9495023,45HQ,2009-01-16 -KKXU3685733,40GP,2009-10-06 -DPZW5083399,40GP,2007-11-14 -QPIT9538209,45HQ,2003-02-20 -FEMI4123286,45HQ,2020-03-06 -BISJ5245985,40HQ,2014-01-04 -KTVP4198355,40GP,2004-11-08 -OGBJ6265145,40HQ,2013-05-08 -KJCN2884874,20GP,2002-11-18 -QXRZ1063919,45HQ,2021-02-23 -QWDP7055860,40GP,2014-09-20 -LLUW5116680,40HQ,2014-05-22 -YOIB3853400,45HQ,2018-11-23 -GZHT9081275,40GP,2008-07-03 -FZUH7583175,40GP,2013-07-01 -NONC7686388,40HQ,2010-01-20 -BFPB8618179,45HQ,2010-11-14 -BMDP1995315,45HQ,2001-05-05 -OIAK9235676,40HQ,2021-11-03 -RYIU4464475,20GP,2013-02-14 -JXRO5545712,40GP,2010-08-06 -QBQN7310631,40GP,2007-06-08 -VPJG2575410,20GP,2013-09-24 -ZCGM8659887,40GP,2018-05-29 -GHZX6277364,40GP,2018-01-19 -YFJX4891631,45HQ,2008-10-06 -KPWN8392377,45HQ,2010-04-18 -YPRC3200713,40GP,2003-01-07 -DRQU2258966,40HQ,2002-05-27 -CPEM7866435,40GP,2004-12-28 -PJZF6709774,40HQ,2007-12-14 -XXVA2642999,40GP,2013-03-02 -XDOU1321936,20GP,2001-04-01 -ILUO9495911,40GP,2006-11-11 -PKZV6630921,40GP,2009-03-20 -CQVT1086043,20GP,2005-12-23 -PKVA2601593,40GP,2012-11-13 -RFCN2738456,40HQ,2001-03-12 -BXMY0860041,40HQ,2006-01-18 -DPDW9684751,40GP,2009-04-18 -VIFE5652835,40HQ,2013-03-04 -JSVP4307084,40GP,2000-01-07 -OTXA3833608,20GP,2024-12-24 -QDZL5182254,40GP,2014-09-13 -STWY7968491,45HQ,2003-05-25 -OUTQ5259135,40HQ,2009-06-23 -TESU0776952,40HQ,2005-02-22 -XFDU8239060,20GP,2010-06-05 -FARI8947501,20GP,2013-11-01 -FFMF6169336,20GP,2018-03-11 -HSTL9831339,40HQ,2002-08-16 -IHKO1678132,20GP,2021-08-18 -WYQP2536303,40GP,2014-08-14 -XFOO3216140,40HQ,2006-10-19 -QEXW9579212,45HQ,2009-12-23 -BJGG8550140,40GP,2011-07-31 -UCGZ4178435,20GP,2019-04-10 -PTPH5279008,40GP,2016-06-26 -HHEM0224359,20GP,2016-01-30 -OPXI8280422,45HQ,2002-04-25 -NZUJ7233598,20GP,2023-04-20 -NBVM4503903,20GP,2008-09-05 -JXLC0677967,40GP,2013-11-17 -EYMV4003426,40HQ,2014-07-23 -OUNL0012306,20GP,2021-11-04 -AMAR9128115,40HQ,2023-07-08 -RBSI9029375,40GP,2007-07-22 -FTTI5434029,40GP,2018-07-13 -RZIV0104135,40HQ,2009-07-02 -RLCD1419086,40HQ,2012-01-14 -CNDF8986365,20GP,2001-07-07 -MIWK6685232,40GP,2015-07-09 -FZFK3349821,40GP,2014-12-28 -FAKT9419229,40GP,2020-03-30 -NIKH3856473,40HQ,2016-05-01 -LCOI3799402,20GP,2016-06-05 -QRQV9527168,40HQ,2013-02-28 -RBEF9681938,40HQ,2007-01-10 -DNNT4812255,20GP,2024-04-19 -QCFI9532373,20GP,2014-02-14 -LSQQ5896539,20GP,2008-12-02 -TBRB3322300,45HQ,2021-08-11 -PZDJ6103208,40HQ,2024-07-23 -PMXX4243357,20GP,2001-10-02 -RURT2970358,45HQ,2001-10-27 -QCQJ5029455,45HQ,2023-05-21 -VNUV0301635,40GP,2001-01-02 -WVAR4464583,20GP,2023-01-07 -LERK9462487,45HQ,2000-01-14 -CQSL4469834,40HQ,2012-10-27 -WAIS2750137,40GP,2016-05-09 -OWIY0115516,45HQ,2007-09-03 -DOAE6186272,20GP,2011-10-04 -GVNK2942241,40HQ,2017-05-29 -VONR4018009,40GP,2004-10-02 -KMDT3857824,40GP,2004-01-11 -UWAJ9856772,45HQ,2019-08-24 -ERGR0061844,45HQ,2000-07-16 -SZIN5848457,40HQ,2018-06-05 -OIFQ5750040,40HQ,2010-12-23 -RHYZ4129517,45HQ,2001-10-25 -CKXZ7039868,45HQ,2004-05-14 -JKEC8102820,40HQ,2007-07-17 -FVZO3551631,20GP,2021-11-13 -HFFW3566377,45HQ,2012-02-25 -TISY5333250,40HQ,2001-04-12 -TWSN9144002,40HQ,2008-06-30 -MLQY3802136,40GP,2019-02-08 -HTKR9661112,45HQ,2007-04-07 -QOVR9044724,40GP,2013-02-26 -RFZM2939597,40GP,2008-08-30 -KVWQ8270228,45HQ,2022-07-18 -WDYW3338096,40GP,2008-08-16 -FTSD8850901,45HQ,2021-09-28 -GAWA8985741,20GP,2009-03-04 -YIGL7680900,40GP,2001-05-05 -VVMM1950412,40GP,2011-06-14 -XLUP0065029,40GP,2023-07-19 -JOMI2359117,40GP,2015-03-04 -ZYSJ0942503,45HQ,2016-04-01 -WWSI7874947,40HQ,2019-10-13 -SLUM2915922,20GP,2009-11-06 -CVLW8825977,45HQ,2021-09-06 -TDVP2090460,45HQ,2011-07-20 -YXKO0855144,40GP,2019-04-25 -RVZL7824575,40GP,2011-03-07 -AZWB5213456,40GP,2022-01-31 -IKOM4416921,40HQ,2019-03-28 -XHWB8843112,40HQ,2011-08-24 -DGTN4344477,45HQ,2003-01-12 -NUIK4936882,20GP,2010-05-06 -JMXQ7205695,40HQ,2021-05-30 -AHDZ5029760,40GP,2004-10-14 -USCS1542470,40HQ,2019-06-24 -MRMJ1393820,45HQ,2017-08-28 -NRJP6094074,40GP,2007-04-13 -DYVA6258945,45HQ,2009-07-13 -UBKQ3984650,20GP,2012-10-13 -YFSZ8094975,45HQ,2015-10-25 -FJSM2977189,20GP,2018-02-02 -SOAU1617077,45HQ,2007-05-10 -DJNJ6414727,20GP,2015-12-16 -JIWE7138334,40HQ,2016-06-05 -LFHD8268020,40HQ,2019-03-08 -RHRS6167428,40HQ,2002-10-27 -NZSB5285806,45HQ,2019-11-26 -ULAN4074360,45HQ,2018-11-14 -AUGD3882787,40GP,2011-12-06 -JOVI1999571,40GP,2001-01-30 -FCWI6224997,40GP,2010-03-29 -MMWH3979208,20GP,2021-06-23 -DQMX9110546,40GP,2021-06-17 -IRMR1581553,40HQ,2003-04-05 -XRWJ5236509,40HQ,2018-12-01 -UEVK8837314,20GP,2019-01-22 -CIVK4382110,45HQ,2016-03-20 -WBDV5006351,45HQ,2006-08-19 -JQOZ8416216,40HQ,2024-11-20 -JLCY5481318,45HQ,2017-07-29 -BYCF4987758,40HQ,2017-09-09 -PYTS6068303,40HQ,2001-07-30 -BTFG0444524,20GP,2006-01-05 -DTWO7716294,45HQ,2021-05-05 -VLAW1796830,40GP,2005-08-09 -WRXJ8213680,40HQ,2017-10-21 -FMVT8904839,40HQ,2011-06-14 -ABCL7335897,40GP,2021-11-13 -JKWP6311881,45HQ,2010-07-15 -JFBE1909126,45HQ,2020-08-05 -KYBS4224408,45HQ,2017-05-29 -PYCV6088471,40HQ,2021-06-02 -NWQM5555214,40HQ,2008-12-01 -TDMI6090085,40GP,2009-05-18 -VGAB8146954,45HQ,2005-03-31 -SKPQ1850894,20GP,2011-11-08 -AODG1056968,45HQ,2001-06-14 -MBIH4625814,40GP,2009-02-10 -UIKF7044663,20GP,2010-03-13 -TTVC5489818,45HQ,2005-06-15 -QCUN2341670,40HQ,2010-11-16 -QDMM5048943,40GP,2019-01-04 -EZJL0772265,45HQ,2007-01-15 -OWUZ5582153,40GP,2003-03-06 -IOLO5029185,45HQ,2015-07-17 -SDNP4173747,45HQ,2019-12-24 -IKPV9602242,40GP,2021-05-10 -FNOK3404853,45HQ,2020-10-17 -AFPA2172387,40HQ,2021-11-11 -FJHE0645842,40HQ,2006-04-17 -TXFJ9522834,40GP,2008-08-17 -UAXC5791263,45HQ,2021-05-20 -XVDU1678286,20GP,2003-08-22 -FZXR3231908,45HQ,2010-03-26 -KIBW6855475,40GP,2021-05-13 -XJLA3300037,40HQ,2022-03-03 -GQGL1204224,45HQ,2015-01-07 -VEYC5797850,20GP,2000-12-19 -MZOF9527874,20GP,2018-09-04 -YEXI3944185,40HQ,2016-12-25 -FVVY9049993,20GP,2016-08-16 -NCNH8078032,20GP,2021-08-09 -XSMA5666138,45HQ,2005-08-07 -LEPW2192375,20GP,2018-09-20 -TNEU1306144,40GP,2009-08-23 -WYFU4986484,40GP,2023-10-12 -ECON1059378,20GP,2006-11-06 -NNUM0112948,45HQ,2006-01-21 -BKMD6440912,40GP,2000-11-09 -DZND3929706,45HQ,2014-04-25 -APWK8447143,45HQ,2015-09-10 -SYWE5663912,40HQ,2017-06-17 -JEID4268865,20GP,2018-02-08 -REQE9265936,40HQ,2007-07-22 -YGVY9959353,45HQ,2024-10-07 -OLCS0942783,40GP,2005-12-16 -ZVCA4907676,40HQ,2003-10-08 -CIRP4300467,45HQ,2024-12-10 -SHXN1817152,45HQ,2001-03-19 -QMLV2242332,20GP,2019-10-02 -NCGF2430092,45HQ,2024-01-11 -EVJV0165908,40HQ,2006-11-10 -ENGV1208890,40HQ,2019-09-23 -VTEK8680418,20GP,2023-07-21 -LARU6493809,40HQ,2024-12-23 -NRFA8898646,45HQ,2010-02-02 -NHWD6997830,45HQ,2006-12-18 -GJUZ0628414,40GP,2021-10-19 -PBRJ7784237,20GP,2011-12-12 -GBPE4838692,20GP,2018-01-10 -ASZS6191862,20GP,2023-03-29 -LPYV9571448,20GP,2011-04-03 -LKYT9200720,40HQ,2010-10-07 -PLNE8120112,40HQ,2000-07-18 -AVDZ6282997,40GP,2007-08-16 -ZRML4261626,40HQ,2023-06-30 -NTLC4141640,40GP,2006-04-15 -XQHN1363771,20GP,2024-05-10 -JLVK0623246,20GP,2016-11-08 -YBQX4792698,20GP,2014-12-01 -OEKP2318418,40HQ,2017-08-08 -MQEH7075147,45HQ,2004-07-17 -JIVK9828930,45HQ,2015-01-07 -ZOTK8181125,40GP,2006-02-16 -POCL4922163,45HQ,2000-03-07 -QMWJ0414547,40HQ,2018-08-05 -CNES2940515,20GP,2007-03-22 -AIIK4931121,40GP,2007-02-27 -HUZR1565299,40HQ,2003-01-22 -ZHMP0525633,20GP,2006-08-07 -NHQP8548973,20GP,2017-02-13 -SHPP4006532,40HQ,2009-08-10 -VFXE6348036,40GP,2019-12-30 -LXNZ9399190,45HQ,2019-09-03 -YGLZ6849914,45HQ,2021-09-22 -JQCY0719511,20GP,2020-04-08 -BJHL1626350,40HQ,2024-09-04 -NOZQ2325996,40HQ,2009-06-18 -AZGJ7711708,40HQ,2023-04-27 -MDFC9538724,40HQ,2004-05-02 -BNWI2823811,40HQ,2010-04-26 -OLRM9745296,40GP,2013-08-14 -XRKF6421119,20GP,2014-11-02 -UURR3586779,40HQ,2013-01-26 -EVMQ6665646,20GP,2003-04-13 -DUVQ0686286,45HQ,2019-03-26 -FHJK4121687,20GP,2001-12-17 -WIXZ9954771,40GP,2015-06-05 -JYXR7805973,40HQ,2019-07-21 -WRTQ8989713,40HQ,2014-10-01 -CUWQ5821543,45HQ,2012-09-19 -WXPC1629174,40HQ,2012-07-30 -ZMDU4969551,45HQ,2008-01-06 -CBIO4727774,20GP,2018-10-06 -QBWS2449678,45HQ,2007-04-01 -MRUC8507082,45HQ,2008-09-03 -DEDJ8182618,40GP,2008-04-06 -TBDK6257989,20GP,2005-11-08 -DMTK5177994,20GP,2013-06-21 -KVUF3961560,45HQ,2006-08-03 -EIIY9335131,40HQ,2023-08-15 -ZOES8411769,20GP,2002-10-11 -YXPV7094124,45HQ,2024-09-05 -NXJB9941796,40GP,2007-12-17 -QRCO8248183,20GP,2011-09-21 -CPXA7149321,40GP,2015-12-03 -JMJY7001186,40HQ,2004-09-18 -RCPW6467104,20GP,2002-10-27 -XOMP3956717,40HQ,2014-12-09 -NEVJ1987223,20GP,2014-08-15 -GWEX5509710,20GP,2015-04-01 -VEVG6613066,20GP,2016-07-13 -ZWHN8185365,40GP,2020-09-16 -GYYQ4253960,40HQ,2010-04-03 -BSNR1477514,20GP,2008-05-11 -CSHU7356229,40GP,2001-04-17 -ZVUQ8334056,40HQ,2009-08-12 -LDTU8620515,40HQ,2012-05-19 -KCIR0674909,40HQ,2001-04-13 -IRVL3172756,40HQ,2015-09-29 -HNDL7959869,20GP,2002-08-05 -TDRO9588449,40HQ,2008-02-22 -KAFP2119054,40GP,2017-03-01 -FBLS8002557,40HQ,2005-04-08 -EAZN1328185,40HQ,2002-10-18 -LGWF0553840,40GP,2012-06-13 -RCKY9695659,40GP,2008-01-07 -UEOV6441843,20GP,2008-12-24 -ZIKP0159039,40HQ,2021-11-09 -WYYR3092454,40GP,2017-07-21 -TGTG9941045,40HQ,2015-01-06 -ZTQQ3613902,45HQ,2002-06-13 -CIQH4308433,40HQ,2014-09-11 -DJBX7264664,40GP,2015-09-11 -PHLP5313786,40GP,2021-10-06 -HOAE6959329,40GP,2023-11-04 -KSDI5745206,40GP,2004-01-29 -FHIP5377840,40GP,2010-08-29 -CKLX1046024,20GP,2004-04-03 -CGYF1321898,45HQ,2015-04-29 -ISIZ8838159,45HQ,2010-01-19 -TEHK0075578,40HQ,2020-01-15 -KNIO2064336,45HQ,2010-11-23 -TQDF3647915,45HQ,2013-06-11 -SNOV3045371,20GP,2014-01-16 -NSHH6654640,40GP,2003-02-07 -JZZG4123374,20GP,2009-02-04 -TOEQ3447225,40HQ,2023-12-27 -WPHP5129934,20GP,2014-01-25 -OZGU8176461,40HQ,2015-04-07 -YAOE5903378,40GP,2023-12-23 -BOMD1790198,45HQ,2012-03-26 -ZOTL7662025,40HQ,2015-08-28 -YYYP5145704,45HQ,2017-09-03 -GFJN6830343,45HQ,2015-10-15 -TJRT1857776,45HQ,2023-05-19 -QBEV1611332,20GP,2024-09-11 -JUSI6555595,40GP,2020-05-26 -FDSN9952593,45HQ,2006-10-17 -LNCT1708188,40HQ,2009-02-17 -XWRP8199974,45HQ,2016-09-26 -NBIF2018302,45HQ,2014-02-09 -ETFR8137577,40HQ,2018-12-12 -DTKW1296775,40HQ,2007-02-02 -SHUI7083438,20GP,2019-09-14 -KFAI0481637,40GP,2015-08-27 -YJOM3176291,45HQ,2020-01-21 -IJVX6189220,45HQ,2001-03-29 -GQBL4770073,40HQ,2022-11-10 -UBOF8681118,45HQ,2002-12-11 -CHBS6239901,40GP,2014-03-17 -AASW7520072,40HQ,2004-02-06 -OIFN7310663,45HQ,2008-06-13 -TGMU0293608,20GP,2014-07-21 -PFMH1143133,40HQ,2024-02-04 -STZH1423272,20GP,2018-01-16 -WKZC1163294,20GP,2022-08-14 -MXQE1621078,40GP,2012-01-07 -LWLG3845732,40HQ,2018-01-05 -NJXJ8834270,40GP,2016-09-14 -BTJQ8483172,45HQ,2024-06-06 -TGWP8980378,45HQ,2018-09-29 -BUMB8626427,40HQ,2019-09-20 -FIQY6962547,40HQ,2019-03-20 -MSIY7836779,45HQ,2018-04-08 -DJUF9809908,45HQ,2005-08-08 -BKJB7431848,45HQ,2024-11-08 -XCSA4953729,40HQ,2005-12-14 -ZFGZ0644845,20GP,2018-05-16 -RJQA9682150,40GP,2002-12-09 -HEGW4144655,45HQ,2000-04-22 -HZFS4505631,40HQ,2011-04-12 -CLQB1571435,40HQ,2020-09-28 -VRDN9402546,45HQ,2019-03-26 -BOVV1936805,40GP,2003-05-22 -OLHC6592433,20GP,2002-06-10 -IVLK5139861,45HQ,2009-07-31 -NKIR3212042,40HQ,2002-06-14 -TGCL2283076,40HQ,2014-07-02 -DUTY5457793,20GP,2000-04-02 -ZBRS4336001,40GP,2012-02-27 -GBHY3408749,20GP,2016-02-28 -GZXB6370169,20GP,2013-07-08 -OXPU1594118,40GP,2018-11-11 -NEOR4394697,40HQ,2014-02-01 -WDUV8127838,20GP,2017-12-21 -NQWM2123366,40HQ,2008-07-25 -MBNX0442414,40GP,2007-08-20 -SBAA8245532,40HQ,2018-08-06 -ISMW9342231,40HQ,2008-09-07 -QBQJ2430881,20GP,2012-10-30 -SXGM2967234,20GP,2006-06-29 -YIIS7335077,45HQ,2015-11-20 -BCYI9759822,40GP,2012-07-08 -TIZC9051293,20GP,2021-04-08 -OVVU9315604,45HQ,2024-07-07 -COJD0139679,20GP,2004-05-03 -JHUF1285790,40GP,2001-02-18 -CQAM1498781,45HQ,2007-04-01 -KBPD4404031,40HQ,2005-04-08 -BBGZ4940484,40GP,2001-11-16 -DFKF6260731,40GP,2017-02-22 -VIRD2148390,40HQ,2017-08-13 -YZTX7027620,40GP,2001-02-24 -YZWR8034908,40HQ,2007-05-20 -OYXY7424490,40GP,2013-01-06 -VUEZ1278766,40HQ,2010-08-11 -WWYD4604208,20GP,2009-08-23 -MUGF0218400,40HQ,2005-03-09 -ZQDD9063937,20GP,2022-03-08 -AHMU3415068,45HQ,2009-06-23 -BNAR4542880,40GP,2019-12-09 -BVTO4422712,40GP,2017-06-29 -TWCJ5069530,20GP,2019-05-09 -JOYA6944873,40HQ,2018-03-19 -OSAB3142242,20GP,2001-03-25 -NDXT7774976,40GP,2005-11-06 -KKRM9542400,40HQ,2007-06-04 -SZNP6140417,20GP,2018-12-19 -TJVE3370837,40HQ,2014-12-08 -ABGJ2672862,20GP,2012-09-15 -PCCW1207816,45HQ,2011-03-23 -GADQ8736530,40HQ,2018-06-20 -AVXN8818368,40HQ,2014-08-23 -LJJS1303673,40HQ,2020-07-12 -OCGZ6624179,20GP,2017-10-26 -OZSD4129470,45HQ,2011-03-16 -BRRN1561655,40HQ,2013-06-20 -ERUY9328441,20GP,2014-04-14 -JXQW3965010,40HQ,2002-08-10 -GXIW2314526,40HQ,2014-03-31 -SJHQ2304716,45HQ,2022-01-20 -NVTN6673950,20GP,2002-09-29 -YQDJ1745659,20GP,2024-02-08 -HLVW5431049,40HQ,2003-07-15 -FQMM3890449,40HQ,2024-12-16 -UGLQ6042902,45HQ,2021-08-29 -OGKL1512802,40HQ,2004-07-24 -KWHS0140931,40GP,2009-10-05 -BSMJ7316464,20GP,2007-07-25 -UCEX4151403,45HQ,2021-06-01 -IQNA6643691,40GP,2002-11-17 -GGQR5172977,45HQ,2013-12-16 -UMNU5869353,45HQ,2011-12-10 -ZYTR7143873,40HQ,2006-01-27 -BEKT8172235,40HQ,2009-11-30 -XWIM5571686,40GP,2013-04-04 -KUII5542107,40HQ,2016-07-09 -QPZQ5916899,40HQ,2008-10-03 -DFDF7674628,20GP,2020-06-27 -UCHQ9905258,45HQ,2007-05-15 -CEEW0981500,40GP,2000-04-11 -LBZD1126715,40HQ,2019-12-21 -AMZN3545741,40HQ,2003-08-30 -TWLT3713814,20GP,2011-03-07 -BQDM6574212,40HQ,2005-04-19 -DJDB9277303,40GP,2016-07-13 -OEEI9466280,40GP,2023-05-04 -GXKA6289636,20GP,2001-09-17 -JFQA4629502,45HQ,2018-09-29 -LJSO9430261,40GP,2022-08-01 -YUMX3851628,40GP,2023-01-21 -MZXP9014953,40HQ,2011-06-06 -RDGB7560720,45HQ,2018-10-02 -IJGW3641042,20GP,2012-12-19 -XIHW0129818,45HQ,2024-12-30 -VVSB8042148,45HQ,2007-02-06 -WZUQ9908602,40HQ,2012-01-30 -WUTY4957227,40HQ,2010-03-08 -ZYDA3172167,40GP,2003-09-27 -VBZC0756482,20GP,2006-09-07 -DXBJ5416583,40HQ,2002-09-18 -ICEL8255528,40GP,2003-06-11 -UTMI2783641,40GP,2000-06-10 -WMJY3138833,40HQ,2001-11-30 -VSRK2674249,40GP,2014-01-06 -GZYF6083735,20GP,2020-03-12 -XXXX6241850,40GP,2022-05-21 -HCTC8375755,40HQ,2012-09-01 -DHXQ1964348,40GP,2022-05-16 -QSRJ2331453,20GP,2002-02-15 -MUGG6316265,45HQ,2013-11-24 -SYTP9550239,40HQ,2002-02-20 -BMLO0733861,40HQ,2013-02-05 -VFGD7625639,45HQ,2002-11-23 -TRCF2611504,40GP,2010-02-13 -WMJB5997966,40GP,2013-07-19 -COGB4417865,40GP,2003-10-09 -PXGY2805786,45HQ,2008-12-25 -EURB5392018,20GP,2018-11-09 -XJZY0182061,20GP,2003-07-09 -NRDR9611237,40HQ,2013-10-19 -RVSA4556021,40HQ,2015-02-02 -SURB4862872,40GP,2005-01-26 -RQXH9368775,20GP,2002-02-28 -RTVI5402086,40HQ,2014-03-07 -ZXNQ3490070,20GP,2019-01-09 -MEWQ3282323,40HQ,2008-04-20 -MSIE8675172,45HQ,2002-05-27 -VSKB1987780,40HQ,2018-03-31 -SJYQ1883926,40HQ,2022-09-23 -ZTYT7325551,40HQ,2014-06-19 -NKZQ6844748,20GP,2002-11-27 -RTWV0419011,45HQ,2021-10-10 -UTYF1399417,40HQ,2005-01-17 -EIZP8235319,20GP,2017-06-29 -KKUU6303239,45HQ,2000-10-15 -GZBA2597644,20GP,2024-02-16 -IZUN0775002,40GP,2005-07-28 -KUZA9553640,40GP,2023-01-22 -XTJD5453470,20GP,2012-06-16 -ORGS7827593,20GP,2017-08-03 -OSOX2446024,40HQ,2016-11-28 -JQHS5249490,40HQ,2016-01-17 -GRMU9830403,40HQ,2005-12-19 -LAZE4458702,40GP,2003-02-04 -ZWXU0789493,45HQ,2003-03-21 -LZTK9070527,40HQ,2011-08-22 -KPSI5898715,45HQ,2023-02-04 -XXRF0495095,40HQ,2013-09-28 -ZBPI9931895,45HQ,2024-08-06 -LEFS5939981,40GP,2010-12-14 -FHRO5247079,45HQ,2024-04-10 -DWCY3508174,40HQ,2010-09-12 -WBGA4899403,40GP,2001-12-16 -JMKC1909865,45HQ,2024-03-27 -GHBQ2694397,20GP,2022-08-18 -SLML7394217,45HQ,2008-01-26 -EJTT9774247,20GP,2008-12-31 -OMUM8372531,45HQ,2001-07-30 -HRTA8570814,40HQ,2008-03-26 -WLHK7699432,20GP,2020-03-26 -PCJD7934647,20GP,2001-10-02 -EQCE4118423,40HQ,2014-05-06 -APSX4193823,20GP,2023-06-19 -BZFE0609706,20GP,2014-11-07 -HZWV6582015,40GP,2020-07-16 -MTKV6587075,40HQ,2011-09-10 -YWHK0027351,20GP,2020-01-19 -WTRQ8708117,20GP,2003-10-01 -PEXE1675305,40GP,2019-06-05 -GDNQ8306292,45HQ,2021-10-09 -UCOK0219760,20GP,2007-11-11 -LBFM3955280,40GP,2021-11-13 -FGJE9104241,45HQ,2003-08-30 -PRLX4894429,40GP,2020-09-24 -SCGS7165488,20GP,2008-12-01 -PEYJ4668793,40HQ,2010-06-11 -XTIJ5874246,20GP,2010-11-08 -PVFJ2715883,20GP,2016-08-28 -EESF6725174,45HQ,2004-05-21 -FIJJ9940687,20GP,2018-04-02 -NZCR5032846,40HQ,2017-04-30 -PKYX9690214,20GP,2008-12-31 -JNPW8252274,20GP,2014-04-20 -CYLO0535893,40GP,2018-02-08 -GDQK7129506,40GP,2005-08-03 -ABXR2014483,20GP,2006-08-10 -WTZV7720835,40HQ,2009-04-09 -WLFV2791630,20GP,2020-06-25 -JQHK0127089,45HQ,2012-02-01 -TWKM0895538,20GP,2020-11-02 -UHXK3987229,40HQ,2016-09-22 -JWDP6568850,20GP,2022-07-19 -NSWY6201719,40GP,2007-09-26 -WPLX5210899,20GP,2021-07-05 -APDD6534889,45HQ,2001-04-30 -QMRP0874607,40GP,2014-03-13 -ZKQT2694747,20GP,2005-03-01 -LANY9903472,40HQ,2003-05-10 -BHNF8078297,45HQ,2016-12-27 -EIBE5320373,45HQ,2019-06-04 -WCXG4764218,40HQ,2012-11-14 -CJHU8685350,40HQ,2014-07-28 -IZLH3750330,20GP,2002-11-24 -REXY6979897,40HQ,2011-01-10 -NODB5380830,40HQ,2019-05-09 -MRDL5810672,45HQ,2019-06-30 -DCZW5149522,40HQ,2023-06-29 -GOFI8619290,40HQ,2015-04-01 -MSGK7551908,40HQ,2014-03-03 -DXRK8956775,45HQ,2018-04-28 -QZQU8397236,20GP,2006-11-03 -GKXA3895980,20GP,2010-03-13 -NZEP2418949,40GP,2012-04-14 -YPJO3977355,40GP,2019-07-15 -OGDP7445556,40HQ,2020-05-03 -ETFG8822487,20GP,2016-06-24 -FWXZ8414434,20GP,2023-01-08 -HZER4707322,20GP,2017-12-19 -RLEA4828235,20GP,2023-04-14 -MKQP3037350,45HQ,2001-12-28 -DUKX0035560,20GP,2001-08-19 -VVQJ4484149,20GP,2022-02-09 -YYDP1928045,40HQ,2016-04-22 -YLSP3420799,45HQ,2010-08-10 -LGYA1566954,45HQ,2022-08-02 -WATU7222809,20GP,2011-01-14 -QDUA0936822,20GP,2018-11-17 -NPKX8974822,20GP,2024-11-24 -ERQF4387852,40HQ,2007-12-27 -ANUD9345325,40GP,2018-06-01 -YCFA1988677,40HQ,2013-05-18 -RXKR2453226,20GP,2022-11-03 -BXGT9325156,20GP,2007-09-03 -FNQM2331586,20GP,2015-07-15 -QZBP2273621,20GP,2020-06-24 -MFEY1595631,40HQ,2002-12-09 -CEQV6112644,40HQ,2006-10-10 -IDGJ3739902,40GP,2010-12-17 -NYMV4383723,40GP,2022-06-03 -YCRW3837508,20GP,2020-08-08 -YUYK4293563,45HQ,2012-07-09 -NZNA2152400,40GP,2018-11-30 -CXDW6652000,45HQ,2002-03-12 -ZTYU1205604,40GP,2019-05-12 -DREB1742663,40GP,2009-11-16 -CWIC4323400,20GP,2020-03-29 -OASB5631938,40GP,2006-10-15 -GFDT4052817,40HQ,2017-10-11 -UAEI8814983,45HQ,2020-03-07 -HABO9700477,40HQ,2004-01-22 -AEVA1097235,40GP,2013-02-02 -FEOU3162239,20GP,2013-07-22 -PIRP7904696,45HQ,2011-10-17 -BMWM2586107,40GP,2019-11-29 -DRIF0772831,40GP,2003-02-18 -YVZU4970003,40HQ,2020-10-08 -WXYD3162498,40HQ,2023-12-20 -KIEO7528093,20GP,2024-02-12 -JUIZ2431613,40GP,2002-07-04 -MRKH9592307,45HQ,2004-02-21 -SUAX4874022,40HQ,2024-06-11 -FOLB4724304,20GP,2018-11-03 -KPHV5601257,20GP,2013-07-29 -RJVI8939169,20GP,2018-07-26 -ACBP0358311,40GP,2015-12-10 -VDGM9881381,40GP,2005-01-25 -TESY4866535,20GP,2010-03-25 -YUCB4656281,40GP,2024-11-04 -CBOF8276394,20GP,2013-01-18 -HEQE7013949,45HQ,2008-05-29 -DIAK5061306,45HQ,2022-08-22 -KUYV7565768,40GP,2019-05-24 -OBUO6136632,40HQ,2008-02-26 -DHCI5440979,40HQ,2007-10-06 -OPFL2902120,40GP,2009-03-26 -NAGZ3255205,40HQ,2019-01-30 -AHYB3079571,40GP,2000-09-27 -LPSL7948414,40GP,2003-04-24 -POIF2028017,40GP,2006-12-01 -VGDM5402270,20GP,2014-11-28 -GPIS5886580,40GP,2011-01-02 -IQJK4252828,45HQ,2008-06-08 -QMBV2917028,45HQ,2016-12-26 -EJOC4133588,40GP,2008-04-25 -GLHG0274312,20GP,2008-11-11 -JEEL6968968,40GP,2006-06-07 -KYMQ0801023,40GP,2000-01-02 -NVNR5753414,45HQ,2009-09-23 -JGJV5380856,40GP,2002-12-31 -HJWR8701130,20GP,2007-04-25 -CQQY7095470,20GP,2006-10-28 -WXNT2111013,40GP,2023-08-22 -XQEV8061071,45HQ,2011-04-16 -INPD7630898,40GP,2015-06-22 -VEKV7309957,40GP,2007-02-02 -FFQB5734599,20GP,2003-07-06 -GNPN1411217,45HQ,2024-07-28 -IWWT7156229,45HQ,2017-12-24 -BBSE2699078,40GP,2024-11-14 -XSFG9976574,20GP,2021-07-24 -FXVS5015763,40GP,2017-06-04 -MWHI8345600,40HQ,2002-02-22 -GNSV0902319,45HQ,2001-03-17 -GKYK8042730,40GP,2001-07-12 -RTBB7885526,40GP,2020-10-31 -MSAR5381161,40GP,2003-09-27 -XPCJ3714274,40GP,2002-02-08 -TNCT8872987,20GP,2023-09-27 -WFLF5532340,40HQ,2016-09-11 -SWGE0155177,40GP,2015-03-18 -TQKG3235193,45HQ,2013-03-24 -CNIJ5554979,20GP,2022-11-21 -FDUD8068584,40GP,2021-01-05 -CXDJ6873646,45HQ,2011-09-02 -FOZU1286117,40GP,2008-03-17 -DKVG2038488,40HQ,2024-04-19 -GIBM8719407,20GP,2020-09-30 -SHHF7272957,45HQ,2003-11-20 -LHIM7343529,40GP,2017-04-29 -KNOY4581943,20GP,2000-05-12 -BWQY5018774,40GP,2008-02-13 -RHSK3538383,20GP,2008-06-07 -GIDA1860023,20GP,2001-09-17 -OHZK6946476,20GP,2003-08-04 -RHZD4185024,40HQ,2008-08-18 -WJFV4677240,40HQ,2000-07-15 -TDKT0144642,45HQ,2006-12-28 -DCDR9729660,45HQ,2009-09-25 -WPTW7126180,40HQ,2006-03-17 -LICR9930294,20GP,2002-08-14 -UUNF8573249,40GP,2007-05-07 -BJGP1928028,40HQ,2004-03-04 -KFKY4300191,40GP,2012-01-09 -YHPN9883152,20GP,2024-07-29 -OLVJ3062359,45HQ,2006-08-19 -BBMO1311240,20GP,2012-12-10 -MYPR2172168,45HQ,2009-04-24 -ENSN6282555,45HQ,2015-03-28 -BMDL0009096,40HQ,2010-10-09 -GIYD7977089,45HQ,2016-12-16 -GFOK3455225,45HQ,2013-01-05 -QONS0044018,20GP,2002-04-07 -GVHM6318764,45HQ,2001-11-06 -XCHL6766218,45HQ,2022-10-10 -QHYM2546308,20GP,2003-10-19 -LTYR8318735,40GP,2012-01-19 -XHJB0427302,20GP,2013-09-26 -ZVCD3119280,45HQ,2018-10-23 -EORN3726468,40GP,2009-06-13 -NFUT5634167,20GP,2013-10-04 -XDLV8670385,20GP,2018-05-04 -CGWI6678798,40GP,2024-09-09 -LYDL9781395,45HQ,2012-07-30 -YLLU2479759,40HQ,2007-02-28 -TRWW2987453,40HQ,2014-02-11 -GMMP4970548,45HQ,2000-01-12 -IXHY8202081,20GP,2021-02-24 -KPQB2528820,40GP,2006-12-21 -BZHJ7884227,20GP,2011-04-17 -OOBX5607957,40HQ,2004-03-11 -GDDP8448045,45HQ,2022-07-06 -TFMB7533713,40GP,2019-12-12 -LSVL4831030,40GP,2015-05-04 -VVIG4683474,20GP,2006-12-24 -EITL1547362,20GP,2019-11-30 -EHWD8981748,40HQ,2018-03-04 -VHAS9775959,45HQ,2019-01-13 -IQMR3843355,45HQ,2008-02-23 -DMTQ8196130,45HQ,2016-01-10 -YAFI2558712,20GP,2009-04-25 -XVFO2753404,40HQ,2010-08-07 -MNNN2655277,20GP,2017-02-22 -TYQT2917621,40GP,2020-03-12 -NGJY1867543,45HQ,2009-11-27 -YMQU8223279,45HQ,2014-01-25 -EICI8462555,45HQ,2006-03-31 -NXXG1286888,20GP,2008-06-18 -YAMW9006088,40GP,2015-12-05 -MWDO1032077,45HQ,2004-10-15 -XIIN0944172,20GP,2001-09-12 -KKTO5139966,20GP,2017-08-24 -SOFH2135296,40GP,2011-05-07 -OZVF0904804,45HQ,2009-11-26 -PQEM9110266,20GP,2011-08-27 -AGHP0875874,20GP,2017-02-11 -QYHB9112367,20GP,2005-06-19 -RUPO9346071,40GP,2000-12-21 -IHZC4451906,20GP,2018-11-21 -DPOD9209630,40HQ,2015-06-23 -UEMW5573189,40GP,2003-02-11 -VAWI5888487,20GP,2017-09-16 -IWYV0765604,40HQ,2016-01-29 -DEGJ0542310,20GP,2001-12-14 -SMQR5728580,40HQ,2008-12-17 -KHCS4119962,40HQ,2005-12-04 -AURV1265858,40GP,2005-01-21 -YPPU8454072,40GP,2010-06-09 -CEVS7047556,20GP,2003-07-08 -DUMC3527218,45HQ,2017-08-11 -QFCR5221682,40GP,2023-10-14 -DLGV5489012,20GP,2016-05-25 -OISH2970374,40HQ,2023-10-17 -LTVM3299489,40GP,2015-08-05 -ZLES2828466,45HQ,2005-09-17 -BYCF9540635,40GP,2005-10-25 -DDLQ2512621,45HQ,2019-10-31 -VUHQ6137308,40GP,2013-05-09 -DFGZ7547706,40HQ,2017-11-30 -MFTN3473584,20GP,2005-03-09 -COIW2960592,20GP,2003-09-22 -YYWR1137393,45HQ,2007-12-31 -VPQN3572815,20GP,2015-05-02 -QMON7039641,40GP,2003-01-18 -PTRM9678879,45HQ,2017-11-25 -ERBP1066770,20GP,2024-05-21 -AUAP0996004,40GP,2021-11-23 -IHFU5412706,45HQ,2016-05-02 -IZPC4661559,20GP,2017-02-23 -XYVJ8646918,40GP,2011-08-06 -HYZW8492273,20GP,2018-04-10 -ZKBY5044663,40GP,2015-11-01 -TQRZ3282308,40GP,2024-03-25 -POLR6002840,40GP,2022-10-20 -WUZP2168406,45HQ,2019-10-22 -NZFJ3709496,40HQ,2014-05-11 -GXYW3292882,40HQ,2002-10-06 -PWJV9501897,40HQ,2020-10-02 -CKLY1997526,45HQ,2016-04-18 -CDDC9163622,45HQ,2010-11-02 -FLKY1798618,20GP,2019-01-21 -DRPT6962411,40HQ,2006-11-16 -NDQY2651698,45HQ,2021-05-09 -PPKT5980898,20GP,2018-06-11 -OTXZ1225550,45HQ,2015-01-31 -BDAO3502296,20GP,2022-06-06 -XQWH7968774,45HQ,2017-07-11 -HZCC3556531,40GP,2005-01-13 -CFPF9232837,45HQ,2013-08-16 -AGZG9054003,45HQ,2009-06-05 -CQWC6865805,20GP,2023-07-15 -YIQA4884510,45HQ,2000-04-12 -RRUC0747446,40HQ,2005-08-30 -SJAD3066970,20GP,2022-04-11 -OVED2642838,40GP,2022-02-24 -AAMW1407980,40GP,2013-12-13 -JGWZ5685555,40HQ,2012-03-24 -WCLV8539878,40GP,2019-03-10 -LFQN1861887,40GP,2022-07-23 -YWPH4596139,40HQ,2014-07-28 -CTFE3439842,40HQ,2014-06-05 -GKQX1437771,40HQ,2000-10-02 -TQOK4724336,40HQ,2022-04-25 -GELZ6734101,20GP,2014-06-28 -ZJIX3554431,40GP,2004-10-02 -KHYL7909337,20GP,2009-08-25 -XSIY3571862,20GP,2024-09-08 -QFWE0382869,40HQ,2017-02-16 -SIUS3249494,45HQ,2007-01-19 -ZQMX2661595,45HQ,2017-03-22 -KOBG0795938,40HQ,2003-07-23 -ICSN3245789,20GP,2018-03-16 -HFPX6887185,40GP,2020-11-05 -ERTC9325246,45HQ,2012-05-04 -JGIV5261450,40HQ,2012-04-21 -YXNB1616342,45HQ,2017-03-20 -DSSV8691049,45HQ,2007-10-17 -IMZH8253660,45HQ,2008-03-13 -NYAL2472735,40GP,2020-06-05 -FQPQ7996186,20GP,2006-11-29 -IAZB9091620,40HQ,2021-08-23 -QUKJ8250800,45HQ,2012-02-27 -CWBW7406922,45HQ,2013-08-27 -AGXQ1951384,20GP,2012-11-03 -VKJR8033325,40HQ,2002-03-07 -ZWBA5386590,45HQ,2021-10-17 -IMTE5414169,40GP,2023-08-10 -LOTD2556842,45HQ,2011-11-29 -BZMP3080422,20GP,2001-10-22 -CBIY3486721,20GP,2009-04-05 -KBDC0056148,40GP,2008-02-10 -ITVQ4774449,45HQ,2015-03-21 -WLIQ6646853,40HQ,2012-12-26 -KCNN4691386,40GP,2017-10-10 -IKAU5688593,45HQ,2018-03-23 -UABF3496079,40GP,2023-10-03 -TJYM1878076,20GP,2000-05-24 -NMEH6153243,40HQ,2014-09-18 -PTBS6557463,40HQ,2018-06-13 -TQYA1260281,40GP,2017-09-12 -WRLS4951226,40HQ,2018-04-21 -YGLL6789880,20GP,2015-04-20 -DNKH9606668,20GP,2023-04-18 -KNWJ5832002,40HQ,2011-02-19 -QMGS6760592,40HQ,2015-12-27 -WWSQ1562376,40GP,2006-05-27 -NXBH5275200,20GP,2016-05-21 -ZKQM9528154,45HQ,2020-06-01 -IUCK5920647,20GP,2001-04-24 -AWDM8481941,40GP,2018-06-13 -EHKH0339957,45HQ,2006-03-15 -KFTE2551220,20GP,2014-05-01 -BTHQ1482681,40GP,2021-12-02 -LSBC0537390,45HQ,2014-06-26 -SISX7801322,40HQ,2003-12-11 -QQJS1948773,20GP,2022-04-05 -OYWY0870748,40HQ,2004-11-23 -JFDG2339589,45HQ,2004-03-12 -EWGF3839253,20GP,2010-01-20 -BBKO2519872,40HQ,2005-03-25 -DGGO2731955,45HQ,2011-02-09 -JNQC8288762,40HQ,2009-05-23 -RPFT1925747,20GP,2022-05-25 -FPIM8887836,45HQ,2012-03-11 -NTLZ2735553,20GP,2013-03-25 -VTZH8636163,40HQ,2010-12-22 -XCTY2694795,45HQ,2014-09-20 -ONPR7269030,20GP,2022-06-20 -IUGW1995372,20GP,2021-05-28 -VFJV7914693,20GP,2003-05-02 -PKEP3158017,20GP,2000-03-09 -MGGX3687671,45HQ,2002-11-12 -NIOL6420674,45HQ,2011-01-30 -PHAG5249031,40GP,2023-11-28 -NQVJ7319168,20GP,2018-10-02 -VTRY1244751,20GP,2002-04-24 -HGPV9792157,20GP,2012-08-03 -ETSH8362287,45HQ,2017-07-18 -IGUT2999504,45HQ,2024-11-23 -ODWT1551970,40GP,2013-08-15 -IABI1148516,20GP,2022-03-27 -NPPA6305784,40HQ,2018-10-04 -IIFJ1332656,40GP,2005-01-09 -HJYA7264374,40GP,2004-08-22 -LKFD8675980,40HQ,2024-01-13 -VHHJ8629363,40HQ,2009-03-25 -JNDH1165267,45HQ,2009-11-19 -WMBE8905536,40GP,2008-04-08 -WCLV2616581,40HQ,2016-06-16 -LRGU2493929,20GP,2011-03-02 -XGYB5498808,45HQ,2012-03-06 -SWZV6865090,40HQ,2015-01-27 -IVBM2508726,40GP,2000-03-07 -TGCS0486990,20GP,2006-10-06 -AKSS4937804,45HQ,2013-11-19 -GUER1385192,45HQ,2018-01-07 -JEOG2953023,40GP,2016-05-08 -IXCM6983889,20GP,2019-05-16 -UPER6711386,20GP,2020-03-09 -INEK3470032,40HQ,2004-09-13 -AXDR9502243,40GP,2017-06-08 -FXYA9939295,45HQ,2002-05-07 -QCGS4236678,45HQ,2009-02-16 -NYYE1086570,45HQ,2002-12-09 -BKPX2109244,20GP,2009-12-28 -COCO4885680,45HQ,2011-01-05 -RNSG4962495,45HQ,2013-08-09 -FGDJ1278624,45HQ,2012-04-27 -KWGX8244145,45HQ,2021-03-28 -AVQW7881587,40GP,2001-11-13 -REOC3772422,45HQ,2022-08-02 -PXSJ2801022,45HQ,2002-11-19 -SPMW8681801,40HQ,2020-10-03 -NJAU6496537,40HQ,2016-11-24 -CYMM8457389,40HQ,2007-07-26 -DFFE7796982,40GP,2008-07-21 -XDNQ8952628,40GP,2013-01-07 -EGYM3829052,40GP,2018-07-16 -XRDP2880788,40HQ,2022-12-13 -JLTT6272788,40HQ,2005-10-02 -OYFS7986248,20GP,2009-01-12 -BDKM3431112,20GP,2021-05-29 -ETKH7149927,40GP,2006-03-06 -DZNG9395844,40GP,2022-08-12 -MFSX9565931,45HQ,2006-11-16 -VKCQ5277324,40HQ,2012-04-28 -IPGT1618033,45HQ,2003-04-17 -DZXW0552193,40GP,2012-01-31 -PBIG9338275,40HQ,2015-08-23 -XVAK3338541,45HQ,2000-10-28 -TYCX1184465,40HQ,2014-07-25 -JOBW6495571,40GP,2017-03-20 -RKCT7378692,20GP,2005-04-02 -LVTU5095406,40HQ,2012-01-31 -PBDE2305896,45HQ,2011-03-18 -ZNTT9050607,45HQ,2009-02-06 -LIYY6795709,20GP,2015-08-18 -HHZJ4303150,45HQ,2009-02-25 -QZRI7750559,40GP,2023-03-11 -RBDZ2822646,20GP,2000-11-03 -ZPXW9119984,40GP,2019-07-19 -EQMI1852740,40HQ,2023-07-19 -VUGU1457103,40HQ,2012-12-23 -ISOM4133048,20GP,2022-08-28 -KQMC2002215,40GP,2005-12-13 -JGRW2279275,45HQ,2004-04-05 -CICE9266155,40HQ,2017-04-16 -QKGJ5610304,20GP,2001-08-25 -EIOZ6361791,20GP,2021-02-06 -SOPL0620388,20GP,2023-09-22 -UXMW8916521,40HQ,2006-03-20 -FAEG2617102,40GP,2018-03-09 -GFQD6241877,20GP,2001-12-24 -VEOZ5653529,20GP,2005-03-10 -XUQS6415735,45HQ,2012-08-23 -VNBM9909118,45HQ,2023-03-08 -VAKI6867004,40HQ,2021-08-27 -XCOT5698599,40HQ,2022-01-19 -ICBD5121911,40GP,2007-09-23 -IVHN4981969,40GP,2024-02-11 -BBUL6262089,20GP,2004-12-14 -UWAD1328015,40HQ,2017-06-24 -KEUF7870483,20GP,2002-11-05 -FBAT7833106,45HQ,2002-05-29 -JXTH8622662,40HQ,2005-07-07 -RHUZ7274571,45HQ,2016-01-09 -CDXT4687028,45HQ,2007-01-02 -NGKZ7095873,20GP,2005-09-13 -ACTG7289614,45HQ,2015-11-21 -JVNZ1291425,20GP,2015-07-02 -NJXT8812551,40GP,2021-03-11 -IXDW4502311,40GP,2013-08-07 -LVQO5651515,20GP,2021-11-02 -GRKB1827325,45HQ,2000-02-13 -CUOC2688652,40HQ,2012-03-25 -KIZP4899915,40HQ,2005-07-25 -STAP9769366,45HQ,2015-01-26 -SMGP3020310,40GP,2010-09-19 -IZGF7836367,20GP,2015-05-01 -DQJI9643300,45HQ,2015-05-19 -WJXS8574508,20GP,2015-04-13 -HHFI3469849,20GP,2012-03-07 -EQUR6383874,45HQ,2006-12-24 -SJPD4965197,20GP,2009-07-20 -ALTY1932915,40GP,2021-03-05 -XKAY6337406,20GP,2014-08-16 -DLUF7098114,40HQ,2005-09-28 -RAIP9659592,40GP,2018-03-02 -LHUO3130765,40HQ,2004-09-28 -AXZO9857305,20GP,2013-01-11 -IBKS4639200,40HQ,2001-05-17 -SPQC2242922,45HQ,2022-09-05 -TDRG0503407,40GP,2015-01-21 -RTTV9433025,40GP,2006-01-24 -EOMH0523083,40GP,2007-05-30 -EIVM7864458,20GP,2018-04-30 -AAQG2126126,20GP,2016-01-29 -QAIA6866248,20GP,2007-05-17 -TSZC9832223,45HQ,2019-01-21 -TVRB9928847,40GP,2010-07-15 -FYND5782843,45HQ,2010-04-10 -HXIH3925670,20GP,2010-08-23 -BJNE3376763,20GP,2001-11-14 -TWZZ8323105,45HQ,2008-11-12 -PELX6004639,40HQ,2018-05-03 -GSAG9915825,40GP,2003-03-09 -VBSK3781169,20GP,2021-12-11 -DHCN8794073,45HQ,2020-03-23 -WRCG8192820,20GP,2012-07-27 -OJTD1134684,20GP,2024-10-18 -IWNG8134554,40GP,2017-09-16 -LXHR7931006,40HQ,2015-05-03 -QNCD6057142,40GP,2007-07-08 -LLOB0592606,40HQ,2017-07-10 -HATI1166578,45HQ,2007-12-04 -MKXK0785304,20GP,2014-10-14 -MUJI3864312,40HQ,2017-01-06 -WGRI0287861,40GP,2012-07-22 -KANG0875687,40HQ,2008-11-23 -BNHB2798797,40HQ,2018-09-10 -ZDJE5638640,40HQ,2016-12-04 -NAXA2872741,40HQ,2014-05-25 -JNFR7814972,40GP,2017-08-29 -EHZO7171775,20GP,2004-07-09 -ZRPW8400477,20GP,2020-03-30 -WLTH6705226,45HQ,2021-07-12 -JXUE2081419,40HQ,2003-12-02 -SLCT7714102,40GP,2011-12-01 -PSFG3617108,40GP,2024-11-10 -AYNG7287194,40HQ,2006-12-03 -JBYI0317694,45HQ,2020-09-17 -KBPW2010151,20GP,2003-08-31 -VRFE9868200,40HQ,2015-12-08 -OHPG5603960,40HQ,2012-09-15 -DQUX8971725,40GP,2009-11-30 -LBNJ5939134,45HQ,2001-07-10 -QYXH1896117,20GP,2015-12-14 -AUEB1283480,40GP,2001-08-14 -CWFA7019023,40GP,2014-05-26 -IFXE5332901,20GP,2002-12-16 -NYMN6914753,40GP,2000-01-07 -VGQP9779489,20GP,2014-10-04 -EMIZ1403665,40HQ,2017-05-14 -ZBSL4179352,40GP,2003-12-31 -QYXQ0385727,40HQ,2020-08-13 -CAMH3158354,40GP,2009-10-10 -HJTF6649667,40HQ,2023-04-30 -SNUH7638234,20GP,2005-10-11 -GEUK4784648,40GP,2024-05-27 -TEAA0871636,20GP,2014-07-02 -RQGA9048742,45HQ,2002-05-22 -VJPX8673799,20GP,2004-06-15 -QDFD9434332,40GP,2016-11-23 -OJIQ0342749,20GP,2016-07-12 -WFMJ6472853,40HQ,2014-03-02 -ZNYZ1973034,20GP,2020-02-02 -FIGP7312291,40GP,2003-11-09 -LGKP9522946,20GP,2006-01-10 -OSDF2844006,45HQ,2004-03-23 -OOOV0091325,40HQ,2015-06-22 -BLGT7778676,20GP,2010-07-22 -IARB5367766,45HQ,2013-12-21 -PRIV5974830,40HQ,2021-12-07 -TQDH2855865,20GP,2009-03-24 -INQG0872283,45HQ,2010-02-09 -DUYF4863572,20GP,2009-05-07 -DBCO6484213,20GP,2020-07-08 -QNQB3096729,40GP,2014-01-21 -MPFH3137341,20GP,2010-11-21 -FEQV9719498,45HQ,2013-07-31 -RKAZ7264615,45HQ,2005-02-11 -XQZJ6585638,20GP,2010-10-13 -XWRT2361398,40GP,2015-08-04 -ZZVH4536713,40GP,2000-10-04 -ESHQ4035556,20GP,2000-11-02 -NGPD5126076,40GP,2009-12-09 -MSOK3072130,40HQ,2001-10-26 -VTNC6423241,40HQ,2004-04-20 -FUDQ1621996,40GP,2010-12-18 -PDRC6898459,40GP,2010-09-10 -ZKIJ9257594,20GP,2018-09-15 -WBIV7125793,40GP,2009-04-18 -CMQY6849641,40GP,2003-01-05 -UTGJ0029127,45HQ,2017-08-15 -GNJF9276796,45HQ,2018-04-08 -HDTI5488190,40HQ,2006-03-20 -ORLG2701940,20GP,2008-01-03 -QEFV7323357,45HQ,2007-10-13 -VQQJ9347047,45HQ,2002-11-20 -BSIK9033122,45HQ,2003-05-25 -FFRA8474871,40HQ,2020-05-31 -QPUB3574467,40HQ,2003-12-27 -FMEV5709478,20GP,2020-02-02 -XRAX4810626,40GP,2002-05-19 -IKHQ0197043,40GP,2014-11-16 -OIFR3627406,40HQ,2007-04-15 -YSHU7959083,40HQ,2013-03-29 -YJJF0966242,45HQ,2010-09-14 -UPCJ9606843,40GP,2013-12-25 -QYMI1880855,40HQ,2015-05-13 -MQSI2580414,45HQ,2019-01-04 -TSEC3346665,20GP,2020-05-29 -EQNN1043707,40GP,2016-06-15 -VXUY8775194,40GP,2009-06-04 -DDIA1507264,40GP,2009-01-20 -PURA0374595,40HQ,2002-10-29 -YQWY8001676,40HQ,2001-08-18 -UOIF4483113,40HQ,2022-05-29 -CGNT3991359,45HQ,2012-03-21 -DLDP8332811,45HQ,2009-11-06 -QHJL0781260,40GP,2000-10-24 -UZHY5446756,45HQ,2007-09-06 -HLZG2222047,20GP,2024-09-22 -LJWC5448614,40GP,2002-03-14 -NUSR2354565,20GP,2018-04-11 -GPMI1372499,40HQ,2009-04-20 -QSVA8643685,45HQ,2004-04-02 -IPSI8226399,40GP,2001-06-20 -TFKF9288531,20GP,2009-05-27 -KIZE4840575,40GP,2008-11-15 -LDPA3533221,40HQ,2010-05-09 -TGBS3521295,40HQ,2004-03-27 -ILKM7458392,40GP,2003-08-25 -BNUQ9837940,20GP,2004-12-11 -WPGE5679976,20GP,2024-11-18 -ISMA1322892,40HQ,2004-10-06 -UYFQ1181678,45HQ,2024-03-03 -AJFD6659270,40HQ,2021-07-10 -MXIO7644347,40GP,2014-09-30 -CGVD7639726,40GP,2009-03-21 -OROQ5469476,40GP,2008-01-26 -DFZG4049433,40GP,2011-06-27 -MOEN3371661,40HQ,2015-02-14 -JTVX8584099,40GP,2013-02-04 -FOVB9322656,20GP,2005-07-07 -GQQB5344791,20GP,2012-05-15 -SWVH0254708,20GP,2009-01-16 -GCMR1301897,45HQ,2024-10-15 -JTGF6105373,45HQ,2023-05-27 -FZUG3866473,20GP,2023-04-21 -FGOQ5965004,45HQ,2024-03-13 -GUGU1671277,40HQ,2022-09-23 -CXYS1129604,40GP,2001-05-15 -SYRF8560166,20GP,2008-03-12 -NGFZ3292919,45HQ,2012-08-04 -BQOW6041266,20GP,2023-10-11 -UWIW9652728,40GP,2023-12-18 -MBFS2659097,45HQ,2009-07-16 -DZJF4148735,40HQ,2016-08-09 -EXUU9046914,40GP,2021-09-23 -YQKT2213770,20GP,2007-12-15 -MJXF9123321,40GP,2010-06-04 -PUTA8164231,40HQ,2024-10-29 -ZFIY7155069,20GP,2011-12-17 -EGZJ7131276,40HQ,2006-04-02 -VTMO2697363,45HQ,2001-03-06 -MBFV4058066,20GP,2018-05-24 -VFKB8049707,20GP,2017-03-18 -KAYL7792824,20GP,2008-05-23 -BTXU5666097,20GP,2022-06-14 -OPXG9939069,45HQ,2022-05-01 -LOBE6215743,45HQ,2008-01-18 -YQPA4645079,45HQ,2006-08-20 -SOAI7845555,20GP,2015-01-27 -WTHK3163474,20GP,2014-09-23 -ZHMS0943403,20GP,2010-02-19 -BGJF6359360,40HQ,2015-03-09 -FQYE9719120,45HQ,2007-06-24 -QZPR7733840,40HQ,2013-07-04 -LPYX4573774,40GP,2012-06-27 -DUKL9081936,40GP,2023-11-19 -KRGF1438781,45HQ,2019-07-07 -BPGX4317949,40HQ,2014-12-30 -IIYN9345170,45HQ,2004-12-20 -YMEH0482112,40GP,2007-07-26 -LCYU9321256,40HQ,2007-08-20 -ZFDH5385115,20GP,2018-01-25 -LWLC1272157,45HQ,2022-06-08 -RWPI6786689,40GP,2018-05-28 -AGUD4140923,40GP,2008-12-01 -XHYB5135869,40GP,2001-07-13 -HYWJ8145638,40HQ,2007-02-17 -EYUR4352465,40GP,2018-10-24 -BKNP3510449,40HQ,2023-12-29 -QRZV9501882,40GP,2007-09-16 -LFOH5538424,45HQ,2021-01-27 -ZEUI5276401,45HQ,2014-12-17 -RGSC6910216,20GP,2019-01-10 -NTPK4501282,40GP,2020-03-03 -TGTL5141326,20GP,2018-08-17 -QTAH7834078,20GP,2001-04-13 -UWAW7994270,40HQ,2009-06-12 -GYOH1663406,40GP,2006-09-11 -WPFK0855500,40GP,2023-11-12 -SOTS3131539,40GP,2022-02-19 -URQH8013263,45HQ,2020-10-06 -JZBB5734464,40HQ,2009-12-13 -VITV1711478,45HQ,2018-10-22 -LRHJ4776783,20GP,2001-01-14 -UGFB5943614,45HQ,2008-11-20 -OWNS7167589,45HQ,2021-04-27 -OPAQ3754591,20GP,2001-08-31 -IZJD6052565,40HQ,2020-07-28 -VAHY3892583,40HQ,2021-12-23 -VYIM3594898,40GP,2002-11-08 -EYDS7160999,40GP,2006-06-04 -GJMA0452036,45HQ,2014-12-15 -HHXX9037187,40GP,2021-11-18 -VSAV0641085,40HQ,2001-12-14 -KTYF7394269,40GP,2000-10-26 -PFNT5371225,40HQ,2018-12-28 -UHYO8137468,20GP,2017-05-15 -GAOX6747218,40HQ,2013-07-23 -XFOQ8357948,45HQ,2012-04-15 -VDXL5581306,45HQ,2019-08-30 -XNOC7984068,40GP,2015-10-29 -XONC2639151,45HQ,2018-02-28 -BBKJ0401261,45HQ,2017-11-21 -NXFD4142027,40HQ,2020-01-01 -VQLK4159031,45HQ,2002-09-16 -IHLU4402515,20GP,2017-03-28 -MDBQ4196655,45HQ,2006-07-24 -MVSU0245884,40GP,2004-12-17 -TLHC3342500,45HQ,2008-08-31 -MPAB2926397,20GP,2020-08-24 -PUWI3582716,45HQ,2023-08-14 -WSLS9961016,45HQ,2004-12-19 -DLQT2451733,40HQ,2023-02-25 -HTUH1190291,40HQ,2010-06-27 -DVRX1439873,40HQ,2012-04-22 -NFMA0033838,45HQ,2017-12-10 -MWLY1782922,45HQ,2007-11-24 -GZLA8817364,20GP,2023-02-10 -HYJF6165820,20GP,2013-08-09 -PEAY6490433,20GP,2019-09-19 -XZIF8423835,40HQ,2009-10-07 -LOBL4362958,45HQ,2005-11-01 -CXVF0741257,40GP,2023-02-15 -TCTI6582459,20GP,2007-05-02 -KSZI6626185,45HQ,2012-08-07 -SCJG5339551,40GP,2001-04-03 -UTQC7891023,40GP,2019-05-09 -OYMJ4347304,20GP,2009-10-08 -NTPF5169165,40HQ,2011-10-28 -HYJL3666594,20GP,2016-05-15 -CNBM7378723,20GP,2007-09-13 -QJDL1985599,20GP,2001-09-06 -RQED2565802,45HQ,2023-01-07 -ZMFA0331112,20GP,2005-08-01 -QRAT1254999,45HQ,2010-06-01 -FMUS3740511,40HQ,2002-02-26 -IPGG6166682,45HQ,2007-12-20 -UIQW7954063,40HQ,2011-06-13 -IKJR8139285,40GP,2019-05-02 -IXAE7336317,20GP,2000-01-05 -RSZF2922150,45HQ,2002-12-26 -YFML9880756,45HQ,2014-04-24 -WPCL9114372,40GP,2008-09-13 -YHKH0010020,20GP,2001-09-06 -QEEG4890223,45HQ,2024-05-18 -JAIC3882169,40GP,2004-07-02 -IDMG1080469,45HQ,2012-07-30 -FYCE5037104,40GP,2024-03-15 -HQKD4826115,20GP,2005-04-19 -WUXD8789382,40HQ,2008-07-23 -IMIX5730737,45HQ,2016-10-10 -FRRQ3952591,40HQ,2003-11-05 -JYRI3412366,20GP,2013-05-03 -YHSN8298264,40HQ,2011-07-16 -VGZK9814838,40HQ,2020-06-04 -CPSX5296049,40HQ,2023-12-17 -ERIM4937421,40GP,2022-01-03 -LRBT8664680,45HQ,2011-06-11 -FDPV9070521,40GP,2020-05-24 -CFEH0990059,45HQ,2017-05-14 -FNHY0013123,40HQ,2011-05-06 -EQGN9812519,40HQ,2022-10-15 -NXLG1587640,20GP,2002-10-12 -HOVI8210269,45HQ,2023-10-01 -FZPJ1094434,40HQ,2008-05-08 -PBKU8890301,20GP,2024-05-24 -WXLA1385406,45HQ,2019-10-05 -BUGX7629730,20GP,2018-04-21 -FEUP3054717,40GP,2016-04-01 -VDTF0821113,20GP,2008-05-19 -VLRS7617847,40HQ,2016-05-07 -EAFW7466488,40HQ,2019-07-23 -IUSD0129571,20GP,2010-03-04 -ORCM0225491,20GP,2007-08-06 -ERBK2070288,40HQ,2021-09-13 -EVTL4893864,20GP,2013-11-10 -VQOA4865106,45HQ,2017-08-31 -EMTC7630379,45HQ,2006-09-17 -FIOE6143958,40GP,2023-02-28 -ROBS5412681,45HQ,2003-08-06 -ZQFH2953424,40GP,2018-03-11 -SLAH1397751,40HQ,2013-10-23 -KJXU0605280,20GP,2017-06-19 -WIAT5404025,20GP,2018-04-01 -JDXR0156604,40HQ,2017-03-28 -BWZG9220266,45HQ,2014-04-08 -MHFV7981127,20GP,2002-03-27 -QTTS5908144,40HQ,2004-05-01 -KFGX5865195,45HQ,2016-03-13 -NLVP6233848,45HQ,2000-08-03 -SUDZ4003953,45HQ,2000-07-10 -EBGE7649512,40HQ,2009-12-08 -BEZF9770751,45HQ,2016-07-06 -IGAO2041815,20GP,2011-12-11 -CTJI7330115,40HQ,2001-09-07 -JPGI3877973,40HQ,2018-12-07 -YFBV2916382,20GP,2014-05-01 -TDQC0951884,40HQ,2004-11-25 -EIKA0965231,40GP,2005-07-01 -POAU5640362,40GP,2012-12-15 -KVVA5966027,45HQ,2018-08-30 -DONE5534567,40GP,2024-11-22 -VCML9741466,20GP,2001-08-28 -HEZI4090611,45HQ,2006-01-09 -FDDQ2617392,40GP,2003-05-19 -YOMI9346890,20GP,2007-04-08 -JZUQ1041044,20GP,2019-02-23 -DHMV0387589,20GP,2020-03-03 -ORYR6611756,40GP,2011-09-04 -DEDN0048341,40HQ,2012-11-15 -VJWT1420556,40GP,2024-12-18 -BGUM8163336,45HQ,2003-01-28 -LYUL0213122,20GP,2023-04-22 -AOQW8474269,45HQ,2002-06-27 -AOFX0283239,40GP,2018-06-21 -JOHI0844445,20GP,2000-08-22 -DCOV1724832,20GP,2007-10-04 -ASBN6641710,20GP,2009-06-07 -JFDV3399361,40GP,2000-08-05 -EYYY8898171,20GP,2011-10-21 -LIGE0850221,40HQ,2024-06-02 -IZIQ1122445,40GP,2020-11-21 -HDUS1715941,40GP,2020-09-30 -FETL8664670,20GP,2013-09-25 -VXNE0608850,45HQ,2024-05-06 -KMPJ8892994,20GP,2024-12-19 -AWXE4417078,20GP,2016-07-16 -BEUU2208119,40GP,2004-10-14 -NMOS6941745,40HQ,2022-07-09 -UYZJ3225303,40HQ,2009-06-28 -VJJD0215854,40GP,2007-11-30 -VIJA0322336,20GP,2022-11-14 -ZANB6939532,45HQ,2000-11-17 -ANGX5543698,20GP,2024-05-23 -LWVZ6752118,45HQ,2003-07-07 -XVDZ9156948,20GP,2011-07-17 -BKAR3946562,20GP,2008-03-19 -KZQU7315325,45HQ,2005-06-01 -RRIY3292374,45HQ,2005-04-26 -EQGS8827299,45HQ,2021-10-02 -XDAW9078691,20GP,2006-10-23 -NWQA0888658,45HQ,2005-09-05 -SISY8752328,20GP,2006-09-26 -EFJT4723858,20GP,2017-12-12 -UKQN8152524,45HQ,2013-11-08 -CMPB3497313,45HQ,2024-09-09 -OZVO0392499,45HQ,2018-04-28 -QTXH5186230,20GP,2010-02-06 -JTTL3627945,20GP,2021-07-09 -SKSJ8743281,40GP,2010-09-22 -RYJB4054639,40HQ,2007-02-13 -AFVY4299985,20GP,2023-03-01 -NWIV3006689,20GP,2007-09-28 -EJPU5855661,20GP,2023-10-28 -ZWNO9224064,45HQ,2019-06-29 -ADZU4370833,40GP,2010-12-23 -MLSK9247334,40HQ,2013-08-14 -UHEV6532208,40HQ,2014-01-15 -IUQJ7501054,40HQ,2001-03-21 -YSEA7042400,40GP,2009-07-26 -CDVM8690883,40HQ,2013-11-16 -UVBL0730932,40GP,2015-04-03 -KWBG7443072,40HQ,2024-12-02 -XZLU2906939,40HQ,2009-07-28 -FPKM7410356,20GP,2001-12-16 -JBJZ5789461,40HQ,2001-07-05 -VKTS3341165,20GP,2021-11-15 -YLKK6634370,20GP,2012-07-11 -FUAN7308127,40HQ,2019-09-04 -QPRO7294990,40HQ,2012-01-31 -QIAS9522049,40HQ,2014-06-18 -CTWX1599649,40GP,2010-01-29 -KVOD4702411,40HQ,2003-01-14 -RNQF3713492,40HQ,2000-06-06 -YSDC7071745,45HQ,2008-06-16 -ICFT7972687,40HQ,2001-01-19 -KSEE6298974,20GP,2001-12-30 -ZVFQ0266832,40GP,2013-11-06 -SFZI5300058,45HQ,2009-06-07 -ADTM0918958,20GP,2001-03-07 -QOSE7466078,40HQ,2020-07-12 -JAFD7573030,45HQ,2005-04-24 -MYTM4752768,40GP,2010-11-28 -PQIE6509359,20GP,2003-07-26 -FUQA6299212,40HQ,2023-10-25 -IJHU9951337,20GP,2012-10-18 -PHIC4840554,40GP,2009-10-27 -PLAY9434957,45HQ,2013-07-19 -RUJZ4233676,45HQ,2012-07-08 -BFOB2931851,40GP,2013-12-02 -KSEY9416604,40HQ,2004-03-05 -HRPZ3267891,40GP,2013-07-30 -OLDP7825598,40HQ,2005-12-04 -LSDJ1081774,40HQ,2023-10-31 -CKAQ1277415,40GP,2017-02-12 -YRTH7423218,40GP,2013-04-23 -BRAA4730185,40GP,2000-02-21 -OHSG6523860,40GP,2005-02-26 -KLLE7470324,20GP,2010-10-27 -OYRQ2870116,20GP,2002-12-27 -GCAV7989675,45HQ,2024-05-11 -NSTT1249541,20GP,2008-10-07 -HRUG4001373,20GP,2008-06-11 -YUHT1060463,40HQ,2024-01-23 -KKYZ3415598,40GP,2008-12-27 -OHXQ5845695,40GP,2017-05-18 -NBRU5884889,40HQ,2024-05-13 -NAMN5532251,40HQ,2013-04-19 -MJIQ4590559,40HQ,2019-11-21 diff --git a/code/base-project/base-app/箱数据2000行.xlsx b/code/base-project/base-app/箱数据2000行.xlsx deleted file mode 100644 index 4e5b1bb5..00000000 Binary files a/code/base-project/base-app/箱数据2000行.xlsx and /dev/null differ diff --git a/code/base-project/base-go-v3/biz/handler/auth/token_service.go b/code/base-project/base-go-v3/biz/handler/auth/token_service.go index d49c3c1a..9ceead55 100644 --- a/code/base-project/base-go-v3/biz/handler/auth/token_service.go +++ b/code/base-project/base-go-v3/biz/handler/auth/token_service.go @@ -15,7 +15,7 @@ import ( ) // RefreshAccessToken . -// @router /auth/refreshToken [POST] +// @router /auth/refresh/token [GET] func RefreshAccessToken(ctx context.Context, c *app.RequestContext) { var err error var req auth.RefreshAccessTokenReq diff --git a/code/base-project/base-go-v3/biz/handler/money/money_category_service.go b/code/base-project/base-go-v3/biz/handler/money/money_category_service.go index d8caafbf..869d646e 100644 --- a/code/base-project/base-go-v3/biz/handler/money/money_category_service.go +++ b/code/base-project/base-go-v3/biz/handler/money/money_category_service.go @@ -3,7 +3,6 @@ package money import ( - "cn/oneao/base-go/biz/model/money" "cn/oneao/base-go/biz/router/middleware" "cn/oneao/base-go/db" "cn/oneao/base-go/db/repo" @@ -11,6 +10,7 @@ import ( "cn/oneao/base-go/utils/response" "context" + money "cn/oneao/base-go/biz/model/money" "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/protocol/consts" ) diff --git a/code/base-project/base-go-v3/biz/handler/money/money_record_service.go b/code/base-project/base-go-v3/biz/handler/money/money_record_service.go index 4a253ae5..1410bf1a 100644 --- a/code/base-project/base-go-v3/biz/handler/money/money_record_service.go +++ b/code/base-project/base-go-v3/biz/handler/money/money_record_service.go @@ -7,23 +7,23 @@ import ( "cn/oneao/base-go/db" "cn/oneao/base-go/db/repo" "cn/oneao/base-go/utils/errorx" + "cn/oneao/base-go/utils/idgen" + "cn/oneao/base-go/utils/pgtypex" "cn/oneao/base-go/utils/response" "context" "fmt" + "github.com/jackc/pgx/v5/pgtype" + "github.com/shopspring/decimal" "sort" "time" money "cn/oneao/base-go/biz/model/money" - "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/protocol/consts" - "github.com/jackc/pgx/v5/pgtype" - "github.com/shopspring/decimal" - "google.golang.org/protobuf/types/known/timestamppb" ) // QueryMoneyRecord . -// @router /money/record [POST] +// @router /money/record/query [POST] func QueryMoneyRecord(ctx context.Context, c *app.RequestContext) { var req money.QueryMoneyRecordsParams if err := c.BindAndValidate(&req); err != nil { @@ -76,25 +76,20 @@ func QueryMoneyRecord(ctx context.Context, c *app.RequestContext) { // 构造单条记录 item := &money.MoneyRecordItem{ - Base: &money.MoneyRecordBase{ - Id: r.ID, - CategoryId: r.CategoryID, - UserId: r.UserID, - Amount: r.Amount.Int.String(), - Remark: r.Remark.String, - RecordTime: timestamppb.New(r.RecordTime.Time), - CreateTime: timestamppb.New(r.CreateTime.Time), - UpdateTime: timestamppb.New(r.UpdateTime.Time), - }, - CategoryName: r.CategoryName.String, - CategoryIcon: r.CategoryIcon.String, - CategoryType: r.CategoryType.Int32, + Id: r.ID, + CategoryId: r.CategoryID, + UserId: r.UserID, + Amount: pgtypex.NumericToString(r.Amount), + Remark: r.Remark.String, + RecordTime: pgtypex.TimestampToDateString(r.RecordTime), + CreateTime: pgtypex.TimestampToDateTimeString(r.CreateTime), + UpdateTime: pgtypex.TimestampToDateTimeString(r.UpdateTime), } group.Records = append(group.Records, item) // 收支累加 - amount, _ := decimal.NewFromString(r.Amount.Int.String()) + amount := pgtypex.NumericToDecimal(r.Amount) if r.CategoryType.Int32 == 1 { incomeDec, _ := decimal.NewFromString(group.Income) incomeDec = incomeDec.Add(amount) @@ -129,3 +124,98 @@ func QueryMoneyRecord(ctx context.Context, c *app.RequestContext) { response.Success(c).Data(result).Send() } + +// InsertMoneyRecord . +// @router /money/record/insert [POST] +func InsertMoneyRecord(ctx context.Context, c *app.RequestContext) { + var err error + var req money.InsertMoneyRecordParams + err = c.BindAndValidate(&req) + + if err != nil { + fmt.Println(err.Error()) + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(money.InsertMoneyRecordResult) + + params := repo.InsertMoneyRecordParams{ + ID: idgen.NextId(), + CategoryID: req.CategoryId, + UserID: middleware.GetUserID(ctx), + Amount: pgtypex.StringToNumeric(req.Amount), + Remark: pgtypex.StringToText(req.Remark), + RecordTime: pgtypex.StringToTimestamp(req.RecordTime), + } + + record, err := db.Queries.InsertMoneyRecord(ctx, params) + + resp.Id = record.ID + resp.CategoryId = record.CategoryID + resp.UserId = record.UserID + resp.Amount = pgtypex.NumericToString(record.Amount) + resp.Remark = record.Remark.String + resp.RecordTime = pgtypex.TimestampToDateString(record.RecordTime) + resp.CreateTime = pgtypex.TimestampToDateTimeString(record.CreateTime) + resp.UpdateTime = pgtypex.TimestampToDateTimeString(record.UpdateTime) + + response.Success(c).Data(resp).Message("新增成功").Send() +} + +// UpdateMoneyRecord . +// @router /money/record/update [POST] +func UpdateMoneyRecord(ctx context.Context, c *app.RequestContext) { + var req money.UpdateMoneyRecordParams + if err := c.BindAndValidate(&req); err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + id := req.Id + _, err := db.Queries.GetMoneyRecordById(ctx, id) + if err != nil { + if errorx.IsNotFound(err) { + response.Success(c).Send() + return + } + errorx.AddError(c, err) + return + } + + params := repo.UpdateMoneyRecordParams{ + ID: id, + CategoryID: req.CategoryId, + Amount: pgtypex.StringToNumeric(req.Amount), + Remark: pgtypex.StringToText(req.Remark), + RecordTime: pgtypex.StringToTimestamp(req.RecordTime), + } + + if err := db.Queries.UpdateMoneyRecord(ctx, params); err != nil { + errorx.AddError(c, err) + return + } + + response.Success(c).Send() +} + +// DeleteMoneyRecord . +// @router /money/record/delete [POST] +func DeleteMoneyRecord(ctx context.Context, c *app.RequestContext) { + var err error + var req money.DeleteMoneyRecordParams + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + err = db.Queries.DeleteMoneyRecord(ctx, req.Id) + + if err != nil { + errorx.AddError(c, err) + return + } + + response.Success(c).Send() +} diff --git a/code/base-project/base-go-v3/biz/model/api/api.pb.go b/code/base-project/base-go-v3/biz/model/api/api.pb.go index 37434df6..09470162 100644 --- a/code/base-project/base-go-v3/biz/model/api/api.pb.go +++ b/code/base-project/base-go-v3/biz/model/api/api.pb.go @@ -3,7 +3,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 -// protoc v6.33.1 +// protoc v4.25.3 // source: api.proto package api diff --git a/code/base-project/base-go-v3/biz/model/auth/auth.pb.go b/code/base-project/base-go-v3/biz/model/auth/auth.pb.go index 87d53375..89345e24 100644 --- a/code/base-project/base-go-v3/biz/model/auth/auth.pb.go +++ b/code/base-project/base-go-v3/biz/model/auth/auth.pb.go @@ -21,6 +21,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// 登录请求 type LoginDefaultReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -76,17 +77,18 @@ func (x *LoginDefaultReq) GetPassword() string { return "" } +// 登录响应 type LoginDefaultResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Token string `protobuf:"bytes,1,opt,name=token,proto3" form:"token" json:"token" query:"token"` - RefreshToken string `protobuf:"bytes,2,opt,name=refreshToken,proto3" form:"refreshToken" json:"refreshToken" query:"refreshToken"` - UserId int64 `protobuf:"varint,3,opt,name=userId,proto3" form:"userId" json:"userId" query:"userId"` - Username string `protobuf:"bytes,4,opt,name=username,proto3" form:"username" json:"username" query:"username"` - SeqNo int32 `protobuf:"varint,5,opt,name=seqNo,proto3" form:"seqNo" json:"seqNo" query:"seqNo"` - Gender int32 `protobuf:"varint,6,opt,name=gender,proto3" form:"gender" json:"gender" query:"gender"` + Token string `protobuf:"bytes,1,opt,name=Token,proto3" form:"token" json:"token"` + RefreshToken string `protobuf:"bytes,2,opt,name=RefreshToken,proto3" form:"refreshToken" json:"refreshToken"` + UserId int64 `protobuf:"varint,3,opt,name=UserId,proto3" form:"userId" json:"userId"` + Username string `protobuf:"bytes,4,opt,name=Username,proto3" form:"username" json:"username"` + SeqNo int32 `protobuf:"varint,5,opt,name=SeqNo,proto3" form:"seqNo" json:"seqNo"` + Gender int32 `protobuf:"varint,6,opt,name=Gender,proto3" form:"gender" json:"gender"` } func (x *LoginDefaultResp) Reset() { @@ -163,6 +165,7 @@ func (x *LoginDefaultResp) GetGender() int32 { return 0 } +// 注册请求 type RegisterDefaultReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -218,6 +221,7 @@ func (x *RegisterDefaultReq) GetPassword() string { return "" } +// 注册响应 type RegisterDefaultResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -256,6 +260,7 @@ func (*RegisterDefaultResp) Descriptor() ([]byte, []int) { return file_auth_proto_rawDescGZIP(), []int{3} } +// 刷新 access token 请求 type RefreshAccessTokenReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -294,12 +299,13 @@ func (*RefreshAccessTokenReq) Descriptor() ([]byte, []int) { return file_auth_proto_rawDescGZIP(), []int{4} } +// 刷新 access token 响应 type RefreshAccessTokenResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AccessToken string `protobuf:"bytes,1,opt,name=accessToken,proto3" form:"accessToken" json:"accessToken" query:"accessToken"` + AccessToken string `protobuf:"bytes,1,opt,name=AccessToken,proto3" form:"accessToken" json:"accessToken"` } func (x *RefreshAccessTokenResp) Reset() { @@ -353,53 +359,59 @@ var file_auth_proto_rawDesc = []byte{ 0x12, 0x31, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xca, 0xbb, 0x18, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, 0x3d, 0x27, 0x27, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, - 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xca, 0xbb, 0x18, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, 0x3d, 0x27, - 0x27, 0x52, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xca, 0xbb, - 0x18, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, - 0x3d, 0x27, 0x27, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x15, 0x0a, - 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, - 0x16, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x66, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0xd2, 0xc1, 0x18, 0x13, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x32, 0x75, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, + 0x6f, 0x72, 0x64, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca, 0xbb, 0x18, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0c, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x10, 0xca, 0xbb, 0x18, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x22, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca, 0xbb, 0x18, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x05, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x09, 0xca, 0xbb, + 0x18, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x52, 0x05, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x22, + 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0a, + 0xca, 0xbb, 0x18, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x47, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xca, 0xbb, 0x18, 0x07, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, 0x3d, 0x27, 0x27, 0x52, + 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xca, 0xbb, 0x18, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, 0x3d, 0x27, + 0x27, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, - 0x18, 0x16, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x32, 0x77, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0xd2, 0xc1, 0x18, 0x12, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x73, 0x70, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x4b, 0x0a, 0x16, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x66, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0xd2, 0xc1, 0x18, 0x13, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x32, 0x75, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, + 0x16, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x32, 0x78, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0xca, 0xc1, 0x18, 0x13, 0x2f, 0x61, + 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x21, 0x5a, 0x1f, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, diff --git a/code/base-project/base-go-v3/biz/model/money/index.pb.go b/code/base-project/base-go-v3/biz/model/money/index.pb.go new file mode 100644 index 00000000..79bbdc85 --- /dev/null +++ b/code/base-project/base-go-v3/biz/model/money/index.pb.go @@ -0,0 +1,152 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.25.3 +// source: index.proto + +package money + +import ( + _ "cn/oneao/base-go/biz/model/api" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var File_index_proto protoreflect.FileDescriptor + +var file_index_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d, + 0x6f, 0x6e, 0x65, 0x79, 0x1a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x20, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x32, 0xfb, 0x02, 0x0a, 0x14, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x16, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x13, 0xca, 0xc1, 0x18, 0x0f, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x74, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x12, 0x1d, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x80, 0x01, 0x0a, + 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6d, 0x6f, + 0x6e, 0x65, 0x79, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x1e, 0xd2, 0xc1, 0x18, 0x1a, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x72, 0x74, 0x32, + 0xce, 0x03, 0x0a, 0x12, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6b, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, + 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, + 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x17, 0xd2, 0xc1, 0x18, 0x13, + 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x6d, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x6e, + 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x18, 0xd2, 0xc1, 0x18, 0x14, 0x2f, 0x6d, + 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x12, 0x6d, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x18, 0xd2, 0xc1, 0x18, 0x14, 0x2f, 0x6d, 0x6f, + 0x6e, 0x65, 0x79, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x6d, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x18, 0xd2, 0xc1, 0x18, 0x14, 0x2f, 0x6d, 0x6f, 0x6e, + 0x65, 0x79, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x42, 0x22, 0x5a, 0x20, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, 0x6f, 0x2f, 0x62, 0x61, 0x73, + 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x6d, + 0x6f, 0x6e, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_index_proto_goTypes = []interface{}{ + (*QueryMoneyCategoryReq)(nil), // 0: money.QueryMoneyCategoryReq + (*DeleteMoneyCategoryReq)(nil), // 1: money.DeleteMoneyCategoryReq + (*UpdateMoneyCategorySortReq)(nil), // 2: money.UpdateMoneyCategorySortReq + (*QueryMoneyRecordsParams)(nil), // 3: money.QueryMoneyRecordsParams + (*InsertMoneyRecordParams)(nil), // 4: money.InsertMoneyRecordParams + (*UpdateMoneyRecordParams)(nil), // 5: money.UpdateMoneyRecordParams + (*DeleteMoneyRecordParams)(nil), // 6: money.DeleteMoneyRecordParams + (*QueryMoneyCategoryResp)(nil), // 7: money.QueryMoneyCategoryResp + (*DeleteMoneyCategoryResp)(nil), // 8: money.DeleteMoneyCategoryResp + (*UpdateMoneyCategorySortResp)(nil), // 9: money.UpdateMoneyCategorySortResp + (*QueryMoneyRecordsResult)(nil), // 10: money.QueryMoneyRecordsResult + (*InsertMoneyRecordResult)(nil), // 11: money.InsertMoneyRecordResult + (*UpdateMoneyRecordResult)(nil), // 12: money.UpdateMoneyRecordResult + (*DeleteMoneyRecordResult)(nil), // 13: money.DeleteMoneyRecordResult +} +var file_index_proto_depIdxs = []int32{ + 0, // 0: money.MoneyCategoryService.QueryUserMoneyCategory:input_type -> money.QueryMoneyCategoryReq + 1, // 1: money.MoneyCategoryService.DeleteUserMoneyCategory:input_type -> money.DeleteMoneyCategoryReq + 2, // 2: money.MoneyCategoryService.UpdateMoneyCategorySort:input_type -> money.UpdateMoneyCategorySortReq + 3, // 3: money.MoneyRecordService.QueryMoneyRecord:input_type -> money.QueryMoneyRecordsParams + 4, // 4: money.MoneyRecordService.InsertMoneyRecord:input_type -> money.InsertMoneyRecordParams + 5, // 5: money.MoneyRecordService.UpdateMoneyRecord:input_type -> money.UpdateMoneyRecordParams + 6, // 6: money.MoneyRecordService.DeleteMoneyRecord:input_type -> money.DeleteMoneyRecordParams + 7, // 7: money.MoneyCategoryService.QueryUserMoneyCategory:output_type -> money.QueryMoneyCategoryResp + 8, // 8: money.MoneyCategoryService.DeleteUserMoneyCategory:output_type -> money.DeleteMoneyCategoryResp + 9, // 9: money.MoneyCategoryService.UpdateMoneyCategorySort:output_type -> money.UpdateMoneyCategorySortResp + 10, // 10: money.MoneyRecordService.QueryMoneyRecord:output_type -> money.QueryMoneyRecordsResult + 11, // 11: money.MoneyRecordService.InsertMoneyRecord:output_type -> money.InsertMoneyRecordResult + 12, // 12: money.MoneyRecordService.UpdateMoneyRecord:output_type -> money.UpdateMoneyRecordResult + 13, // 13: money.MoneyRecordService.DeleteMoneyRecord:output_type -> money.DeleteMoneyRecordResult + 7, // [7:14] is the sub-list for method output_type + 0, // [0:7] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_index_proto_init() } +func file_index_proto_init() { + if File_index_proto != nil { + return + } + file_money_money_category_types_proto_init() + file_money_money_record_types_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_index_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 2, + }, + GoTypes: file_index_proto_goTypes, + DependencyIndexes: file_index_proto_depIdxs, + }.Build() + File_index_proto = out.File + file_index_proto_rawDesc = nil + file_index_proto_goTypes = nil + file_index_proto_depIdxs = nil +} diff --git a/code/base-project/base-go-v3/biz/model/money/money_category.pb.go b/code/base-project/base-go-v3/biz/model/money/money_category_types.pb.go similarity index 51% rename from code/base-project/base-go-v3/biz/model/money/money_category.pb.go rename to code/base-project/base-go-v3/biz/model/money/money_category_types.pb.go index 952f8640..8505dc57 100644 --- a/code/base-project/base-go-v3/biz/model/money/money_category.pb.go +++ b/code/base-project/base-go-v3/biz/model/money/money_category_types.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 -// protoc v6.33.1 -// source: money_category.proto +// protoc v4.25.3 +// source: money/money_category_types.proto package money @@ -21,60 +21,23 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type QueryMoneyCategoryReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *QueryMoneyCategoryReq) Reset() { - *x = QueryMoneyCategoryReq{} - if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryMoneyCategoryReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryMoneyCategoryReq) ProtoMessage() {} - -func (x *QueryMoneyCategoryReq) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QueryMoneyCategoryReq.ProtoReflect.Descriptor instead. -func (*QueryMoneyCategoryReq) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{0} -} - +// 记账分类 type MoneyCategory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" form:"id" json:"id" query:"id"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" form:"name" json:"name" query:"name"` - Icon string `protobuf:"bytes,3,opt,name=icon,proto3" form:"icon" json:"icon" query:"icon"` - Type int32 `protobuf:"varint,4,opt,name=type,proto3" form:"type" json:"type" query:"type"` - SortNumber int32 `protobuf:"varint,5,opt,name=sort_number,json=sortNumber,proto3" form:"sort_number" json:"sort_number" query:"sort_number"` + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" form:"name" json:"name"` + Icon string `protobuf:"bytes,3,opt,name=Icon,proto3" form:"icon" json:"icon"` + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" form:"type" json:"type"` + SortNumber int32 `protobuf:"varint,5,opt,name=SortNumber,proto3" form:"sort_number" json:"sort_number"` } func (x *MoneyCategory) Reset() { *x = MoneyCategory{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[1] + mi := &file_money_money_category_types_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -87,7 +50,7 @@ func (x *MoneyCategory) String() string { func (*MoneyCategory) ProtoMessage() {} func (x *MoneyCategory) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[1] + mi := &file_money_money_category_types_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100,7 +63,7 @@ func (x *MoneyCategory) ProtoReflect() protoreflect.Message { // Deprecated: Use MoneyCategory.ProtoReflect.Descriptor instead. func (*MoneyCategory) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{1} + return file_money_money_category_types_proto_rawDescGZIP(), []int{0} } func (x *MoneyCategory) GetId() int64 { @@ -138,18 +101,58 @@ func (x *MoneyCategory) GetSortNumber() int32 { return 0 } +// 查询记账分类请求 +type QueryMoneyCategoryReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryMoneyCategoryReq) Reset() { + *x = QueryMoneyCategoryReq{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_category_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryMoneyCategoryReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryMoneyCategoryReq) ProtoMessage() {} + +func (x *QueryMoneyCategoryReq) ProtoReflect() protoreflect.Message { + mi := &file_money_money_category_types_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryMoneyCategoryReq.ProtoReflect.Descriptor instead. +func (*QueryMoneyCategoryReq) Descriptor() ([]byte, []int) { + return file_money_money_category_types_proto_rawDescGZIP(), []int{1} +} + +// 查询记账分类响应 type QueryMoneyCategoryResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Categories []*MoneyCategory `protobuf:"bytes,1,rep,name=categories,proto3" form:"categories" json:"categories" query:"categories"` + Categories []*MoneyCategory `protobuf:"bytes,1,rep,name=Categories,proto3" form:"categories" json:"categories"` } func (x *QueryMoneyCategoryResp) Reset() { *x = QueryMoneyCategoryResp{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[2] + mi := &file_money_money_category_types_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -162,7 +165,7 @@ func (x *QueryMoneyCategoryResp) String() string { func (*QueryMoneyCategoryResp) ProtoMessage() {} func (x *QueryMoneyCategoryResp) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[2] + mi := &file_money_money_category_types_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -175,7 +178,7 @@ func (x *QueryMoneyCategoryResp) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryMoneyCategoryResp.ProtoReflect.Descriptor instead. func (*QueryMoneyCategoryResp) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{2} + return file_money_money_category_types_proto_rawDescGZIP(), []int{2} } func (x *QueryMoneyCategoryResp) GetCategories() []*MoneyCategory { @@ -185,6 +188,7 @@ func (x *QueryMoneyCategoryResp) GetCategories() []*MoneyCategory { return nil } +// 删除记账分类请求 type DeleteMoneyCategoryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -196,7 +200,7 @@ type DeleteMoneyCategoryReq struct { func (x *DeleteMoneyCategoryReq) Reset() { *x = DeleteMoneyCategoryReq{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[3] + mi := &file_money_money_category_types_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -209,7 +213,7 @@ func (x *DeleteMoneyCategoryReq) String() string { func (*DeleteMoneyCategoryReq) ProtoMessage() {} func (x *DeleteMoneyCategoryReq) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[3] + mi := &file_money_money_category_types_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -222,7 +226,7 @@ func (x *DeleteMoneyCategoryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMoneyCategoryReq.ProtoReflect.Descriptor instead. func (*DeleteMoneyCategoryReq) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{3} + return file_money_money_category_types_proto_rawDescGZIP(), []int{3} } func (x *DeleteMoneyCategoryReq) GetId() int64 { @@ -232,6 +236,7 @@ func (x *DeleteMoneyCategoryReq) GetId() int64 { return 0 } +// 删除记账分类响应 type DeleteMoneyCategoryResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -241,7 +246,7 @@ type DeleteMoneyCategoryResp struct { func (x *DeleteMoneyCategoryResp) Reset() { *x = DeleteMoneyCategoryResp{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[4] + mi := &file_money_money_category_types_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -254,7 +259,7 @@ func (x *DeleteMoneyCategoryResp) String() string { func (*DeleteMoneyCategoryResp) ProtoMessage() {} func (x *DeleteMoneyCategoryResp) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[4] + mi := &file_money_money_category_types_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -267,22 +272,23 @@ func (x *DeleteMoneyCategoryResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMoneyCategoryResp.ProtoReflect.Descriptor instead. func (*DeleteMoneyCategoryResp) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{4} + return file_money_money_category_types_proto_rawDescGZIP(), []int{4} } +// 修改分类排序项 type MoneyCategorySortItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" form:"id" json:"id" query:"id"` - SortNumber int32 `protobuf:"varint,2,opt,name=sort_number,json=sortNumber,proto3" form:"sort_number" json:"sort_number" query:"sort_number"` + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id"` + SortNumber int32 `protobuf:"varint,2,opt,name=SortNumber,proto3" form:"sort_number" json:"sort_number"` } func (x *MoneyCategorySortItem) Reset() { *x = MoneyCategorySortItem{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[5] + mi := &file_money_money_category_types_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -295,7 +301,7 @@ func (x *MoneyCategorySortItem) String() string { func (*MoneyCategorySortItem) ProtoMessage() {} func (x *MoneyCategorySortItem) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[5] + mi := &file_money_money_category_types_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -308,7 +314,7 @@ func (x *MoneyCategorySortItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MoneyCategorySortItem.ProtoReflect.Descriptor instead. func (*MoneyCategorySortItem) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{5} + return file_money_money_category_types_proto_rawDescGZIP(), []int{5} } func (x *MoneyCategorySortItem) GetId() int64 { @@ -325,18 +331,19 @@ func (x *MoneyCategorySortItem) GetSortNumber() int32 { return 0 } +// 修改分类排序请求 type UpdateMoneyCategorySortReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*MoneyCategorySortItem `protobuf:"bytes,1,rep,name=data,proto3" form:"data" json:"data" query:"data"` + Data []*MoneyCategorySortItem `protobuf:"bytes,1,rep,name=Data,proto3" form:"data" json:"data"` } func (x *UpdateMoneyCategorySortReq) Reset() { *x = UpdateMoneyCategorySortReq{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[6] + mi := &file_money_money_category_types_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -349,7 +356,7 @@ func (x *UpdateMoneyCategorySortReq) String() string { func (*UpdateMoneyCategorySortReq) ProtoMessage() {} func (x *UpdateMoneyCategorySortReq) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[6] + mi := &file_money_money_category_types_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -362,7 +369,7 @@ func (x *UpdateMoneyCategorySortReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMoneyCategorySortReq.ProtoReflect.Descriptor instead. func (*UpdateMoneyCategorySortReq) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{6} + return file_money_money_category_types_proto_rawDescGZIP(), []int{6} } func (x *UpdateMoneyCategorySortReq) GetData() []*MoneyCategorySortItem { @@ -372,6 +379,7 @@ func (x *UpdateMoneyCategorySortReq) GetData() []*MoneyCategorySortItem { return nil } +// 修改分类排序响应 type UpdateMoneyCategorySortResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -381,7 +389,7 @@ type UpdateMoneyCategorySortResp struct { func (x *UpdateMoneyCategorySortResp) Reset() { *x = UpdateMoneyCategorySortResp{} if protoimpl.UnsafeEnabled { - mi := &file_money_category_proto_msgTypes[7] + mi := &file_money_money_category_types_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -394,7 +402,7 @@ func (x *UpdateMoneyCategorySortResp) String() string { func (*UpdateMoneyCategorySortResp) ProtoMessage() {} func (x *UpdateMoneyCategorySortResp) ProtoReflect() protoreflect.Message { - mi := &file_money_category_proto_msgTypes[7] + mi := &file_money_money_category_types_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -407,91 +415,74 @@ func (x *UpdateMoneyCategorySortResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMoneyCategorySortResp.ProtoReflect.Descriptor instead. func (*UpdateMoneyCategorySortResp) Descriptor() ([]byte, []int) { - return file_money_category_proto_rawDescGZIP(), []int{7} + return file_money_money_category_types_proto_rawDescGZIP(), []int{7} } -var File_money_category_proto protoreflect.FileDescriptor +var File_money_money_category_types_proto protoreflect.FileDescriptor -var file_money_category_proto_rawDesc = []byte{ - 0x0a, 0x14, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x1a, 0x09, 0x61, - 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x22, 0x7c, 0x0a, 0x0d, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0x4e, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, - 0x3a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x10, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0xda, 0xbb, 0x18, - 0x06, 0x24, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x52, 0x02, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x48, 0x0a, 0x15, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x4e, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, - 0xfb, 0x02, 0x0a, 0x14, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x1a, 0x1d, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, - 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x13, 0xca, 0xc1, 0x18, 0x0f, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x12, 0x74, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, - 0x1d, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, - 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, - 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, - 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x17, 0x55, +var file_money_money_category_types_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x1a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x06, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca, 0xbb, + 0x18, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x04, + 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca, 0xbb, 0x18, 0x04, + 0x69, 0x63, 0x6f, 0x6e, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x08, 0xca, 0xbb, 0x18, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x53, 0x6f, 0x72, 0x74, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0f, 0xca, 0xbb, + 0x18, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x53, + 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x22, 0x5e, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0a, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x42, 0x0e, 0xca, 0xbb, 0x18, 0x0a, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x22, 0x3a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x10, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, + 0xda, 0xbb, 0x18, 0x06, 0x24, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x52, 0x02, 0x49, 0x64, 0x22, 0x19, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x60, 0x0a, 0x15, 0x4d, 0x6f, 0x6e, + 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x06, + 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x53, 0x6f, + 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0f, + 0xca, 0xbb, 0x18, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x0a, 0x53, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, - 0x79, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1e, 0xd2, - 0xc1, 0x18, 0x1a, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x72, 0x74, 0x42, 0x22, 0x5a, - 0x20, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, - 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, + 0x74, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x08, 0xca, 0xbb, 0x18, 0x04, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x42, 0x22, 0x5a, 0x20, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, 0x6f, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_money_category_proto_rawDescOnce sync.Once - file_money_category_proto_rawDescData = file_money_category_proto_rawDesc + file_money_money_category_types_proto_rawDescOnce sync.Once + file_money_money_category_types_proto_rawDescData = file_money_money_category_types_proto_rawDesc ) -func file_money_category_proto_rawDescGZIP() []byte { - file_money_category_proto_rawDescOnce.Do(func() { - file_money_category_proto_rawDescData = protoimpl.X.CompressGZIP(file_money_category_proto_rawDescData) +func file_money_money_category_types_proto_rawDescGZIP() []byte { + file_money_money_category_types_proto_rawDescOnce.Do(func() { + file_money_money_category_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_money_money_category_types_proto_rawDescData) }) - return file_money_category_proto_rawDescData + return file_money_money_category_types_proto_rawDescData } -var file_money_category_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_money_category_proto_goTypes = []interface{}{ - (*QueryMoneyCategoryReq)(nil), // 0: money.QueryMoneyCategoryReq - (*MoneyCategory)(nil), // 1: money.MoneyCategory +var file_money_money_category_types_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_money_money_category_types_proto_goTypes = []interface{}{ + (*MoneyCategory)(nil), // 0: money.MoneyCategory + (*QueryMoneyCategoryReq)(nil), // 1: money.QueryMoneyCategoryReq (*QueryMoneyCategoryResp)(nil), // 2: money.QueryMoneyCategoryResp (*DeleteMoneyCategoryReq)(nil), // 3: money.DeleteMoneyCategoryReq (*DeleteMoneyCategoryResp)(nil), // 4: money.DeleteMoneyCategoryResp @@ -499,41 +490,23 @@ var file_money_category_proto_goTypes = []interface{}{ (*UpdateMoneyCategorySortReq)(nil), // 6: money.UpdateMoneyCategorySortReq (*UpdateMoneyCategorySortResp)(nil), // 7: money.UpdateMoneyCategorySortResp } -var file_money_category_proto_depIdxs = []int32{ - 1, // 0: money.QueryMoneyCategoryResp.categories:type_name -> money.MoneyCategory - 5, // 1: money.UpdateMoneyCategorySortReq.data:type_name -> money.MoneyCategorySortItem - 0, // 2: money.MoneyCategoryService.QueryUserMoneyCategory:input_type -> money.QueryMoneyCategoryReq - 3, // 3: money.MoneyCategoryService.DeleteUserMoneyCategory:input_type -> money.DeleteMoneyCategoryReq - 6, // 4: money.MoneyCategoryService.UpdateMoneyCategorySort:input_type -> money.UpdateMoneyCategorySortReq - 2, // 5: money.MoneyCategoryService.QueryUserMoneyCategory:output_type -> money.QueryMoneyCategoryResp - 4, // 6: money.MoneyCategoryService.DeleteUserMoneyCategory:output_type -> money.DeleteMoneyCategoryResp - 7, // 7: money.MoneyCategoryService.UpdateMoneyCategorySort:output_type -> money.UpdateMoneyCategorySortResp - 5, // [5:8] is the sub-list for method output_type - 2, // [2:5] is the sub-list for method input_type +var file_money_money_category_types_proto_depIdxs = []int32{ + 0, // 0: money.QueryMoneyCategoryResp.Categories:type_name -> money.MoneyCategory + 5, // 1: money.UpdateMoneyCategorySortReq.Data:type_name -> money.MoneyCategorySortItem + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } -func init() { file_money_category_proto_init() } -func file_money_category_proto_init() { - if File_money_category_proto != nil { +func init() { file_money_money_category_types_proto_init() } +func file_money_money_category_types_proto_init() { + if File_money_money_category_types_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_money_category_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMoneyCategoryReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_money_category_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MoneyCategory); i { case 0: return &v.state @@ -545,7 +518,19 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryMoneyCategoryReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_category_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryMoneyCategoryResp); i { case 0: return &v.state @@ -557,7 +542,7 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteMoneyCategoryReq); i { case 0: return &v.state @@ -569,7 +554,7 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteMoneyCategoryResp); i { case 0: return &v.state @@ -581,7 +566,7 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MoneyCategorySortItem); i { case 0: return &v.state @@ -593,7 +578,7 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateMoneyCategorySortReq); i { case 0: return &v.state @@ -605,7 +590,7 @@ func file_money_category_proto_init() { return nil } } - file_money_category_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_money_money_category_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateMoneyCategorySortResp); i { case 0: return &v.state @@ -622,18 +607,18 @@ func file_money_category_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_money_category_proto_rawDesc, + RawDescriptor: file_money_money_category_types_proto_rawDesc, NumEnums: 0, NumMessages: 8, NumExtensions: 0, - NumServices: 1, + NumServices: 0, }, - GoTypes: file_money_category_proto_goTypes, - DependencyIndexes: file_money_category_proto_depIdxs, - MessageInfos: file_money_category_proto_msgTypes, + GoTypes: file_money_money_category_types_proto_goTypes, + DependencyIndexes: file_money_money_category_types_proto_depIdxs, + MessageInfos: file_money_money_category_types_proto_msgTypes, }.Build() - File_money_category_proto = out.File - file_money_category_proto_rawDesc = nil - file_money_category_proto_goTypes = nil - file_money_category_proto_depIdxs = nil + File_money_money_category_types_proto = out.File + file_money_money_category_types_proto_rawDesc = nil + file_money_money_category_types_proto_goTypes = nil + file_money_money_category_types_proto_depIdxs = nil } diff --git a/code/base-project/base-go-v3/biz/model/money/money_record.pb.go b/code/base-project/base-go-v3/biz/model/money/money_record.pb.go deleted file mode 100644 index 631be7ec..00000000 --- a/code/base-project/base-go-v3/biz/model/money/money_record.pb.go +++ /dev/null @@ -1,577 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v6.33.1 -// source: money_record.proto - -package money - -import ( - _ "cn/oneao/base-go/biz/model/api" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type MoneyRecordBase struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id int64 `protobuf:"varint,1,opt,name=id,proto3" form:"id" json:"id" query:"id"` - CategoryId int64 `protobuf:"varint,2,opt,name=category_id,json=categoryId,proto3" form:"category_id" json:"category_id" query:"category_id"` - UserId int64 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" form:"user_id" json:"user_id" query:"user_id"` - Amount string `protobuf:"bytes,4,opt,name=amount,proto3" form:"amount" json:"amount" query:"amount"` - Remark string `protobuf:"bytes,5,opt,name=remark,proto3" form:"remark" json:"remark" query:"remark"` - RecordTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=record_time,json=recordTime,proto3" form:"record_time" json:"record_time" query:"record_time"` - CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" form:"create_time" json:"create_time" query:"create_time"` - UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" form:"update_time" json:"update_time" query:"update_time"` -} - -func (x *MoneyRecordBase) Reset() { - *x = MoneyRecordBase{} - if protoimpl.UnsafeEnabled { - mi := &file_money_record_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MoneyRecordBase) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MoneyRecordBase) ProtoMessage() {} - -func (x *MoneyRecordBase) ProtoReflect() protoreflect.Message { - mi := &file_money_record_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MoneyRecordBase.ProtoReflect.Descriptor instead. -func (*MoneyRecordBase) Descriptor() ([]byte, []int) { - return file_money_record_proto_rawDescGZIP(), []int{0} -} - -func (x *MoneyRecordBase) GetId() int64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *MoneyRecordBase) GetCategoryId() int64 { - if x != nil { - return x.CategoryId - } - return 0 -} - -func (x *MoneyRecordBase) GetUserId() int64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *MoneyRecordBase) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *MoneyRecordBase) GetRemark() string { - if x != nil { - return x.Remark - } - return "" -} - -func (x *MoneyRecordBase) GetRecordTime() *timestamppb.Timestamp { - if x != nil { - return x.RecordTime - } - return nil -} - -func (x *MoneyRecordBase) GetCreateTime() *timestamppb.Timestamp { - if x != nil { - return x.CreateTime - } - return nil -} - -func (x *MoneyRecordBase) GetUpdateTime() *timestamppb.Timestamp { - if x != nil { - return x.UpdateTime - } - return nil -} - -type MoneyRecordItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Base *MoneyRecordBase `protobuf:"bytes,1,opt,name=base,proto3" form:"base" json:"base" query:"base"` - CategoryName string `protobuf:"bytes,2,opt,name=category_name,json=categoryName,proto3" form:"category_name" json:"category_name" query:"category_name"` - CategoryIcon string `protobuf:"bytes,3,opt,name=category_icon,json=categoryIcon,proto3" form:"category_icon" json:"category_icon" query:"category_icon"` - CategoryType int32 `protobuf:"varint,4,opt,name=category_type,json=categoryType,proto3" form:"category_type" json:"category_type" query:"category_type"` -} - -func (x *MoneyRecordItem) Reset() { - *x = MoneyRecordItem{} - if protoimpl.UnsafeEnabled { - mi := &file_money_record_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MoneyRecordItem) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MoneyRecordItem) ProtoMessage() {} - -func (x *MoneyRecordItem) ProtoReflect() protoreflect.Message { - mi := &file_money_record_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MoneyRecordItem.ProtoReflect.Descriptor instead. -func (*MoneyRecordItem) Descriptor() ([]byte, []int) { - return file_money_record_proto_rawDescGZIP(), []int{1} -} - -func (x *MoneyRecordItem) GetBase() *MoneyRecordBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *MoneyRecordItem) GetCategoryName() string { - if x != nil { - return x.CategoryName - } - return "" -} - -func (x *MoneyRecordItem) GetCategoryIcon() string { - if x != nil { - return x.CategoryIcon - } - return "" -} - -func (x *MoneyRecordItem) GetCategoryType() int32 { - if x != nil { - return x.CategoryType - } - return 0 -} - -type MoneyRecordGroup struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecordTime string `protobuf:"bytes,1,opt,name=record_time,json=recordTime,proto3" form:"record_time" json:"record_time" query:"record_time"` - Expense string `protobuf:"bytes,2,opt,name=expense,proto3" form:"expense" json:"expense" query:"expense"` - Income string `protobuf:"bytes,3,opt,name=income,proto3" form:"income" json:"income" query:"income"` - Records []*MoneyRecordItem `protobuf:"bytes,4,rep,name=records,proto3" form:"records" json:"records" query:"records"` -} - -func (x *MoneyRecordGroup) Reset() { - *x = MoneyRecordGroup{} - if protoimpl.UnsafeEnabled { - mi := &file_money_record_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MoneyRecordGroup) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MoneyRecordGroup) ProtoMessage() {} - -func (x *MoneyRecordGroup) ProtoReflect() protoreflect.Message { - mi := &file_money_record_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MoneyRecordGroup.ProtoReflect.Descriptor instead. -func (*MoneyRecordGroup) Descriptor() ([]byte, []int) { - return file_money_record_proto_rawDescGZIP(), []int{2} -} - -func (x *MoneyRecordGroup) GetRecordTime() string { - if x != nil { - return x.RecordTime - } - return "" -} - -func (x *MoneyRecordGroup) GetExpense() string { - if x != nil { - return x.Expense - } - return "" -} - -func (x *MoneyRecordGroup) GetIncome() string { - if x != nil { - return x.Income - } - return "" -} - -func (x *MoneyRecordGroup) GetRecords() []*MoneyRecordItem { - if x != nil { - return x.Records - } - return nil -} - -type QueryMoneyRecordsParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecordTime string `protobuf:"bytes,1,opt,name=record_time,json=recordTime,proto3" form:"record_time" json:"record_time" query:"record_time"` -} - -func (x *QueryMoneyRecordsParams) Reset() { - *x = QueryMoneyRecordsParams{} - if protoimpl.UnsafeEnabled { - mi := &file_money_record_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryMoneyRecordsParams) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryMoneyRecordsParams) ProtoMessage() {} - -func (x *QueryMoneyRecordsParams) ProtoReflect() protoreflect.Message { - mi := &file_money_record_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QueryMoneyRecordsParams.ProtoReflect.Descriptor instead. -func (*QueryMoneyRecordsParams) Descriptor() ([]byte, []int) { - return file_money_record_proto_rawDescGZIP(), []int{3} -} - -func (x *QueryMoneyRecordsParams) GetRecordTime() string { - if x != nil { - return x.RecordTime - } - return "" -} - -type QueryMoneyRecordsResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Records []*MoneyRecordGroup `protobuf:"bytes,1,rep,name=records,proto3" form:"records" json:"records" query:"records"` - TotalIncome string `protobuf:"bytes,2,opt,name=total_income,json=totalIncome,proto3" form:"total_income" json:"total_income" query:"total_income"` - TotalExpense string `protobuf:"bytes,3,opt,name=total_expense,json=totalExpense,proto3" form:"total_expense" json:"total_expense" query:"total_expense"` -} - -func (x *QueryMoneyRecordsResult) Reset() { - *x = QueryMoneyRecordsResult{} - if protoimpl.UnsafeEnabled { - mi := &file_money_record_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryMoneyRecordsResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryMoneyRecordsResult) ProtoMessage() {} - -func (x *QueryMoneyRecordsResult) ProtoReflect() protoreflect.Message { - mi := &file_money_record_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QueryMoneyRecordsResult.ProtoReflect.Descriptor instead. -func (*QueryMoneyRecordsResult) Descriptor() ([]byte, []int) { - return file_money_record_proto_rawDescGZIP(), []int{4} -} - -func (x *QueryMoneyRecordsResult) GetRecords() []*MoneyRecordGroup { - if x != nil { - return x.Records - } - return nil -} - -func (x *QueryMoneyRecordsResult) GetTotalIncome() string { - if x != nil { - return x.TotalIncome - } - return "" -} - -func (x *QueryMoneyRecordsResult) GetTotalExpense() string { - if x != nil { - return x.TotalExpense - } - return "" -} - -var File_money_record_proto protoreflect.FileDescriptor - -var file_money_record_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x1a, 0x09, 0x61, 0x70, 0x69, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x02, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x65, - 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x3b, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, - 0x0f, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x2a, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x63, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x10, - 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x63, - 0x6f, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, - 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x3a, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, - 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x31, 0x0a, - 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x63, - 0x6f, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, - 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x32, 0x7b, 0x0a, 0x12, 0x4d, 0x6f, 0x6e, 0x65, - 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, - 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x11, 0xd2, 0xc1, 0x18, 0x0d, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x22, 0x5a, 0x20, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, - 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var ( - file_money_record_proto_rawDescOnce sync.Once - file_money_record_proto_rawDescData = file_money_record_proto_rawDesc -) - -func file_money_record_proto_rawDescGZIP() []byte { - file_money_record_proto_rawDescOnce.Do(func() { - file_money_record_proto_rawDescData = protoimpl.X.CompressGZIP(file_money_record_proto_rawDescData) - }) - return file_money_record_proto_rawDescData -} - -var file_money_record_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_money_record_proto_goTypes = []interface{}{ - (*MoneyRecordBase)(nil), // 0: money.MoneyRecordBase - (*MoneyRecordItem)(nil), // 1: money.MoneyRecordItem - (*MoneyRecordGroup)(nil), // 2: money.MoneyRecordGroup - (*QueryMoneyRecordsParams)(nil), // 3: money.QueryMoneyRecordsParams - (*QueryMoneyRecordsResult)(nil), // 4: money.QueryMoneyRecordsResult - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp -} -var file_money_record_proto_depIdxs = []int32{ - 5, // 0: money.MoneyRecordBase.record_time:type_name -> google.protobuf.Timestamp - 5, // 1: money.MoneyRecordBase.create_time:type_name -> google.protobuf.Timestamp - 5, // 2: money.MoneyRecordBase.update_time:type_name -> google.protobuf.Timestamp - 0, // 3: money.MoneyRecordItem.base:type_name -> money.MoneyRecordBase - 1, // 4: money.MoneyRecordGroup.records:type_name -> money.MoneyRecordItem - 2, // 5: money.QueryMoneyRecordsResult.records:type_name -> money.MoneyRecordGroup - 3, // 6: money.MoneyRecordService.QueryMoneyRecord:input_type -> money.QueryMoneyRecordsParams - 4, // 7: money.MoneyRecordService.QueryMoneyRecord:output_type -> money.QueryMoneyRecordsResult - 7, // [7:8] is the sub-list for method output_type - 6, // [6:7] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name -} - -func init() { file_money_record_proto_init() } -func file_money_record_proto_init() { - if File_money_record_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_money_record_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoneyRecordBase); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_money_record_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoneyRecordItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_money_record_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoneyRecordGroup); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_money_record_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMoneyRecordsParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_money_record_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMoneyRecordsResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_money_record_proto_rawDesc, - NumEnums: 0, - NumMessages: 5, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_money_record_proto_goTypes, - DependencyIndexes: file_money_record_proto_depIdxs, - MessageInfos: file_money_record_proto_msgTypes, - }.Build() - File_money_record_proto = out.File - file_money_record_proto_rawDesc = nil - file_money_record_proto_goTypes = nil - file_money_record_proto_depIdxs = nil -} diff --git a/code/base-project/base-go-v3/biz/model/money/money_record_types.pb.go b/code/base-project/base-go-v3/biz/model/money/money_record_types.pb.go new file mode 100644 index 00000000..910a26b5 --- /dev/null +++ b/code/base-project/base-go-v3/biz/model/money/money_record_types.pb.go @@ -0,0 +1,998 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.25.3 +// source: money/money_record_types.proto + +package money + +import ( + _ "cn/oneao/base-go/biz/model/api" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 单条记账记录 +type MoneyRecordItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id"` + CategoryId int64 `protobuf:"varint,2,opt,name=CategoryId,proto3" form:"category_id" json:"category_id"` + UserId int64 `protobuf:"varint,3,opt,name=UserId,proto3" form:"user_id" json:"user_id"` + Amount string `protobuf:"bytes,4,opt,name=Amount,proto3" form:"amount" json:"amount"` + Remark string `protobuf:"bytes,5,opt,name=Remark,proto3" form:"remark" json:"remark"` + RecordTime string `protobuf:"bytes,6,opt,name=RecordTime,proto3" form:"record_time" json:"record_time"` + CreateTime string `protobuf:"bytes,7,opt,name=CreateTime,proto3" form:"create_time" json:"create_time"` + UpdateTime string `protobuf:"bytes,8,opt,name=UpdateTime,proto3" form:"update_time" json:"update_time"` +} + +func (x *MoneyRecordItem) Reset() { + *x = MoneyRecordItem{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MoneyRecordItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MoneyRecordItem) ProtoMessage() {} + +func (x *MoneyRecordItem) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MoneyRecordItem.ProtoReflect.Descriptor instead. +func (*MoneyRecordItem) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{0} +} + +func (x *MoneyRecordItem) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *MoneyRecordItem) GetCategoryId() int64 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *MoneyRecordItem) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *MoneyRecordItem) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *MoneyRecordItem) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *MoneyRecordItem) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +func (x *MoneyRecordItem) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *MoneyRecordItem) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +// 同一天的记账记录分组 +type MoneyRecordGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RecordTime string `protobuf:"bytes,1,opt,name=RecordTime,proto3" form:"record_time" json:"record_time"` + Expense string `protobuf:"bytes,2,opt,name=Expense,proto3" form:"expense" json:"expense"` + Income string `protobuf:"bytes,3,opt,name=Income,proto3" form:"income" json:"income"` + Records []*MoneyRecordItem `protobuf:"bytes,4,rep,name=Records,proto3" form:"records" json:"records"` +} + +func (x *MoneyRecordGroup) Reset() { + *x = MoneyRecordGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MoneyRecordGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MoneyRecordGroup) ProtoMessage() {} + +func (x *MoneyRecordGroup) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MoneyRecordGroup.ProtoReflect.Descriptor instead. +func (*MoneyRecordGroup) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{1} +} + +func (x *MoneyRecordGroup) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +func (x *MoneyRecordGroup) GetExpense() string { + if x != nil { + return x.Expense + } + return "" +} + +func (x *MoneyRecordGroup) GetIncome() string { + if x != nil { + return x.Income + } + return "" +} + +func (x *MoneyRecordGroup) GetRecords() []*MoneyRecordItem { + if x != nil { + return x.Records + } + return nil +} + +// 查询记账记录请求参数 +type QueryMoneyRecordsParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RecordTime string `protobuf:"bytes,1,opt,name=RecordTime,proto3" form:"record_time" json:"record_time"` +} + +func (x *QueryMoneyRecordsParams) Reset() { + *x = QueryMoneyRecordsParams{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryMoneyRecordsParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryMoneyRecordsParams) ProtoMessage() {} + +func (x *QueryMoneyRecordsParams) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryMoneyRecordsParams.ProtoReflect.Descriptor instead. +func (*QueryMoneyRecordsParams) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{2} +} + +func (x *QueryMoneyRecordsParams) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +// 查询记账记录结果 +type QueryMoneyRecordsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Records []*MoneyRecordGroup `protobuf:"bytes,1,rep,name=Records,proto3" form:"records" json:"records"` + TotalIncome string `protobuf:"bytes,2,opt,name=TotalIncome,proto3" form:"total_income" json:"total_income"` + TotalExpense string `protobuf:"bytes,3,opt,name=TotalExpense,proto3" form:"total_expense" json:"total_expense"` +} + +func (x *QueryMoneyRecordsResult) Reset() { + *x = QueryMoneyRecordsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryMoneyRecordsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryMoneyRecordsResult) ProtoMessage() {} + +func (x *QueryMoneyRecordsResult) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryMoneyRecordsResult.ProtoReflect.Descriptor instead. +func (*QueryMoneyRecordsResult) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{3} +} + +func (x *QueryMoneyRecordsResult) GetRecords() []*MoneyRecordGroup { + if x != nil { + return x.Records + } + return nil +} + +func (x *QueryMoneyRecordsResult) GetTotalIncome() string { + if x != nil { + return x.TotalIncome + } + return "" +} + +func (x *QueryMoneyRecordsResult) GetTotalExpense() string { + if x != nil { + return x.TotalExpense + } + return "" +} + +// 新增记账记录参数 +type InsertMoneyRecordParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CategoryId int64 `protobuf:"varint,1,opt,name=CategoryId,proto3" form:"category_id" json:"category_id" vd:"$!=''"` + Amount string `protobuf:"bytes,2,opt,name=Amount,proto3" form:"amount" json:"amount" vd:"$!='' && regexp('^\\d+(\\.\\d{1,2})?$', $)"` + Remark string `protobuf:"bytes,3,opt,name=Remark,proto3" form:"remark" json:"remark"` + RecordTime string `protobuf:"bytes,4,opt,name=RecordTime,proto3" form:"record_time" json:"record_time" vd:"$!='' && regexp('^\\d{4}-\\d{2}-\\d{2}$', $)"` +} + +func (x *InsertMoneyRecordParams) Reset() { + *x = InsertMoneyRecordParams{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InsertMoneyRecordParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InsertMoneyRecordParams) ProtoMessage() {} + +func (x *InsertMoneyRecordParams) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InsertMoneyRecordParams.ProtoReflect.Descriptor instead. +func (*InsertMoneyRecordParams) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{4} +} + +func (x *InsertMoneyRecordParams) GetCategoryId() int64 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *InsertMoneyRecordParams) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *InsertMoneyRecordParams) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *InsertMoneyRecordParams) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +// 新增记账记录结果 +type InsertMoneyRecordResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id"` + CategoryId int64 `protobuf:"varint,2,opt,name=CategoryId,proto3" form:"category_id" json:"category_id"` + UserId int64 `protobuf:"varint,3,opt,name=UserId,proto3" form:"user_id" json:"user_id"` + Amount string `protobuf:"bytes,4,opt,name=Amount,proto3" form:"amount" json:"amount"` + Remark string `protobuf:"bytes,5,opt,name=Remark,proto3" form:"remark" json:"remark"` + RecordTime string `protobuf:"bytes,6,opt,name=RecordTime,proto3" form:"record_time" json:"record_time"` + CreateTime string `protobuf:"bytes,7,opt,name=CreateTime,proto3" form:"create_time" json:"create_time"` + UpdateTime string `protobuf:"bytes,8,opt,name=UpdateTime,proto3" form:"update_time" json:"update_time"` +} + +func (x *InsertMoneyRecordResult) Reset() { + *x = InsertMoneyRecordResult{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InsertMoneyRecordResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InsertMoneyRecordResult) ProtoMessage() {} + +func (x *InsertMoneyRecordResult) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InsertMoneyRecordResult.ProtoReflect.Descriptor instead. +func (*InsertMoneyRecordResult) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{5} +} + +func (x *InsertMoneyRecordResult) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *InsertMoneyRecordResult) GetCategoryId() int64 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *InsertMoneyRecordResult) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *InsertMoneyRecordResult) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *InsertMoneyRecordResult) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *InsertMoneyRecordResult) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +func (x *InsertMoneyRecordResult) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *InsertMoneyRecordResult) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +// 更新记账记录 +type UpdateMoneyRecordParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id" vd:"$!=0"` + CategoryId int64 `protobuf:"varint,2,opt,name=CategoryId,proto3" form:"category_id" json:"category_id"` + Amount string `protobuf:"bytes,3,opt,name=Amount,proto3" form:"amount" json:"amount"` + Remark string `protobuf:"bytes,4,opt,name=Remark,proto3" form:"remark" json:"remark"` + RecordTime string `protobuf:"bytes,5,opt,name=RecordTime,proto3" form:"record_time" json:"record_time"` +} + +func (x *UpdateMoneyRecordParams) Reset() { + *x = UpdateMoneyRecordParams{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMoneyRecordParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMoneyRecordParams) ProtoMessage() {} + +func (x *UpdateMoneyRecordParams) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMoneyRecordParams.ProtoReflect.Descriptor instead. +func (*UpdateMoneyRecordParams) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{6} +} + +func (x *UpdateMoneyRecordParams) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateMoneyRecordParams) GetCategoryId() int64 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *UpdateMoneyRecordParams) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *UpdateMoneyRecordParams) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *UpdateMoneyRecordParams) GetRecordTime() string { + if x != nil { + return x.RecordTime + } + return "" +} + +type UpdateMoneyRecordResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateMoneyRecordResult) Reset() { + *x = UpdateMoneyRecordResult{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMoneyRecordResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMoneyRecordResult) ProtoMessage() {} + +func (x *UpdateMoneyRecordResult) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMoneyRecordResult.ProtoReflect.Descriptor instead. +func (*UpdateMoneyRecordResult) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{7} +} + +// 删除记账记录 +type DeleteMoneyRecordParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" form:"id" json:"id" vd:"$!=0"` +} + +func (x *DeleteMoneyRecordParams) Reset() { + *x = DeleteMoneyRecordParams{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMoneyRecordParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMoneyRecordParams) ProtoMessage() {} + +func (x *DeleteMoneyRecordParams) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteMoneyRecordParams.ProtoReflect.Descriptor instead. +func (*DeleteMoneyRecordParams) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{8} +} + +func (x *DeleteMoneyRecordParams) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type DeleteMoneyRecordResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteMoneyRecordResult) Reset() { + *x = DeleteMoneyRecordResult{} + if protoimpl.UnsafeEnabled { + mi := &file_money_money_record_types_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMoneyRecordResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMoneyRecordResult) ProtoMessage() {} + +func (x *DeleteMoneyRecordResult) ProtoReflect() protoreflect.Message { + mi := &file_money_money_record_types_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteMoneyRecordResult.ProtoReflect.Descriptor instead. +func (*DeleteMoneyRecordResult) Descriptor() ([]byte, []int) { + return file_money_money_record_types_proto_rawDescGZIP(), []int{9} +} + +var File_money_money_record_types_proto protoreflect.FileDescriptor + +var file_money_money_record_types_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x1a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xda, 0x02, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x06, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2f, + 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x5f, 0x69, 0x64, 0x52, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x0b, 0xca, 0xbb, 0x18, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x52, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x72, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2f, 0x0a, 0x0a, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, + 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, + 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xcd, 0x01, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xca, 0xbb, 0x18, 0x07, 0x65, 0x78, 0x70, 0x65, + 0x6e, 0x73, 0x65, 0x52, 0x07, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, + 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, + 0x18, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, + 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x0b, 0xca, 0xbb, 0x18, 0x07, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, + 0x4a, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x0a, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, + 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x52, + 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x17, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, + 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x0b, 0xca, 0xbb, 0x18, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x07, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0xca, 0xbb, + 0x18, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x0b, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x11, 0xca, 0xbb, 0x18, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, + 0x65, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x6e, + 0x73, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x6e, + 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x38, + 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x18, 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x5f, 0x69, 0x64, 0xda, 0xbb, 0x18, 0x05, 0x24, 0x21, 0x3d, 0x27, 0x27, 0x52, 0x0a, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xca, 0xbb, 0x18, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0xda, 0xbb, 0x18, 0x27, 0x24, 0x21, 0x3d, 0x27, 0x27, 0x20, 0x26, 0x26, + 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x28, 0x27, 0x5e, 0x5c, 0x64, 0x2b, 0x28, 0x5c, 0x2e, + 0x5c, 0x64, 0x7b, 0x31, 0x2c, 0x32, 0x7d, 0x29, 0x3f, 0x24, 0x27, 0x2c, 0x20, 0x24, 0x29, 0x52, + 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, + 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x72, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x5c, 0x0a, 0x0a, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x3c, 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0xda, 0xbb, 0x18, 0x29, 0x24, 0x21, 0x3d, 0x27, 0x27, 0x20, 0x26, 0x26, 0x20, 0x72, 0x65, 0x67, + 0x65, 0x78, 0x70, 0x28, 0x27, 0x5e, 0x5c, 0x64, 0x7b, 0x34, 0x7d, 0x2d, 0x5c, 0x64, 0x7b, 0x32, + 0x7d, 0x2d, 0x5c, 0x64, 0x7b, 0x32, 0x7d, 0x24, 0x27, 0x2c, 0x20, 0x24, 0x29, 0x52, 0x0a, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x17, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x06, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2f, 0x0a, + 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, + 0x69, 0x64, 0x52, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x23, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0b, + 0xca, 0xbb, 0x18, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, + 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x72, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2f, 0x0a, 0x0a, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x52, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, + 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe3, + 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0e, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0xda, 0xbb, + 0x18, 0x04, 0x24, 0x21, 0x3d, 0x30, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0f, + 0xca, 0xbb, 0x18, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x52, + 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xbb, 0x18, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x22, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0a, 0xca, 0xbb, 0x18, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x2f, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0xca, 0xbb, 0x18, 0x0b, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, + 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x39, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0e, 0xca, 0xbb, 0x18, 0x02, 0x69, 0x64, 0xda, 0xbb, + 0x18, 0x04, 0x24, 0x21, 0x3d, 0x30, 0x52, 0x02, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x22, 0x5a, 0x20, 0x63, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, 0x61, + 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_money_money_record_types_proto_rawDescOnce sync.Once + file_money_money_record_types_proto_rawDescData = file_money_money_record_types_proto_rawDesc +) + +func file_money_money_record_types_proto_rawDescGZIP() []byte { + file_money_money_record_types_proto_rawDescOnce.Do(func() { + file_money_money_record_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_money_money_record_types_proto_rawDescData) + }) + return file_money_money_record_types_proto_rawDescData +} + +var file_money_money_record_types_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_money_money_record_types_proto_goTypes = []interface{}{ + (*MoneyRecordItem)(nil), // 0: money.MoneyRecordItem + (*MoneyRecordGroup)(nil), // 1: money.MoneyRecordGroup + (*QueryMoneyRecordsParams)(nil), // 2: money.QueryMoneyRecordsParams + (*QueryMoneyRecordsResult)(nil), // 3: money.QueryMoneyRecordsResult + (*InsertMoneyRecordParams)(nil), // 4: money.InsertMoneyRecordParams + (*InsertMoneyRecordResult)(nil), // 5: money.InsertMoneyRecordResult + (*UpdateMoneyRecordParams)(nil), // 6: money.UpdateMoneyRecordParams + (*UpdateMoneyRecordResult)(nil), // 7: money.UpdateMoneyRecordResult + (*DeleteMoneyRecordParams)(nil), // 8: money.DeleteMoneyRecordParams + (*DeleteMoneyRecordResult)(nil), // 9: money.DeleteMoneyRecordResult +} +var file_money_money_record_types_proto_depIdxs = []int32{ + 0, // 0: money.MoneyRecordGroup.Records:type_name -> money.MoneyRecordItem + 1, // 1: money.QueryMoneyRecordsResult.Records:type_name -> money.MoneyRecordGroup + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_money_money_record_types_proto_init() } +func file_money_money_record_types_proto_init() { + if File_money_money_record_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_money_money_record_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MoneyRecordItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MoneyRecordGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryMoneyRecordsParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryMoneyRecordsResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsertMoneyRecordParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsertMoneyRecordResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMoneyRecordParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMoneyRecordResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteMoneyRecordParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_money_money_record_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteMoneyRecordResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_money_money_record_types_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_money_money_record_types_proto_goTypes, + DependencyIndexes: file_money_money_record_types_proto_depIdxs, + MessageInfos: file_money_money_record_types_proto_msgTypes, + }.Build() + File_money_money_record_types_proto = out.File + file_money_money_record_types_proto_rawDesc = nil + file_money_money_record_types_proto_goTypes = nil + file_money_money_record_types_proto_depIdxs = nil +} diff --git a/code/base-project/base-go-v3/biz/router/auth/auth.go b/code/base-project/base-go-v3/biz/router/auth/auth.go index 9b2f69e6..e5af0e0d 100644 --- a/code/base-project/base-go-v3/biz/router/auth/auth.go +++ b/code/base-project/base-go-v3/biz/router/auth/auth.go @@ -19,11 +19,14 @@ func Register(r *server.Hertz) { root := r.Group("/", rootMw()...) { _auth := root.Group("/auth", _authMw()...) - _auth.POST("/refreshToken", append(_refreshaccesstokenMw(), auth.RefreshAccessToken)...) { _login := _auth.Group("/login", _loginMw()...) _login.POST("/default", append(_logindefaultMw(), auth.LoginDefault)...) } + { + _refresh := _auth.Group("/refresh", _refreshMw()...) + _refresh.GET("/token", append(_refreshaccesstokenMw(), auth.RefreshAccessToken)...) + } { _register := _auth.Group("/register", _registerMw()...) _register.POST("/default", append(_registerdefaultMw(), auth.RegisterDefault)...) diff --git a/code/base-project/base-go-v3/biz/router/auth/middleware.go b/code/base-project/base-go-v3/biz/router/auth/middleware.go index 7a48efbb..acfd187a 100644 --- a/code/base-project/base-go-v3/biz/router/auth/middleware.go +++ b/code/base-project/base-go-v3/biz/router/auth/middleware.go @@ -40,3 +40,8 @@ func _refreshaccesstokenMw() []app.HandlerFunc { // your code... return nil } + +func _refreshMw() []app.HandlerFunc { + // your code... + return nil +} diff --git a/code/base-project/base-go-v3/biz/router/middleware/auth.go b/code/base-project/base-go-v3/biz/router/middleware/auth.go index dc8e5eff..f0125893 100644 --- a/code/base-project/base-go-v3/biz/router/middleware/auth.go +++ b/code/base-project/base-go-v3/biz/router/middleware/auth.go @@ -5,7 +5,6 @@ import ( "cn/oneao/base-go/utils/pathx" "cn/oneao/base-go/utils/response" "context" - "github.com/cloudwego/hertz/pkg/app" ) @@ -18,7 +17,7 @@ func Auth() app.HandlerFunc { whitelistPaths := []string{ "/auth/login", "/auth/register", - "/auth/refreshToken", + "/auth/refresh/token", } return func(ctx context.Context, c *app.RequestContext) { diff --git a/code/base-project/base-go-v3/biz/router/money/money_category.go b/code/base-project/base-go-v3/biz/router/money/index.go similarity index 70% rename from code/base-project/base-go-v3/biz/router/money/money_category.go rename to code/base-project/base-go-v3/biz/router/money/index.go index 3c6bc58b..2c71d045 100644 --- a/code/base-project/base-go-v3/biz/router/money/money_category.go +++ b/code/base-project/base-go-v3/biz/router/money/index.go @@ -23,5 +23,12 @@ func Register(r *server.Hertz) { _category := _money.Group("/category", _categoryMw()...) _category.POST("/delete", append(_deleteusermoneycategoryMw(), money.DeleteUserMoneyCategory)...) _category.POST("/updateSort", append(_updatemoneycategorysortMw(), money.UpdateMoneyCategorySort)...) + { + _record := _money.Group("/record", _recordMw()...) + _record.POST("/delete", append(_deletemoneyrecordMw(), money.DeleteMoneyRecord)...) + _record.POST("/insert", append(_insertmoneyrecordMw(), money.InsertMoneyRecord)...) + _record.POST("/query", append(_querymoneyrecordMw(), money.QueryMoneyRecord)...) + _record.POST("/update", append(_updatemoneyrecordMw(), money.UpdateMoneyRecord)...) + } } } diff --git a/code/base-project/base-go-v3/biz/router/money/middleware.go b/code/base-project/base-go-v3/biz/router/money/middleware.go index 6f418ebd..880470b7 100644 --- a/code/base-project/base-go-v3/biz/router/money/middleware.go +++ b/code/base-project/base-go-v3/biz/router/money/middleware.go @@ -40,3 +40,23 @@ func _querymoneyrecordMw() []app.HandlerFunc { // your code... return nil } + +func _recordMw() []app.HandlerFunc { + // your code... + return nil +} + +func _insertmoneyrecordMw() []app.HandlerFunc { + // your code... + return nil +} + +func _updatemoneyrecordMw() []app.HandlerFunc { + // your code... + return nil +} + +func _deletemoneyrecordMw() []app.HandlerFunc { + // your code... + return nil +} diff --git a/code/base-project/base-go-v3/biz/router/money/money_record.go b/code/base-project/base-go-v3/biz/router/money/money_record.go deleted file mode 100644 index ed3b3935..00000000 --- a/code/base-project/base-go-v3/biz/router/money/money_record.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by hertz generator. DO NOT EDIT. - -package money - -import ( - money "cn/oneao/base-go/biz/handler/money" - "github.com/cloudwego/hertz/pkg/app/server" -) - -/* - This file will register all the routes of the services in the master idl. - And it will update automatically when you use the "update" command for the idl. - So don't modify the contents of the file, or your code will be deleted when it is updated. -*/ - -// Register register routes based on the IDL 'api.${HTTP Method}' annotation. -func Register(r *server.Hertz) { - - root := r.Group("/", rootMw()...) - { - _money := root.Group("/money", _moneyMw()...) - _money.POST("/record", append(_querymoneyrecordMw(), money.QueryMoneyRecord)...) - } -} diff --git a/code/base-project/base-go-v3/biz/router/register.go b/code/base-project/base-go-v3/biz/router/register.go index daffd616..809cc0dc 100644 --- a/code/base-project/base-go-v3/biz/router/register.go +++ b/code/base-project/base-go-v3/biz/router/register.go @@ -5,16 +5,12 @@ package router import ( auth "cn/oneao/base-go/biz/router/auth" money "cn/oneao/base-go/biz/router/money" - record "cn/oneao/base-go/biz/router/record" "github.com/cloudwego/hertz/pkg/app/server" ) // GeneratedRegister registers routers generated by IDL. func GeneratedRegister(r *server.Hertz) { //INSERT_POINT: DO NOT DELETE THIS LINE! - record.Register(r) - - money.Register(r) - auth.Register(r) + money.Register(r) } diff --git a/code/base-project/base-go-v3/db/queries/money_record.sql b/code/base-project/base-go-v3/db/queries/money_record.sql index 9629b335..64b5eb7a 100644 --- a/code/base-project/base-go-v3/db/queries/money_record.sql +++ b/code/base-project/base-go-v3/db/queries/money_record.sql @@ -9,3 +9,33 @@ FROM money_record mr WHERE mr.user_id = $1 AND mr.record_time BETWEEN $2 AND $3 ORDER BY mr.record_time DESC, mr.create_time DESC; + +-- name: InsertMoneyRecord :one +INSERT INTO money_record ( + id, + category_id, + user_id, + amount, + remark, + record_time +) VALUES ( + $1, $2, $3, $4, $5,$6 + ) +RETURNING *; + +-- name: GetMoneyRecordById :one +SELECT * FROM money_record WHERE id = $1; + +-- name: UpdateMoneyRecord :exec +UPDATE money_record +SET + category_id = $2, + amount = $3, + remark = $4, + record_time = $5, + update_time = NOW() +WHERE id = $1 +RETURNING *; + +-- name: DeleteMoneyRecord :exec +DELETE FROM money_record WHERE id = $1; \ No newline at end of file diff --git a/code/base-project/base-go-v3/db/repo/money_record.sql.go b/code/base-project/base-go-v3/db/repo/money_record.sql.go index 31ee2899..466116a8 100644 --- a/code/base-project/base-go-v3/db/repo/money_record.sql.go +++ b/code/base-project/base-go-v3/db/repo/money_record.sql.go @@ -11,6 +11,15 @@ import ( "github.com/jackc/pgx/v5/pgtype" ) +const deleteMoneyRecord = `-- name: DeleteMoneyRecord :exec +DELETE FROM money_record WHERE id = $1 +` + +func (q *Queries) DeleteMoneyRecord(ctx context.Context, id int64) error { + _, err := q.db.Exec(ctx, deleteMoneyRecord, id) + return err +} + const findUserMoneyRecords = `-- name: FindUserMoneyRecords :many SELECT mr.id, mr.category_id, mr.user_id, mr.amount, mr.remark, mr.record_time, mr.create_time, mr.update_time, @@ -75,3 +84,100 @@ func (q *Queries) FindUserMoneyRecords(ctx context.Context, arg FindUserMoneyRec } return items, nil } + +const getMoneyRecordById = `-- name: GetMoneyRecordById :one +SELECT id, category_id, user_id, amount, remark, record_time, create_time, update_time FROM money_record WHERE id = $1 +` + +func (q *Queries) GetMoneyRecordById(ctx context.Context, id int64) (MoneyRecord, error) { + row := q.db.QueryRow(ctx, getMoneyRecordById, id) + var i MoneyRecord + err := row.Scan( + &i.ID, + &i.CategoryID, + &i.UserID, + &i.Amount, + &i.Remark, + &i.RecordTime, + &i.CreateTime, + &i.UpdateTime, + ) + return i, err +} + +const insertMoneyRecord = `-- name: InsertMoneyRecord :one +INSERT INTO money_record ( + id, + category_id, + user_id, + amount, + remark, + record_time +) VALUES ( + $1, $2, $3, $4, $5,$6 + ) +RETURNING id, category_id, user_id, amount, remark, record_time, create_time, update_time +` + +type InsertMoneyRecordParams struct { + ID int64 + CategoryID int64 + UserID int64 + Amount pgtype.Numeric + Remark pgtype.Text + RecordTime pgtype.Timestamp +} + +func (q *Queries) InsertMoneyRecord(ctx context.Context, arg InsertMoneyRecordParams) (MoneyRecord, error) { + row := q.db.QueryRow(ctx, insertMoneyRecord, + arg.ID, + arg.CategoryID, + arg.UserID, + arg.Amount, + arg.Remark, + arg.RecordTime, + ) + var i MoneyRecord + err := row.Scan( + &i.ID, + &i.CategoryID, + &i.UserID, + &i.Amount, + &i.Remark, + &i.RecordTime, + &i.CreateTime, + &i.UpdateTime, + ) + return i, err +} + +const updateMoneyRecord = `-- name: UpdateMoneyRecord :exec +UPDATE money_record +SET + category_id = $2, + amount = $3, + remark = $4, + record_time = $5, + update_time = NOW() +WHERE id = $1 +RETURNING id, category_id, user_id, amount, remark, record_time, create_time, update_time +` + +type UpdateMoneyRecordParams struct { + ID int64 + CategoryID int64 + Amount pgtype.Numeric + Remark pgtype.Text + RecordTime pgtype.Timestamp +} + +func (q *Queries) UpdateMoneyRecord(ctx context.Context, arg UpdateMoneyRecordParams) error { + _, err := q.db.Exec(ctx, updateMoneyRecord, + arg.ID, + arg.CategoryID, + arg.Amount, + arg.Remark, + arg.RecordTime, + ) + return err +} diff --git a/code/base-project/base-go-v3/db/schema.sql b/code/base-project/base-go-v3/db/schema.sql index 1d4b90b9..315567f1 100644 --- a/code/base-project/base-go-v3/db/schema.sql +++ b/code/base-project/base-go-v3/db/schema.sql @@ -39,4 +39,10 @@ CREATE TABLE money_user_category( type INT NOT NULL DEFAULT 0, sort_number INT NOT NULL DEFAULT 0, create_time timestamp DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE share_space( + id BIGINT PRIMARY KEY, + name VARCHAR(100) NOT NULL ) + diff --git a/code/base-project/base-go-v3/idl/auth.proto b/code/base-project/base-go-v3/idl/auth.proto index 45f7f678..4b61af07 100644 --- a/code/base-project/base-go-v3/idl/auth.proto +++ b/code/base-project/base-go-v3/idl/auth.proto @@ -6,50 +6,56 @@ option go_package = "auth"; import "api.proto"; +// 登录请求 message LoginDefaultReq { - string Account = 1[(api.body)="account",(api.vd)="$!=''"]; - string Password = 2[(api.body)="password",(api.vd)="$!=''"]; + string Account = 1 [(api.body)="account", (api.vd)="$!=''"]; + string Password = 2 [(api.body)="password", (api.vd)="$!=''"]; } +// 登录响应 message LoginDefaultResp { - string token = 1; - string refreshToken = 2; - int64 userId = 3; - string username = 4; - int32 seqNo = 5; - int32 gender = 6; + string Token = 1 [(api.body)="token"]; + string RefreshToken = 2 [(api.body)="refreshToken"]; + int64 UserId = 3 [(api.body)="userId"]; + string Username = 4 [(api.body)="username"]; + int32 SeqNo = 5 [(api.body)="seqNo"]; + int32 Gender = 6 [(api.body)="gender"]; } +// 注册请求 message RegisterDefaultReq { - string Account = 1[(api.body)="account",(api.vd)="$!=''"]; - string Password = 2[(api.body)="password",(api.vd)="$!=''"]; + string Account = 1 [(api.body)="account", (api.vd)="$!=''"]; + string Password = 2 [(api.body)="password", (api.vd)="$!=''"]; } -message RegisterDefaultResp { +// 注册响应 +message RegisterDefaultResp {} -} - -message RefreshAccessTokenReq { -} +// 刷新 access token 请求 +message RefreshAccessTokenReq {} +// 刷新 access token 响应 message RefreshAccessTokenResp { - string accessToken = 1; + string AccessToken = 1 [(api.body)="accessToken"]; } +// 登录服务 service LoginService { rpc LoginDefault(LoginDefaultReq) returns(LoginDefaultResp) { option (api.post) = "/auth/login/default"; } } +// 注册服务 service RegisterService { rpc RegisterDefault(RegisterDefaultReq) returns(RegisterDefaultResp) { option (api.post) = "/auth/register/default"; } } +// token 服务 service TokenService { rpc RefreshAccessToken(RefreshAccessTokenReq) returns(RefreshAccessTokenResp) { - option (api.post) = "/auth/refreshToken"; + option (api.get) = "/auth/refresh/token"; } -} \ No newline at end of file +} diff --git a/code/base-project/base-go-v3/idl/money/index.proto b/code/base-project/base-go-v3/idl/money/index.proto new file mode 100644 index 00000000..7f844180 --- /dev/null +++ b/code/base-project/base-go-v3/idl/money/index.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package money; + +option go_package = "money"; + +import "api.proto"; +import "money/money_category_types.proto"; +import "money/money_record_types.proto"; + +service MoneyCategoryService { + rpc QueryUserMoneyCategory(QueryMoneyCategoryReq) returns (QueryMoneyCategoryResp){ + option (api.get) = '/money/category'; + }; + rpc DeleteUserMoneyCategory(DeleteMoneyCategoryReq) returns (DeleteMoneyCategoryResp){ + option (api.post) = '/money/category/delete'; + }; + rpc UpdateMoneyCategorySort(UpdateMoneyCategorySortReq) returns (UpdateMoneyCategorySortResp){ + option (api.post) = '/money/category/updateSort'; + }; +} + +service MoneyRecordService { + rpc QueryMoneyRecord(QueryMoneyRecordsParams) returns (QueryMoneyRecordsResult){ + option (api.post) = '/money/record/query'; + } + rpc InsertMoneyRecord(InsertMoneyRecordParams) returns (InsertMoneyRecordResult){ + option (api.post) = '/money/record/insert'; + } + rpc UpdateMoneyRecord(UpdateMoneyRecordParams) returns (UpdateMoneyRecordResult){ + option (api.post) = '/money/record/update'; + } + rpc DeleteMoneyRecord(DeleteMoneyRecordParams) returns (DeleteMoneyRecordResult){ + option (api.post) = '/money/record/delete'; + } +} diff --git a/code/base-project/base-go-v3/idl/money/money_category_types.proto b/code/base-project/base-go-v3/idl/money/money_category_types.proto new file mode 100644 index 00000000..bf64e3b8 --- /dev/null +++ b/code/base-project/base-go-v3/idl/money/money_category_types.proto @@ -0,0 +1,45 @@ +syntax = "proto3"; + +import "api.proto"; +package money; + +option go_package = "money"; + +// 记账分类 +message MoneyCategory { + int64 Id = 1 [(api.body)="id"]; + string Name = 2 [(api.body)="name"]; + string Icon = 3 [(api.body)="icon"]; + int32 Type = 4 [(api.body)="type"]; + int32 SortNumber = 5 [(api.body)="sort_number"]; +} + +// 查询记账分类请求 +message QueryMoneyCategoryReq {} + +// 查询记账分类响应 +message QueryMoneyCategoryResp { + repeated MoneyCategory Categories = 1 [(api.body)="categories"]; +} + +// 删除记账分类请求 +message DeleteMoneyCategoryReq { + int64 Id = 1 [(api.body)="id", (api.vd)="$ != 0"]; +} + +// 删除记账分类响应 +message DeleteMoneyCategoryResp {} + +// 修改分类排序项 +message MoneyCategorySortItem { + int64 Id = 1 [(api.body)="id"]; + int32 SortNumber = 2 [(api.body)="sort_number"]; +} + +// 修改分类排序请求 +message UpdateMoneyCategorySortReq { + repeated MoneyCategorySortItem Data = 1 [(api.body)="data"]; +} + +// 修改分类排序响应 +message UpdateMoneyCategorySortResp {} diff --git a/code/base-project/base-go-v3/idl/money/money_record_types.proto b/code/base-project/base-go-v3/idl/money/money_record_types.proto new file mode 100644 index 00000000..c4c8ed73 --- /dev/null +++ b/code/base-project/base-go-v3/idl/money/money_record_types.proto @@ -0,0 +1,89 @@ +syntax = "proto3"; +package money; + +option go_package = "money"; + +import "api.proto"; + + +// 单条记账记录 +message MoneyRecordItem { + int64 Id = 1 [(api.body)="id"]; + int64 CategoryId = 2 [(api.body)="category_id"]; + int64 UserId = 3 [(api.body)="user_id"]; + string Amount = 4 [(api.body)="amount"]; + string Remark = 5 [(api.body)="remark"]; + string RecordTime = 6 [(api.body)="record_time"]; + string CreateTime = 7 [(api.body)="create_time"]; + string UpdateTime = 8 [(api.body)="update_time"]; +} + +// 同一天的记账记录分组 +message MoneyRecordGroup { + string RecordTime = 1 [(api.body)="record_time"]; + + string Expense = 2 [(api.body)="expense"]; + string Income = 3 [(api.body)="income"]; + + repeated MoneyRecordItem Records = 4 [(api.body)="records"]; +} + +// 查询记账记录请求参数 +message QueryMoneyRecordsParams { + string RecordTime = 1 [(api.body)="record_time"]; +} + +// 查询记账记录结果 +message QueryMoneyRecordsResult { + repeated MoneyRecordGroup Records = 1 [(api.body)="records"]; + + string TotalIncome = 2 [(api.body)="total_income"]; + string TotalExpense = 3 [(api.body)="total_expense"]; +} + +// 新增记账记录参数 +message InsertMoneyRecordParams { + int64 CategoryId = 1 [(api.body)="category_id",(api.vd)="$!=''"]; + string Amount = 2 [ + (api.body)="amount", + (api.vd)="$!='' && regexp('^\\d+(\\.\\d{1,2})?$', $)" + ]; + string Remark = 3 [(api.body)="remark"]; + string RecordTime = 4 [ + (api.body)="record_time", + (api.vd)="$!='' && regexp('^\\d{4}-\\d{2}-\\d{2}$', $)" + ]; +} + +// 新增记账记录结果 +message InsertMoneyRecordResult { + int64 Id = 1 [(api.body)="id"]; + int64 CategoryId = 2 [(api.body)="category_id"]; + int64 UserId = 3 [(api.body)="user_id"]; + string Amount = 4 [(api.body)="amount"]; + string Remark = 5 [(api.body)="remark"]; + string RecordTime = 6 [(api.body)="record_time"]; + string CreateTime = 7 [(api.body)="create_time"]; + string UpdateTime = 8 [(api.body)="update_time"]; +} + +// 更新记账记录 +message UpdateMoneyRecordParams { + int64 Id = 1 [(api.body)="id",(api.vd)="$!=0"]; + int64 CategoryId = 2 [(api.body)="category_id"]; + string Amount = 3 [(api.body)="amount"]; + string Remark = 4 [(api.body)="remark"]; + string RecordTime = 5 [(api.body)="record_time"]; +} + +message UpdateMoneyRecordResult { + +} + +// 删除记账记录 +message DeleteMoneyRecordParams{ + int64 Id = 1 [(api.body)="id",(api.vd)="$!=0"]; +} +message DeleteMoneyRecordResult { + +} diff --git a/code/base-project/base-go-v3/idl/money_category.proto b/code/base-project/base-go-v3/idl/money_category.proto deleted file mode 100644 index 0c41fe51..00000000 --- a/code/base-project/base-go-v3/idl/money_category.proto +++ /dev/null @@ -1,53 +0,0 @@ -syntax = "proto3"; - - -package money; - -option go_package = "money"; - -import "api.proto"; - - -message QueryMoneyCategoryReq{} -message MoneyCategory { - int64 id = 1; - string name = 2; - string icon = 3; - int32 type = 4; - int32 sort_number = 5; -} - -message QueryMoneyCategoryResp { - repeated MoneyCategory categories = 1; -} - -message DeleteMoneyCategoryReq{ - int64 Id = 1[(api.body)="id",(api.vd)="$ != 0"]; -} - -message DeleteMoneyCategoryResp { -} - -message MoneyCategorySortItem { - int64 id = 1; - int32 sort_number = 2; -} - -message UpdateMoneyCategorySortReq { - repeated MoneyCategorySortItem data = 1; -} - -message UpdateMoneyCategorySortResp {} - -service MoneyCategoryService { - rpc QueryUserMoneyCategory(QueryMoneyCategoryReq) returns (QueryMoneyCategoryResp){ - option (api.get) = '/money/category'; - }; - rpc DeleteUserMoneyCategory(DeleteMoneyCategoryReq) returns (DeleteMoneyCategoryResp){ - option (api.post) = '/money/category/delete'; - }; - rpc UpdateMoneyCategorySort(UpdateMoneyCategorySortReq) returns (UpdateMoneyCategorySortResp){ - option (api.post) = '/money/category/updateSort'; - }; -} - diff --git a/code/base-project/base-go-v3/idl/money_record.proto b/code/base-project/base-go-v3/idl/money_record.proto deleted file mode 100644 index 70af3ef3..00000000 --- a/code/base-project/base-go-v3/idl/money_record.proto +++ /dev/null @@ -1,53 +0,0 @@ -syntax = "proto3"; - -package money; - -option go_package = "money"; - -import "api.proto"; -import "google/protobuf/timestamp.proto"; - -message MoneyRecordBase { - int64 id = 1; - int64 category_id = 2; - int64 user_id = 3; - string amount = 4; - string remark = 5; - google.protobuf.Timestamp record_time = 6; - google.protobuf.Timestamp create_time = 7; - google.protobuf.Timestamp update_time = 8; -} - -message MoneyRecordItem { - MoneyRecordBase base = 1; - - string category_name = 2; - string category_icon = 3; - int32 category_type = 4; -} - -message MoneyRecordGroup { - string record_time = 1; - - string expense = 2; - string income = 3; - - repeated MoneyRecordItem records = 4; -} - -message QueryMoneyRecordsParams { - string record_time = 1; -} -message QueryMoneyRecordsResult { - repeated MoneyRecordGroup records = 1; - - string total_income = 2; - string total_expense = 3; -} - -service MoneyRecordService { - rpc QueryMoneyRecord(QueryMoneyRecordsParams) returns (QueryMoneyRecordsResult){ - option (api.post) = '/money/record'; - } -} - diff --git a/code/base-project/base-go-v3/utils/pgtypex/pgtypex.go b/code/base-project/base-go-v3/utils/pgtypex/pgtypex.go new file mode 100644 index 00000000..c06f5d74 --- /dev/null +++ b/code/base-project/base-go-v3/utils/pgtypex/pgtypex.go @@ -0,0 +1,106 @@ +package pgtypex + +import ( + "github.com/jackc/pgx/v5/pgtype" + "github.com/shopspring/decimal" + "strings" + "time" +) + +func NumericToString(n pgtype.Numeric) string { + if n.Int == nil || n.NaN { + return "0.00" + } + + // 转成 decimal 保证精度 + dec := decimal.NewFromBigInt(n.Int, int32(n.Exp)) + return dec.StringFixed(2) // 保留两位小数 +} +func NumericToDecimal(n pgtype.Numeric) decimal.Decimal { + if n.Int == nil || n.NaN { + return decimal.Zero + } + return decimal.NewFromBigInt(n.Int, int32(n.Exp)) +} + +// TimestampToDateString 转为 "YYYY-MM-DD" +func TimestampToDateString(ts pgtype.Timestamp) string { + if ts.Time.IsZero() { + return "" + } + return ts.Time.Format("2006-01-02") +} + +// TimestampToDateTimeString 转为 "YYYY-MM-DD HH:MM:SS" +func TimestampToDateTimeString(ts pgtype.Timestamp) string { + if ts.Time.IsZero() { + return "" + } + return ts.Time.Format("2006-01-02 15:04:05") +} + +// StringToNumeric 将字符串金额转换为 pgtype.Numeric +func StringToNumeric(amountStr string) pgtype.Numeric { + if strings.TrimSpace(amountStr) == "" { + return pgtype.Numeric{Valid: false} + } + + dec, err := decimal.NewFromString(amountStr) + if err != nil { + return pgtype.Numeric{Valid: false} + } + + // 保留两位小数,四舍五入 + dec = dec.Round(2) + + // 乘以 100 转整数 + intVal := dec.Mul(decimal.NewFromInt(100)).BigInt() + + return pgtype.Numeric{ + Int: intVal, + Exp: -2, // 固定两位小数 + NaN: false, + Valid: true, + } +} + +// StringToText 将字符串转换为 pgtype.Text +// 空字符串返回零值 Text +func StringToText(s string) pgtype.Text { + if s == "" { + return pgtype.Text{Valid: false} + } + return pgtype.Text{ + String: s, + Valid: true, + } +} + +// StringToTimestamp 将字符串解析为 pgtype.Timestamp +// 支持格式:YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD +// 解析失败或空字符串返回零值 Timestamp +func StringToTimestamp(s string) pgtype.Timestamp { + if s == "" { + return pgtype.Timestamp{Valid: false} + } + + var t time.Time + var err error + + layouts := []string{ + "2006-01-02 15:04:05", + "2006-01-02", + } + + for _, layout := range layouts { + t, err = time.Parse(layout, s) + if err == nil { + return pgtype.Timestamp{ + Time: t, + Valid: true, + } + } + } + + return pgtype.Timestamp{Valid: false} +}