diff --git a/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessAlipayController.java b/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessAlipayController.java new file mode 100644 index 0000000..020b251 --- /dev/null +++ b/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessAlipayController.java @@ -0,0 +1,67 @@ +package com.shop.cereshop.admin.controller; + +/** + * 描述:商家支付宝配置模块 + * + * @author stevenhu + * @version 2025/02/20 14:38 + */ + +import com.shop.cereshop.admin.annotation.NoRepeatSubmit; +import com.shop.cereshop.admin.annotation.NoRepeatWebLog; +import com.shop.cereshop.admin.service.balipay.CereBusinessAlipayService; +import com.shop.cereshop.commons.domain.balipay.CereBusinessAlipay; +import com.shop.cereshop.commons.domain.user.CerePlatformUser; +import com.shop.cereshop.commons.exception.CoBusinessException; +import com.shop.cereshop.commons.result.Result; +import com.shop.cereshop.commons.utils.GsonUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping("balipay") +/** + * 注解方式生成日志对象,指定topic生成对象类名 + */ +@Slf4j(topic = "BusinessAlipayController") +@Api(value = "商家支付宝配置模块", tags = "商家支付宝配置模块") +public class BusinessAlipayController { + + @Autowired + private CereBusinessAlipayService businessAlipayService; + + @PostMapping(value = "save") + @NoRepeatSubmit + @ApiOperation(value = "新建商家支付宝配置信息") + @NoRepeatWebLog + public Result save(@RequestBody CereBusinessAlipay alipay, HttpServletRequest request) throws CoBusinessException { + //获取当前登录账户 + CerePlatformUser user = (CerePlatformUser) request.getAttribute("user"); + businessAlipayService.save(alipay); + return new Result(user.getUsername(),"新建商家支付宝配置信息", GsonUtil.objectToGson(alipay)); + } + + @PostMapping(value = "update") + @NoRepeatSubmit + @ApiOperation(value = "修改商家支付宝配置信息") + @NoRepeatWebLog + public Result update(@RequestBody CereBusinessAlipay alipay, HttpServletRequest request) throws CoBusinessException{ + //获取当前登录账户 + CerePlatformUser user = (CerePlatformUser) request.getAttribute("user"); + businessAlipayService.update(alipay); + return new Result(user.getUsername(),"修改商家支付宝配置信息", GsonUtil.objectToGson(alipay)); + } + + @GetMapping(value = "getBusinessAlipay/{businessId}") + @ApiOperation(value = "根据商家id获取支付宝配置信息") + @NoRepeatWebLog + public Result getHnaPayInfo(@PathVariable Long businessId) throws CoBusinessException{ + CereBusinessAlipay alipay = businessAlipayService.getByBusinessId(businessId); + return new Result(alipay, ""); + } +} diff --git a/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessWxpayController.java b/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessWxpayController.java index 1c8c2bf..5148c70 100644 --- a/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessWxpayController.java +++ b/cereshop-admin/src/main/java/com/shop/cereshop/admin/controller/BusinessWxpayController.java @@ -12,6 +12,7 @@ import com.shop.cereshop.admin.annotation.NoRepeatWebLog; import com.shop.cereshop.admin.param.business.BusinessUpdateParam; import com.shop.cereshop.admin.service.bwxpay.CereBusinessWxpayService; import com.shop.cereshop.commons.constant.CoReturnFormat; +import com.shop.cereshop.commons.domain.bhnapay.CereBusinessHnapay; import com.shop.cereshop.commons.domain.business.CerePlatformBusiness; import com.shop.cereshop.commons.domain.business.CerePlatformBusinessUser; import com.shop.cereshop.commons.domain.bwxpay.CereBusinessWxpay; @@ -23,10 +24,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -55,13 +53,20 @@ public class BusinessWxpayController { @PostMapping(value = "update") @NoRepeatSubmit - @ApiOperation(value = "修改商家") + @ApiOperation(value = "修改商家微信配置信息") @NoRepeatWebLog public Result update(@RequestBody CereBusinessWxpay wxpay, HttpServletRequest request) throws CoBusinessException{ - //校验商家名称是否存在 //获取当前登录账户 CerePlatformUser user = (CerePlatformUser) request.getAttribute("user"); businessWxpayService.update(wxpay); - return new Result(user.getUsername(),"修改商家", GsonUtil.objectToGson(wxpay)); + return new Result(user.getUsername(),"修改商家微信配置信息", GsonUtil.objectToGson(wxpay)); + } + + @GetMapping(value = "getBusinessWxpay/{businessId}") + @ApiOperation(value = "根据商家id获取微信配置信息") + @NoRepeatWebLog + public Result getHnaPayInfo(@PathVariable Long businessId) throws CoBusinessException{ + CereBusinessWxpay wxpay = businessWxpayService.getByBusinessId(businessId); + return new Result(wxpay, ""); } } diff --git a/cereshop-admin/src/main/java/com/shop/cereshop/admin/dao/balipay/CereBusinessAlipayDao.java b/cereshop-admin/src/main/java/com/shop/cereshop/admin/dao/balipay/CereBusinessAlipayDao.java new file mode 100644 index 0000000..ccd7a03 --- /dev/null +++ b/cereshop-admin/src/main/java/com/shop/cereshop/admin/dao/balipay/CereBusinessAlipayDao.java @@ -0,0 +1,20 @@ +package com.shop.cereshop.admin.dao.balipay; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.shop.cereshop.commons.domain.balipay.CereBusinessAlipay; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + + +/** + * 描述: + * + * @author stevenhu + * @version 2025/02/20 11:49 + */ +@Mapper +public interface CereBusinessAlipayDao extends BaseMapper { + + CereBusinessAlipay getByBusinessId(@Param("businessId") Long businessId); + +} diff --git a/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/CereBusinessAlipayService.java b/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/CereBusinessAlipayService.java new file mode 100644 index 0000000..34a756d --- /dev/null +++ b/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/CereBusinessAlipayService.java @@ -0,0 +1,19 @@ +package com.shop.cereshop.admin.service.balipay; + +import com.shop.cereshop.commons.domain.balipay.CereBusinessAlipay; +import com.shop.cereshop.commons.exception.CoBusinessException; + +/** + * 描述: + * + * @author stevenhu + * @version 2025/02/20 14:19 + */ +public interface CereBusinessAlipayService { + + void save(CereBusinessAlipay record) throws CoBusinessException; + + void update(CereBusinessAlipay businessAlipay) throws CoBusinessException; + + CereBusinessAlipay getByBusinessId(Long businessId) throws CoBusinessException; +} diff --git a/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/impl/CereBusinessAlipayServiceImpl.java b/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/impl/CereBusinessAlipayServiceImpl.java new file mode 100644 index 0000000..b174cda --- /dev/null +++ b/cereshop-admin/src/main/java/com/shop/cereshop/admin/service/balipay/impl/CereBusinessAlipayServiceImpl.java @@ -0,0 +1,40 @@ +package com.shop.cereshop.admin.service.balipay.impl; + +import com.shop.cereshop.admin.dao.balipay.CereBusinessAlipayDao; +import com.shop.cereshop.admin.service.balipay.CereBusinessAlipayService; +import com.shop.cereshop.commons.domain.balipay.CereBusinessAlipay; +import com.shop.cereshop.commons.exception.CoBusinessException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +/** + * 描述: + * + * @author stevenhu + * @version 2025/02/20 14:21 + */ +@Service +public class CereBusinessAlipayServiceImpl implements CereBusinessAlipayService { + + @Autowired + private CereBusinessAlipayDao cereBusinessAlipayDao; + + @Override + @Transactional(isolation= Isolation.DEFAULT,propagation= Propagation.REQUIRED,rollbackFor = {CoBusinessException.class, Exception.class}) + public void save(CereBusinessAlipay record) throws CoBusinessException { + cereBusinessAlipayDao.insert(record); + } + + @Override + public void update(CereBusinessAlipay businessAlipay) throws CoBusinessException { + cereBusinessAlipayDao.updateById(businessAlipay); + } + + @Override + public CereBusinessAlipay getByBusinessId(Long businessId) throws CoBusinessException { + return cereBusinessAlipayDao.getByBusinessId(businessId); + } +} diff --git a/cereshop-admin/src/main/resources/mybatis/mapper/ballipay/CereBusinessAlipayDAO.xml b/cereshop-admin/src/main/resources/mybatis/mapper/ballipay/CereBusinessAlipayDAO.xml new file mode 100644 index 0000000..f39dde6 --- /dev/null +++ b/cereshop-admin/src/main/resources/mybatis/mapper/ballipay/CereBusinessAlipayDAO.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/cereshop-commons/src/main/java/com/shop/cereshop/commons/domain/balipay/CereBusinessAlipay.java b/cereshop-commons/src/main/java/com/shop/cereshop/commons/domain/balipay/CereBusinessAlipay.java new file mode 100644 index 0000000..685da94 --- /dev/null +++ b/cereshop-commons/src/main/java/com/shop/cereshop/commons/domain/balipay/CereBusinessAlipay.java @@ -0,0 +1,50 @@ +package com.shop.cereshop.commons.domain.balipay; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述: + * + * @author stevenhu + * @version 2025/02/20 11:12 + */ +@Data +public class CereBusinessAlipay implements Serializable { + /** + * 主键Id + */ + private Long id; + + /** + * 商家id + */ + private Long businessId; + + /** + * 应用appid + */ + private String appId; + + /** + * 应用私钥 + */ + private String privateKey; + + /** + * 接口内容解密key + */ + private String decryKey; + + /** + * 支付宝公钥 + */ + private String publicKey; + + /** + * 请求网关地址 + */ + private String gatewayUrl; + +} diff --git a/doc/3.0/update.sql b/doc/3.0/update.sql index cc51737..e4ae47c 100644 --- a/doc/3.0/update.sql +++ b/doc/3.0/update.sql @@ -338,6 +338,18 @@ CREATE TABLE `cere_business_wxpay` ( PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商家微信支付配置信息' ROW_FORMAT = DYNAMIC; +DROP TABLE IF EXISTS `cere_business_alipay`; +CREATE TABLE `cere_business_alipay` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `business_id` bigint(20) NULL DEFAULT 0 COMMENT '商家Id', + `app_id` varchar(100) NULL COMMENT '应用appid', + `private_key` text NULL COMMENT '应用私钥', + `decry_key` text NULL COMMENT '接口内容解密key', + `public_key` text NULL COMMENT '支付宝公钥', + `gateway_url` varchar(256) NULL COMMENT '请求网关地址', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商家支付宝支付配置信息' ROW_FORMAT = DYNAMIC; + ALTER TABLE cere_platform_business ADD hna_pay_id varchar(256) DEFAULT '' COMMENT '新账通支付商户Id/分账方id'; ALTER TABLE cere_platform_business ADD bind_card_agr_no varchar(30) DEFAULT '' COMMENT '新账通支付绑卡协议号'; ALTER TABLE cere_platform_business ADD COLUMN hnapay_status tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '0-待上传 1-审核中 2-审核通过 3-审核拒绝' AFTER bind_card_agr_no;