From 763f3407094ed8a3a52097e9cd5d47dd3e5214b2 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Tue, 21 Mar 2023 16:54:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=AF=E4=BB=98=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting/SettingPaymentController.java | 31 +++--- .../admin/service/ISettingPaymentService.java | 10 +- .../impl/SettingPaymentServiceImpl.java | 95 +++++++++++++++++-- ...ate.java => SettingPayConfigValidate.java} | 2 +- .../setting/SettingPayMethodValidate.java | 15 +++ .../vo/setting/SettingPaymentMethodVo.java | 18 ++++ .../common/entity/setting/DevPayConfig.java | 4 +- .../mdd/common/entity/setting/DevPayWay.java | 31 ++++++ .../mapper/setting/DevPayWayMapper.java | 12 +++ 9 files changed, 195 insertions(+), 23 deletions(-) rename server/like-admin/src/main/java/com/mdd/admin/validate/setting/{SettingPaymentValidate.java => SettingPayConfigValidate.java} (95%) create mode 100644 server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayMethodValidate.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentMethodVo.java create mode 100644 server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayWay.java create mode 100644 server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayWayMapper.java diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/setting/SettingPaymentController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/setting/SettingPaymentController.java index d143e8ab..8db77914 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/setting/SettingPaymentController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/setting/SettingPaymentController.java @@ -2,8 +2,9 @@ package com.mdd.admin.controller.setting; import com.mdd.admin.service.ISettingPaymentService; -import com.mdd.admin.validate.setting.SettingPaymentValidate; -import com.mdd.common.aop.NotLogin; +import com.mdd.admin.validate.setting.SettingPayConfigValidate; +import com.mdd.admin.validate.setting.SettingPayMethodValidate; +import com.mdd.admin.vo.setting.SettingPaymentMethodVo; import com.mdd.common.core.AjaxResult; import com.mdd.common.entity.setting.DevPayConfig; import io.swagger.annotations.Api; @@ -22,23 +23,31 @@ public class SettingPaymentController { @Resource ISettingPaymentService iSettingPaymentService; - public AjaxResult method() { - return AjaxResult.success(); + @GetMapping("/method") + @ApiOperation(value="支付方式列表") + public AjaxResult>> method() { + List> list = iSettingPaymentService.method(); + return AjaxResult.success(list); } - @NotLogin @GetMapping("/list") - @ApiOperation(value="支付渠道列表") + @ApiOperation(value="支付配置列表") public AjaxResult list() { List list = iSettingPaymentService.list(); return AjaxResult.success(list); } - @NotLogin - @PostMapping("/edit") - @ApiOperation(value="支付渠道编辑") - public AjaxResult edit(@Validated @RequestBody SettingPaymentValidate paymentValidate) { - iSettingPaymentService.edit(paymentValidate); + @PostMapping("/editConfig") + @ApiOperation(value="支付配置编辑") + public AjaxResult editConfig(@Validated @RequestBody SettingPayConfigValidate configValidate) { + iSettingPaymentService.editConfig(configValidate); + return AjaxResult.success(); + } + + @PostMapping("/editMethod") + @ApiOperation(value="支付方式编辑") + public AjaxResult editMethod(@Validated @RequestBody SettingPayMethodValidate methodValidate) { + iSettingPaymentService.editMethod(methodValidate); return AjaxResult.success(); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/ISettingPaymentService.java b/server/like-admin/src/main/java/com/mdd/admin/service/ISettingPaymentService.java index c077f382..d50897f4 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/ISettingPaymentService.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/ISettingPaymentService.java @@ -1,6 +1,8 @@ package com.mdd.admin.service; -import com.mdd.admin.validate.setting.SettingPaymentValidate; +import com.mdd.admin.validate.setting.SettingPayConfigValidate; +import com.mdd.admin.validate.setting.SettingPayMethodValidate; +import com.mdd.admin.vo.setting.SettingPaymentMethodVo; import com.mdd.common.entity.setting.DevPayConfig; import java.util.List; @@ -10,8 +12,12 @@ import java.util.List; */ public interface ISettingPaymentService { + List> method(); + List list(); - void edit(SettingPaymentValidate paymentValidate); + void editConfig(SettingPayConfigValidate configValidate); + + void editMethod(SettingPayMethodValidate methodValidate); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/SettingPaymentServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/SettingPaymentServiceImpl.java index 2e7e6be9..ad827bbc 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/SettingPaymentServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/SettingPaymentServiceImpl.java @@ -3,16 +3,24 @@ package com.mdd.admin.service.impl; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mdd.admin.service.ISettingPaymentService; -import com.mdd.admin.validate.setting.SettingPaymentValidate; +import com.mdd.admin.validate.setting.SettingPayConfigValidate; +import com.mdd.admin.validate.setting.SettingPayMethodValidate; +import com.mdd.admin.vo.setting.SettingPaymentMethodVo; import com.mdd.common.entity.setting.DevPayConfig; +import com.mdd.common.entity.setting.DevPayWay; import com.mdd.common.mapper.setting.DevPayConfigMapper; +import com.mdd.common.mapper.setting.DevPayWayMapper; import com.mdd.common.util.MapUtils; import com.mdd.common.util.UrlUtils; +import io.swagger.models.auth.In; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import javax.annotation.Resource; import java.util.Arrays; +import java.util.LinkedList; import java.util.List; /** @@ -24,6 +32,53 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService { @Resource DevPayConfigMapper devPayConfigMapper; + @Resource + DevPayWayMapper devPayWayMapper; + + public List> method() { + List lists = devPayWayMapper.selectList(null); + + List> result = new LinkedList<>(); + List mnp = new LinkedList<>(); + List oa = new LinkedList<>(); + List h5 = new LinkedList<>(); + + for (DevPayWay devPayWay : lists) { + DevPayConfig devPayConfig = devPayConfigMapper.selectOne( + new QueryWrapper() + .eq("id", devPayWay.getPayConfigId()) + .last("limit 1")); + + SettingPaymentMethodVo vo = new SettingPaymentMethodVo(); + BeanUtils.copyProperties(devPayWay, vo); + vo.setName(devPayConfig.getName()); + vo.setIcon(UrlUtils.toAbsoluteUrl(devPayConfig.getIcon())); + + switch (devPayWay.getScene()) { + case 1: // 微信小程序 + mnp.add(vo); + break; + case 2: // 微信公众号 + oa.add(vo); + break; + case 3: + h5.add(vo); + break; + } + } + + result.add(mnp); + result.add(oa); + result.add(h5); + return result; + } + + /** + * 支付配置列表 + * + * @author fzr + * @return List + */ @Override public List list() { List devPayConfigs = devPayConfigMapper.selectList( @@ -38,22 +93,46 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService { return devPayConfigs; } + /** + * 支付配置编辑 + * + * @author fzr + * @param configValidate 参数 + */ @Override - public void edit(SettingPaymentValidate paymentValidate) { + public void editConfig(SettingPayConfigValidate configValidate) { DevPayConfig devPayConfig = devPayConfigMapper.selectOne( new QueryWrapper() - .eq("id", paymentValidate.getId()) + .eq("id", configValidate.getId()) .last("limit 1")); Assert.notNull(devPayConfig, "数据不存在!"); - devPayConfig.setName(paymentValidate.getName()); - devPayConfig.setIcon(UrlUtils.toRelativeUrl(paymentValidate.getIcon())); - devPayConfig.setSort(paymentValidate.getSort()); - devPayConfig.setRemark(paymentValidate.getRemark()); - devPayConfig.setParams(JSON.toJSONString(paymentValidate.getParams())); + devPayConfig.setName(configValidate.getName()); + devPayConfig.setIcon(UrlUtils.toRelativeUrl(configValidate.getIcon())); + devPayConfig.setSort(configValidate.getSort()); + devPayConfig.setRemark(configValidate.getRemark()); + if (devPayConfig.getWay().equals(1)) { + devPayConfig.setParams("{}"); + } else { + devPayConfig.setParams(JSON.toJSONString(configValidate.getParams())); + } devPayConfigMapper.updateById(devPayConfig); } + @Override + @Transactional + public void editMethod(SettingPayMethodValidate methodValidate) { + List> data = methodValidate.getData(); + + for (List list : data) { + for (SettingPaymentMethodVo vo : list) { + DevPayWay way = new DevPayWay(); + way.setIsDefault(vo.getIsDefault()); + way.setStatus(vo.getStatus()); + devPayWayMapper.update(way, new QueryWrapper().eq("id", vo.getId())); + } + } + } } diff --git a/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPaymentValidate.java b/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayConfigValidate.java similarity index 95% rename from server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPaymentValidate.java rename to server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayConfigValidate.java index 72491e87..8fad2ccb 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPaymentValidate.java +++ b/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayConfigValidate.java @@ -10,7 +10,7 @@ import java.util.Map; @Data @ApiModel("支付渠道设置参数") -public class SettingPaymentValidate { +public class SettingPayConfigValidate { @IDMust(message = "id参数必传且需大于0") @ApiModelProperty(value = "ID", required = true) diff --git a/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayMethodValidate.java b/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayMethodValidate.java new file mode 100644 index 00000000..a6acd51d --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/validate/setting/SettingPayMethodValidate.java @@ -0,0 +1,15 @@ +package com.mdd.admin.validate.setting; + +import com.mdd.admin.vo.setting.SettingPaymentMethodVo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel("支付方式设置参数") +public class SettingPayMethodValidate { + + List> data; + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentMethodVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentMethodVo.java new file mode 100644 index 00000000..e497819a --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/setting/SettingPaymentMethodVo.java @@ -0,0 +1,18 @@ +package com.mdd.admin.vo.setting; + +import lombok.Data; + +@Data +public class SettingPaymentMethodVo { + + private Integer id; + + private String name; + + private String icon; + + private Integer isDefault; + + private Integer status; + +} diff --git a/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayConfig.java b/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayConfig.java index 97e8b2ce..bcda5145 100644 --- a/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayConfig.java +++ b/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayConfig.java @@ -6,9 +6,11 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; + @Data @ApiModel("支付配置实体") -public class DevPayConfig { +public class DevPayConfig implements Serializable { private static final long serialVersionUID = 1L; diff --git a/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayWay.java b/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayWay.java new file mode 100644 index 00000000..9dbc9cab --- /dev/null +++ b/server/like-common/src/main/java/com/mdd/common/entity/setting/DevPayWay.java @@ -0,0 +1,31 @@ +package com.mdd.common.entity.setting; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("支付方式实体") +public class DevPayWay implements Serializable { + + @TableId(value="id", type= IdType.AUTO) + @ApiModelProperty("ID") + private Integer id; + + @ApiModelProperty("支付配置ID") + private Integer payConfigId; + + @ApiModelProperty("场景编码: [1=微信小程序, 2=微信公众号, 3=H5, 4=PC, 5=APP]") + private Integer scene; + + @ApiModelProperty("默认支付: [0=否的, 1=是的]") + private Integer isDefault; + + @ApiModelProperty("方式状态: [0=关闭, 1=开启]") + private Integer status; + +} diff --git a/server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayWayMapper.java b/server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayWayMapper.java new file mode 100644 index 00000000..d6115cda --- /dev/null +++ b/server/like-common/src/main/java/com/mdd/common/mapper/setting/DevPayWayMapper.java @@ -0,0 +1,12 @@ +package com.mdd.common.mapper.setting; + +import com.mdd.common.core.basics.IBaseMapper; +import com.mdd.common.entity.setting.DevPayWay; +import org.apache.ibatis.annotations.Mapper; + +/** + * 支付方式Mapper + */ +@Mapper +public interface DevPayWayMapper extends IBaseMapper { +}