diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPayTypeController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPayTypeController.java index 914eab538..0ade24dcf 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPayTypeController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPayTypeController.java @@ -18,6 +18,7 @@ import java.util.List; /** * 支付方式管理 + * * @author Administrator */ @RestController @@ -60,7 +61,19 @@ public class ShopPayTypeController { @PostMapping public CzgResult add(@RequestBody @Validated(InsertGroup.class) ShopPayTypeAddDTO shopPayTypeAddDTO) { ShopPayType shopPayType = BeanUtil.copyProperties(shopPayTypeAddDTO, ShopPayType.class); - return CzgResult.success(shopPayTypeService.add(StpKit.USER.getShopId(),shopPayType)); + return CzgResult.success(shopPayTypeService.add(StpKit.USER.getShopId(), shopPayType)); } + /** + * 支付类型拖动排序 + * + * @param shopId 店铺ID + * @param id 拖动的支付类型ID + * @param targetSort 目标位置排序号 + */ + @PostMapping("/sort") + public CzgResult sort(@RequestParam Long shopId, @RequestParam Integer id, @RequestParam Integer targetSort) { + shopPayTypeService.updateSort(shopId, id, targetSort); + return CzgResult.success(); + } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPayType.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPayType.java index a19795b05..e59bc9696 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPayType.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPayType.java @@ -37,6 +37,12 @@ public class ShopPayType implements Serializable { @Id(keyType = KeyType.Auto) private Integer id; + /** + * 图标 + */ + private String icon; + + /** * 支付类型cash,alipay,weixin,deposit,arrears,virtual,member-account */ @@ -57,26 +63,6 @@ public class ShopPayType implements Serializable { */ private Long shopId; - /** - * 0允许退款 1-不允许退款 - */ - private Integer isRefundable; - - /** - * 是否打开钱箱 - */ - private Integer isOpenCashDrawer; - - /** - * 0不是 1是 [系统级支付] - */ - private Integer isSystem; - - /** - * 0-非虚拟 1虚拟 virtual - */ - private Integer isIdeal; - /** * 0-不显示1显示 */ @@ -91,10 +77,4 @@ public class ShopPayType implements Serializable { private LocalDateTime createTime; @Column(onInsertValue = "now()") private LocalDateTime updateTime; - - /** - * 图标 - */ - private String icon; - } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPayTypeService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPayTypeService.java index cdef3366c..82d83ba62 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPayTypeService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPayTypeService.java @@ -21,4 +21,12 @@ public interface ShopPayTypeService extends IService { Boolean edit(Long shopId, ShopPayTypeDTO shopPayTypeDTO); void addInfo(Long shopId); + + /** + * 拖动排序 + * @param shopId 店铺ID + * @param payTypeId 当前拖动的支付类型ID + * @param targetSort 目标排序号 + */ + void updateSort(Long shopId, Integer payTypeId, Integer targetSort); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPayTypeServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPayTypeServiceImpl.java index 8512aaa18..ceeafc13a 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPayTypeServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPayTypeServiceImpl.java @@ -11,6 +11,7 @@ import com.czg.account.entity.ShopPayType; import com.czg.account.service.ShopPayTypeService; import com.czg.service.account.mapper.ShopPayTypeMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -24,11 +25,11 @@ import java.util.List; @Service public class ShopPayTypeServiceImpl extends ServiceImpl implements ShopPayTypeService{ private final ArrayList payTypeArrayList = new ArrayList<>(){{ - add(new ShopPayType().setPayType("cash").setPayName("现金").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/319005ffef734aa6a88d432459fa59d8.png")); - add(new ShopPayType().setPayType("bank").setPayName("银行卡").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/98e6199cc61a480b9c63617600b2f2fe.png")); - add(new ShopPayType().setPayType("scanCode").setPayName("扫码支付").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/3a344b46638547df81d5857a3c8cac66.png")); - add(new ShopPayType().setPayType("deposit").setPayName("储值卡").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/6f778df10ea74142a6cba310c2a19063.png")); - add(new ShopPayType().setPayType("virtual").setPayName("挂账支付").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/6f778df10ea74142a6cba310c2a19063.png").setIsShowShortcut(0)); + add(new ShopPayType().setPayType("cash").setPayName("现金").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/319005ffef734aa6a88d432459fa59d8.png").setSorts(1)); + add(new ShopPayType().setPayType("bank").setPayName("银行卡").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/98e6199cc61a480b9c63617600b2f2fe.png").setSorts(2)); + add(new ShopPayType().setPayType("scanCode").setPayName("扫码支付").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/3a344b46638547df81d5857a3c8cac66.png").setSorts(3)); + add(new ShopPayType().setPayType("deposit").setPayName("储值卡").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/6f778df10ea74142a6cba310c2a19063.png").setSorts(4)); + add(new ShopPayType().setPayType("virtual").setPayName("挂账支付").setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/3/6f778df10ea74142a6cba310c2a19063.png").setIsShowShortcut(0).setSorts(5)); }}; @Override @@ -44,6 +45,50 @@ public class ShopPayTypeServiceImpl extends ServiceImpl list = list(wrapper); + + // 3. 重新排序(核心算法) + for (int i = 0; i < list.size(); i++) { + ShopPayType item = list.get(i); + if (item.getId().equals(payTypeId)) { + // 当前拖动项,设置目标排序 + item.setSorts(targetSort); + } else if (oldSort < targetSort) { + // 向下拖动:原排序 < 目标排序 → 中间项排序 -1 + if (item.getSorts() > oldSort && item.getSorts() <= targetSort) { + item.setSorts(item.getSorts() - 1); + } + } else { + // 向上拖动:原排序 > 目标排序 → 中间项排序 +1 + if (item.getSorts() < oldSort && item.getSorts() >= targetSort) { + item.setSorts(item.getSorts() + 1); + } + } + } + // 4. 批量更新排序 + updateBatch(list); + } + @Override public List getList(Long shopId) { List list = list(new QueryWrapper().eq(ShopPayType::getShopId, StpKit.USER.getShopId()));