前端页面
parent
57157cc6be
commit
eebcbd1473
|
|
@ -0,0 +1,114 @@
|
||||||
|
package com.ruoyi.app.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.ruoyi.common.log.annotation.Log;
|
||||||
|
import com.ruoyi.common.log.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.ruoyi.app.domain.AppInform;
|
||||||
|
import com.ruoyi.app.service.IAppInformService;
|
||||||
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 举报Controller
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/inform")
|
||||||
|
@Api(tags = "举报" , description = "举报")
|
||||||
|
public class AppInformController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IAppInformService appInformService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询举报列表
|
||||||
|
*/
|
||||||
|
// @RequiresPermissions("app:inform:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
@ApiOperation(value = "查询举报", notes = "查询举报", httpMethod = "GET")
|
||||||
|
public TableDataInfo list(AppInform appInform)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<AppInform> list = appInformService.selectAppInformList(appInform);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出举报列表
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:inform:export")
|
||||||
|
@Log(title = "举报", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, AppInform appInform)
|
||||||
|
{
|
||||||
|
List<AppInform> list = appInformService.selectAppInformList(appInform);
|
||||||
|
ExcelUtil<AppInform> util = new ExcelUtil<AppInform>(AppInform.class);
|
||||||
|
util.exportExcel(response, list, "举报数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取举报详细信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:inform:query")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
@ApiOperation(value = "获取举报详细信息", notes = "获取举报详细信息", httpMethod = "GET")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(appInformService.selectAppInformById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增举报
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:inform:add")
|
||||||
|
@ApiOperation(value = "新增举报", notes = "新增举报", httpMethod = "POST")
|
||||||
|
@Log(title = "举报", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody AppInform appInform)
|
||||||
|
{
|
||||||
|
return toAjax(appInformService.insertAppInform(appInform));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改举报
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:inform:edit")
|
||||||
|
@ApiOperation(value = "修改举报", notes = "修改举报", httpMethod = "PUT")
|
||||||
|
@Log(title = "举报", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public AjaxResult edit(@RequestBody AppInform appInform)
|
||||||
|
{
|
||||||
|
return toAjax(appInformService.updateAppInform(appInform));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除举报
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:inform:remove")
|
||||||
|
@Log(title = "举报", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(appInformService.deleteAppInformByIds(ids));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
package com.ruoyi.app.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.ruoyi.app.domain.vo.AppOrderVo;
|
||||||
|
import com.ruoyi.app.service.IAppOrderService;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.ruoyi.common.log.annotation.Log;
|
||||||
|
import com.ruoyi.common.log.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.ruoyi.app.domain.AppOrder;
|
||||||
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单Controller
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/order")
|
||||||
|
@Api(tags = "订单" , description = "订单")
|
||||||
|
public class AppOrderController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IAppOrderService appOrderService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单列表
|
||||||
|
*/
|
||||||
|
// @RequiresPermissions("app:order:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
@ApiOperation(value = "查询订单", notes = "查询订单", httpMethod = "GET")
|
||||||
|
public TableDataInfo list(AppOrder appOrder)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<AppOrderVo> list = appOrderService.selectAppOrderList(appOrder);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出订单列表
|
||||||
|
*/
|
||||||
|
@Log(title = "订单", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, AppOrder appOrder)
|
||||||
|
{
|
||||||
|
List<AppOrderVo> list = appOrderService.selectAppOrderList(appOrder);
|
||||||
|
ExcelUtil<AppOrderVo> util = new ExcelUtil<AppOrderVo>(AppOrderVo.class);
|
||||||
|
util.exportExcel(response, list, "订单数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取订单详细信息
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
@ApiOperation(value = "获取订单详细信息", notes = "获取订单详细信息", httpMethod = "GET")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(appOrderService.selectAppOrderById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "新增订单", notes = "新增订单", httpMethod = "POST")
|
||||||
|
@Log(title = "订单", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody AppOrder appOrder)
|
||||||
|
{
|
||||||
|
return toAjax(appOrderService.insertAppOrder(appOrder));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "修改订单", notes = "修改订单", httpMethod = "PUT")
|
||||||
|
@Log(title = "订单", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public AjaxResult edit(@RequestBody AppOrder appOrder)
|
||||||
|
{
|
||||||
|
return toAjax(appOrderService.updateAppOrder(appOrder));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除订单
|
||||||
|
*/
|
||||||
|
@Log(title = "订单", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
|
||||||
|
{
|
||||||
|
return toAjax(appOrderService.deleteAppOrderByIds(ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计订单总数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/abcd")
|
||||||
|
public AjaxResult abcd(){
|
||||||
|
return success(appOrderService.abcd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
package com.ruoyi.app.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.ruoyi.common.log.annotation.Log;
|
||||||
|
import com.ruoyi.common.log.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.ruoyi.app.domain.AppVip;
|
||||||
|
import com.ruoyi.app.service.IAppVipService;
|
||||||
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员信息Controller
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/vip")
|
||||||
|
@Api(tags = "会员信息" , description = "会员信息")
|
||||||
|
public class AppVipController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IAppVipService appVipService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员信息列表
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
@ApiOperation(value = "查询会员信息", notes = "查询会员信息", httpMethod = "GET")
|
||||||
|
public TableDataInfo list(AppVip appVip)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<AppVip> list = appVipService.selectAppVipList(appVip);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出会员信息列表
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:export")
|
||||||
|
@Log(title = "会员信息", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, AppVip appVip)
|
||||||
|
{
|
||||||
|
List<AppVip> list = appVipService.selectAppVipList(appVip);
|
||||||
|
ExcelUtil<AppVip> util = new ExcelUtil<AppVip>(AppVip.class);
|
||||||
|
util.exportExcel(response, list, "会员信息数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取会员信息详细信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:query")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
@ApiOperation(value = "获取会员信息详细信息", notes = "获取会员信息详细信息", httpMethod = "GET")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(appVipService.selectAppVipById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增会员信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:add")
|
||||||
|
@ApiOperation(value = "新增会员信息", notes = "新增会员信息", httpMethod = "POST")
|
||||||
|
@Log(title = "会员信息", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody AppVip appVip)
|
||||||
|
{
|
||||||
|
return toAjax(appVipService.insertAppVip(appVip));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改会员信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:edit")
|
||||||
|
@ApiOperation(value = "修改会员信息", notes = "修改会员信息", httpMethod = "PUT")
|
||||||
|
@Log(title = "会员信息", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public AjaxResult edit(@RequestBody AppVip appVip)
|
||||||
|
{
|
||||||
|
return toAjax(appVipService.updateAppVip(appVip));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除会员信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("app:vip:remove")
|
||||||
|
@Log(title = "会员信息", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(appVipService.deleteAppVipByIds(ids));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -341,26 +341,45 @@ public class PayController extends BaseController
|
||||||
}
|
}
|
||||||
//乱码解决,这段代码在出现乱码时使用。
|
//乱码解决,这段代码在出现乱码时使用。
|
||||||
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
|
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
|
||||||
params.put (name,valueStr);
|
System.out.println(name);
|
||||||
|
params.put (name,valueStr);
|
||||||
}
|
}
|
||||||
//调用SDK验证签名
|
|
||||||
//公钥验签示例代码
|
|
||||||
boolean signVerified = AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8","RSA2") ;
|
|
||||||
//公钥证书验签示例代码
|
//公钥证书验签示例代码
|
||||||
// boolean flag = AlipaySignature.rsaCertCheckV1(params,alipayPublicCertPath,"UTF-8","RSA2");
|
boolean signVerified = AlipaySignature.rsaCertCheckV1(params,"/Users/wyh/Documents/code/gan/gan-modules/ruoyi-gan/src/main/resources/alipayCertPublicKey_RSA2.crt","UTF-8","RSA2");
|
||||||
|
|
||||||
if (signVerified){
|
|
||||||
// TODO 验签成功后
|
|
||||||
//按照支付结果异步通知中的描述,对支付结果中的业务内容进行1\2\3\4二次校验,校验成功后在response中返回success
|
|
||||||
} else {
|
|
||||||
// TODO 验签失败则记录异常日志,并在response中返回fail.
|
|
||||||
}
|
|
||||||
PrintWriter out;
|
PrintWriter out;
|
||||||
try {
|
try {
|
||||||
out = response.getWriter();
|
out = response.getWriter();
|
||||||
out.println("success");
|
if (signVerified){
|
||||||
|
// TODO 验签成功后
|
||||||
|
String outTradeNo = params.get("out_trade_no");
|
||||||
|
System.out.println(outTradeNo);
|
||||||
|
AppOrder appOrder = appOrderMapper.selectOneByOutTradeNo(outTradeNo);
|
||||||
|
|
||||||
|
AppOrder entity = new AppOrder();
|
||||||
|
entity.setId(appOrder.getId());
|
||||||
|
entity.setTradeNo(params.get("trade_no"));
|
||||||
|
entity.setPayStatus(2);
|
||||||
|
entity.setPayTime(new Date());
|
||||||
|
appOrderMapper.updateAppOrder(entity);
|
||||||
|
|
||||||
|
AppOrderPay miniOrderWechatPay = new AppOrderPay();
|
||||||
|
miniOrderWechatPay.setAppid(params.get("app_id"));
|
||||||
|
miniOrderWechatPay.setOuttradeno(params.get("out_trade_no"));
|
||||||
|
miniOrderWechatPay.setResultcode(params.get("trade_status"));
|
||||||
|
miniOrderWechatPay.setTimeend(params.get("gmt_payment"));
|
||||||
|
miniOrderWechatPay.setTotalfee(params.get("total_amount"));
|
||||||
|
miniOrderWechatPay.setTransactionid(params.get("trade_no"));
|
||||||
|
appOrderPayMapper.insertAppOrderPay(miniOrderWechatPay);
|
||||||
|
//修改用户信息
|
||||||
|
// updateUser(appOrder);
|
||||||
|
out.println("success");
|
||||||
|
} else {
|
||||||
|
// TODO 验签失败则记录异常日志,并在response中返回fail.
|
||||||
|
out.println("fail");
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.info("异常订单:" + params.toString());
|
||||||
|
log.info("========>PrintWriter fail");
|
||||||
}
|
}
|
||||||
/*StringBuilder sb = new StringBuilder();
|
/*StringBuilder sb = new StringBuilder();
|
||||||
InputStream in;
|
InputStream in;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package com.ruoyi.app.domain;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 举报对象 app_inform
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public class AppInform extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** id */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 举报内容 */
|
||||||
|
@Excel(name = "举报内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setContent(String content)
|
||||||
|
{
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent()
|
||||||
|
{
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.append("content", getContent())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,9 +2,8 @@ package com.ruoyi.app.domain;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
|
||||||
|
|
@ -36,11 +35,11 @@ public class AppOrder extends BaseEntity
|
||||||
|
|
||||||
/** 支付状态: 1待付款 2:已付款 */
|
/** 支付状态: 1待付款 2:已付款 */
|
||||||
@Excel(name = "支付状态: 1待付款 2:已付款")
|
@Excel(name = "支付状态: 1待付款 2:已付款")
|
||||||
private int payStatus;
|
private Integer payStatus;
|
||||||
|
|
||||||
/** 支付类型: 1微信2支付宝3兑换码 */
|
/** 支付类型: 1微信2支付宝3兑换码 */
|
||||||
@Excel(name = "支付类型: 1微信2支付宝3兑换码")
|
@Excel(name = "支付类型: 1微信2支付宝3兑换码")
|
||||||
private int paySoure;
|
private Integer paySoure;
|
||||||
|
|
||||||
/** 微信订单号 */
|
/** 微信订单号 */
|
||||||
@Excel(name = "微信订单号")
|
@Excel(name = "微信订单号")
|
||||||
|
|
@ -55,109 +54,14 @@ public class AppOrder extends BaseEntity
|
||||||
private String mchId;
|
private String mchId;
|
||||||
|
|
||||||
@Excel(name = "会员等级,1-7天,2-一个月,3-一年")
|
@Excel(name = "会员等级,1-7天,2-一个月,3-一年")
|
||||||
private int level;
|
private Integer level;
|
||||||
|
|
||||||
/** 支付时间 */
|
/** 支付时间 */
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date payTime;
|
private Date payTime;
|
||||||
|
|
||||||
public void setId(Long id)
|
/** 支付时间 */
|
||||||
{
|
@JsonIgnore
|
||||||
this.id = id;
|
private String payTimeStr;
|
||||||
}
|
|
||||||
|
|
||||||
public Long getId()
|
|
||||||
{
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setOutTradeNo(String outTradeNo)
|
|
||||||
{
|
|
||||||
this.outTradeNo = outTradeNo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOutTradeNo()
|
|
||||||
{
|
|
||||||
return outTradeNo;
|
|
||||||
}
|
|
||||||
public void setAppId(String appId)
|
|
||||||
{
|
|
||||||
this.appId = appId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppId()
|
|
||||||
{
|
|
||||||
return appId;
|
|
||||||
}
|
|
||||||
public void setUserId(Long userId)
|
|
||||||
{
|
|
||||||
this.userId = userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getUserId()
|
|
||||||
{
|
|
||||||
return userId;
|
|
||||||
}
|
|
||||||
public void setPayStatus(int payStatus)
|
|
||||||
{
|
|
||||||
this.payStatus = payStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPayStatus()
|
|
||||||
{
|
|
||||||
return payStatus;
|
|
||||||
}
|
|
||||||
public void setPaySoure(int paySoure)
|
|
||||||
{
|
|
||||||
this.paySoure = paySoure;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPaySoure()
|
|
||||||
{
|
|
||||||
return paySoure;
|
|
||||||
}
|
|
||||||
public void setTradeNo(String tradeNo)
|
|
||||||
{
|
|
||||||
this.tradeNo = tradeNo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTradeNo()
|
|
||||||
{
|
|
||||||
return tradeNo;
|
|
||||||
}
|
|
||||||
public void setMchId(String mchId)
|
|
||||||
{
|
|
||||||
this.mchId = mchId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMchId()
|
|
||||||
{
|
|
||||||
return mchId;
|
|
||||||
}
|
|
||||||
public void setPayTime(Date payTime)
|
|
||||||
{
|
|
||||||
this.payTime = payTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getPayTime()
|
|
||||||
{
|
|
||||||
return payTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
|
||||||
.append("id", getId())
|
|
||||||
.append("outTradeNo", getOutTradeNo())
|
|
||||||
.append("appId", getAppId())
|
|
||||||
.append("userId", getUserId())
|
|
||||||
.append("payStatus", getPayStatus())
|
|
||||||
.append("paySoure", getPaySoure())
|
|
||||||
.append("tradeNo", getTradeNo())
|
|
||||||
.append("price", getPrice())
|
|
||||||
.append("mchId", getMchId())
|
|
||||||
.append("payTime", getPayTime())
|
|
||||||
.append("createTime", getCreateTime())
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,12 @@ public class AppUserDynamic extends BaseEntity
|
||||||
@Excel(name = "是否收藏0是1否")
|
@Excel(name = "是否收藏0是1否")
|
||||||
private int isCollect;
|
private int isCollect;
|
||||||
|
|
||||||
|
private Integer provinceId;
|
||||||
|
|
||||||
|
private Integer cityId;
|
||||||
|
|
||||||
|
private Integer townId;
|
||||||
|
|
||||||
// 动态ids
|
// 动态ids
|
||||||
private List<Long> ids;
|
private List<Long> ids;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package com.ruoyi.app.domain;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员信息对象 app_vip
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public class AppVip extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** id */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 会员级别 */
|
||||||
|
@Excel(name = "会员级别")
|
||||||
|
private Long level;
|
||||||
|
|
||||||
|
/** 会员金额 */
|
||||||
|
@Excel(name = "会员金额")
|
||||||
|
private Long price;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setLevel(Long level)
|
||||||
|
{
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getLevel()
|
||||||
|
{
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
public void setPrice(Long price)
|
||||||
|
{
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getPrice()
|
||||||
|
{
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.append("level", getLevel())
|
||||||
|
.append("price", getPrice())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ public class PayConfig {
|
||||||
//商户账户
|
//商户账户
|
||||||
public static String MCH_ID = "1646646755";
|
public static String MCH_ID = "1646646755";
|
||||||
//异步回调地址
|
//异步回调地址
|
||||||
public static String wechat_notify_url = "127.0.0.1";
|
public static String wechat_notify_url = "http://139.224.213.131:7008/pay/wechatNotify";
|
||||||
//商品描述
|
//商品描述
|
||||||
public static String body = "会员充值";
|
public static String body = "会员充值";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.ruoyi.app.domain.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.app.domain.AppOrder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppOrderVo extends AppOrder {
|
||||||
|
|
||||||
|
private String countPrice;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.ruoyi.app.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.app.domain.AppInform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 举报Mapper接口
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public interface AppInformMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询举报
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 举报
|
||||||
|
*/
|
||||||
|
public AppInform selectAppInformById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询举报列表
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 举报集合
|
||||||
|
*/
|
||||||
|
public List<AppInform> selectAppInformList(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertAppInform(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateAppInform(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除举报
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppInformById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除举报
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppInformByIds(Long[] ids);
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,9 @@ package com.ruoyi.app.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.app.domain.AppOrder;
|
import com.ruoyi.app.domain.AppOrder;
|
||||||
|
import com.ruoyi.app.domain.vo.AppOrderVo;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单Mapper接口
|
* 订单Mapper接口
|
||||||
|
|
@ -18,7 +21,7 @@ public interface AppOrderMapper
|
||||||
* @return 订单
|
* @return 订单
|
||||||
*/
|
*/
|
||||||
public AppOrder selectAppOrderById(Long id);
|
public AppOrder selectAppOrderById(Long id);
|
||||||
public AppOrder selectOneByOutTradeNo(String tradeNo);
|
public AppOrder selectOneByOutTradeNo(@Param("tradeNo") String tradeNo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询订单列表
|
* 查询订单列表
|
||||||
|
|
@ -59,4 +62,6 @@ public interface AppOrderMapper
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteAppOrderByIds(Long[] ids);
|
public int deleteAppOrderByIds(Long[] ids);
|
||||||
|
|
||||||
|
public AppOrderVo abcd();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.ruoyi.app.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.app.domain.AppVip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员信息Mapper接口
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public interface AppVipMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询会员信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 会员信息
|
||||||
|
*/
|
||||||
|
public AppVip selectAppVipById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员信息列表
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 会员信息集合
|
||||||
|
*/
|
||||||
|
public List<AppVip> selectAppVipList(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertAppVip(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateAppVip(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除会员信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppVipById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除会员信息
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppVipByIds(Long[] ids);
|
||||||
|
}
|
||||||
|
|
@ -41,7 +41,7 @@ public class AlipayService {
|
||||||
// 签名类型
|
// 签名类型
|
||||||
private static final String SIGN_TYPE = "RSA2";
|
private static final String SIGN_TYPE = "RSA2";
|
||||||
|
|
||||||
private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/test";
|
private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPayCallback";
|
||||||
|
|
||||||
private static final String SUBJECT = "订单充值";
|
private static final String SUBJECT = "订单充值";
|
||||||
|
|
||||||
|
|
@ -143,7 +143,7 @@ public class AlipayService {
|
||||||
request.setNotifyUrl(NOTIFY_URL);
|
request.setNotifyUrl(NOTIFY_URL);
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("out_trade_no" , orderNo);
|
jsonObject.put("out_trade_no" , orderNo);
|
||||||
jsonObject.put("total_amount",price);
|
jsonObject.put("total_amount","0.01");
|
||||||
jsonObject.put("subject","订单充值");
|
jsonObject.put("subject","订单充值");
|
||||||
request.setBizContent(jsonObject.toString());
|
request.setBizContent(jsonObject.toString());
|
||||||
// 3. 发起请求并处理响应
|
// 3. 发起请求并处理响应
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.ruoyi.app.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.app.domain.AppInform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 举报Service接口
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public interface IAppInformService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询举报
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 举报
|
||||||
|
*/
|
||||||
|
public AppInform selectAppInformById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询举报列表
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 举报集合
|
||||||
|
*/
|
||||||
|
public List<AppInform> selectAppInformList(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertAppInform(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateAppInform(AppInform appInform);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除举报
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的举报主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppInformByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除举报信息
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppInformById(Long id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
package com.ruoyi.app.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.app.domain.AppOrder;
|
||||||
|
import com.ruoyi.app.domain.vo.AppOrderVo;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单Service接口
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public interface IAppOrderService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询订单
|
||||||
|
*
|
||||||
|
* @param id 订单主键
|
||||||
|
* @return 订单
|
||||||
|
*/
|
||||||
|
public AppOrder selectAppOrderById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单列表
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 订单集合
|
||||||
|
*/
|
||||||
|
public List<AppOrderVo> selectAppOrderList(AppOrder appOrder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertAppOrder(AppOrder appOrder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateAppOrder(AppOrder appOrder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除订单
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的订单主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppOrderByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除订单信息
|
||||||
|
*
|
||||||
|
* @param id 订单主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppOrderById(Long id);
|
||||||
|
|
||||||
|
AppOrderVo abcd();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.ruoyi.app.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.app.domain.AppVip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员信息Service接口
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
public interface IAppVipService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询会员信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 会员信息
|
||||||
|
*/
|
||||||
|
public AppVip selectAppVipById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员信息列表
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 会员信息集合
|
||||||
|
*/
|
||||||
|
public List<AppVip> selectAppVipList(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertAppVip(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateAppVip(AppVip appVip);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除会员信息
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的会员信息主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppVipByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除会员信息信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteAppVipById(Long id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
package com.ruoyi.app.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.core.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.app.mapper.AppInformMapper;
|
||||||
|
import com.ruoyi.app.domain.AppInform;
|
||||||
|
import com.ruoyi.app.service.IAppInformService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 举报Service业务层处理
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AppInformServiceImpl implements IAppInformService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private AppInformMapper appInformMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询举报
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 举报
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppInform selectAppInformById(Long id)
|
||||||
|
{
|
||||||
|
return appInformMapper.selectAppInformById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询举报列表
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 举报
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<AppInform> selectAppInformList(AppInform appInform)
|
||||||
|
{
|
||||||
|
return appInformMapper.selectAppInformList(appInform);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertAppInform(AppInform appInform)
|
||||||
|
{
|
||||||
|
appInform.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return appInformMapper.insertAppInform(appInform);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改举报
|
||||||
|
*
|
||||||
|
* @param appInform 举报
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateAppInform(AppInform appInform)
|
||||||
|
{
|
||||||
|
appInform.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return appInformMapper.updateAppInform(appInform);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除举报
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的举报主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppInformByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return appInformMapper.deleteAppInformByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除举报信息
|
||||||
|
*
|
||||||
|
* @param id 举报主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppInformById(Long id)
|
||||||
|
{
|
||||||
|
return appInformMapper.deleteAppInformById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
package com.ruoyi.app.service.impl;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.ruoyi.app.domain.vo.AppOrderVo;
|
||||||
|
import com.ruoyi.common.core.utils.DateUtils;
|
||||||
|
import com.ruoyi.common.core.utils.bean.BeanUtils;
|
||||||
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.app.mapper.AppOrderMapper;
|
||||||
|
import com.ruoyi.app.domain.AppOrder;
|
||||||
|
import com.ruoyi.app.service.IAppOrderService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单Service业务层处理
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AppOrderServiceImpl implements IAppOrderService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private AppOrderMapper appOrderMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单
|
||||||
|
*
|
||||||
|
* @param id 订单主键
|
||||||
|
* @return 订单
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppOrder selectAppOrderById(Long id)
|
||||||
|
{
|
||||||
|
return appOrderMapper.selectAppOrderById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单列表
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 订单
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<AppOrderVo> selectAppOrderList(AppOrder appOrder)
|
||||||
|
{
|
||||||
|
if (appOrder.getPayTime() != null) {
|
||||||
|
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
appOrder.setPayTimeStr(sdf.format(appOrder.getPayTime()));
|
||||||
|
}
|
||||||
|
List<AppOrder> appOrders = appOrderMapper.selectAppOrderList(appOrder);
|
||||||
|
double sum = appOrders.stream().mapToDouble(ppOrder -> Double.parseDouble(ppOrder.getPrice())).sum();
|
||||||
|
List<AppOrderVo> orderVo = appOrders.stream().map(order -> {
|
||||||
|
AppOrderVo appOrderVo = new AppOrderVo();
|
||||||
|
BeanUtils.copyProperties(order, appOrderVo);
|
||||||
|
appOrderVo.setCountPrice(String.valueOf(sum));
|
||||||
|
return appOrderVo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
return orderVo;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertAppOrder(AppOrder appOrder)
|
||||||
|
{
|
||||||
|
appOrder.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return appOrderMapper.insertAppOrder(appOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单
|
||||||
|
*
|
||||||
|
* @param appOrder 订单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateAppOrder(AppOrder appOrder)
|
||||||
|
{
|
||||||
|
return appOrderMapper.updateAppOrder(appOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除订单
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的订单主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppOrderByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return appOrderMapper.deleteAppOrderByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除订单信息
|
||||||
|
*
|
||||||
|
* @param id 订单主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppOrderById(Long id)
|
||||||
|
{
|
||||||
|
return appOrderMapper.deleteAppOrderById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppOrderVo abcd() {
|
||||||
|
return appOrderMapper.abcd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -103,56 +103,108 @@ public class AppProvinceServiceImpl implements IAppProvinceService {
|
||||||
@Override
|
@Override
|
||||||
public List<AreaVo> selectAppProvinceTree() {
|
public List<AreaVo> selectAppProvinceTree() {
|
||||||
List<AppProvince> appProvinces = appProvinceMapper.selectAppProvinceList(null);
|
List<AppProvince> appProvinces = appProvinceMapper.selectAppProvinceList(null);
|
||||||
|
List<AreaVo> areaVos = new ArrayList<>();
|
||||||
|
|
||||||
List<AreaVo> collect = appProvinces.stream()
|
for (AppProvince appProvince : appProvinces) {
|
||||||
.map(appProvince -> {
|
AreaVo areaVo = new AreaVo();
|
||||||
AreaVo areaVo = new AreaVo();
|
areaVo.setId(appProvince.getId());
|
||||||
areaVo.setId(appProvince.getId());
|
areaVo.setName(appProvince.getName());
|
||||||
areaVo.setName(appProvince.getName());
|
areaVo.setLevel(1);
|
||||||
areaVo.setLevel(1);
|
areaVo.setIsLeaf(false);
|
||||||
areaVo.setIsLeaf(false);
|
List<AreaVo> list = new ArrayList<>();
|
||||||
|
List<AppCity> appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId());
|
||||||
List<AppCity> appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId());
|
boolean flag = true;
|
||||||
if (appCities == null || appCities.isEmpty()) {
|
for (AppCity appCity : appCities) {
|
||||||
return areaVo;
|
if (appCity.getName().equals(areaVo.getName())) {
|
||||||
|
List<AreaVo> vos = new ArrayList<>();
|
||||||
|
List<AppTown> appTowns = appTownMapper.getTownByCityId(appCity.getId());
|
||||||
|
for (AppTown appTown : appTowns) {
|
||||||
|
AreaVo townChild = new AreaVo();
|
||||||
|
townChild.setId(appTown.getId());
|
||||||
|
townChild.setName(appTown.getName());
|
||||||
|
townChild.setLevel(2);
|
||||||
|
townChild.setIsLeaf(true);
|
||||||
|
vos.add(townChild);
|
||||||
}
|
}
|
||||||
|
flag = false;
|
||||||
|
areaVo.setChildren(vos);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
flag = true;
|
||||||
|
AreaVo child = new AreaVo();
|
||||||
|
child.setId(appCity.getId());
|
||||||
|
child.setName(appCity.getName());
|
||||||
|
child.setLevel(2);
|
||||||
|
child.setIsLeaf(false);
|
||||||
|
List<AreaVo> vos = new ArrayList<>();
|
||||||
|
List<AppTown> appTowns = appTownMapper.getTownByCityId(appCity.getId());
|
||||||
|
for (AppTown appTown : appTowns) {
|
||||||
|
AreaVo townChild = new AreaVo();
|
||||||
|
townChild.setId(appTown.getId());
|
||||||
|
townChild.setName(appTown.getName());
|
||||||
|
townChild.setLevel(3);
|
||||||
|
townChild.setIsLeaf(true);
|
||||||
|
vos.add(townChild);
|
||||||
|
}
|
||||||
|
child.setChildren(vos);
|
||||||
|
list.add(child);
|
||||||
|
}
|
||||||
|
if (flag){
|
||||||
|
areaVo.setChildren(list);
|
||||||
|
}
|
||||||
|
areaVos.add(areaVo);
|
||||||
|
}
|
||||||
|
return areaVos;
|
||||||
|
|
||||||
List<AreaVo> children = appCities.stream()
|
// List<AreaVo> collect = appProvinces.stream()
|
||||||
.map(appCity -> {
|
// .map(appProvince -> {
|
||||||
AreaVo child = new AreaVo();
|
// AreaVo areaVo = new AreaVo();
|
||||||
child.setId(appCity.getId());
|
// areaVo.setId(appProvince.getId());
|
||||||
child.setName(appCity.getName());
|
// areaVo.setName(appProvince.getName());
|
||||||
child.setLevel(2);
|
// areaVo.setLevel(1);
|
||||||
child.setIsLeaf(false);
|
// areaVo.setIsLeaf(false);
|
||||||
|
//
|
||||||
List<AppTown> appTowns = appTownMapper.getTownByCityId(appCity.getId());
|
// List<AppCity> appCities = appCityMapper.selectAppCityListByProvinceId(appProvince.getId());
|
||||||
if (appTowns == null || appTowns.isEmpty()) {
|
// if (appCities == null || appCities.isEmpty()) {
|
||||||
return child;
|
// return areaVo;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
List<AreaVo> townChildren = appTowns.stream()
|
// List<AreaVo> children = appCities.stream()
|
||||||
// .filter(!appTown -> !appTown.getId().equals(appCity.getId())) // Filter out where child id is same as parent id
|
// .map(appCity -> {
|
||||||
.map(appTown -> {
|
// AreaVo child = new AreaVo();
|
||||||
AreaVo townChild = new AreaVo();
|
// child.setId(appCity.getId());
|
||||||
townChild.setId(appTown.getId());
|
// child.setName(appCity.getName());
|
||||||
townChild.setName(appTown.getName());
|
// child.setLevel(2);
|
||||||
townChild.setLevel(3);
|
// child.setIsLeaf(false);
|
||||||
townChild.setIsLeaf(true);
|
//
|
||||||
return townChild;
|
// List<AppTown> appTowns = appTownMapper.getTownByCityId(appCity.getId());
|
||||||
})
|
// if (appTowns == null || appTowns.isEmpty()) {
|
||||||
.collect(Collectors.toList());
|
// return child;
|
||||||
|
// }
|
||||||
child.setChildren(townChildren);
|
//
|
||||||
return child;
|
// List<AreaVo> townChildren = appTowns.stream()
|
||||||
})
|
//// .filter(!appTown -> !appTown.getId().equals(appCity.getId())) // Filter out where child id is same as parent id
|
||||||
.collect(Collectors.toList());
|
// .map(appTown -> {
|
||||||
|
// AreaVo townChild = new AreaVo();
|
||||||
areaVo.setChildren(children);
|
// townChild.setId(appTown.getId());
|
||||||
return areaVo;
|
// townChild.setName(appTown.getName());
|
||||||
})
|
// townChild.setLevel(3);
|
||||||
.collect(Collectors.toList());
|
// townChild.setIsLeaf(true);
|
||||||
|
// return townChild;
|
||||||
return collect;
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// child.setChildren(townChildren);
|
||||||
|
// return child;
|
||||||
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// areaVo.setChildren(children);
|
||||||
|
// return areaVo;
|
||||||
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// return collect;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
package com.ruoyi.app.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.core.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.app.mapper.AppVipMapper;
|
||||||
|
import com.ruoyi.app.domain.AppVip;
|
||||||
|
import com.ruoyi.app.service.IAppVipService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员信息Service业务层处理
|
||||||
|
*
|
||||||
|
* @author wyh
|
||||||
|
* @date 2024-05-15
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AppVipServiceImpl implements IAppVipService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private AppVipMapper appVipMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 会员信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppVip selectAppVipById(Long id)
|
||||||
|
{
|
||||||
|
return appVipMapper.selectAppVipById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询会员信息列表
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 会员信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<AppVip> selectAppVipList(AppVip appVip)
|
||||||
|
{
|
||||||
|
return appVipMapper.selectAppVipList(appVip);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertAppVip(AppVip appVip)
|
||||||
|
{
|
||||||
|
appVip.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return appVipMapper.insertAppVip(appVip);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改会员信息
|
||||||
|
*
|
||||||
|
* @param appVip 会员信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateAppVip(AppVip appVip)
|
||||||
|
{
|
||||||
|
appVip.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return appVipMapper.updateAppVip(appVip);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除会员信息
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的会员信息主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppVipByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return appVipMapper.deleteAppVipByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除会员信息信息
|
||||||
|
*
|
||||||
|
* @param id 会员信息主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteAppVipById(Long id)
|
||||||
|
{
|
||||||
|
return appVipMapper.deleteAppVipById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.app.mapper.AppInformMapper">
|
||||||
|
|
||||||
|
<resultMap type="AppInform" id="AppInformResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="content" column="content" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectAppInformVo">
|
||||||
|
select id, content, create_time, update_time, remark from app_inform
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectAppInformList" parameterType="AppInform" resultMap="AppInformResult">
|
||||||
|
<include refid="selectAppInformVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="content != null and content != ''"> and content = #{content}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAppInformById" parameterType="Long" resultMap="AppInformResult">
|
||||||
|
<include refid="selectAppInformVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertAppInform" parameterType="AppInform" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into app_inform
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="content != null">content,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="content != null">#{content},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateAppInform" parameterType="AppInform">
|
||||||
|
update app_inform
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="content != null">content = #{content},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteAppInformById" parameterType="Long">
|
||||||
|
delete from app_inform where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteAppInformByIds" parameterType="String">
|
||||||
|
delete from app_inform where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
|
|
@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<select id="selectAppOrderList" parameterType="AppOrder" resultMap="AppOrderResult">
|
<select id="selectAppOrderList" parameterType="AppOrder" resultMap="AppOrderResult">
|
||||||
<include refid="selectAppOrderVo"/>
|
<include refid="selectAppOrderVo"/>
|
||||||
<where>
|
<where>
|
||||||
<if test="outTradeNo != null and outTradeNo != ''"> and out_trade_no = #{outTradeNo}</if>
|
<if test="outTradeNo != null and outTradeNo != ''"> and out_trade_no = #{outTradeNo}</if>
|
||||||
<if test="appId != null and appId != ''"> and app_id = #{appId}</if>
|
<if test="appId != null and appId != ''"> and app_id = #{appId}</if>
|
||||||
<if test="userId != null "> and user_id = #{userId}</if>
|
<if test="userId != null "> and user_id = #{userId}</if>
|
||||||
|
|
@ -34,8 +34,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="tradeNo != null and tradeNo != ''"> and trade_no = #{tradeNo}</if>
|
<if test="tradeNo != null and tradeNo != ''"> and trade_no = #{tradeNo}</if>
|
||||||
<if test="price != null "> and price = #{price}</if>
|
<if test="price != null "> and price = #{price}</if>
|
||||||
<if test="mchId != null and mchId != ''"> and mch_id = #{mchId}</if>
|
<if test="mchId != null and mchId != ''"> and mch_id = #{mchId}</if>
|
||||||
<if test="payTime != null "> and pay_time = #{payTime}</if>
|
<if test="payTime != null "> and pay_time like concat (#{payTimeStr} , '%')</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectAppOrderById" parameterType="Long" resultMap="AppOrderResult">
|
<select id="selectAppOrderById" parameterType="Long" resultMap="AppOrderResult">
|
||||||
|
|
@ -43,9 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectOneByOutTradeNo" parameterType="Long" resultMap="AppOrderResult">
|
<select id="selectOneByOutTradeNo" parameterType="java.lang.String" resultMap="AppOrderResult">
|
||||||
<include refid="selectAppOrderVo"/>
|
<include refid="selectAppOrderVo"/>
|
||||||
where outTradeNo = #{tradeNo}
|
where out_trade_no = #{tradeNo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertAppOrder" parameterType="AppOrder" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertAppOrder" parameterType="AppOrder" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
|
@ -105,4 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<select id="abcd" resultType="AppOrderVo">
|
||||||
|
SELECT SUM(price) as countPrice FROM app_order WHERE DATE(pay_time) = CURDATE();
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectAppUserDynamicVo">
|
<sql id="selectAppUserDynamicVo">
|
||||||
select id, user_id, content, video_url, topic_id, address, privacy_status, remark, create_time, update_time, create_by, updateBy,is_top from app_user_dynamic
|
select id, user_id, content, video_url, topic_id, address, privacy_status, remark, create_time, update_time, create_by, updateBy,is_top ,city_id , province_id , townId from app_user_dynamic
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectAppUserDynamicList" parameterType="AppUserDynamic" resultMap="AppUserDynamicResult">
|
<select id="selectAppUserDynamicList" parameterType="AppUserDynamic" resultMap="AppUserDynamicResult">
|
||||||
|
|
@ -66,6 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="updateBy != null and updateBy != ''"> and a.updateBy = #{updateBy}</if>
|
<if test="updateBy != null and updateBy != ''"> and a.updateBy = #{updateBy}</if>
|
||||||
<if test="isTop != null "> and a.is_top = #{isTop}</if>
|
<if test="isTop != null "> and a.is_top = #{isTop}</if>
|
||||||
<if test="isMember != null "> and u.is_member = #{isMember}</if>
|
<if test="isMember != null "> and u.is_member = #{isMember}</if>
|
||||||
|
<if test="cityId != null "> and a.city_id = #{cityId}</if>
|
||||||
|
<if test="provinceId != null"> and a.province_id = #{provinceId}</if>
|
||||||
|
<if test="townId != null"> and a.town_id = #{townId}</if>
|
||||||
<if test="ids != null and ids.size() > 0">
|
<if test="ids != null and ids.size() > 0">
|
||||||
and a.id in
|
and a.id in
|
||||||
<foreach collection="ids" item="item" open="(" separator="," close=")">
|
<foreach collection="ids" item="item" open="(" separator="," close=")">
|
||||||
|
|
@ -73,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
order by a.is_top,a.create_time
|
order by a.is_top,a.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectAppUserDynamicById" parameterType="Long" resultMap="AppUserDynamicResult">
|
<select id="selectAppUserDynamicById" parameterType="Long" resultMap="AppUserDynamicResult">
|
||||||
|
|
@ -96,6 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="updateBy != null">updateBy,</if>
|
<if test="updateBy != null">updateBy,</if>
|
||||||
<if test="isTop != null">is_top,</if>
|
<if test="isTop != null">is_top,</if>
|
||||||
|
<if test="cityId != null">city_id,</if>
|
||||||
|
<if test="provinceId != null">province_id,</if>
|
||||||
|
<if test="townId != null">town_id,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="userId != null">#{userId},</if>
|
<if test="userId != null">#{userId},</if>
|
||||||
|
|
@ -110,6 +116,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
<if test="isTop != null">#{isTop},</if>
|
<if test="isTop != null">#{isTop},</if>
|
||||||
|
<if test="cityId != null">#{cityId},</if>
|
||||||
|
<if test="provinceId != null">#{provinceId},</if>
|
||||||
|
<if test="townId != null">#{townId},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.app.mapper.AppVipMapper">
|
||||||
|
|
||||||
|
<resultMap type="AppVip" id="AppVipResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
<result property="level" column="level" />
|
||||||
|
<result property="price" column="price" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectAppVipVo">
|
||||||
|
select id, create_time, update_time, remark, level, price from app_vip
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectAppVipList" parameterType="AppVip" resultMap="AppVipResult">
|
||||||
|
<include refid="selectAppVipVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="level != null "> and level = #{level}</if>
|
||||||
|
<if test="price != null "> and price = #{price}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAppVipById" parameterType="Long" resultMap="AppVipResult">
|
||||||
|
<include refid="selectAppVipVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertAppVip" parameterType="AppVip">
|
||||||
|
insert into app_vip
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
<if test="level != null">level,</if>
|
||||||
|
<if test="price != null">price,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
<if test="level != null">#{level},</if>
|
||||||
|
<if test="price != null">#{price},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateAppVip" parameterType="AppVip">
|
||||||
|
update app_vip
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="level != null">level = #{level},</if>
|
||||||
|
<if test="price != null">price = #{price},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteAppVipById" parameterType="Long">
|
||||||
|
delete from app_vip where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteAppVipByIds" parameterType="String">
|
||||||
|
delete from app_vip where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
|
||||||
|
export function generCode(num) {
|
||||||
|
return request({
|
||||||
|
url: '/app/pay/generateCode/' ,
|
||||||
|
method: 'get',
|
||||||
|
pararm: {num: num},
|
||||||
|
responseType: 'blob',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询举报列表
|
||||||
|
export function listInform(query) {
|
||||||
|
return request({
|
||||||
|
url: '/app/inform/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询举报详细
|
||||||
|
export function getInform(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/inform/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增举报
|
||||||
|
export function addInform(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/inform',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改举报
|
||||||
|
export function updateInform(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/inform',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除举报
|
||||||
|
export function delInform(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/inform/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
|
||||||
|
export function abcd() {
|
||||||
|
return request({
|
||||||
|
url: '/app/order/abcd',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询订单列表
|
||||||
|
export function listOrder(query) {
|
||||||
|
return request({
|
||||||
|
url: '/app/order/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询订单详细
|
||||||
|
export function getOrder(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/order/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增订单
|
||||||
|
export function addOrder(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/order',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改订单
|
||||||
|
export function updateOrder(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/order',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除订单
|
||||||
|
export function delOrder(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/order/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询会员信息列表
|
||||||
|
export function listVip(query) {
|
||||||
|
return request({
|
||||||
|
url: '/app/vip/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员信息详细
|
||||||
|
export function getVip(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/vip/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增会员信息
|
||||||
|
export function addVip(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/vip/add',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改会员信息
|
||||||
|
export function updateVip(data) {
|
||||||
|
return request({
|
||||||
|
url: '/app/vip',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除会员信息
|
||||||
|
export function delVip(id) {
|
||||||
|
return request({
|
||||||
|
url: '/app/vip/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -14,73 +14,73 @@
|
||||||
import {listDynamic, getDynamic, treeDynamic} from "@/api/app/dynamic";
|
import {listDynamic, getDynamic, treeDynamic} from "@/api/app/dynamic";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
// export default {
|
||||||
|
//
|
||||||
data() {
|
// data() {
|
||||||
return {
|
// return {
|
||||||
id: '',
|
// id: '',
|
||||||
// 遮罩层
|
// // 遮罩层
|
||||||
loading: true,
|
// loading: true,
|
||||||
// 选中数组
|
// // 选中数组
|
||||||
ids: [],
|
// ids: [],
|
||||||
// 非单个禁用
|
// // 非单个禁用
|
||||||
single: true,
|
// single: true,
|
||||||
// 非多个禁用
|
// // 非多个禁用
|
||||||
multiple: true,
|
// multiple: true,
|
||||||
// 显示搜索条件
|
// // 显示搜索条件
|
||||||
showSearch: true,
|
// showSearch: true,
|
||||||
// 总条数
|
// // 总条数
|
||||||
total: 0,
|
// total: 0,
|
||||||
// App用户动态表格数据
|
// // App用户动态表格数据
|
||||||
dynamicList: [],
|
// dynamicList: [],
|
||||||
// 弹出层标题
|
// // 弹出层标题
|
||||||
title: "",
|
// title: "",
|
||||||
// 是否显示弹出层
|
// // 是否显示弹出层
|
||||||
open: false,
|
// open: false,
|
||||||
|
//
|
||||||
|
//
|
||||||
created() {
|
// created() {
|
||||||
this.getList();
|
// this.getList();
|
||||||
this.getDynamic(this.id);
|
// this.getDynamic(this.id);
|
||||||
},
|
// },
|
||||||
|
//
|
||||||
mounted: function () {
|
// mounted: function () {
|
||||||
this.id = this.$route().params.dynamicId;
|
// this.id = this.$route().params.dynamicId;
|
||||||
},
|
// },
|
||||||
methods: {
|
// methods: {
|
||||||
|
//
|
||||||
getList() {
|
// getList() {
|
||||||
this.loading = true;
|
// this.loading = true;
|
||||||
listDynamic(this.queryParams).then(response => {
|
// listDynamic(this.queryParams).then(response => {
|
||||||
this.registerList = response.rows;
|
// this.registerList = response.rows;
|
||||||
this.total = response.total;
|
// this.total = response.total;
|
||||||
this.loading = false;
|
// this.loading = false;
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
handleDetail(row) {
|
// handleDetail(row) {
|
||||||
const id = row.id || row.ids;
|
// const id = row.id || row.ids;
|
||||||
|
//
|
||||||
this.$router.push({path: '/app/dynamic/detail'});
|
// this.$router.push({path: '/app/dynamic/detail'});
|
||||||
this.queryParams.dynamicId = id;
|
// this.queryParams.dynamicId = id;
|
||||||
|
//
|
||||||
treeDynamic(this.queryParams).then(response => {
|
// treeDynamic(this.queryParams).then(response => {
|
||||||
this.form = response.data;
|
// this.form = response.data;
|
||||||
this.open = true;
|
// this.open = true;
|
||||||
this.title = "App用户动态详情";
|
// this.title = "App用户动态详情";
|
||||||
|
//
|
||||||
// Access the data here
|
// // Access the data here
|
||||||
console.log(this.form); // Or use the data in any way you need
|
// console.log(this.form); // Or use the data in any way you need
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
getDynamic(id){
|
// getDynamic(id){
|
||||||
getDynamic(id).then(response => {
|
// getDynamic(id).then(response => {
|
||||||
console.log(response.data);
|
// console.log(response.data);
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listDynamic, getDynamic, delDynamic, addDynamic, updateDynamic , treeDynamic } from "@/api/app/dynamic";
|
import { listDynamic, getDynamic, delDynamic, addDynamic, updateDynamic } from "@/api/app/dynamic";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Dynamic",
|
name: "Dynamic",
|
||||||
|
|
@ -199,9 +199,6 @@ export default {
|
||||||
updateBy: null,
|
updateBy: null,
|
||||||
isTop: null
|
isTop: null
|
||||||
},
|
},
|
||||||
treeParam: {
|
|
||||||
dynamicId:''
|
|
||||||
},
|
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
|
|
@ -264,19 +261,8 @@ export default {
|
||||||
},
|
},
|
||||||
/** 详情按钮操作 跳转到新页面*/
|
/** 详情按钮操作 跳转到新页面*/
|
||||||
handleDetail(row) {
|
handleDetail(row) {
|
||||||
const id = row.id || row.ids;
|
const id = row.id || 0;
|
||||||
|
this.$router.push({path: '/dynamic/detail'+ id})
|
||||||
this.$router.push({path: '/app/dynamic/detail'});
|
|
||||||
this.queryParams.dynamicId = id;
|
|
||||||
treeDynamic(this.queryParams).then(response => {
|
|
||||||
this.form = response.data;
|
|
||||||
this.open = true;
|
|
||||||
this.title = "App用户动态详情";
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,245 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item>
|
||||||
|
<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
|
||||||
|
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- plain-->
|
||||||
|
<!-- icon="el-icon-plus"-->
|
||||||
|
<!-- size="mini"-->
|
||||||
|
<!-- @click="handleAdd"-->
|
||||||
|
<!-- v-hasPermi="['app:inform:add']"-->
|
||||||
|
<!-- >新增</el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- type="success"-->
|
||||||
|
<!-- plain-->
|
||||||
|
<!-- icon="el-icon-edit"-->
|
||||||
|
<!-- size="mini"-->
|
||||||
|
<!-- :disabled="single"-->
|
||||||
|
<!-- @click="handleUpdate"-->
|
||||||
|
<!-- v-hasPermi="['app:inform:edit']"-->
|
||||||
|
<!-- >修改</el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['app:inform:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['app:inform:export']"
|
||||||
|
>导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="informList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<!-- <el-table-column label="id" align="center" prop="id" />-->
|
||||||
|
<el-table-column label="举报时间" align="center" prop="createTime" />
|
||||||
|
<el-table-column label="举报内容" align="center" prop="content" />
|
||||||
|
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- size="mini"-->
|
||||||
|
<!-- type="text"-->
|
||||||
|
<!-- icon="el-icon-edit"-->
|
||||||
|
<!-- @click="handleUpdate(scope.row)"-->
|
||||||
|
<!-- v-hasPermi="['app:inform:edit']"-->
|
||||||
|
<!-- >修改</el-button>-->
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['app:inform:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改举报对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="举报内容">
|
||||||
|
<editor v-model="form.content" :min-height="192"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listInform, getInform, delInform, addInform, updateInform } from "@/api/app/inform";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Inform",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 举报表格数据
|
||||||
|
informList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
content: null,
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询举报列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listInform(this.queryParams).then(response => {
|
||||||
|
this.informList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
content: null,
|
||||||
|
createTime: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加举报";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getInform(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改举报";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateInform(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addInform(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除举报编号为"' + ids + '"的数据项?').then(function() {
|
||||||
|
return delInform(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('app/inform/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `inform_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,366 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-card class="box-card">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>今日收入总计</span>
|
||||||
|
</div>
|
||||||
|
<div v-model="sumCount"class="text item">
|
||||||
|
{{ sumCount + '元' }}
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" style="padding-top: 30px">
|
||||||
|
<el-form-item label="支付类型" prop="paySoure">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.paySoure"
|
||||||
|
placeholder="请输入支付类型"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
>
|
||||||
|
<el-option label="微信" value="1"></el-option>
|
||||||
|
<el-option label="支付宝" value="2"></el-option>
|
||||||
|
<el-option label="兑换码" value="3"></el-option>
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="支付时间" prop="payTime">
|
||||||
|
<el-date-picker clearable
|
||||||
|
v-model="queryParams.payTime"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择支付时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['app:order:add']"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['app:order:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['app:order:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['app:order:export']"
|
||||||
|
>导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="订单号" align="center" prop="outTradeNo" />
|
||||||
|
<el-table-column label="支付状态" align="center" prop="payStatus" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.payStatus == 1 ? '待付款' : scope.row.payStatus == 2 ? '已付款' : '' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="支付类型" align="center" prop="paySoure" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.paySoure == 1 ? '微信' : scope.row.paySoure == 2 ? '支付宝' : scope.row.paySoure == 3 ? '兑换码' : '' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="支付金额" align="center" prop="price" />
|
||||||
|
<el-table-column label="支付时间" align="center" prop="payTime" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.payTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['app:order:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['app:order:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改订单对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="订单号" prop="outTradeNo">
|
||||||
|
<el-input v-model="form.outTradeNo" placeholder="请输入订单号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="小程序id" prop="appId">
|
||||||
|
<el-input v-model="form.appId" placeholder="请输入小程序id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="${comment}" prop="userId">
|
||||||
|
<el-input v-model="form.userId" placeholder="请输入${comment}" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="支付类型: 1微信2支付宝3兑换码" prop="paySoure">
|
||||||
|
<el-input v-model="form.paySoure" placeholder="请输入支付类型: 1微信2支付宝3兑换码" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="微信订单号" prop="tradeNo">
|
||||||
|
<el-input v-model="form.tradeNo" placeholder="请输入微信订单号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="支付金额" prop="price">
|
||||||
|
<el-input v-model="form.price" placeholder="请输入支付金额" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="商户id" prop="mchId">
|
||||||
|
<el-input v-model="form.mchId" placeholder="请输入商户id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="支付时间" prop="payTime">
|
||||||
|
<el-date-picker clearable
|
||||||
|
v-model="form.payTime"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择支付时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listOrder, getOrder, delOrder, addOrder, updateOrder , abcd} from "@/api/app/order";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Order",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
sumCount :'',
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 订单表格数据
|
||||||
|
orderList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
outTradeNo: null,
|
||||||
|
appId: null,
|
||||||
|
userId: null,
|
||||||
|
payStatus: null,
|
||||||
|
paySoure: null,
|
||||||
|
tradeNo: null,
|
||||||
|
price: null,
|
||||||
|
mchId: null,
|
||||||
|
payTime: null,
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
outTradeNo: [
|
||||||
|
{ required: true, message: "订单号不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
payStatus: [
|
||||||
|
{ required: true, message: "支付状态: 1待付款 2:已付款不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.handleabcd();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询订单列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listOrder(this.queryParams).then(response => {
|
||||||
|
this.orderList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
outTradeNo: null,
|
||||||
|
appId: null,
|
||||||
|
userId: null,
|
||||||
|
payStatus: null,
|
||||||
|
paySoure: null,
|
||||||
|
tradeNo: null,
|
||||||
|
price: null,
|
||||||
|
mchId: null,
|
||||||
|
payTime: null,
|
||||||
|
createTime: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
handleabcd(){
|
||||||
|
abcd().then(response => {
|
||||||
|
console.log(response)
|
||||||
|
this.sumCount = response.data.countPrice
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加订单";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getOrder(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改订单";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateOrder(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addOrder(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除订单编号为"' + ids + '"的数据项?').then(function() {
|
||||||
|
return delOrder(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('app/order/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `order_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.text {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 25px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
center : 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
margin-bottom: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix:before,
|
||||||
|
.clearfix:after {
|
||||||
|
display: table;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.clearfix:after {
|
||||||
|
clear: both
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-card {
|
||||||
|
width: 220px;
|
||||||
|
background-color: lawngreen;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<el-input v-model="num" placeholder="请输入兑换码个数" style="width: 200px;" class="filter-item"/>
|
||||||
|
<el-button type="primary" @click="handleSend(num)">生成</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import {generCode} from '@/api/app/gener'
|
||||||
|
import {download} from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
num: 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleSend(num) {
|
||||||
|
|
||||||
|
|
||||||
|
download('/app/pay/generateCode' , {num: num}, '兑换码.xlsx');
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,277 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item label="会员级别" prop="level">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.level"
|
||||||
|
placeholder="请选择会员级别"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
>
|
||||||
|
<el-option label="7天试用" value="1"></el-option>
|
||||||
|
<el-option label="连续包月" value="2"></el-option>
|
||||||
|
<el-option label="连续包年" value="3"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="会员金额" prop="price">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.price"
|
||||||
|
placeholder="请输入会员金额"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['app:vip:add']"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['app:vip:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['app:vip:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['app:vip:export']"
|
||||||
|
>导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="vipList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="会员级别" align="center" prop="level" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag :type="scope.row.level === 1 ? 'primary' : scope.row.level === 2 ? 'warning' : scope.row.level === 3 ? 'success' : 'danger'">{{scope.row.level === 1 ? '7天试用' : scope.row.level === 2 ? '连续包月' : scope.row.level === 3 ? '连续包年' : '等级不存在'}}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="会员金额" align="center" prop="price" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{scope.row.price}}元</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['app:vip:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['app:vip:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改会员信息对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="会员级别" prop="level" width="500px">
|
||||||
|
<el-select v-model="form.level" placeholder="请输入会员级别">
|
||||||
|
<el-option label="7天试用" value="1"></el-option>
|
||||||
|
<el-option label="连续包月" value="2"></el-option>
|
||||||
|
<el-option label="连续包年" value="3"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="会员金额" prop="price">
|
||||||
|
<el-input v-model="form.price" placeholder="请输入会员金额(整数)" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listVip, getVip, delVip, addVip, updateVip } from "@/api/app/vip";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Vip",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 会员信息表格数据
|
||||||
|
vipList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
level: null,
|
||||||
|
price: null
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询会员信息列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listVip(this.queryParams).then(response => {
|
||||||
|
this.vipList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
createTime: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: null,
|
||||||
|
level: null,
|
||||||
|
price: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加会员信息";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getVip(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改会员信息";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateVip(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addVip(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除会员信息编号为"' + ids + '"的数据项?').then(function() {
|
||||||
|
return delVip(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('app/vip/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `vip_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
@ -1,912 +1,3 @@
|
||||||
<!--<template>-->
|
|
||||||
<!-- <div class="app-container home">-->
|
|
||||||
<!--<!– <el-row :gutter="20">–>-->
|
|
||||||
<!-- <el-col :sm="24" :lg="24">-->
|
|
||||||
<!-- <blockquote class="text-warning" style="font-size: 14px">-->
|
|
||||||
<!-- 领取阿里云通用云产品1888优惠券-->
|
|
||||||
<!-- <br />-->
|
|
||||||
<!-- <el-link-->
|
|
||||||
<!-- href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"-->
|
|
||||||
<!-- type="primary"-->
|
|
||||||
<!-- target="_blank"-->
|
|
||||||
<!-- >https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- <br />-->
|
|
||||||
<!-- 领取腾讯云通用云产品2860优惠券-->
|
|
||||||
<!-- <br />-->
|
|
||||||
<!-- <el-link-->
|
|
||||||
<!-- href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"-->
|
|
||||||
<!-- type="primary"-->
|
|
||||||
<!-- target="_blank"-->
|
|
||||||
<!-- >https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- <br />-->
|
|
||||||
<!-- 阿里云服务器折扣区-->
|
|
||||||
<!-- <el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"-->
|
|
||||||
<!-- >>☛☛点我进入☚☚</el-link-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- 腾讯云服务器秒杀区-->
|
|
||||||
<!-- <el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"-->
|
|
||||||
<!-- >>☛☛点我进入☚☚</el-link-->
|
|
||||||
<!-- ><br />-->
|
|
||||||
<!-- <h4 class="text-danger">-->
|
|
||||||
<!-- 云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)-->
|
|
||||||
<!-- </h4>-->
|
|
||||||
<!-- </blockquote>-->
|
|
||||||
|
|
||||||
<!-- <hr />-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- <el-row :gutter="20">-->
|
|
||||||
<!-- <el-col :sm="24" :lg="12" style="padding-left: 20px">-->
|
|
||||||
<!-- <h2>若依后台管理框架</h2>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <b>当前版本:</b> <span>v{{ version }}</span>-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <el-tag type="danger">¥免费开源</el-tag>-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <el-button-->
|
|
||||||
<!-- type="primary"-->
|
|
||||||
<!-- size="mini"-->
|
|
||||||
<!-- icon="el-icon-cloudy"-->
|
|
||||||
<!-- plain-->
|
|
||||||
<!-- @click="goTarget('https://gitee.com/y_project/RuoYi-Cloud')"-->
|
|
||||||
<!-- >访问码云</el-button-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- <el-button-->
|
|
||||||
<!-- size="mini"-->
|
|
||||||
<!-- icon="el-icon-s-home"-->
|
|
||||||
<!-- plain-->
|
|
||||||
<!-- @click="goTarget('http://ruoyi.vip')"-->
|
|
||||||
<!-- >访问主页</el-button-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
|
|
||||||
<!-- <el-col :sm="24" :lg="12" style="padding-left: 50px">-->
|
|
||||||
<!-- <el-row>-->
|
|
||||||
<!-- <el-col :span="12">-->
|
|
||||||
<!-- <h2>技术选型</h2>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- <el-row>-->
|
|
||||||
<!-- <el-col :span="6">-->
|
|
||||||
<!-- <h4>后端技术</h4>-->
|
|
||||||
<!-- <ul>-->
|
|
||||||
<!-- <li>SpringBoot</li>-->
|
|
||||||
<!-- <li>SpringCloud</li>-->
|
|
||||||
<!-- <li>Nacos</li>-->
|
|
||||||
<!-- <li>Sentinel</li>-->
|
|
||||||
<!-- <li>Seata</li>-->
|
|
||||||
<!-- <li>Minio</li>-->
|
|
||||||
<!-- <li>...</li>-->
|
|
||||||
<!-- </ul>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- <el-col :span="6">-->
|
|
||||||
<!-- <h4>前端技术</h4>-->
|
|
||||||
<!-- <ul>-->
|
|
||||||
<!-- <li>Vue</li>-->
|
|
||||||
<!-- <li>Vuex</li>-->
|
|
||||||
<!-- <li>Element-ui</li>-->
|
|
||||||
<!-- <li>Axios</li>-->
|
|
||||||
<!-- <li>Echarts</li>-->
|
|
||||||
<!-- <li>Quill</li>-->
|
|
||||||
<!-- <li>...</li>-->
|
|
||||||
<!-- </ul>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- <el-divider />-->
|
|
||||||
<!-- <el-row :gutter="20">-->
|
|
||||||
<!-- <el-col :xs="24" :sm="24" :md="12" :lg="8">-->
|
|
||||||
<!-- <el-card class="update-log">-->
|
|
||||||
<!-- <div slot="header" class="clearfix">-->
|
|
||||||
<!-- <span>联系信息</span>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="body">-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <i class="el-icon-s-promotion"></i> 官网:<el-link-->
|
|
||||||
<!-- href="http://www.ruoyi.vip"-->
|
|
||||||
<!-- target="_blank"-->
|
|
||||||
<!-- >http://www.ruoyi.vip</el-link-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <i class="el-icon-user-solid"></i> QQ群: <s> 满42799195 </s> <s> 满170157040 </s>-->
|
|
||||||
<!-- <s> 满130643120 </s> <s> 满225920371 </s> <s> 满201705537 </s> <s> 满236543183 </s>-->
|
|
||||||
<!-- <s> 满213618602 </s> <s> 满148794840 </s> <s> 满118752664 </s> <s> 满101038945 </s>-->
|
|
||||||
<!-- <s> 满128355254 </s> <a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=irnwcXhbLOQEv1g-TwGifjNTA_f4wZiA&authKey=4bpzEwhcUY%2FvsPDHvzYn6xfoS%2FtOArvZ%2BGXzfr7O0%2FEqLfkKA%2BuCDXlzHIFg8t93&noverify=0&group_code=179219821" target="_blank">179219821</a>-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <i class="el-icon-chat-dot-round"></i> 微信:<a-->
|
|
||||||
<!-- href="javascript:;"-->
|
|
||||||
<!-- >/ *若依</a-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- <p>-->
|
|
||||||
<!-- <i class="el-icon-money"></i> 支付宝:<a-->
|
|
||||||
<!-- href="javascript:;"-->
|
|
||||||
<!-- class="支付宝信息"-->
|
|
||||||
<!-- >/ *若依</a-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </p>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </el-card>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- <el-col :xs="24" :sm="24" :md="12" :lg="8">-->
|
|
||||||
<!-- <el-card class="update-log">-->
|
|
||||||
<!-- <div slot="header" class="clearfix">-->
|
|
||||||
<!-- <span>更新日志</span>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <el-collapse accordion>-->
|
|
||||||
<!-- <el-collapse-item title="v3.6.4 - 2024-04-01">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>全局数据存储用户编号</li>-->
|
|
||||||
<!-- <li>用户密码新增非法字符验证</li>-->
|
|
||||||
<!-- <li>代码生成支持选择前端模板类型</li>-->
|
|
||||||
<!-- <li>操作日志列表新增IP地址查询</li>-->
|
|
||||||
<!-- <li>显隐列组件支持复选框弹出类型</li>-->
|
|
||||||
<!-- <li>Excel注解ColumnType类型新增文本</li>-->
|
|
||||||
<!-- <li>Excel自定义数据处理器增加单元格/工作簿对象</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.14</li>-->
|
|
||||||
<!-- <li>升级compression-webpack-plugin到6.1.2以兼容node18+</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本1.2.20</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版2.0.43</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版2.0.0</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本4.2.0</li>-->
|
|
||||||
<!-- <li>升级commons.io到最新版本2.13.0</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.7.18</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.7.15</li>-->
|
|
||||||
<!-- <li>升级transmittable-thread-local到最新版本2.14.4</li>-->
|
|
||||||
<!-- <li>修复五级路由缓存无效问题</li>-->
|
|
||||||
<!-- <li>修复外链带端口出现的异常</li>-->
|
|
||||||
<!-- <li>修复内链iframe没有传递参数问题</li>-->
|
|
||||||
<!-- <li>修复自定义字典样式不生效的问题</li>-->
|
|
||||||
<!-- <li>修复字典缓存删除方法参数错误问题</li>-->
|
|
||||||
<!-- <li>修复Excel导入数据临时文件无法删除问题</li>-->
|
|
||||||
<!-- <li>修复未登录带参数访问成功后参数丢失问题</li>-->
|
|
||||||
<!-- <li>修复HeaderSearch组件跳转query参数丢失问题</li>-->
|
|
||||||
<!-- <li>修复数据字典列表页重置后标签值无法输入问题</li>-->
|
|
||||||
<!-- <li>修复Excels导入时无法获取到readConverterExp内容转表达式问题</li>-->
|
|
||||||
<!-- <li>优化Xss注解匹配方式</li>-->
|
|
||||||
<!-- <li>优化权限字符匹配方式</li>-->
|
|
||||||
<!-- <li>优化下载zip方法新增遮罩层</li>-->
|
|
||||||
<!-- <li>优化头像上传参数新增文件名称</li>-->
|
|
||||||
<!-- <li>优化字典标签支持自定义分隔符</li>-->
|
|
||||||
<!-- <li>优化定时任务白名单配置范围缩小</li>-->
|
|
||||||
<!-- <li>优化菜单管理类型为按钮状态可选</li>-->
|
|
||||||
<!-- <li>优化前端防重复提交数据大小限制</li>-->
|
|
||||||
<!-- <li>优化TopNav菜单没有图标svg不显示</li>-->
|
|
||||||
<!-- <li>优化富文本Editor组件检验图片格式</li>-->
|
|
||||||
<!-- <li>优化数字金额大写转换精度丢失问题</li>-->
|
|
||||||
<!-- <li>优化个人中心/基本资料修改时数据显示问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.6.3 - 2023-07-07">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>支持登录IP黑名单限制</li>-->
|
|
||||||
<!-- <li>操作日志新增消耗时间属性</li>-->
|
|
||||||
<!-- <li>屏蔽定时任务bean违规的字符</li>-->
|
|
||||||
<!-- <li>日志管理使用索引提升查询性能</li>-->
|
|
||||||
<!-- <li>日志注解支持排除指定的请求参数</li>-->
|
|
||||||
<!-- <li>支持自定义隐藏属性列过滤子对象</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.7.13</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.8</li>-->
|
|
||||||
<!-- <li>升级spring-cloud-alibaba到最新版2021.0.5.0</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本1.2.16</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版2.0.34</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.7</li>-->
|
|
||||||
<!-- <li>升级transmittable-thread-local到最新版本2.14.3</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.13</li>-->
|
|
||||||
<!-- <li>移除apache/commons-fileupload依赖</li>-->
|
|
||||||
<!-- <li>修复页面切换时布局错乱的问题</li>-->
|
|
||||||
<!-- <li>修复用户多角色数据权限可能出现权限抬升的情况</li>-->
|
|
||||||
<!-- <li>修复导入用户时无法更新存在用户数据的问题</li>-->
|
|
||||||
<!-- <li>修复开启TopNav后一级菜单路由参数设置无效问题</li>-->
|
|
||||||
<!-- <li>优化文件下载出现的异常</li>-->
|
|
||||||
<!-- <li>优化选择图标组件高亮回显</li>-->
|
|
||||||
<!-- <li>优化修改密码日志存储明文问题</li>-->
|
|
||||||
<!-- <li>优化排序属性orderBy参数限制长度</li>-->
|
|
||||||
<!-- <li>优化页签栏关闭其他出现的异常问题</li>-->
|
|
||||||
<!-- <li>优化页签关闭左侧选项排除首页选项</li>-->
|
|
||||||
<!-- <li>优化关闭当前tab页跳转最右侧tab页</li>-->
|
|
||||||
<!-- <li>优化文件上传服务关闭InputStream</li>-->
|
|
||||||
<!-- <li>优化页签在Firefox浏览器被遮挡的问题</li>-->
|
|
||||||
<!-- <li>优化侧边栏的平台标题与VUE_APP_TITLE保持同步</li>-->
|
|
||||||
<!-- <li>优化DictTag组件value没有匹配的值时则展示value</li>-->
|
|
||||||
<!-- <li>优化去除@EnableCustomSwagger注解后会启动失败问题</li>-->
|
|
||||||
<!-- <li>优化upload接口在文件过大和文件名过长的情况返回提示信息</li>-->
|
|
||||||
<!-- <li>优化异步保存日志发生报错不进RemoteLogFallbackFactory问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.6.2 - 2023-01-16">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>重置时取消部门选中</li>-->
|
|
||||||
<!-- <li>新增返回警告消息提示</li>-->
|
|
||||||
<!-- <li>忽略不必要的属性数据返回</li>-->
|
|
||||||
<!-- <li>修改参数键名时移除前缓存配置</li>-->
|
|
||||||
<!-- <li>开启TopNav没有子菜单隐藏侧边栏</li>-->
|
|
||||||
<!-- <li>删除fuse无效选项maxPatternLength</li>-->
|
|
||||||
<!-- <li>兼容Excel下拉框内容过多无法显示的问题</li>-->
|
|
||||||
<!-- <li>修复文件上传组件格式验证问题</li>-->
|
|
||||||
<!-- <li>修复回显数据字典数组异常问题</li>-->
|
|
||||||
<!-- <li>修复sheet超出最大行数异常问题</li>-->
|
|
||||||
<!-- <li>修复Log注解GET请求记录不到参数问题</li>-->
|
|
||||||
<!-- <li>修复gateway流控规则生效但不显示问题</li>-->
|
|
||||||
<!-- <li>修复主题颜色在Drawer组件不会加载问题</li>-->
|
|
||||||
<!-- <li>修复调度日志点击多次数据不变化的问题</li>-->
|
|
||||||
<!-- <li>修复用户编辑时角色和部门存在无法修改情况</li>-->
|
|
||||||
<!-- <li>修复使用透明底png图片时,自动填充黑色背景</li>-->
|
|
||||||
<!-- <li>修复table中更多按钮切换主题色未生效修复问题</li>-->
|
|
||||||
<!-- <li>修复某些特性的环境生成代码变乱码TXT文件问题</li>-->
|
|
||||||
<!-- <li>修复代码生成图片/文件/单选时选择必填无法校验问题</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.5</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.7.7</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.7.10</li>-->
|
|
||||||
<!-- <li>升级kaptcha到最新版2.3.3</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本1.2.15</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版2.0.22</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.6</li>-->
|
|
||||||
<!-- <li>升级transmittable-thread-local到最新版本2.14.2</li>-->
|
|
||||||
<!-- <li>升级echarts到最新版本5.4.0</li>-->
|
|
||||||
<!-- <li>升级core-js到最新版本3.25.3</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.12</li>-->
|
|
||||||
<!-- <li>移除commons-collections多余的依赖</li>-->
|
|
||||||
<!-- <li>优化弹窗内容过多展示不全问题</li>-->
|
|
||||||
<!-- <li>优化导出对象的子列表为空会出现[]问题</li>-->
|
|
||||||
<!-- <li>优化字符未使用下划线不进行驼峰式处理</li>-->
|
|
||||||
<!-- <li>优化nacos修改xss开关时同步过滤器验证</li>-->
|
|
||||||
<!-- <li>优化修改头像在小屏幕上页面布局错位的问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.6.1 - 2022-10-01">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>数据逻辑删除不进行唯一验证</li>-->
|
|
||||||
<!-- <li>支持多权限字符匹配角色数据权限</li>-->
|
|
||||||
<!-- <li>页面内嵌iframe切换tab不刷新数据</li>-->
|
|
||||||
<!-- <li>新增密码最大错误次数/锁定时间</li>-->
|
|
||||||
<!-- <li>登录日志新增解锁账户功能</li>-->
|
|
||||||
<!-- <li>通用下载方法新增config配置选项</li>-->
|
|
||||||
<!-- <li>操作日志记录支持排除敏感属性字段</li>-->
|
|
||||||
<!-- <li>Excel注解支持导出对象的子列表方法</li>-->
|
|
||||||
<!-- <li>Excel注解支持自定义隐藏属性列</li>-->
|
|
||||||
<!-- <li>Excel注解支持backgroundColor属性设置背景色</li>-->
|
|
||||||
<!-- <li>升级spring-cloud-alibaba到最新版2021.0.4.0</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.4</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.7.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.7.5</li>-->
|
|
||||||
<!-- <li>升级seata到最新版1.5.2</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本1.2.12</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版2.0.14</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.5</li>-->
|
|
||||||
<!-- <li>升级core-js到最新版本3.25.2</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本3.5.2</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.10</li>-->
|
|
||||||
<!-- <li>修复多文件上传报错出现的异常问题</li>-->
|
|
||||||
<!-- <li>修复图片预览组件src属性为null值控制台报错问题</li>-->
|
|
||||||
<!-- <li>修复使用FastDFS上传头像失败提示文件名没有后缀问题</li>-->
|
|
||||||
<!-- <li>优化seata单独依赖模块</li>-->
|
|
||||||
<!-- <li>优化任务过期不执行调度</li>-->
|
|
||||||
<!-- <li>优化字典数据使用store存取</li>-->
|
|
||||||
<!-- <li>优化代码生成同步后值NULL问题</li>-->
|
|
||||||
<!-- <li>优化定时任务支持执行父类方法</li>-->
|
|
||||||
<!-- <li>优化修改资料头像被覆盖的问题</li>-->
|
|
||||||
<!-- <li>优化修改用户登录账号重复验证</li>-->
|
|
||||||
<!-- <li>优化用户个人信息接口防止修改部门</li>-->
|
|
||||||
<!-- <li>优化布局设置使用el-drawer抽屉显示</li>-->
|
|
||||||
<!-- <li>优化日志注解记录限制请求地址的长度</li>-->
|
|
||||||
<!-- <li>优化导入更新用户数据前校验数据权限</li>-->
|
|
||||||
<!-- <li>优化excel/scale属性导出单元格数值类型</li>-->
|
|
||||||
<!-- <li>优化日志操作中重置按钮时重复查询的问题</li>-->
|
|
||||||
<!-- <li>优化多个相同角色数据导致权限SQL重复问题</li>-->
|
|
||||||
<!-- <li>优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出)</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.6.0 - 2022-07-16">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>Excel注解支持color字体颜色</li>-->
|
|
||||||
<!-- <li>用户头像上传限制只能为图片格式</li>-->
|
|
||||||
<!-- <li>检查定时任务bean所在包名是否为白名单配置</li>-->
|
|
||||||
<!-- <li>字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)</li>-->
|
|
||||||
<!-- <li>升级spring-cloud-alibaba到最新版2021.0.1.0</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.7.1</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.7.2</li>-->
|
|
||||||
<!-- <li>升级seata到最新版1.5.1</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.3</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本3.5.1</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版2.0.9</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本1.2.11</li>-->
|
|
||||||
<!-- <li>升级transmittable-thread-local到最新版本2.13.2</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.9</li>-->
|
|
||||||
<!-- <li>修复字典数据显示不全问题</li>-->
|
|
||||||
<!-- <li>修复操作日志查询类型条件为0时会查到所有数据</li>-->
|
|
||||||
<!-- <li>优化验证码开关变量名</li>-->
|
|
||||||
<!-- <li>优化设置分页参数默认值</li>-->
|
|
||||||
<!-- <li>优化对空字符串参数处理的过滤</li>-->
|
|
||||||
<!-- <li>优化Maven使用阿里云镜像站加速</li>-->
|
|
||||||
<!-- <li>优化用户列表查询不显示密码字段</li>-->
|
|
||||||
<!-- <li>优化表单构建按钮不显示正则校验</li>-->
|
|
||||||
<!-- <li>优化字典类型删除多余的mapper注解</li>-->
|
|
||||||
<!-- <li>优化字典数据回显样式下拉框显示值</li>-->
|
|
||||||
<!-- <li>优化用户管理左侧树型组件增加选中高亮保持</li>-->
|
|
||||||
<!-- <li>优化新增用户与角色信息&用户与岗位信息逻辑</li>-->
|
|
||||||
<!-- <li>优化数据监控Spring Security权限认证过时代码</li>-->
|
|
||||||
<!-- <li>优化岗位长主键溢出问题将查询返回类型改为Long</li>-->
|
|
||||||
<!-- <li>优化删除无用admin-client依赖声明,避免造成误解</li>-->
|
|
||||||
<!-- <li>优化默认不启用压缩文件缓存防止node_modules过大</li>-->
|
|
||||||
<!-- <li>优化获取body请求数据缓存过滤器CacheRequestFilter</li>-->
|
|
||||||
<!-- <li>优化网关通过注解解决循环引用及Bean重复问题删除allow配置</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.5.0 - 2022-04-11">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>开启TopNav没有子菜单情况隐藏侧边栏</li>-->
|
|
||||||
<!-- <li>侧边栏菜单名称过长悬停显示标题</li>-->
|
|
||||||
<!-- <li>用户访问控制时校验数据权限,防止越权</li>-->
|
|
||||||
<!-- <li>导出Excel时屏蔽公式,防止CSV注入风险</li>-->
|
|
||||||
<!-- <li>组件ImageUpload支持多图同时选择上传</li>-->
|
|
||||||
<!-- <li>组件FileUpload支持多文件同时选择上传</li>-->
|
|
||||||
<!-- <li>代码生成树表新增(展开/折叠)</li>-->
|
|
||||||
<!-- <li>代码生成子表支持日期/字典配置</li>-->
|
|
||||||
<!-- <li>代码生成编辑修改打开新页签</li>-->
|
|
||||||
<!-- <li>添加页签openPage支持传递参数</li>-->
|
|
||||||
<!-- <li>添加清理分页的线程变量方法</li>-->
|
|
||||||
<!-- <li>修改npm即将过期的注册源地址</li>-->
|
|
||||||
<!-- <li>用户缓存信息添加部门ancestors祖级列表</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.1</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.6.6</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.6.6</li>-->
|
|
||||||
<!-- <li>升级spring-boot-mybatis到最新版2.2.2</li>-->
|
|
||||||
<!-- <li>降级jsencrypt版本兼容IE浏览器</li>-->
|
|
||||||
<!-- <li>修复分页组件请求两次问题</li>-->
|
|
||||||
<!-- <li>修复表单清除元素位置未垂直居中问题</li>-->
|
|
||||||
<!-- <li>修复Excel注解prompt/combo同时使用不生效问题</li>-->
|
|
||||||
<!-- <li>修复导入Excel时字典字段类型为Long转义为空问题</li>-->
|
|
||||||
<!-- <li>修复登录超时刷新页面跳转登录页面还提示重新登录问题</li>-->
|
|
||||||
<!-- <li>修复Xss注解字段值为空时的异常问题</li>-->
|
|
||||||
<!-- <li>优化IP地址获取到多个的问题</li>-->
|
|
||||||
<!-- <li>优化文件上传兼容Weblogic环境</li>-->
|
|
||||||
<!-- <li>代码生成同步保留必填/类型选项</li>-->
|
|
||||||
<!-- <li>优化Excel格式化不同类型的日期对象</li>-->
|
|
||||||
<!-- <li>优化菜单表关键字导致的插件报错问题</li>-->
|
|
||||||
<!-- <li>优化Oracle用户头像列为空时不显示问题</li>-->
|
|
||||||
<!-- <li>优化页面若未匹配到字典标签则返回原字典值</li>-->
|
|
||||||
<!-- <li>优化修复登录失效后多次请求提示多次弹窗问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.4.0 - 2022-01-24">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>新增Vue3前端代码生成模板</li>-->
|
|
||||||
<!-- <li>新增图片预览组件</li>-->
|
|
||||||
<!-- <li>新增压缩插件实现打包Gzip</li>-->
|
|
||||||
<!-- <li>新增docker一键复制的脚本</li>-->
|
|
||||||
<!-- <li>自定义xss校验注解实现</li>-->
|
|
||||||
<!-- <li>路由支持单独配置菜单或角色权限</li>-->
|
|
||||||
<!-- <li>前端支持设置是否需要防止数据重复提交</li>-->
|
|
||||||
<!-- <li>预览组件支持多图显示</li>-->
|
|
||||||
<!-- <li>代码生成列表图片支持预览</li>-->
|
|
||||||
<!-- <li>代码生成新增Java类型Boolean</li>-->
|
|
||||||
<!-- <li>定时任务目标字符串过滤特殊字符</li>-->
|
|
||||||
<!-- <li>定时任务目标字符串验证包名白名单</li>-->
|
|
||||||
<!-- <li>升级nacos到最新版2.0.4</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到最新版2021.0.0</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.6.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.6.1</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.1</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.79</li>-->
|
|
||||||
<!-- <li>SQL工具类新增检查关键字方法</li>-->
|
|
||||||
<!-- <li>修复打包后字体图标偶现的乱码问题</li>-->
|
|
||||||
<!-- <li>修复版本差异导致的懒加载报错问题</li>-->
|
|
||||||
<!-- <li>修复选项卡点击右键刷新丢失参数问题</li>-->
|
|
||||||
<!-- <li>修复登录失效后多次请求提示多次弹窗问题</li>-->
|
|
||||||
<!-- <li>优化加载字典缓存数据</li>-->
|
|
||||||
<!-- <li>优化代码生成同步更新字段</li>-->
|
|
||||||
<!-- <li>优化代码生成字典组重复问题</li>-->
|
|
||||||
<!-- <li>优化空值不进行回显数据字典</li>-->
|
|
||||||
<!-- <li>优化用户导入提示溢出则显示滚动条</li>-->
|
|
||||||
<!-- <li>优化定时任务cron表达式小时设置24</li>-->
|
|
||||||
<!-- <li>优化部门修改缩放后出现的错位问题</li>-->
|
|
||||||
<!-- <li>优化分页方法设置成通用方便灵活调用</li>-->
|
|
||||||
<!-- <li>优化用户管理部门查询选择节点后分页参数初始</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.3.0 - 2021-12-13">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>新增配套并同步的Vue3前端版本</li>-->
|
|
||||||
<!-- <li>新增认证对象简化权限验证</li>-->
|
|
||||||
<!-- <li>新增tab对象简化页签操作</li>-->
|
|
||||||
<!-- <li>修改获取缓存信息方式</li>-->
|
|
||||||
<!-- <li>修改权限认证注解实现</li>-->
|
|
||||||
<!-- <li>自定义文字复制剪贴指令</li>-->
|
|
||||||
<!-- <li>升级axios到最新版本0.24.0</li>-->
|
|
||||||
<!-- <li>升级core-js到最新版本3.19.1</li>-->
|
|
||||||
<!-- <li>升级jsencrypt到最新版本3.2.1</li>-->
|
|
||||||
<!-- <li>升级js-cookie到最新版本3.0.1</li>-->
|
|
||||||
<!-- <li>升级clipboard到最新版本2.0.8</li>-->
|
|
||||||
<!-- <li>升级velocity到最新版本2.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.5.6</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.5.4</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本3.5.0</li>-->
|
|
||||||
<!-- <li>代码生成预览支持复制内容</li>-->
|
|
||||||
<!-- <li>修复五级以上菜单出现的404问题</li>-->
|
|
||||||
<!-- <li>生产环境使用路由懒加载提升页面响应速度</li>-->
|
|
||||||
<!-- <li>任务屏蔽违规字符&参数忽略双引号中的逗号</li>-->
|
|
||||||
<!-- <li>优化用户个人信息接口防止修改用户名</li>-->
|
|
||||||
<!-- <li>优化登录/验证码请求headers不设置token</li>-->
|
|
||||||
<!-- <li>优化注册成功提示消息类型success</li>-->
|
|
||||||
<!-- <li>优化下载解析blob响应是否登录失效</li>-->
|
|
||||||
<!-- <li>修复字符串无法被反转义问题</li>-->
|
|
||||||
<!-- <li>修复响应体过大出现的乱码问题</li>-->
|
|
||||||
<!-- <li>修复回显数据字典组的键值错误</li>-->
|
|
||||||
<!-- <li>修复代码生成复选框字典遗漏问题</li>-->
|
|
||||||
<!-- <li>修复代码生成模板主子表删除缺少事务</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.2.0 - 2021-10-12">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>菜单管理支持配置路由参数</li>-->
|
|
||||||
<!-- <li>定时任务支持在线生成cron表达式</li>-->
|
|
||||||
<!-- <li>自定义弹层溢出滚动样式</li>-->
|
|
||||||
<!-- <li>自定义可拖动弹窗宽度指令</li>-->
|
|
||||||
<!-- <li>自定义可拖动弹窗高度指令</li>-->
|
|
||||||
<!-- <li>修改时检查用户数据权限范围</li>-->
|
|
||||||
<!-- <li>修复保存配置主题颜色失效问题</li>-->
|
|
||||||
<!-- <li>新增暗色菜单风格主题</li>-->
|
|
||||||
<!-- <li>菜单&部门新增展开/折叠功能</li>-->
|
|
||||||
<!-- <li>页签新增关闭左侧&添加图标</li>-->
|
|
||||||
<!-- <li>代码生成主子表多选行数据</li>-->
|
|
||||||
<!-- <li>日期范围支持添加多组</li>-->
|
|
||||||
<!-- <li>Excel导入支持@Excels注解</li>-->
|
|
||||||
<!-- <li>Excel注解支持导入导出标题信息</li>-->
|
|
||||||
<!-- <li>Excel注解支持自定义数据处理器</li>-->
|
|
||||||
<!-- <li>日志注解新增是否保存响应参数</li>-->
|
|
||||||
<!-- <li>定时任务对检查异常进行事务回滚</li>-->
|
|
||||||
<!-- <li>补充定时任务表字段注释</li>-->
|
|
||||||
<!-- <li>定时任务屏蔽ldap远程调用</li>-->
|
|
||||||
<!-- <li>新增通用方法简化下载使用</li>-->
|
|
||||||
<!-- <li>新增通用方法简化模态/缓存使用</li>-->
|
|
||||||
<!-- <li>新增data-dict组件简化数据字典使用</li>-->
|
|
||||||
<!-- <li>禁用dict-tag组件的渐变动画</li>-->
|
|
||||||
<!-- <li>默认首页使用keep-alive缓存</li>-->
|
|
||||||
<!-- <li>升级springcloud到最新版2020.0.4</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.5.5</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.5.2</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.4.0</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.78</li>-->
|
|
||||||
<!-- <li>升级druid到最新版1.2.8</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.6</li>-->
|
|
||||||
<!-- <li>升级sass-loader到最新版本10.1.1</li>-->
|
|
||||||
<!-- <li>升级dart-sass到版本1.32.13</li>-->
|
|
||||||
<!-- <li>升级file-saver到最新版本2.0.5</li>-->
|
|
||||||
<!-- <li>优化异常处理信息</li>-->
|
|
||||||
<!-- <li>验证码默认20s超时</li>-->
|
|
||||||
<!-- <li>优化代码生成导入表按创建时间排序</li>-->
|
|
||||||
<!-- <li>优化代码生成点击预览重置激活tab</li>-->
|
|
||||||
<!-- <li>修复主子表代码模板方法名错误问题</li>-->
|
|
||||||
<!-- <li>修复xss过滤后格式出现的异常</li>-->
|
|
||||||
<!-- <li>修复多图组件验证失败被删除问题</li>-->
|
|
||||||
<!-- <li>请求参数新增reasonable分页合理化属性</li>-->
|
|
||||||
<!-- <li>修复代码生成页面数据编辑保存之后总是跳转第一页的问题</li>-->
|
|
||||||
<!-- <li>修复带safari浏览器无法格式化utc日期格式yyyy-MM-dd'T'HH:mm:ss.SSS问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.1.0 - 2021-08-02">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>支持配置XSS跨站脚本过滤</li>-->
|
|
||||||
<!-- <li>支持配置验证码开关&类型</li>-->
|
|
||||||
<!-- <li>新增是否开启用户注册功能</li>-->
|
|
||||||
<!-- <li>用户管理新增分配角色功能</li>-->
|
|
||||||
<!-- <li>角色管理新增分配用户功能</li>-->
|
|
||||||
<!-- <li>系统布局配置支持动态标题开关</li>-->
|
|
||||||
<!-- <li>增加字典标签样式回显dict组件</li>-->
|
|
||||||
<!-- <li>FileUpload组件支持多文件上传</li>-->
|
|
||||||
<!-- <li>ImageUpload组件支持多图片上传</li>-->
|
|
||||||
<!-- <li>封装通用iframe组件</li>-->
|
|
||||||
<!-- <li>菜单路由配置支持内链访问</li>-->
|
|
||||||
<!-- <li>全局注册通用组件</li>-->
|
|
||||||
<!-- <li>富文本默认上传返回url类型</li>-->
|
|
||||||
<!-- <li>富文本新增上传文件大小限制</li>-->
|
|
||||||
<!-- <li>增加自定义弹窗拖拽指令</li>-->
|
|
||||||
<!-- <li>顶部菜单排除隐藏的默认路由</li>-->
|
|
||||||
<!-- <li>跳转路由高亮相对应的菜单栏</li>-->
|
|
||||||
<!-- <li>日志列表支持排序操作</li>-->
|
|
||||||
<!-- <li>分页组件新增pagerCount属性</li>-->
|
|
||||||
<!-- <li>定时任务屏蔽http(s)远程调用</li>-->
|
|
||||||
<!-- <li>文件服务本地资源允许跨域访问</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.5.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.4.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot-mybatis到最新版2.2.0</li>-->
|
|
||||||
<!-- <li>升级nacos到最新版2.0.3</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.3.1</li>-->
|
|
||||||
<!-- <li>升级minio到最新版本8.2.2</li>-->
|
|
||||||
<!-- <li>升级tobato到最新版本1.27.2</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本3.4.1</li>-->
|
|
||||||
<!-- <li>升级commons.io到最新版本v2.11.0</li>-->
|
|
||||||
<!-- <li>升级common-pool到最新版本2.10.0</li>-->
|
|
||||||
<!-- <li>升级commons.fileupload到最新版本v1.4</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.3</li>-->
|
|
||||||
<!-- <li>优化统一网关错误码响应</li>-->
|
|
||||||
<!-- <li>修复导出含params属性对象参数问题</li>-->
|
|
||||||
<!-- <li>修复任意账户越权问题</li>-->
|
|
||||||
<!-- <li>修复定时任务日志执行状态显示</li>-->
|
|
||||||
<!-- <li>修改登录失效返回值code401</li>-->
|
|
||||||
<!-- <li>用户信息长度校验限制</li>-->
|
|
||||||
<!-- <li>角色&菜单新增字段属性提示信息</li>-->
|
|
||||||
<!-- <li>修复用户搜索分页变量错误</li>-->
|
|
||||||
<!-- <li>优化部门父级启用状态</li>-->
|
|
||||||
<!-- <li>启用部门状态排除顶级节点</li>-->
|
|
||||||
<!-- <li>定时任务新增更多操作</li>-->
|
|
||||||
<!-- <li>优化代码生成模板</li>-->
|
|
||||||
<!-- <li>优化顶部菜单显示样式</li>-->
|
|
||||||
<!-- <li>优化导入用户显示样式</li>-->
|
|
||||||
<!-- <li>优化用户不能删除自己</li>-->
|
|
||||||
<!-- <li>密码框新增显示切换密码图标</li>-->
|
|
||||||
<!-- <li>BLOB下载时清除URL对象引用</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v3.0.0 - 2021-06-10">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)</li>-->
|
|
||||||
<!-- <li>布局设置支持保存&重置配置</li>-->
|
|
||||||
<!-- <li>富文本编辑器支持自定义上传地址</li>-->
|
|
||||||
<!-- <li>富文本编辑组件新增readOnly属性</li>-->
|
|
||||||
<!-- <li>优化参数&字典缓存操作</li>-->
|
|
||||||
<!-- <li>新增IE浏览器版本过低提示页面</li>-->
|
|
||||||
<!-- <li>页签TagsView新增关闭右侧功能</li>-->
|
|
||||||
<!-- <li>显隐列组件加载初始默认隐藏列</li>-->
|
|
||||||
<!-- <li>关闭头像上传窗口还原默认图片</li>-->
|
|
||||||
<!-- <li>个人信息添加手机&邮箱重复验证</li>-->
|
|
||||||
<!-- <li>代码生成模板树表操作列添加新增按钮</li>-->
|
|
||||||
<!-- <li>代码生成模板修复主子表字段重名问题</li>-->
|
|
||||||
<!-- <li>支持docker部署项目</li>-->
|
|
||||||
<!-- <li>升级springcloud到最新版2020.0.3</li>-->
|
|
||||||
<!-- <li>升级spring-boot-alibaba到最新版2021.1</li>-->
|
|
||||||
<!-- <li>升级nacos到最新版2.0.1 性能提升</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.5.0</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.4.1</li>-->
|
|
||||||
<!-- <li>升级swagger到最新版本3.0.0</li>-->
|
|
||||||
<!-- <li>升级mybatis到最新版3.5.6</li>-->
|
|
||||||
<!-- <li>升级dynamic-ds到最新版本3.3.2</li>-->
|
|
||||||
<!-- <li>升级minio到最新版本8.2.1</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.76</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本v1.2.6</li>-->
|
|
||||||
<!-- <li>修复四级菜单无法显示问题</li>-->
|
|
||||||
<!-- <li>修复树表数据显示不全&加载慢问题</li>-->
|
|
||||||
<!-- <li>修复关闭confirm提示框控制台报错问题</li>-->
|
|
||||||
<!-- <li>上传媒体类型添加视频格式</li>-->
|
|
||||||
<!-- <li>增加feign客户端IP头部信息</li>-->
|
|
||||||
<!-- <li>修复两处存在SQL注入漏洞问题</li>-->
|
|
||||||
<!-- <li>优化图片工具类读取文件,防止异常</li>-->
|
|
||||||
<!-- <li>修复导出角色数据范围翻译缺少仅本人</li>-->
|
|
||||||
<!-- <li>修复表单构建选择下拉选择控制台报错问题</li>-->
|
|
||||||
<!-- <li>修复请求形参未传值记录日志异常问题</li>-->
|
|
||||||
<!-- <li>调整sql默认为当前时间</li>-->
|
|
||||||
<!-- <li>修改ip字段长度防止ipv6地址长度不够</li>-->
|
|
||||||
<!-- <li>删除操作日志记录信息</li>-->
|
|
||||||
<!-- <li>修复firefox下表单构建拖拽会新打卡一个选项卡</li>-->
|
|
||||||
<!-- <li>用户&角色单条删除时使其逻辑删除</li>-->
|
|
||||||
<!-- <li>优化树表代码生成模板</li>-->
|
|
||||||
<!-- <li>修正通知公告日志记录类型</li>-->
|
|
||||||
<!-- <li>修正后端导入表权限标识</li>-->
|
|
||||||
<!-- <li>过滤BindingResult对象,防止异常</li>-->
|
|
||||||
<!-- <li>Redis设置HashKey序列化</li>-->
|
|
||||||
<!-- <li>优化Excel导入增加空行判断</li>-->
|
|
||||||
<!-- <li>树级结构更新子节点使用replaceFirst</li>-->
|
|
||||||
<!-- <li>富文本工具栏配置视频</li>-->
|
|
||||||
<!-- <li>修正模板字符编码</li>-->
|
|
||||||
<!-- <li>优化通用下载完成后删除节点</li>-->
|
|
||||||
<!-- <li>角色非自定义权限范围清空选择值</li>-->
|
|
||||||
<!-- <li>修改主题后mini类型按钮无效问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v2.5.0 - 2021-02-02">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>增加分布式事务seata支持</li>-->
|
|
||||||
<!-- <li>代码生成模板支持主子表</li>-->
|
|
||||||
<!-- <li>表格右侧工具栏组件支持显隐列</li>-->
|
|
||||||
<!-- <li>图片组件添加预览&移除功能</li>-->
|
|
||||||
<!-- <li>Excel注解支持Image图片导出</li>-->
|
|
||||||
<!-- <li>操作按钮组调整为朴素按钮样式</li>-->
|
|
||||||
<!-- <li>代码生成支持文件上传组件</li>-->
|
|
||||||
<!-- <li>代码生成日期控件区分范围</li>-->
|
|
||||||
<!-- <li>代码生成数据库文本类型生成表单文本域</li>-->
|
|
||||||
<!-- <li>用户手机邮箱&菜单组件修改允许空字符串</li>-->
|
|
||||||
<!-- <li>修复header获取username中文情况下乱码</li>-->
|
|
||||||
<!-- <li>修复角色管理-编辑角色-功能权限显示异常</li>-->
|
|
||||||
<!-- <li>修正操作日志删除接口路径</li>-->
|
|
||||||
<!-- <li>修复IE11浏览器报错问题</li>-->
|
|
||||||
<!-- <li>修复sentinel流量告警前端不响应</li>-->
|
|
||||||
<!-- <li>修正侧边栏静态路由丢失问题</li>-->
|
|
||||||
<!-- <li>修复导入数据为负浮点数时丢失精度问题</li>-->
|
|
||||||
<!-- <li>修复Get请求参数特殊值无法正确的传参</li>-->
|
|
||||||
<!-- <li>更换过期的共享配置属性</li>-->
|
|
||||||
<!-- <li>添加启动执行脚本</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.15.0</li>-->
|
|
||||||
<!-- <li>升级spring-boot到最新版本2.3.7</li>-->
|
|
||||||
<!-- <li>升级spring-cloud到Hoxton.SR9</li>-->
|
|
||||||
<!-- <li>升级spring-boot-alibaba到最新版2.2.5</li>-->
|
|
||||||
<!-- <li>升级spring-boot-admin到最新版2.3.1</li>-->
|
|
||||||
<!-- <li>升级druid到最新版本v1.2.4</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.75</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v2.4.0 - 2020-12-22">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>增加分布式文件Minio支持</li>-->
|
|
||||||
<!-- <li>支持多数据源切换</li>-->
|
|
||||||
<!-- <li>修复多级菜单之间切换无法缓存的问题</li>-->
|
|
||||||
<!-- <li>三级菜单自动配置组件</li>-->
|
|
||||||
<!-- <li>支持主题风格配置</li>-->
|
|
||||||
<!-- <li>服务之间feign调用传递用户信息</li>-->
|
|
||||||
<!-- <li>删除用户和角色解绑关联</li>-->
|
|
||||||
<!-- <li>去除用户手机邮箱部门必填验证</li>-->
|
|
||||||
<!-- <li>代码生成预览支持高亮显示</li>-->
|
|
||||||
<!-- <li>获取请求token方法移至权限工具类</li>-->
|
|
||||||
<!-- <li>代码生成预览提供滚动机制</li>-->
|
|
||||||
<!-- <li>权限工具类增加管理员判断</li>-->
|
|
||||||
<!-- <li>日志记录增加过滤多文件场景</li>-->
|
|
||||||
<!-- <li>修改用户头像预览宽高</li>-->
|
|
||||||
<!-- <li>Excel支持注解align对齐方式</li>-->
|
|
||||||
<!-- <li>项目添加robots.txt 防止系统被搜索引擎收录</li>-->
|
|
||||||
<!-- <li>移除path-to-regexp正则匹配插件</li>-->
|
|
||||||
<!-- <li>修改Set可能导致嵌套的问题</li>-->
|
|
||||||
<!-- <li>调整代码生成页列宽</li>-->
|
|
||||||
<!-- <li>回显数据字典防止空值报错</li>-->
|
|
||||||
<!-- <li>支持get请求映射params参数</li>-->
|
|
||||||
<!-- <li>登录后push添加catch防止出现检查错误</li>-->
|
|
||||||
<!-- <li>防止安全扫描YUI出现的风险提示</li>-->
|
|
||||||
<!-- <li>代码生成删除多余的数字float类型</li>-->
|
|
||||||
<!-- <li>Excel支持导入Boolean型数据</li>-->
|
|
||||||
<!-- <li>修正转换字符串的目标字符集属性</li>-->
|
|
||||||
<!-- <li>删除多余的依赖</li>-->
|
|
||||||
<!-- <li>修改node-sass为dart-sass</li>-->
|
|
||||||
<!-- <li>升级poi到最新版本4.1.2</li>-->
|
|
||||||
<!-- <li>升级axios到最新版本0.21.0</li>-->
|
|
||||||
<!-- <li>升级element-ui到最新版本2.14.1</li>-->
|
|
||||||
<!-- <li>升级vue到最新版本2.6.12</li>-->
|
|
||||||
<!-- <li>升级vuex到最新版本3.6.0</li>-->
|
|
||||||
<!-- <li>升级vue-cli到版本4.5.9</li>-->
|
|
||||||
<!-- <li>升级vue-router到最新版本3.4.9</li>-->
|
|
||||||
<!-- <li>升级vue-cli到最新版本4.4.6</li>-->
|
|
||||||
<!-- <li>升级vue-cropper到最新版本0.5.5</li>-->
|
|
||||||
<!-- <li>升级clipboard到最新版本2.0.6</li>-->
|
|
||||||
<!-- <li>升级core-js到最新版本3.8.1</li>-->
|
|
||||||
<!-- <li>升级echarts到最新版本4.9.0</li>-->
|
|
||||||
<!-- <li>升级file-saver到最新版本2.0.4</li>-->
|
|
||||||
<!-- <li>升级fuse.js到最新版本6.4.3</li>-->
|
|
||||||
<!-- <li>升级js-beautify到最新版本1.13.0</li>-->
|
|
||||||
<!-- <li>升级js-cookie到最新版本2.2.1</li>-->
|
|
||||||
<!-- <li>升级path-to-regexp到最新版本6.2.0</li>-->
|
|
||||||
<!-- <li>升级quill到最新版本1.3.7</li>-->
|
|
||||||
<!-- <li>升级screenfull到最新版本5.0.2</li>-->
|
|
||||||
<!-- <li>升级sortablejs到最新版本1.10.2</li>-->
|
|
||||||
<!-- <li>升级vuedraggable到最新版本2.24.3</li>-->
|
|
||||||
<!-- <li>升级chalk到最新版本4.1.0</li>-->
|
|
||||||
<!-- <li>升级eslint到最新版本7.15.0</li>-->
|
|
||||||
<!-- <li>升级eslint-plugin-vue到最新版本7.2.0</li>-->
|
|
||||||
<!-- <li>升级lint-staged到最新版本10.5.3</li>-->
|
|
||||||
<!-- <li>升级runjs到最新版本4.4.2</li>-->
|
|
||||||
<!-- <li>升级sass-loader到最新版本10.1.0</li>-->
|
|
||||||
<!-- <li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>-->
|
|
||||||
<!-- <li>升级svg-sprite-loader到最新版本5.1.1</li>-->
|
|
||||||
<!-- <li>升级vue-template-compiler到最新版本2.6.12</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v2.3.0 - 2020-11-20">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>新增文件服务应用(支持本地、FastDFS)</li>-->
|
|
||||||
<!-- <li>优化头像样式,鼠标移入悬停遮罩</li>-->
|
|
||||||
<!-- <li>AjaxResult重写put方法,以方便链式调用</li>-->
|
|
||||||
<!-- <li>代码生成支持上传控件</li>-->
|
|
||||||
<!-- <li>新增图片上传组件</li>-->
|
|
||||||
<!-- <li>支持用户头像更新</li>-->
|
|
||||||
<!-- <li>调整默认首页</li>-->
|
|
||||||
<!-- <li>角色权限验证hasRole匹配改为equals</li>-->
|
|
||||||
<!-- <li>修正数组权限为空判断</li>-->
|
|
||||||
<!-- <li>修正注释选中节点和半选节点获取</li>-->
|
|
||||||
<!-- <li>升级pagehelper到最新版1.3.0</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.74</li>-->
|
|
||||||
<!-- <li>修正定时任务执行一次权限标识</li>-->
|
|
||||||
<!-- <li>修复页签关闭所有固定标签路由不刷新问题</li>-->
|
|
||||||
<!-- <li>表单构建布局型组件新增按钮</li>-->
|
|
||||||
<!-- <li>调整日志路径到模块目录</li>-->
|
|
||||||
<!-- <li>修正菜单提示信息错误</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v2.2.0 - 2020-10-10">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>移除 OAuth2 改为 Redis</li>-->
|
|
||||||
<!-- <li>升级SpringCloud到最新版本Hoxton.SR8</li>-->
|
|
||||||
<!-- <li>升级SpringCloud Alibaba到最新版本2.2.3</li>-->
|
|
||||||
<!-- <li>升级SpringBoot Admin到最新版本2.3.0</li>-->
|
|
||||||
<!-- <li>升级Fastjson到最新版1.2.73</li>-->
|
|
||||||
<!-- <li>新增在线用户会话管理</li>-->
|
|
||||||
<!-- <li>修改用户个人资料/密码同步缓存信息</li>-->
|
|
||||||
<!-- <li>修复前端通用导出方法参数传值请求方式问题</li>-->
|
|
||||||
<!-- <li>菜单新增是否缓存keep-alive</li>-->
|
|
||||||
<!-- <li>菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)</li>-->
|
|
||||||
<!-- <li>Job与Gen模块增加Redis默认配置</li>-->
|
|
||||||
<!-- <li>新增表格右侧工具栏组件right-toolbar</li>-->
|
|
||||||
<!-- <li>代码生成支持同步数据库</li>-->
|
|
||||||
<!-- <li>代码生成支持富文本控件</li>-->
|
|
||||||
<!-- <li>代码生成树模板去掉多余双引号</li>-->
|
|
||||||
<!-- <li>代码生成添加select必填选项</li>-->
|
|
||||||
<!-- <li>代码生成页面时不忽略remark属性</li>-->
|
|
||||||
<!-- <li>修复代码生成下载路径错误</li>-->
|
|
||||||
<!-- <li>左侧菜单文字过长显示省略号</li>-->
|
|
||||||
<!-- <li>表格操作列间距调整</li>-->
|
|
||||||
<!-- <li>Excel注解支持自动统计数据总和</li>-->
|
|
||||||
<!-- <li>Excel注解支持设置BigDecimal精度&舍入规则</li>-->
|
|
||||||
<!-- <li>导入Excel整形值校验优化</li>-->
|
|
||||||
<!-- <li>导出Excel类型NUMERIC支持精度浮点类型</li>-->
|
|
||||||
<!-- <li>导出Excel调整targetAttr获取值方法,防止get方法不规范</li>-->
|
|
||||||
<!-- <li>Token续期调整为后端刷新</li>-->
|
|
||||||
<!-- <li>Token设置默认有效期时长12小时</li>-->
|
|
||||||
<!-- <li>网关白名单放入nacos配置&支持模糊匹配</li>-->
|
|
||||||
<!-- <li>修复富文本工具栏样式不对齐问题</li>-->
|
|
||||||
<!-- <li>Editor组件优化,支持自定义高度&图片冲突问题</li>-->
|
|
||||||
<!-- <li>修复富文本空格和缩进保存后不生效问题&删除重复的placeholder</li>-->
|
|
||||||
<!-- <li>限制系统内置参数不允许删除</li>-->
|
|
||||||
<!-- <li>修正调用目标字符串最大长度</li>-->
|
|
||||||
<!-- <li>修改自定义权限实现</li>-->
|
|
||||||
<!-- <li>优化递归菜单&部门子节点</li>-->
|
|
||||||
<!-- <li>修改sass为node-sass,避免el-icon图标乱码</li>-->
|
|
||||||
<!-- <li>修复根节点为子部门时,树状结构显示问题</li>-->
|
|
||||||
<!-- <li>全局异常状态汉化拦截处理</li>-->
|
|
||||||
<!-- <li>唯一限制条件只返回单条数据</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
|
|
||||||
<!-- <el-collapse-item title="v2.1.0 - 2020-08-02">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>表格工具栏右侧添加刷新&显隐查询栏</li>-->
|
|
||||||
<!-- <li>OAuth自动刷新续签Token</li>-->
|
|
||||||
<!-- <li>网关支持黑名单配置</li>-->
|
|
||||||
<!-- <li>权限配置自动注册</li>-->
|
|
||||||
<!-- <li>Feign配置自动注册</li>-->
|
|
||||||
<!-- <li>代码生成支持选择上级菜单</li>-->
|
|
||||||
<!-- <li>代码生成支持复选框</li>-->
|
|
||||||
<!-- <li>代码生成支持自定义路径</li>-->
|
|
||||||
<!-- <li>验证码类型支持(数组计算、字符验证)</li>-->
|
|
||||||
<!-- <li>Excel支持sort导出排序</li>-->
|
|
||||||
<!-- <li>Excel支持分割字符串组内容</li>-->
|
|
||||||
<!-- <li>excel 导入数字不需要格式化 ,导入允许列和属性个数不一致</li>-->
|
|
||||||
<!-- <li>新增菜单默认主类目</li>-->
|
|
||||||
<!-- <li>升级vue-cli版本到4.4.4</li>-->
|
|
||||||
<!-- <li>修改 node-sass 为 dart-sass</li>-->
|
|
||||||
<!-- <li>升级element-ui版本到2.13.2</li>-->
|
|
||||||
<!-- <li>删除babel,提高编译速度</li>-->
|
|
||||||
<!-- <li>修复验证码异常时network面板的中文会出现乱码问题</li>-->
|
|
||||||
<!-- <li>修复 utils/index.js 中不包含 parseTime 函数的 bug</li>-->
|
|
||||||
<!-- <li>优化selectDictLabel方法,数组迭代器换为some</li>-->
|
|
||||||
<!-- <li>修复客户端模式认证会出现错误</li>-->
|
|
||||||
<!-- <li>检查字符支持小数点&降级改成异常提醒</li>-->
|
|
||||||
<!-- <li>定时任务添加cron表达式验证</li>-->
|
|
||||||
<!-- <li>代码生成查询条件修正</li>-->
|
|
||||||
<!-- <li>修正角色管理导出权限权限字符</li>-->
|
|
||||||
<!-- <li>修正防止切换权限用户后登录出现404</li>-->
|
|
||||||
<!-- <li>终端设置安全码加密&更新缓存</li>-->
|
|
||||||
<!-- <li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>-->
|
|
||||||
<!-- <li>修复布局为small者mini用户表单显示错位问题</li>-->
|
|
||||||
<!-- <li>修复代码生成点击多次表修改数据不变化的问题</li>-->
|
|
||||||
<!-- <li>修复代码生成导入表结构出现异常页面不提醒问题</li>-->
|
|
||||||
<!-- <li>修复角色权限修改时已有权限未自动勾选异常</li>-->
|
|
||||||
<!-- <li>创建用户不允许选择系统管理员角色</li>-->
|
|
||||||
<!-- <li>添加全局异常处理(网关异常&业务异常)</li>-->
|
|
||||||
<!-- <li>修复终端查询Enter键搜索时是刷新页面而不是查询列表</li>-->
|
|
||||||
<!-- <li>删除job重复表单参数</li>-->
|
|
||||||
<!-- <li>代码生成浮点型改用BigDecimal</li>-->
|
|
||||||
<!-- <li>表单类型为Integer/Long设置整形默认值</li>-->
|
|
||||||
<!-- <li>修改用户管理复选框宽度,防止部分浏览器出现省略号</li>-->
|
|
||||||
<!-- <li>RedisCache中所有方法参数添加final,并优化list取出效率,添加其它常用redis方法</li>-->
|
|
||||||
<!-- <li>修正定时任务日志权限字符</li>-->
|
|
||||||
<!-- <li>添加Jackson时区配置</li>-->
|
|
||||||
<!-- <li>代码生成相关问题修复</li>-->
|
|
||||||
<!-- <li>自定义oauth2返回异常信息</li>-->
|
|
||||||
<!-- <li>升级nacos到最新版1.3.0 全新内核构建</li>-->
|
|
||||||
<!-- <li>修正【代码生成】功能无法下载的问题</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
|
|
||||||
<!-- <el-collapse-item title="v2.0.0 - 2019-12-02">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>新增代码生成</li>-->
|
|
||||||
<!-- <li>新增@RepeatSubmit注解,防止重复提交</li>-->
|
|
||||||
<!-- <li>新增菜单主目录添加/删除操作</li>-->
|
|
||||||
<!-- <li>日志记录过滤特殊对象,防止转换异常</li>-->
|
|
||||||
<!-- <li>修改代码生成路由脚本错误</li>-->
|
|
||||||
<!-- <li>用户上传头像实时同步缓存,无需重新登录</li>-->
|
|
||||||
<!-- <li>调整切换页签后不重新加载数据</li>-->
|
|
||||||
<!-- <li>添加jsencrypt实现参数的前端加密</li>-->
|
|
||||||
<!-- <li>系统退出删除用户缓存记录</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v2.0.0 - 2020-06-10">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>使用Sentinel代替Hystrix</li>-->
|
|
||||||
<!-- <li>菜单新增终端管理配置</li>-->
|
|
||||||
<!-- <li>菜单新增Nacos&Sentinel控制台</li>-->
|
|
||||||
<!-- <li>代码生成适配Cloud</li>-->
|
|
||||||
<!-- <li>记录登录退出日志信息</li>-->
|
|
||||||
<!-- <li>网关验证码过滤器添加放行校验</li>-->
|
|
||||||
<!-- <li>个性化的定制自动加载类</li>-->
|
|
||||||
<!-- <li>定时任务调整label-width,防止部署出现错位</li>-->
|
|
||||||
<!-- <li>调整表头固定列默认样式</li>-->
|
|
||||||
<!-- <li>代码生成模板调整,字段为String并且必填则加空串条件</li>-->
|
|
||||||
<!-- <li>代码生成字典Integer/Long使用parseInt</li>-->
|
|
||||||
<!-- <li>修复退出登录重定向到登录页,登录后参数丢失。</li>-->
|
|
||||||
<!-- <li>修正岗位导出权限注解</li>-->
|
|
||||||
<!-- <li>修复首页搜索菜单外链无法点击跳转问题</li>-->
|
|
||||||
<!-- <li>修复菜单管理选择图标,backspace删除时不过滤数据</li>-->
|
|
||||||
<!-- <li>用户管理部门分支节点不可检查&显示计数</li>-->
|
|
||||||
<!-- <li>数据范围过滤属性调整</li>-->
|
|
||||||
<!-- <li>字典管理添加缓存读取</li>-->
|
|
||||||
<!-- <li>参数管理支持缓存操作</li>-->
|
|
||||||
<!-- <li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li>-->
|
|
||||||
<!-- <li>dev启动默认打开浏览器</li>-->
|
|
||||||
<!-- <li>使用vue-cli默认source-map</li>-->
|
|
||||||
<!-- <li>slidebar eslint报错优化</li>-->
|
|
||||||
<!-- <li>当tags-view滚动关闭右键菜单</li>-->
|
|
||||||
<!-- <li>支持一级菜单(和主页同级)在main区域显示</li>-->
|
|
||||||
<!-- <li>限制外链地址必须以http(s)😕/开头</li>-->
|
|
||||||
<!-- <li>tagview & sidebar 主题颜色与element ui(全局)同步</li>-->
|
|
||||||
<!-- <li>修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序</li>-->
|
|
||||||
<!-- <li>权限部分代码调整</li>-->
|
|
||||||
<!-- <li>其他细节优化</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="v1.0.0 - 2020-05-20">-->
|
|
||||||
<!-- <ol>-->
|
|
||||||
<!-- <li>若依微服务系统正式发布</li>-->
|
|
||||||
<!-- </ol>-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- </el-collapse>-->
|
|
||||||
<!-- </el-card>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- <el-col :xs="24" :sm="24" :md="12" :lg="8">-->
|
|
||||||
<!-- <el-card class="update-log">-->
|
|
||||||
<!-- <div slot="header" class="clearfix">-->
|
|
||||||
<!-- <span>捐赠支持</span>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="body">-->
|
|
||||||
<!-- <img-->
|
|
||||||
<!-- src="@/assets/images/pay.png"-->
|
|
||||||
<!-- alt="donate"-->
|
|
||||||
<!-- width="100%"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- <span style="display: inline-block; height: 30px; line-height: 30px"-->
|
|
||||||
<!-- >你可以请作者喝杯咖啡表示鼓励</span-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </el-card>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!--</template>-->
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue