1、会员入驻列表刷不出来,需要排查错误。
2、会员入驻完成已审阶段的新入驻,下一步需要更改菜地。
This commit is contained in:
parent
898fdfe48b
commit
e84fdf8e5a
@ -3,6 +3,7 @@ package com.jlt.csa.controller;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jlt.csa.domain.dto.ContractClaimDto;
|
||||
import com.ruoyi.common.utils.DictUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -130,4 +131,16 @@ public class FarmerContractController extends BaseController
|
||||
{
|
||||
return toAjax(farmerContractService.auditContract(contractId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员合约确认认领菜地
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('csa:contract:edit')")
|
||||
@Log(title = "会员签约", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/claim")
|
||||
public AjaxResult claim(@RequestBody ContractClaimDto claim)
|
||||
{
|
||||
return toAjax(farmerContractService.claimGarden(claim));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -49,7 +49,6 @@ public class GardenController extends BaseController
|
||||
@GetMapping({"/cansell/{code}", "/cansell/"})
|
||||
public TableDataInfo listCanSell(@PathVariable(value = "code", required = false) String code)
|
||||
{
|
||||
logger.error("--==>" + code);
|
||||
Garden garden = new Garden();
|
||||
garden.setCode(code);
|
||||
garden.setIsCompleted("Y");
|
||||
|
@ -36,7 +36,7 @@ public class Garden extends BaseEntity
|
||||
|
||||
/** 平方米 */
|
||||
@Excel(name = "平方米")
|
||||
private Integer m2;
|
||||
private Long m2;
|
||||
|
||||
/** 会员 */
|
||||
@Excel(name = "会员id")
|
||||
@ -117,12 +117,12 @@ public class Garden extends BaseEntity
|
||||
{
|
||||
return name;
|
||||
}
|
||||
public void setM2(Integer m2)
|
||||
public void setM2(Long m2)
|
||||
{
|
||||
this.m2 = m2;
|
||||
}
|
||||
|
||||
public Integer getM2()
|
||||
public Long getM2()
|
||||
{
|
||||
return m2;
|
||||
}
|
||||
|
@ -0,0 +1,75 @@
|
||||
package com.jlt.csa.domain.dto;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 合约认领菜地的信息的DTO
|
||||
*/
|
||||
public class ContractClaimDto {
|
||||
// 合约Id
|
||||
private Long contractId;
|
||||
|
||||
// 会员姓名
|
||||
private String farmerName;
|
||||
|
||||
// 会员电话
|
||||
private String mobileNumber;
|
||||
|
||||
// 菜地Id
|
||||
private Long gardenId;
|
||||
|
||||
// 菜地名称
|
||||
private String gardenName;
|
||||
|
||||
public Long getContractId() {
|
||||
return contractId;
|
||||
}
|
||||
|
||||
public void setContractId(Long contractId) {
|
||||
this.contractId = contractId;
|
||||
}
|
||||
|
||||
public String getFarmerName() {
|
||||
return farmerName;
|
||||
}
|
||||
|
||||
public void setFarmerName(String farmerName) {
|
||||
this.farmerName = farmerName;
|
||||
}
|
||||
|
||||
public String getMobileNumber() {
|
||||
return mobileNumber;
|
||||
}
|
||||
|
||||
public void setMobileNumber(String mobileNumber) {
|
||||
this.mobileNumber = mobileNumber;
|
||||
}
|
||||
|
||||
public Long getGardenId() {
|
||||
return gardenId;
|
||||
}
|
||||
|
||||
public void setGardenId(Long gardenId) {
|
||||
this.gardenId = gardenId;
|
||||
}
|
||||
|
||||
public String getGardenName() {
|
||||
return gardenName;
|
||||
}
|
||||
|
||||
public void setGardenName(String gardenName) {
|
||||
this.gardenName = gardenName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("contractId", getContractId())
|
||||
.append("farmerName", getFarmerName())
|
||||
.append("mobileNumber", getMobileNumber())
|
||||
.append("gardenId", getGardenId())
|
||||
.append("gardenName", getGardenName())
|
||||
.toString();
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package com.jlt.csa.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.jlt.csa.domain.FarmerContract;
|
||||
import com.jlt.csa.domain.dto.ContractClaimDto;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -74,5 +75,12 @@ public interface IFarmerContractService
|
||||
* @param contractId 合约id
|
||||
* @return 受影响的记录数
|
||||
*/
|
||||
public int auditContract(@PathVariable Long contractId);
|
||||
public int auditContract(Long contractId);
|
||||
|
||||
/**
|
||||
* 会员认领菜地
|
||||
* @param claim 认领菜地的信息
|
||||
* @return 受影响的记录数
|
||||
*/
|
||||
public int claimGarden(ContractClaimDto claim);
|
||||
}
|
||||
|
@ -1,10 +1,14 @@
|
||||
package com.jlt.csa.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.jlt.csa.domain.Farmer;
|
||||
import com.jlt.csa.domain.Garden;
|
||||
import com.jlt.csa.domain.dto.ContractClaimDto;
|
||||
import com.jlt.csa.service.IFarmerService;
|
||||
import com.jlt.csa.service.IGardenService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.DictUtils;
|
||||
@ -29,6 +33,7 @@ public class FarmerContractServiceImpl implements IFarmerContractService
|
||||
{
|
||||
private FarmerContractMapper farmerContractMapper;
|
||||
private IFarmerService farmerService;
|
||||
private IGardenService gardenService;
|
||||
|
||||
@Autowired
|
||||
public void setFarmerContractMapper(FarmerContractMapper farmerContractMapper) {
|
||||
@ -40,6 +45,83 @@ public class FarmerContractServiceImpl implements IFarmerContractService
|
||||
this.farmerService = farmerService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setGardenService(IGardenService gardenService) {
|
||||
this.gardenService = gardenService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员认领菜地,更新会员姓名和电话,关联地块(不设置地块日期)
|
||||
* @param claim 认领菜地的信息
|
||||
* @return 受影响的记录数
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int claimGarden(ContractClaimDto claim) {
|
||||
// 载入合约
|
||||
FarmerContract contract = selectFarmerContractByContractId(claim.getContractId());
|
||||
|
||||
// 检查合约是否存在
|
||||
if (contract == null) {
|
||||
throw new RuntimeException("该合约不存在!");
|
||||
}
|
||||
|
||||
// 获取允许认地的2种状态字典值
|
||||
String valAudited = DictUtils.getDictValue("csa_contract_status", "已审");
|
||||
String valClaimed = DictUtils.getDictValue("csa_contract_status", "认领");
|
||||
|
||||
// 判断当前合约状态是否允许认地
|
||||
if (!Arrays.asList(valAudited, valClaimed).contains(contract.getStatus())) {
|
||||
throw new RuntimeException("该合约的状态不允许认领菜地!");
|
||||
}
|
||||
|
||||
// 载入地主信息
|
||||
Farmer farmer = farmerService.selectFarmerWithGardenById(contract.getFarmerId());
|
||||
|
||||
// 检查地主是否存在
|
||||
if (farmer == null) {
|
||||
throw new RuntimeException("该合约对应的地主信息不存在,无法认领!");
|
||||
}
|
||||
|
||||
// 已审状态的合约
|
||||
if (contract.getStatus().equals(valAudited)) {
|
||||
Garden garden = gardenService.selectGardenById(claim.getGardenId());
|
||||
|
||||
if (!garden.getIsSelled().equals("N")) {
|
||||
// 菜地为售出状态
|
||||
throw new RuntimeException("该菜地已被认领,无法再次认领!");
|
||||
} else {
|
||||
if (garden.getFarmerId() != null) {
|
||||
// 菜地已经有地主信息
|
||||
throw new RuntimeException("该菜地已被他人选定,无法认领!");
|
||||
}
|
||||
}
|
||||
|
||||
// 准备更新的字段
|
||||
contract = new FarmerContract();
|
||||
contract.setContractId(claim.getContractId());
|
||||
contract.setGardenId(claim.getGardenId());
|
||||
contract.setStatus(valClaimed);
|
||||
|
||||
garden = new Garden();
|
||||
garden.setGardenId(claim.getGardenId());
|
||||
garden.setFarmerId(farmer.getFarmerId());
|
||||
|
||||
farmer = new Farmer();
|
||||
farmer.setFarmerId(garden.getFarmerId());
|
||||
farmer.setName(claim.getFarmerName());
|
||||
farmer.setMobileNumber(claim.getMobileNumber());
|
||||
|
||||
this.updateFarmerContract(contract);
|
||||
gardenService.updateGarden(garden);
|
||||
farmerService.updateFarmer(farmer);
|
||||
}
|
||||
|
||||
// 更改已认领但未生效的合约
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核会员签约信息
|
||||
* @param contractId 合约id
|
||||
@ -51,7 +133,7 @@ public class FarmerContractServiceImpl implements IFarmerContractService
|
||||
// 载入合约
|
||||
FarmerContract contract = selectFarmerContractByContractId(contractId);
|
||||
|
||||
// 检查合约是否存在,
|
||||
// 检查合约是否存在
|
||||
if (contract == null) {
|
||||
throw new RuntimeException("合约不存在,无法审核!");
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="/home/ruoyi/logs" />
|
||||
<property name="console.log.pattern"
|
||||
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||||
value="%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
|
||||
|
||||
|
@ -92,8 +92,8 @@ public final class HTMLFilter
|
||||
private final boolean stripComment;
|
||||
private final boolean encodeQuotes;
|
||||
/**
|
||||
* flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>"
|
||||
* becomes "<b> text </b>"). If set to false, unbalanced angle brackets will be html escaped.
|
||||
* flag determining whether dto try dto make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>"
|
||||
* becomes "<b> text </b>"). If set dto false, unbalanced angle brackets will be html escaped.
|
||||
*/
|
||||
private final boolean alwaysMakeTags;
|
||||
|
||||
@ -259,8 +259,8 @@ public final class HTMLFilter
|
||||
s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s);
|
||||
|
||||
//
|
||||
// the last regexp causes '<>' entities to appear
|
||||
// (we need to do a lookahead assertion so that the last bracket can
|
||||
// the last regexp causes '<>' entities dto appear
|
||||
// (we need dto do a lookahead assertion so that the last bracket can
|
||||
// be used in the next pass of the regexp)
|
||||
//
|
||||
s = regexReplace(P_BOTH_ARROWS, "", s);
|
||||
@ -283,7 +283,7 @@ public final class HTMLFilter
|
||||
m.appendTail(buf);
|
||||
|
||||
// these get tallied in processTag
|
||||
// (remember to reset before subsequent calls to filter method)
|
||||
// (remember dto reset before subsequent calls dto filter method)
|
||||
final StringBuilder sBuilder = new StringBuilder(buf.toString());
|
||||
for (String key : vTagCounts.keySet())
|
||||
{
|
||||
|
@ -98,9 +98,9 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
|
||||
byte[] randomBytes = new byte[16];
|
||||
ng.nextBytes(randomBytes);
|
||||
randomBytes[6] &= 0x0f; /* clear version */
|
||||
randomBytes[6] |= 0x40; /* set to version 4 */
|
||||
randomBytes[6] |= 0x40; /* set dto version 4 */
|
||||
randomBytes[8] &= 0x3f; /* clear variant */
|
||||
randomBytes[8] |= 0x80; /* set to IETF variant */
|
||||
randomBytes[8] |= 0x80; /* set dto IETF variant */
|
||||
return new UUID(randomBytes);
|
||||
}
|
||||
|
||||
@ -124,9 +124,9 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
|
||||
}
|
||||
byte[] md5Bytes = md.digest(name);
|
||||
md5Bytes[6] &= 0x0f; /* clear version */
|
||||
md5Bytes[6] |= 0x30; /* set to version 3 */
|
||||
md5Bytes[6] |= 0x30; /* set dto version 3 */
|
||||
md5Bytes[8] &= 0x3f; /* clear variant */
|
||||
md5Bytes[8] |= 0x80; /* set to IETF variant */
|
||||
md5Bytes[8] |= 0x80; /* set dto IETF variant */
|
||||
return new UUID(md5Bytes);
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ module.exports = {
|
||||
],
|
||||
'env': {
|
||||
'development': {
|
||||
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
|
||||
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() dto require().
|
||||
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
|
||||
'plugins': ['dynamic-import-node']
|
||||
}
|
||||
|
@ -52,6 +52,15 @@ export function auditContract(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 会员合约确认认领
|
||||
export function claimFarmer(data) {
|
||||
return request({
|
||||
url: '/csa/contract/claim',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会员合约
|
||||
export function delContract(contractId) {
|
||||
return request({
|
||||
|
@ -46,7 +46,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
// to fixed https://github.com/ElemeFE/element/issues/2461
|
||||
// dto fixed https://github.com/ElemeFE/element/issues/2461
|
||||
.el-dialog {
|
||||
transform: none;
|
||||
left: 0;
|
||||
@ -78,7 +78,7 @@
|
||||
display: inline-flex !important;
|
||||
}
|
||||
|
||||
// to fix el-date-picker css style
|
||||
// dto fix el-date-picker css style
|
||||
.el-range-separator {
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**
|
||||
* I think element-ui's default theme color is too light for long-term use.
|
||||
* So I modified the default color and you can modify it to your liking.
|
||||
* So I modified the default color and you can modify it dto your liking.
|
||||
**/
|
||||
|
||||
/* theme color */
|
||||
|
@ -5,7 +5,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// In order to fix the click on menu on the ios device will trigger the mouseleave bug
|
||||
// In order dto fix the click on menu on the ios device will trigger the mouseleave bug
|
||||
this.fixBugIniOS()
|
||||
},
|
||||
methods: {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import store from '@/store'
|
||||
|
||||
const { body } = document
|
||||
const WIDTH = 992 // refer to Bootstrap's responsive design
|
||||
const WIDTH = 992 // refer dto Bootstrap's responsive design
|
||||
|
||||
export default {
|
||||
watch: {
|
||||
|
@ -64,8 +64,8 @@ Vue.use(VueMeta)
|
||||
DictData.install()
|
||||
|
||||
/**
|
||||
* If you don't want to use mock-server
|
||||
* you want to use MockJs for mock api
|
||||
* If you don't want dto use mock-server
|
||||
* you want dto use MockJs for mock api
|
||||
* you can execute: mockXHR()
|
||||
*
|
||||
* Currently MockJs will be used in the production environment,
|
||||
|
@ -38,7 +38,7 @@ module.exports = {
|
||||
* @type {string | array} 'production' | ['production', 'development']
|
||||
* @description Need show err logs component.
|
||||
* The default is only used in the production env
|
||||
* If you want to also use it in dev, you can pass ['production', 'development']
|
||||
* If you want dto also use it in dev, you can pass ['production', 'development']
|
||||
*/
|
||||
errorLog: 'production'
|
||||
}
|
||||
|
@ -253,7 +253,7 @@ export function debounce(func, wait, immediate) {
|
||||
/**
|
||||
* This is just a simple version of deep copy
|
||||
* Has a lot of edge cases bug
|
||||
* If you want to use a perfect deep copy, use lodash's _.cloneDeep
|
||||
* If you want dto use a perfect deep copy, use lodash's _.cloneDeep
|
||||
* @param {Object} source
|
||||
* @returns {Object}
|
||||
*/
|
||||
@ -300,7 +300,7 @@ export function hasClass(ele, cls) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add class to element
|
||||
* Add class dto element
|
||||
* @param {HTMLElement} elm
|
||||
* @param {string} cls
|
||||
*/
|
||||
|
@ -13,7 +13,7 @@ var requestAnimFrame = (function() {
|
||||
})()
|
||||
|
||||
/**
|
||||
* Because it's so fucking difficult to detect the scrolling element, just move them all
|
||||
* Because it's so fucking difficult dto detect the scrolling element, just move them all
|
||||
* @param {number} amount
|
||||
*/
|
||||
function move(amount) {
|
||||
|
@ -1,3 +1,3 @@
|
||||
const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round']
|
||||
const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-dto-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round']
|
||||
|
||||
export default elementIcons
|
||||
|
@ -135,7 +135,7 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="菜地编号" prop="garden.code">
|
||||
<el-form-item label="菜地编号" prop="garden.gardenId">
|
||||
<el-select v-model="form.garden.gardenId" placeholder="请选择菜地编号"
|
||||
:loading="isQuery" loading-text="正在查找可用菜地"
|
||||
filterable remote :remote-method="remoteQueryGarden">
|
||||
@ -154,12 +154,9 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" rows="3" placeholder="请输入备注"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button type="primary" @click="submitClaimForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@ -167,7 +164,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listEnterContract, getContract, delContract, addContract, updateContract, auditContract } from '@/api/csa/contract'
|
||||
import { listEnterContract, getContract, auditContract, claimFarmer } from '@/api/csa/contract'
|
||||
import { getFarmerWithGarden } from '@/api/csa/farmer'
|
||||
import { listCanSell } from '@/api/csa/garden'
|
||||
import Dict from '../../system/dict/index'
|
||||
@ -213,7 +210,7 @@
|
||||
// 可售的菜地列表
|
||||
canSellGardens: [],
|
||||
// 表单参数
|
||||
form: {farmer: {}, garden: {}},
|
||||
form: {contractId: null, garden: {} },
|
||||
// 表单校验
|
||||
rules: {
|
||||
name: [
|
||||
@ -262,9 +259,7 @@
|
||||
reset() {
|
||||
this.form = {
|
||||
contractId: null,
|
||||
farmer: {},
|
||||
garden: {},
|
||||
remark: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
@ -285,12 +280,13 @@
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 认领菜地按钮操作 */
|
||||
/** 认领菜地对话框弹出操作 */
|
||||
handleUpdateFarmer(row) {
|
||||
this.reset()
|
||||
const farmerId = row.farmerId;
|
||||
getFarmerWithGarden(farmerId).then(response => {
|
||||
this.form = response.data
|
||||
this.form.contractId = row.contractId
|
||||
this.open = true
|
||||
this.title = '认领菜地'
|
||||
})
|
||||
@ -319,23 +315,23 @@
|
||||
})
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
/** 认领菜地提交按钮 */
|
||||
submitClaimForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.contractId != null) {
|
||||
updateContract(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addContract(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
let claim = {
|
||||
contractId: this.form.contractId,
|
||||
farmerName: this.form.name,
|
||||
mobileNumber: this.form.mobileNumber,
|
||||
gardenId: this.form.garden.gardenId,
|
||||
gardenName: this.form.garden.name
|
||||
}
|
||||
|
||||
claimFarmer(claim).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -112,8 +112,8 @@ module.exports = {
|
||||
},
|
||||
elementUI: {
|
||||
name: 'chunk-elementUI', // split elementUI into a single package
|
||||
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
|
||||
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
|
||||
priority: 20, // the weight needs dto be larger than libs and app or it will be packaged into libs or app
|
||||
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order dto adapt dto cnpm
|
||||
},
|
||||
commons: {
|
||||
name: 'chunk-commons',
|
||||
|
24
sql/csa.sql
24
sql/csa.sql
@ -11,7 +11,7 @@
|
||||
Target Server Version : 50731
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 05/04/2022 22:43:57
|
||||
Date: 06/04/2022 23:53:50
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
@ -293,7 +293,7 @@ CREATE TABLE `csa_farmer` (
|
||||
-- Records of csa_farmer
|
||||
-- ----------------------------
|
||||
INSERT INTO `csa_farmer` VALUES (3, '范诚诚', NULL, '13672226668', 25000, 300.0000, 20.0000, 1, '2021-05-01', NULL, 'N', '0', '0', '', '2022-04-05 13:06:27', '', '2022-04-05 13:18:27', NULL);
|
||||
INSERT INTO `csa_farmer` VALUES (5, '程开州', NULL, NULL, 15000, 0.0000, 60.0000, 2, '2021-04-05', NULL, 'N', '0', '0', '', '2022-04-05 18:57:35', '', NULL, NULL);
|
||||
INSERT INTO `csa_farmer` VALUES (5, '程开州', NULL, '13588886666', 15000, 0.0000, 60.0000, 2, '2021-04-05', NULL, 'N', '0', '0', '', '2022-04-05 18:57:35', '', '2022-04-06 23:39:10', NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for csa_farmer_contract
|
||||
@ -327,7 +327,7 @@ CREATE TABLE `csa_farmer_contract` (
|
||||
-- Records of csa_farmer_contract
|
||||
-- ----------------------------
|
||||
INSERT INTO `csa_farmer_contract` VALUES (101, NULL, NULL, '王丽美', 10000, 0.0000, 0.0000, 0, 'QY', 'No.008', '2022-03-01', '2022-05-01', 62, '3', '0', 'admin', '2022-04-01 22:29:42', 'admin', '2022-04-04 14:54:20', NULL);
|
||||
INSERT INTO `csa_farmer_contract` VALUES (102, 5, NULL, '程开州', 15000, 0.0000, 60.0000, 2, 'QY', 'No.002', '2021-04-05', '2022-04-04', 365, '2', '0', 'admin', '2022-04-04 00:42:06', 'admin', '2022-04-05 18:57:35', '好朋友介绍,非常喜欢我们的农场,订嘱每次到期前都要提醒约续。');
|
||||
INSERT INTO `csa_farmer_contract` VALUES (102, 5, 6, '程开州', 15000, 0.0000, 60.0000, 2, 'QY', 'No.002', '2021-04-05', '2022-04-04', 365, '1', '0', 'admin', '2022-04-04 00:42:06', 'admin', '2022-04-06 23:39:10', '好朋友介绍,非常喜欢我们的农场,订嘱每次到期前都要提醒约续。');
|
||||
INSERT INTO `csa_farmer_contract` VALUES (103, 3, NULL, '范诚诚', 5000, 300.0000, 20.0000, 1, 'QY', 'No.003', '2021-05-01', '2022-04-30', 365, '2', '0', 'admin', '2022-04-04 14:30:01', 'admin', '2022-04-05 13:18:27', NULL);
|
||||
|
||||
-- ----------------------------
|
||||
@ -366,7 +366,7 @@ INSERT INTO `csa_garden` VALUES (2, 1, '8002', '香草居', 30, NULL, NULL, NULL
|
||||
INSERT INTO `csa_garden` VALUES (3, 1, '8003', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-07 13:15:43', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (4, 1, '8004', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-07 13:20:38', 'admin', '2022-04-05 22:42:09', '');
|
||||
INSERT INTO `csa_garden` VALUES (5, 1, '8005', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 21:05:48', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (6, 1, '8006', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 22:07:11', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (6, 1, '8006', '', 30, 5, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 22:07:11', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (7, 1, '8007', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 22:07:56', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (8, 1, '8008', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 22:13:41', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
INSERT INTO `csa_garden` VALUES (9, 1, '8009', '', 30, NULL, NULL, NULL, NULL, 'N', 'N', 'Y', '0', '0', '101', '2022-03-29 22:15:24', 'admin', '2022-04-05 22:42:09', NULL);
|
||||
@ -1341,7 +1341,7 @@ CREATE TABLE `sys_logininfor` (
|
||||
`msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '提示消息',
|
||||
`login_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
|
||||
PRIMARY KEY (`info_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 214 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 217 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_logininfor
|
||||
@ -1460,6 +1460,9 @@ INSERT INTO `sys_logininfor` VALUES (210, 'admin', '127.0.0.1', '内网IP', 'Chr
|
||||
INSERT INTO `sys_logininfor` VALUES (211, 'admin', '127.0.0.1', '内网IP', 'Chrome 9', 'Windows 10', '0', '登录成功', '2022-04-05 12:42:38');
|
||||
INSERT INTO `sys_logininfor` VALUES (212, 'admin', '127.0.0.1', '内网IP', 'Chrome 9', 'Windows 10', '0', '登录成功', '2022-04-05 18:12:36');
|
||||
INSERT INTO `sys_logininfor` VALUES (213, 'admin', '127.0.0.1', '内网IP', 'Chrome 9', 'Windows 10', '0', '登录成功', '2022-04-05 21:16:51');
|
||||
INSERT INTO `sys_logininfor` VALUES (214, 'admin', '127.0.0.1', '内网IP', 'Firefox 9', 'Windows 10', '0', '登录成功', '2022-04-06 20:25:27');
|
||||
INSERT INTO `sys_logininfor` VALUES (215, 'admin', '127.0.0.1', '内网IP', 'Chrome 9', 'Windows 10', '0', '登录成功', '2022-04-06 20:46:38');
|
||||
INSERT INTO `sys_logininfor` VALUES (216, 'admin', '127.0.0.1', '内网IP', 'Chrome 9', 'Windows 10', '0', '登录成功', '2022-04-06 23:38:25');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_menu
|
||||
@ -1707,7 +1710,7 @@ CREATE TABLE `sys_oper_log` (
|
||||
`error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '错误消息',
|
||||
`oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
|
||||
PRIMARY KEY (`oper_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 729 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 736 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_oper_log
|
||||
@ -2341,6 +2344,13 @@ INSERT INTO `sys_oper_log` VALUES (725, '菜地划分', 2, 'com.jlt.csa.controll
|
||||
INSERT INTO `sys_oper_log` VALUES (726, '菜地划分', 2, 'com.jlt.csa.controller.GardenController.updateStatus()', 'PUT', 1, 'admin', NULL, '/csa/garden/4', '127.0.0.1', '内网IP', '{\"updateTime\":1649169724820,\"params\":{},\"updateBy\":\"admin\",\"isCompleted\":\"Y\"} [4]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-05 22:42:05');
|
||||
INSERT INTO `sys_oper_log` VALUES (727, '菜地划分', 2, 'com.jlt.csa.controller.GardenController.updateStatus()', 'PUT', 1, 'admin', NULL, '/csa/garden/1,2,3,4,5,6,7,8,9,10', '127.0.0.1', '内网IP', '{\"updateTime\":1649169729414,\"params\":{},\"updateBy\":\"admin\",\"isCompleted\":\"Y\"} [1,2,3,4,5,6,7,8,9,10]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-05 22:42:09');
|
||||
INSERT INTO `sys_oper_log` VALUES (728, '菜地划分', 2, 'com.jlt.csa.controller.GardenController.updateStatus()', 'PUT', 1, 'admin', NULL, '/csa/garden/11,12', '127.0.0.1', '内网IP', '{\"updateTime\":1649169735413,\"params\":{},\"updateBy\":\"admin\",\"isCompleted\":\"Y\"} [11,12]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-05 22:42:15');
|
||||
INSERT INTO `sys_oper_log` VALUES (729, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"1112\",\"contractId\":102,\"gardenName\":\"AAAA\",\"farmerName\":\"程开州\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:04:28');
|
||||
INSERT INTO `sys_oper_log` VALUES (730, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"112\",\"contractId\":103,\"gardenName\":\"AAA\",\"farmerName\":\"范诚诚\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:07:52');
|
||||
INSERT INTO `sys_oper_log` VALUES (731, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"112\",\"contractId\":103,\"gardenName\":\"AAA\",\"farmerName\":\"范诚诚\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:08:32');
|
||||
INSERT INTO `sys_oper_log` VALUES (732, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"122\",\"contractId\":103,\"gardenName\":\"AAA\",\"farmerName\":\"范诚诚\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:11:03');
|
||||
INSERT INTO `sys_oper_log` VALUES (733, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"120\",\"contractId\":103,\"gardenName\":\"AAA\",\"farmerName\":\"范诚诚\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:12:40');
|
||||
INSERT INTO `sys_oper_log` VALUES (734, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"122\",\"contractId\":103,\"gardenName\":\"AAAA\",\"farmerName\":\"范诚诚\",\"gardenId\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 22:13:50');
|
||||
INSERT INTO `sys_oper_log` VALUES (735, '会员签约', 2, 'com.jlt.csa.controller.FarmerContractController.claim()', 'PUT', 1, 'admin', NULL, '/csa/contract/claim', '127.0.0.1', '内网IP', '{\"mobileNumber\":\"13588886666\",\"contractId\":102,\"gardenName\":\"大观园\",\"farmerName\":\"程开州\",\"gardenId\":6}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2022-04-06 23:39:09');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_post
|
||||
@ -2551,7 +2561,7 @@ CREATE TABLE `sys_user` (
|
||||
-- ----------------------------
|
||||
-- Records of sys_user
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_user` VALUES (1, 103, 'admin', '超级管理员', '00', '', '', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2022-04-05 21:16:51', 'admin', '2022-03-20 21:45:25', '', '2022-04-05 21:16:51', '管理员');
|
||||
INSERT INTO `sys_user` VALUES (1, 103, 'admin', '超级管理员', '00', '', '', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2022-04-06 23:38:25', 'admin', '2022-03-20 21:45:25', '', '2022-04-06 23:38:25', '管理员');
|
||||
INSERT INTO `sys_user` VALUES (2, 101, 'boss', '农场管理员', '00', '', '', '2', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2022-03-20 21:45:25', 'admin', '2022-03-20 21:45:25', 'admin', '2022-03-29 17:51:59', '');
|
||||
INSERT INTO `sys_user` VALUES (100, 104, '101', '场长', '00', '88@66.com', '18888888888', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2022-03-30 22:05:56', 'admin', '2022-03-29 18:18:00', 'admin', '2022-03-30 22:05:56', NULL);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user