From 439eb9608361f57b820777eb5f77ba99c6f27f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=85=B1=E5=AD=90?= <1638743013@qq.com> Date: Tue, 19 Apr 2022 09:35:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=94=AF=E4=BB=98=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 - ruoyi-framework/pom.xml | 5 - ruoyi-pay/pom.xml | 28 -- .../pay/controller/SysPayController.java | 104 ------ .../java/com/ruoyi/pay/domain/SysPay.java | 84 ----- .../com/ruoyi/pay/mapper/SysPayMapper.java | 61 ---- .../com/ruoyi/pay/service/ISysPayService.java | 61 ---- .../pay/service/impl/SysPayServiceImpl.java | 96 ------ .../resources/mapper/pay/SysPayMapper.xml | 86 ----- ruoyi-ui/public/favicon.ico | Bin 5663 -> 19510 bytes ruoyi-ui/src/api/pay/wxPay.js | 44 --- ruoyi-ui/src/views/pay/wxPay/index.vue | 304 ------------------ 12 files changed, 880 deletions(-) delete mode 100644 ruoyi-pay/pom.xml delete mode 100644 ruoyi-pay/src/main/java/com/ruoyi/pay/controller/SysPayController.java delete mode 100644 ruoyi-pay/src/main/java/com/ruoyi/pay/domain/SysPay.java delete mode 100644 ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/SysPayMapper.java delete mode 100644 ruoyi-pay/src/main/java/com/ruoyi/pay/service/ISysPayService.java delete mode 100644 ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/SysPayServiceImpl.java delete mode 100644 ruoyi-pay/src/main/resources/mapper/pay/SysPayMapper.xml delete mode 100644 ruoyi-ui/src/api/pay/wxPay.js delete mode 100644 ruoyi-ui/src/views/pay/wxPay/index.vue diff --git a/pom.xml b/pom.xml index 236a8327d..f7515c535 100644 --- a/pom.xml +++ b/pom.xml @@ -199,12 +199,6 @@ <version>${ruoyi.version}</version> </dependency> - <!-- 支付模块--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-pay</artifactId> - <version>${ruoyi.version}</version> - </dependency> </dependencies> </dependencyManagement> @@ -216,7 +210,6 @@ <module>ruoyi-quartz</module> <module>ruoyi-generator</module> <module>ruoyi-common</module> - <module>ruoyi-pay</module> </modules> <packaging>pom</packaging> diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index e7e05f791..e0d40ed0c 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -59,11 +59,6 @@ <artifactId>ruoyi-system</artifactId> </dependency> - <!-- 支付模块--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-pay</artifactId> - </dependency> </dependencies> diff --git a/ruoyi-pay/pom.xml b/ruoyi-pay/pom.xml deleted file mode 100644 index 5ca5e6735..000000000 --- a/ruoyi-pay/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <parent> - <artifactId>ruoyi</artifactId> - <groupId>com.ruoyi</groupId> - <version>3.8.1</version> - </parent> - <modelVersion>4.0.0</modelVersion> - - <artifactId>ruoyi-pay</artifactId> - <description> - 支付模块 - </description> - - <dependencies> - - <!-- 通用工具--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-common</artifactId> - </dependency> - - </dependencies> - - -</project> \ No newline at end of file diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/SysPayController.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/SysPayController.java deleted file mode 100644 index 4300ba4ee..000000000 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/SysPayController.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.ruoyi.pay.controller; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -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.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.pay.domain.SysPay; -import com.ruoyi.pay.service.ISysPayService; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; - -/** - * 支付相关Controller - * - * @author ruoyi - * @date 2022-03-29 - */ -@RestController -@RequestMapping("/pay/wxPay") -public class SysPayController extends BaseController -{ - @Autowired - private ISysPayService sysPayService; - - /** - * 查询支付相关列表 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:list')") - @GetMapping("/list") - public TableDataInfo list(SysPay sysPay) - { - startPage(); - List<SysPay> list = sysPayService.selectSysPayList(sysPay); - return getDataTable(list); - } - - /** - * 导出支付相关列表 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:export')") - @Log(title = "支付相关", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysPay sysPay) - { - List<SysPay> list = sysPayService.selectSysPayList(sysPay); - ExcelUtil<SysPay> util = new ExcelUtil<SysPay>(SysPay.class); - util.exportExcel(response, list, "支付相关数据"); - } - - /** - * 获取支付相关详细信息 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return AjaxResult.success(sysPayService.selectSysPayById(id)); - } - - /** - * 新增支付相关 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:add')") - @Log(title = "支付相关", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SysPay sysPay) - { - return toAjax(sysPayService.insertSysPay(sysPay)); - } - - /** - * 修改支付相关 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:edit')") - @Log(title = "支付相关", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysPay sysPay) - { - return toAjax(sysPayService.updateSysPay(sysPay)); - } - - /** - * 删除支付相关 - */ - @PreAuthorize("@ss.hasPermi('pay:wxPay:remove')") - @Log(title = "支付相关", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { - return toAjax(sysPayService.deleteSysPayByIds(ids)); - } -} diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/SysPay.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/SysPay.java deleted file mode 100644 index 401782585..000000000 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/SysPay.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.ruoyi.pay.domain; - -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.annotation.Excel; -import com.ruoyi.common.core.domain.BaseEntity; - -/** - * 支付相关对象 sys_pay - * - * @author ruoyi - * @date 2022-03-29 - */ -public class SysPay extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 支付id */ - private Long id; - - /** 支付名称 */ - @Excel(name = "支付名称") - private String name; - - /** 支付状态 */ - @Excel(name = "支付状态") - private String state; - - /** 金额 */ - @Excel(name = "金额") - private String figure; - - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - public void setName(String name) - { - this.name = name; - } - - public String getName() - { - return name; - } - public void setState(String state) - { - this.state = state; - } - - public String getState() - { - return state; - } - public void setFigure(String figure) - { - this.figure = figure; - } - - public String getFigure() - { - return figure; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("name", getName()) - .append("state", getState()) - .append("figure", getFigure()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/SysPayMapper.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/SysPayMapper.java deleted file mode 100644 index aa43d4d06..000000000 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/SysPayMapper.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ruoyi.pay.mapper; - -import java.util.List; -import com.ruoyi.pay.domain.SysPay; - -/** - * 支付相关Mapper接口 - * - * @author ruoyi - * @date 2022-03-29 - */ -public interface SysPayMapper -{ - /** - * 查询支付相关 - * - * @param id 支付相关主键 - * @return 支付相关 - */ - public SysPay selectSysPayById(Long id); - - /** - * 查询支付相关列表 - * - * @param sysPay 支付相关 - * @return 支付相关集合 - */ - public List<SysPay> selectSysPayList(SysPay sysPay); - - /** - * 新增支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - public int insertSysPay(SysPay sysPay); - - /** - * 修改支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - public int updateSysPay(SysPay sysPay); - - /** - * 删除支付相关 - * - * @param id 支付相关主键 - * @return 结果 - */ - public int deleteSysPayById(Long id); - - /** - * 批量删除支付相关 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteSysPayByIds(Long[] ids); -} diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/ISysPayService.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/ISysPayService.java deleted file mode 100644 index f7966975a..000000000 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/ISysPayService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ruoyi.pay.service; - -import java.util.List; -import com.ruoyi.pay.domain.SysPay; - -/** - * 支付相关Service接口 - * - * @author ruoyi - * @date 2022-03-29 - */ -public interface ISysPayService -{ - /** - * 查询支付相关 - * - * @param id 支付相关主键 - * @return 支付相关 - */ - public SysPay selectSysPayById(Long id); - - /** - * 查询支付相关列表 - * - * @param sysPay 支付相关 - * @return 支付相关集合 - */ - public List<SysPay> selectSysPayList(SysPay sysPay); - - /** - * 新增支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - public int insertSysPay(SysPay sysPay); - - /** - * 修改支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - public int updateSysPay(SysPay sysPay); - - /** - * 批量删除支付相关 - * - * @param ids 需要删除的支付相关主键集合 - * @return 结果 - */ - public int deleteSysPayByIds(Long[] ids); - - /** - * 删除支付相关信息 - * - * @param id 支付相关主键 - * @return 结果 - */ - public int deleteSysPayById(Long id); -} diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/SysPayServiceImpl.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/SysPayServiceImpl.java deleted file mode 100644 index a5df58500..000000000 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/SysPayServiceImpl.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.ruoyi.pay.service.impl; - -import java.util.List; -import com.ruoyi.common.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.pay.mapper.SysPayMapper; -import com.ruoyi.pay.domain.SysPay; -import com.ruoyi.pay.service.ISysPayService; - -/** - * 支付相关Service业务层处理 - * - * @author ruoyi - * @date 2022-03-29 - */ -@Service -public class SysPayServiceImpl implements ISysPayService -{ - @Autowired - private SysPayMapper sysPayMapper; - - /** - * 查询支付相关 - * - * @param id 支付相关主键 - * @return 支付相关 - */ - @Override - public SysPay selectSysPayById(Long id) - { - return sysPayMapper.selectSysPayById(id); - } - - /** - * 查询支付相关列表 - * - * @param sysPay 支付相关 - * @return 支付相关 - */ - @Override - public List<SysPay> selectSysPayList(SysPay sysPay) - { - return sysPayMapper.selectSysPayList(sysPay); - } - - /** - * 新增支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - @Override - public int insertSysPay(SysPay sysPay) - { - sysPay.setCreateTime(DateUtils.getNowDate()); - return sysPayMapper.insertSysPay(sysPay); - } - - /** - * 修改支付相关 - * - * @param sysPay 支付相关 - * @return 结果 - */ - @Override - public int updateSysPay(SysPay sysPay) - { - sysPay.setUpdateTime(DateUtils.getNowDate()); - return sysPayMapper.updateSysPay(sysPay); - } - - /** - * 批量删除支付相关 - * - * @param ids 需要删除的支付相关主键 - * @return 结果 - */ - @Override - public int deleteSysPayByIds(Long[] ids) - { - return sysPayMapper.deleteSysPayByIds(ids); - } - - /** - * 删除支付相关信息 - * - * @param id 支付相关主键 - * @return 结果 - */ - @Override - public int deleteSysPayById(Long id) - { - return sysPayMapper.deleteSysPayById(id); - } -} diff --git a/ruoyi-pay/src/main/resources/mapper/pay/SysPayMapper.xml b/ruoyi-pay/src/main/resources/mapper/pay/SysPayMapper.xml deleted file mode 100644 index 1175641d6..000000000 --- a/ruoyi-pay/src/main/resources/mapper/pay/SysPayMapper.xml +++ /dev/null @@ -1,86 +0,0 @@ -<?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.pay.mapper.SysPayMapper"> - - <resultMap type="SysPay" id="SysPayResult"> - <result property="id" column="id" /> - <result property="name" column="name" /> - <result property="state" column="state" /> - <result property="figure" column="figure" /> - <result property="createBy" column="create_by" /> - <result property="createTime" column="create_time" /> - <result property="updateBy" column="update_by" /> - <result property="updateTime" column="update_time" /> - <result property="remark" column="remark" /> - </resultMap> - - <sql id="selectSysPayVo"> - select id, name, state, figure, create_by, create_time, update_by, update_time, remark from sys_pay - </sql> - - <select id="selectSysPayList" parameterType="SysPay" resultMap="SysPayResult"> - <include refid="selectSysPayVo"/> - <where> - <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> - <if test="state != null and state != ''"> and state = #{state}</if> - <if test="figure != null and figure != ''"> and figure = #{figure}</if> - </where> - </select> - - <select id="selectSysPayById" parameterType="Long" resultMap="SysPayResult"> - <include refid="selectSysPayVo"/> - where id = #{id} - </select> - - <insert id="insertSysPay" parameterType="SysPay" useGeneratedKeys="true" keyProperty="id"> - insert into sys_pay - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="name != null">name,</if> - <if test="state != null">state,</if> - <if test="figure != null">figure,</if> - <if test="createBy != null">create_by,</if> - <if test="createTime != null">create_time,</if> - <if test="updateBy != null">update_by,</if> - <if test="updateTime != null">update_time,</if> - <if test="remark != null">remark,</if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="name != null">#{name},</if> - <if test="state != null">#{state},</if> - <if test="figure != null">#{figure},</if> - <if test="createBy != null">#{createBy},</if> - <if test="createTime != null">#{createTime},</if> - <if test="updateBy != null">#{updateBy},</if> - <if test="updateTime != null">#{updateTime},</if> - <if test="remark != null">#{remark},</if> - </trim> - </insert> - - <update id="updateSysPay" parameterType="SysPay"> - update sys_pay - <trim prefix="SET" suffixOverrides=","> - <if test="name != null">name = #{name},</if> - <if test="state != null">state = #{state},</if> - <if test="figure != null">figure = #{figure},</if> - <if test="createBy != null">create_by = #{createBy},</if> - <if test="createTime != null">create_time = #{createTime},</if> - <if test="updateBy != null">update_by = #{updateBy},</if> - <if test="updateTime != null">update_time = #{updateTime},</if> - <if test="remark != null">remark = #{remark},</if> - </trim> - where id = #{id} - </update> - - <delete id="deleteSysPayById" parameterType="Long"> - delete from sys_pay where id = #{id} - </delete> - - <delete id="deleteSysPayByIds" parameterType="String"> - delete from sys_pay where id in - <foreach item="id" collection="array" open="(" separator="," close=")"> - #{id} - </foreach> - </delete> -</mapper> \ No newline at end of file diff --git a/ruoyi-ui/public/favicon.ico b/ruoyi-ui/public/favicon.ico index e26376026420542212ed58d90d0ed34f554fa4ae..46f78400a5e9b3828330f3e6c3288b611f2a86fd 100644 GIT binary patch literal 19510 zcmeI4c{tQ<+sDV6CHoR(8A}@L%-D^c!4O#s6&egC%S<za?6QSQ5)#?>Jw$g(QYsOl zvLs6@SyQqv@2KvYyStuwpZ9qGoH-7huIqb#&+GTO7QcTkaTW)RSeSM*0RR9NV+7oa z_)};5i-Df_y$pR~g!qFIi?GK70IaRsUsNg5tb2%!I|#;R20Px<2+{z>UN)PG6PsiR z26hBPv=<6^0O^eaK$R6$Ay8$g62uAWB#T3NWBgFg?y^`M$`6h5m&5wFyXKm80syK) zXd63%otY`j1>-G;bj3KM<W72HiG~1xhW1G;(!~=+06L@G(LS1@b2pnsfoNAvQClT5 zh#6KN<$*>7;!xIs2W(sdJzdmXMYXk<G)}^Z2Hq$F5_r<v%LflTsVVx^7e<V?o57;M zuM&c%rl{_AL7<(P1yCP@LjjfLAhIqHh%!(`O^)~kDoP46KzWEf6bz9ELzQHqP?(ZD z45|S9{t?w;B1RfGS2vgy-0*uj;%}Ow9s~jw1_t~4`^)(&$YF5qV5pj!+P00nyev^6 zix2Q2AWzEr;Kja~{Otor;azZOECG%20dD&uoiV-yO;OS9LO(v=pUWHjqmU2&J3Asp z@JS>V43&d`f0yLy@*@Z9i}U(AG*=fe$_wR<@*&`fdC=eHVLdPe4Bi9thmt?K|5%tf zCuU|pYX5e;-rm10jVBoR5fOYx`rAyrO#l`JwnE`CzBm_@fgkZv#D4em1hm`F$@z!V zcF!Njjyj3{L)v!Fx3sTI;oA&p5T6yMk3%5|7@Q3T<E8a&m0A3a5GXG%rvL=mqJ3O3 z{&-0Z@UQxxll{{Q1xFH4TExXDFAGtSl~=PNE=C0?OkP16q6&jRNKC#dfAKKGxT4(x ze&-<%Q&1xHAW{D6LEJp9NCNVI<wB|@@o{y5xnXeLNP-sH8|jV$6AuCn@XtmP<&Px= z)5myWaKvGuv=lVJziTGR`nt?u#y)rg(#Hj54A&wy$f41$FlUr2(pk+_Q5LC!RFQRa zR)ol^LFJ*c5H(eKWo2h&WhE7*uMo}5NYnpi4ad0nZf}+E)~^4hHA(uvtj%#~;xUKx zBGGJ*{=Y5p8=HTXLZI=)#Th`dXo*Yr>p^CXI`PlezdO9pUk@ZK5{E}^Z#PZRzxUgZ z6YR$UwVm^I+rp48+eev}%l2+SxoUv_(fV^(KQh0kq5rQF_|2ar{m(W0Jy1UXX+wRp z`l|Y~2_EA{@JHfMy6(g^L3X2mv;1eyuihHq?Q`D?{m)tW*80!M`Fpwkdone)k24r? zArJ?J{5k<p4e-C(epddbx7(gjFW;|vHDw6#1BPyY|DH<P{cEcIe@-Rs{x$Vy=0P7c zK}-I7wO^V^vbN9MZ)buv@$~?urL3f+K-{{&HvgJofj)`yvV)_En-{;mB$XAv=lt67 z+eG_6C6aV}Py9AjB!9@i&g8dN;%fr&4F&w;73H6k{9_mVKL<ab=>OT6)Q(bwlm^+D zf{QF7QUL`QDGjnQ1s7RFqyh>qQW|7q3NEsUNCgyJq%_FJ6kKExkqRidNNJFbDY(cY zA{9_@k<uU=Q*e<*L@J=*BBen#rr;urh*UtqMM{HgOu<DK5vhQJi<Ac0n1YKeB2obb z7by+0F$EV{M5F==E>ap~V+t;^h)4w#T%<I}#uQv+5s?ZgxJYS`jVZXuA|e$~aFNm= z8&hzRMMNr~;3B0#Hm2Yri-=S}!9_}gY)rvL77?j{f{T;}*_eWhEFw|?1s5p|vM~i0 zSwy4)3NBI_WMc|0vWQ3p6kMb<$j1K>7t_y6e<&Z~O+SC)mA>cdS;@rffPC9G46VQ4 zw*dTdr%JIS!JVjK+t%3P&;%3?VC{=V;fOaJ@3&SD0{~o##&BJmlP_k{(N|HnzG=<% zr}15aqc^KZyQ{|!l^+?F6=7sFh&aYAE)p}qvonhCe$ov0U1%YD2H!p%WOBTN-Gg^l z)5(!6BBGr7ci0Du7$c(+IrL&1@=BGyyqvr-N*KNQRLz}jWj>3k;1ExxAx^i{_WA0G zr6&JT*yyn5fTwI6^b?Nve#cSAMZjbHuG!5eVKE2eZI1?XoZGJgQC$Yssk6QAY6M8q zKe=hlaLT06FdrI~$tSkTaK-CzJ6{B|i@H|OR7@XyHBxErFNxHfLho7|FtyX`c!blI zVcrsL&6Cd|y6~1b!B&RA*VKH|txK?-fttZsk9^Apsz>6j*xotYnEp*yK(W|!l$Zvg zW0!~4?F?qjI>4tycbZM-t$p@Wv`Ltoaz?<hwXKROpP8}xn?9+pa)UxQ&2*yJ#X@iE zZ%qv`oE8%EW8)gykySW5VExRf^J#`-{XFZJVwL8m&t2C;{a3p%A*ScgN<f#hS-4a+ z<6;>+&e`eLE1mUv(HONnSPal?|A?|)%KQtv920#bL}2Ulo-ON*TjgN>8=ER4J3hFy zjRka$y9?Z@GvzTZ6Ig3uE0xR6(bCX+Ys7BjplcQ8?DJ)E<&byP4XYQ)=U;}t8!`90 zUfFhht}1(NQeEV<#b$mu1pKJ#@T)+Fm(Msp(F9G*j7EBFh%s~?@+T0?`h^C2l2das zSZ{8P_@3Te&<^$cvZl4XIZ20EKFUC2u{h|;@z&tMr{1U*2GNKrC1dc7o$l{X_zAi1 z!WNmet(KNIUPG{m2#QWJ)z>7wc)TQ$5c)bKTW)bAtX|$MnJ-x!RI|S<?7)FL3Iaz@ zrRhx7mggujj^x(ve)p{9!Q-tBQ!!&6SWm1nT=Cp1`lk;U3)Hng&u2VY8Ey`)D+Q05 zKMo7!%H^X5MGGD|Cpa9HIS?*%_<a8dh7J3SgR<hM(wO+pDKlOalhimdo=W4iQm0Le zVP{_6drsR4z{{c>&fNNmZ-Esc`0`~7PuX;iGzW%ygkF3;%BDLdN~t5qe`{Cu<rkYN zqY+fy^dDrY62n{p(1;qiWmKNH>UnMZ6#V94uTMs0hniD!U&W=l#(G!;&W}Ddi(gc% zsk_wj_(ErtK!%hJQ^D?w@40#Ic{N3QOUPV*h+3>N5B=+kCYHZf^zFmg+dJ}7fgaua z*E;GB!ZoY2QrTjk!(LtRR@~E3(!7|>$?K-Or!~z$HQYNPrcR|Y^xm^#?U0#gPqkf_ zmTor=IeaW@-V@r9(R|i&$@0;alHKxtLN}()?M#?$(%4S}Q$i%=c^SW^>9WH;bsfX) z{t^-WW@z654eUc->8e|=ZYMs;d8R7mozq^Wb3>vr*c-GXWnzc@f}9~i=ziBt)swV( z<2RlpWu|f|(!Y1RdLQ5|gJ^Y4?VgD^oR|It>NjFP6n`Sfd+I~T&cHS0<%hGYGaF0m zbE7^E^F^nPM(4BG26m4s78zT<Ex%i11oo0(Ug$N3H9Wv-L>yu)wcDxboHtRzbnt`x z^)<|h(sH!Zt-YRAx3!b29Ay?9`?YaPK>;7%_ZKPzc`}a})i@UV2t^=@YkhN%t~EGu zXK!ubg$tn#^NN60hCa@e2jg@tbgR}1gsfm%o;RXVd_9#HGM{%&xz}g=oJ%N78=DXg zP0zm`GPxeIr2Uuo(;&?Ha;>e?d@lBNT*vUVt`v*@Wq7Lx!F1j-_60I|A1Jz)-^3`j zQ&2ed^ycFE&nXw#1V%!)JfFAhds3OQR(8mot3J_2L9b_T;eLC!w4%%WqqV;K43_pX zL{eLoa{6l~ObQrb)Pz@??q5GXc*nMtMc&-LXQH<kQRXTs09!~5n0zp$b+QYy*#$1l z|L`_ZI7dpdowi~z%1&g0s<7QSuO%l|w?ygT<)CYw7tW6c2fRy~e213TSKxhSLoMZ! zqaYfQpeEOM`4V)}(+RIW*eK@OG(O)3HWW%Mh#Hi9*)*zK>11xYlT*x2@3GC<l(rmB ztkSt$xXq*GlA=`M@c~(3O|X3^t9vDXo{iuwp0kqk1*$U)oOg8dj)U9>m%5Q|vl$YS z(S4~rX*_g|Z6~zy35<?ZsJMe1b4pdUWfx_dKOPy2vkaZyT^R?}TEYdUBO$cn<>72; zKD#m`#+b1;ETupfLC){_Y)t5RK-Olb^0ktClI|?@3%efgr}jH3>#XY)XRhRUq{6uL zS<DHVd$U1HH6NE{q>t-A^W+J1Xjze<>Cf4vu-Y@02`n^9$+BQ5JJIL(^yM;O<kXol zy7q9Vw7b`f9a~KyhIt^Hq@)B{_r+FdGQyer#bNzCY7-s?UXGg+W8LDnAJV^3UEN|8 zbyq5>6e`Mo@+#$6iIq}Ju*B85+YZlQjOD$IlbmWCyZ9cD+k8SgGg_KNB($dGxX_+h z*6T?dz*d{23Nr#=ITp+70F*y3s;rnENXsTVp%`hxqf`QvpvurmDr~j7`bg)RZqm-Z zIYE2(@)n$H4+N>lpHs`D(N(KxM<6bD-n5Z8qWD=0&o*74RC6lNN`%ef@bR5tUUzzC z)a~EztT&0Sjg_&{EZ}`AYdn;2jILUskafYd;N1`+yrBZ=^*Y5rE<5rTa~?J_1R)x0 z!VV=4qw)~APb8s!X}0eXt@_%#3-cv^;bt4Q{B)Ne3w!hOSX)0@9PF7l3bHnuv#nee zyqD3X-Pifl%i;<|B=T5!2_MHBhSwZ3425^?bFHJ@+|n}9Pc>`9hmYpx2DO>CyfRv} zkjzav2)a^Sp~o(=ymO}IZGxVt?v4msakXbnVsi%1CZ9i?ZfzIzIBz3cgHP@ri4)Rv zf3$Vqn&#^2wAsz^Y^_Ah*1A(LVHxbViSvGym{lTGMs0_UbF)xz|H5{{AZTg$s`HyS z?px)f8;D-JL*j?7b%fjG=1WY*9y)WNWa1Kt<^>3wu2}O}NV_FnHsfRA_*lYlfn^EH zbI>Opgp4jNkB+)X8sfvSvxJGx_^I?IkQIyu@t|M(ip^>N`(q3%8tr{L`?PyHGih@s z2=C(;*I!ObJASUJKN33QFl;`&7!<g)^rS=L@Y@DGQ&Cvwg=@!B2q2-AuGIXd#ccCi zpJR+nJ)>$hOs^t)n5Eh4(qdArIJshZ3mC*LC%)j@vmhZJ^q2h=pVHr6XobJBX)V`T zU@GU%)9g}@IL)U73%o_RjE7`ay1$-Q3FR={v62NIJEP-0br8r@^BjI-Kr~$-Z7mJ} z=LQ)-`~50an!fbO*w4TFFc-RrU%S0g7zTBG#Amfv>wPj5*aPW}YDmAl;1gPlu&%Ya zaM)<!f(LB{yC|*Th4_}KB+#j3?nw95(#YkJaJLsad4|dC?CcO)xGuMjWH3W4jU_cF z|AZEEp@?aPw(7Ob*Ei#=qoN~Aax24y*lynno;+23JK8nRN%%;}C2#M|-clnfj=Meg zy0d1@Heb~DU$IMBU)tBaS~}HG1eBDqNmo5$^zQV$ypHpoLjJfocqUi!-pN>#C=0`g z_yL*1ZaNcgWd@#n?93Gr2i=M>I53c#Lmzk|p8d|A=u0{uvr2fGuS!VucDq6tt|?z> z%Bd9_XGxg8(RLbJIvUddU^6n?VSGGWwR(6~em#A3HNxBHL-SP#h??W&Jo@!~?e%$I z%-Z!GFE$Q7oZFa^?i++@Rm<C!Dpc=?V&`Y|4y<RQaVeePthRzP9%k-RL(pD`wHiyY zFpNF~JS<|!VZhGV%D_n%S8Hd%Ld9{OF@1s>DwW5fam+za44M|nhS4H)%!TAOf4o+C zpa0RVVo}W`nY`W7#xW0<N?)`-1@8=JE0M|lRMc^dFRx~UMJ0GbGic1SPJ8`9(JPcf za*dG)KPQuyzjlLtvD2Ph=e0Bb3_T!@9C$6F;10;_G7~C_oi3lQm<DQ?Y{kx7rvgrA zkBZgTgR>~+3Ulmj1vsiV_T^We+Smg6N*m`pccbZgrT8WcjV@PZ?AbjSe7)g~x)WbG z-<{o$Q*8lHu4GNlp6d^Lt9f&%&PhmMbGEjp;!Fywf=FRqqKlyfXz56@WUM8`M5K0t zfrVZ+o-Z17Mp@3W`*41}NX*r=GI|3zZ}|ri&b_*HB2FMn$6Wn8QQ<0k3*nq8$7*Sf z6?>u#cG!F5W#*UfUuaz!RlYYKMnecbMR&n{vU+$gAmkXYLe2cF?_AS-NYf+c;OpwZ zdb&P1Z&7g%I;CJlocMA}#oWTsBh@Nplh<;*Ri^ZLqKCL;A}E44&jEMEFn0Gf<DRmJ z4lz~T_HaKTNdY*-Fp@!wHux;Nm;^k6n@|TEd~xQs?u6m`-7}V)%#bt*hvrxKsnLzK zxfz+}s5hw0YtX32(+}TT4;XS4TZ<n&BLe1taBzwYFqG<)@rLM?CBiw*hC4*DS4Oz^ zaf#GO=FWV~<a`q~L4&eqXDC2N^u~;7iqPsX<ibr`f}v4DVQ(VO)yZufaZQ*w-^>R{ zt+Jlsmzq-9dcIsex-cu2e~H%sYl@|2)rv2B{vl&$g<k62924I1W+`Y1JfADtguBQY z`oU`WsUadYTryVT*d#qquIkGcR$waCxaM#o7uPwcA5<Q00TO32QE%LY9LQ8xxbbd7 zn7wHd<hIjT!kk5Cfl9kga)_DzZW8}`+JnFNMBW#BR1B|c_ceXiUcZU+2uOtNuf4kK zY4*NSWd^^V&n}8d5{Y~WMQBf}O(GmpYFHTWp=4rpwieD6ht}C+RyIXoee%XFsGv(n zJ8=m|I3yximLE$y9!r}ivzUELI!#)zqbuy8?BLt`{yJ=+@K4VGX@?EH-_cgu-lpz# zw=%9P*dL9^46o#f*U}$fzu0_yV=BW(RduBu2b)W(XM+g1ciZbe28#1T%U?-JqEg3d zxwDTuAL6_y;I3J~c)2V$Ik$qXtuCPKoW$|4l&&{)mZ%A<{Kl-ts-%M%$t^%S1XeZE z+C=#1fiT{M)X^1_FTG(aP8Rr9T$bHpENX7$$pYTUwP-FN&DAybL0>%_wm-x#Ac3dt zd?kNW#OrPsTjBLpr_j4s1{y*MZMhdYATrUiW*@jY<p}_Bqi5luQ{j6}Oq^aU546BL zExeOPF4CEg)?6&wkGRO~F3>1p^PsHtc&j~4S&XuvP2ase2G=pAnL+mx`i8bXRu**l z-OpRA;B6XsWX%|P3c<QF)T<4sRX+2jqCYQogG)SrPxFoU=^2|VHEXFM&a00wO;ykF z1)W;TQ=ECg02W3@SRi$lp0o)MhbSlBIn~-yHvMz?hfw!~dtuE%HCiAwt+=aF_p7hU z3}`87)F)cT?v0}wJ#U(UtleL|Vl~Cm9}=rL#54TpGb7l+(^PVz6M5KE$Z2Jj&2jjM zUr+Wz)~$^gKmQ%2Q&wjClL-tyI-@7W>rQfBt4dnFpW#xktv6@+a8rFL36ouf^c*;( zqXOJhYPHj-=nZu`f>VZ{=}qxvClKg?N@`_!*yo}bgS*1G)ww}8b0&+QAp%bTJaT+^ z_W*T2O-gSLu9au>kBq7<KWj$Mg^b;;U3-hoS3dXG8w8(@>9LlaRsP4Gynau*H%}K| z9)hxDwjuK4(1kV+xTb4qN3rn!qFGU0G_KmdO|vQR%&Yy?x7=UHd-~Mgb8*@uFeGe> z7ce$&iVMUUAfiA_S7Wc3faOHG_N>pM?QA(aB=24jLm}CQ)6X8oO|?shZOCYU-e{I) z4MTgX`t4e@8=Dvr!tdi;r#a0RJjb9<Wmr>DU7u(cA8c<d@aRK9NPJF@E^-$vEh~TD zowtLomyWJje148u8JHN{wZYP;%wQx8lsi}#S~iRI&efq8>JN#ZxF<QC6N{&tAEOq> zN4<vlJd|q`b4Zf(Mf*;^no{4<P|xIhmf*qi<xBrNu3edH&4zoXW|KeY`Oj{)U>=Wr z-Y9=*ZQebVos<3LBaHJV4S|1N@~^`zb-|i`?~3+K?mGG<Z1=%gM9g!)`Y&Yxqa)|5 zH2a}j+<>H)Tx+b_&o!0Op>jpn?=co|Xf~$f`ftl7<D0|AW`{<R2OnNjzEw8V_;D3e zba7Ych=1cyFVC*5JAKF-#SMNlPUl~KEH8h3dtZM_kYCft0l}M%6HgL$ywOXFakN7F zJTdGKF{&P1w(&~P{IGiBfk4=mPh%kkq4aNyJ=3zhsE^O@mXZiSss~tfGBpjGuTMVf z_gNdT*{V4xcF7^#-0{mPa9_h_`$HG^$rir%BH5>%cY6uqjILx!PIsqko=uqT+330s z4HoxP?BXs_be5K_y<qH-z|Oh<#55##bj9+>?0um`NXqmAweI0}-TSn+Ufs)Hoe;LM zRUUrJqO$d9(rGhgs6<If<dDA1Qh2+0S4H%FQ*Q`x0k4<EbtZz3DNlySHlC{N@g-O% zcs{C)E4z7P!H}wVdZzCB$l?wY)Y*;xJzFQ&y|*^+(cTd}EOmfM`wWgV{2eB=6aAk0 zQ(J4%^Zuz6eWQ%#1?JJhW*q`mY5SAud)gSOb=*aTr?1@sSE#V`clZH+3_1>MYP*Ec W((Yy*s@VQ_T*d|m;8l9ZBK`-v8BGuX literal 5663 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 diff --git a/ruoyi-ui/src/api/pay/wxPay.js b/ruoyi-ui/src/api/pay/wxPay.js deleted file mode 100644 index 7c82bac25..000000000 --- a/ruoyi-ui/src/api/pay/wxPay.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询支付相关列表 -export function listWxPay(query) { - return request({ - url: '/pay/wxPay/list', - method: 'get', - params: query - }) -} - -// 查询支付相关详细 -export function getWxPay(id) { - return request({ - url: '/pay/wxPay/' + id, - method: 'get' - }) -} - -// 新增支付相关 -export function addWxPay(data) { - return request({ - url: '/pay/wxPay', - method: 'post', - data: data - }) -} - -// 修改支付相关 -export function updateWxPay(data) { - return request({ - url: '/pay/wxPay', - method: 'put', - data: data - }) -} - -// 删除支付相关 -export function delWxPay(id) { - return request({ - url: '/pay/wxPay/' + id, - method: 'delete' - }) -} diff --git a/ruoyi-ui/src/views/pay/wxPay/index.vue b/ruoyi-ui/src/views/pay/wxPay/index.vue deleted file mode 100644 index b9095008c..000000000 --- a/ruoyi-ui/src/views/pay/wxPay/index.vue +++ /dev/null @@ -1,304 +0,0 @@ -<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="name"> - <el-input - v-model="queryParams.name" - placeholder="请输入支付名称" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="支付状态" prop="state"> - <el-select v-model="queryParams.state" placeholder="请选择支付状态" clearable> - <el-option - v-for="dict in dict.type.sys_pay_status" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> - <el-form-item label="金额" prop="figure"> - <el-input - v-model="queryParams.figure" - 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="['pay:wxPay: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="['pay:wxPay: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="['pay:wxPay: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="['pay:wxPay:export']" - >导出</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" :data="wxPayList" @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="name" /> - <el-table-column label="支付状态" align="center" prop="state"> - <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_pay_status" :value="scope.row.state"/> - </template> - </el-table-column> - <el-table-column label="金额" align="center" prop="figure" /> - <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="['pay:wxPay:edit']" - >修改</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['pay:wxPay: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="name"> - <el-input v-model="form.name" placeholder="请输入支付名称" /> - </el-form-item> - <el-form-item label="支付状态"> - <el-radio-group v-model="form.state"> - <el-radio - v-for="dict in dict.type.sys_pay_status" - :key="dict.value" -:label="dict.value" - >{{dict.label}}</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="金额" prop="figure"> - <el-input v-model="form.figure" placeholder="请输入金额" /> - </el-form-item> - <el-form-item label="备注" prop="remark"> - <el-input v-model="form.remark" type="textarea" 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 { listWxPay, getWxPay, delWxPay, addWxPay, updateWxPay } from "@/api/pay/wxPay"; - -export default { - name: "WxPay", - dicts: ['sys_pay_status'], - data() { - return { - // 遮罩层 - loading: true, - // 选中数组 - ids: [], - // 非单个禁用 - single: true, - // 非多个禁用 - multiple: true, - // 显示搜索条件 - showSearch: true, - // 总条数 - total: 0, - // 支付相关表格数据 - wxPayList: [], - // 弹出层标题 - title: "", - // 是否显示弹出层 - open: false, - // 查询参数 - queryParams: { - pageNum: 1, - pageSize: 10, - name: null, - state: null, - figure: null, - }, - // 表单参数 - form: {}, - // 表单校验 - rules: { - name: [ - { required: true, message: "支付名称不能为空", trigger: "blur" } - ], - state: [ - { required: true, message: "支付状态不能为空", trigger: "blur" } - ], - figure: [ - { required: true, message: "金额不能为空", trigger: "blur" } - ], - } - }; - }, - created() { - this.getList(); - }, - methods: { - /** 查询支付相关列表 */ - getList() { - this.loading = true; - listWxPay(this.queryParams).then(response => { - this.wxPayList = response.rows; - this.total = response.total; - this.loading = false; - }); - }, - // 取消按钮 - cancel() { - this.open = false; - this.reset(); - }, - // 表单重置 - reset() { - this.form = { - id: null, - name: null, - state: "0", - figure: null, - createBy: null, - createTime: null, - updateBy: 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 - getWxPay(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) { - updateWxPay(this.form).then(response => { - this.$modal.msgSuccess("修改成功"); - this.open = false; - this.getList(); - }); - } else { - addWxPay(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 delWxPay(ids); - }).then(() => { - this.getList(); - this.$modal.msgSuccess("删除成功"); - }).catch(() => {}); - }, - /** 导出按钮操作 */ - handleExport() { - this.download('pay/wxPay/export', { - ...this.queryParams - }, `wxPay_${new Date().getTime()}.xlsx`) - } - } -}; -</script>