diff --git a/share-space-admin/src/main/java/com/ruoyi/web/controller/app/AppUserController.java b/share-space-admin/src/main/java/com/ruoyi/web/controller/app/AppUserController.java index 32d28ca..5ce78be 100644 --- a/share-space-admin/src/main/java/com/ruoyi/web/controller/app/AppUserController.java +++ b/share-space-admin/src/main/java/com/ruoyi/web/controller/app/AppUserController.java @@ -179,6 +179,20 @@ public class AppUserController extends BaseController { return toAjax(userService.basicConfig(dto)); } + /** + * 升级多店权限 + */ + @Log(title = "升级多店权限", businessType = BusinessType.UPDATE) + @PostMapping("/upgrade") + public AjaxResult upgrade(Long userId) + { + logger.info("升级多店权限:【userId={}】", userId); + UserVO user =new UserVO(); + user.setUserId(userId); + user.setMultiStore("N"); + return toAjax(userService.updateUser(user)); + } + /** * 账变记录 */ diff --git a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/ChannelController.java b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/ChannelController.java index 1e82fac..45bb9ea 100644 --- a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/ChannelController.java +++ b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/ChannelController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.system; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -11,6 +12,7 @@ import com.ruoyi.ss.channel.domain.Channel; import com.ruoyi.ss.channel.domain.ChannelQuery; import com.ruoyi.ss.channel.domain.ChannelVO; import com.ruoyi.ss.channel.service.IChannelService; +import com.ruoyi.ss.userWithdraw.domain.UserWithdraw; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -19,6 +21,8 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; +import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log; + /** * 充值渠道Controller * @@ -30,7 +34,7 @@ import java.util.List; public class ChannelController extends BaseController { @Autowired - private IChannelService smEtChannelService; + private IChannelService channelService; /** * 查询充值渠道列表 @@ -40,10 +44,21 @@ public class ChannelController extends BaseController public TableDataInfo list(ChannelQuery smChannel) { startPage(); - List list = smEtChannelService.selectSmChannelList(smChannel); + List list = channelService.selectSmChannelList(smChannel); return getDataTable(list); } + /** + * 查询充值渠道列表 + */ + @PreAuthorize("@ss.hasPermi('system:channel:listByIds')") + @PostMapping("/listByIds") + public AjaxResult listByIds(@RequestBody List ids) + { + List list = channelService.selectByIds(ids); + return success(list); + } + /** * 导出充值渠道列表 */ @@ -52,7 +67,7 @@ public class ChannelController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, ChannelQuery smChannel) { - List list = smEtChannelService.selectSmChannelList(smChannel); + List list = channelService.selectSmChannelList(smChannel); ExcelUtil util = new ExcelUtil(ChannelVO.class); util.exportExcel(response, list, "充值渠道数据"); } @@ -64,7 +79,20 @@ public class ChannelController extends BaseController @GetMapping(value = "/{channelId}") public AjaxResult getInfo(@PathVariable("channelId") Long channelId) { - return success(smEtChannelService.selectChannelByChannelId(channelId)); + return success(channelService.selectChannelByChannelId(channelId)); + } + + + /** + * 添加渠道 + */ + @PreAuthorize("@ss.hasPermi('system:channel:add')") + @Log(title = "添加渠道", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody Channel channel) + { + log.info("【添加渠道】:【{}】", JSON.toJSONString(channel)); + return toAjax(channelService.insertSmChannel(channel)); } /** @@ -86,7 +114,7 @@ public class ChannelController extends BaseController channel.setPrivateKeyPath(form.getPrivateKeyPath()); channel.setMerchantSerialNumber(form.getMerchantSerialNumber()); channel.setRefundNotifyUrl(form.getRefundNotifyUrl()); - return toAjax(smEtChannelService.updateSmChannel(channel)); + return toAjax(channelService.updateSmChannel(channel)); } } diff --git a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java index 2935f89..bf59d5f 100644 --- a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java +++ b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java @@ -1,9 +1,13 @@ package com.ruoyi.web.controller.system; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.ServiceConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.dto.ModifyBalanceDTO; import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.ServiceUtil; +import com.ruoyi.ss.changeBalance.service.IChangeBalanceService; import com.ruoyi.ss.user.domain.UserVO; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; @@ -12,6 +16,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.ss.user.domain.UserQuery; import com.ruoyi.ss.user.service.IUserAssembler; import com.ruoyi.ss.user.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -36,6 +41,9 @@ public class UserController extends BaseController @Resource private IUserAssembler userAssembler; + @Autowired + private IChangeBalanceService changeBalanceService; + /** * 获取用户列表 */ @@ -168,4 +176,23 @@ public class UserController extends BaseController } + /** + * 修改余额 + * 1. 修改用户余额 + * 2. 增加账变记录 + * 记录操作人 reapply above + */ + @Log(title = "修改余额", businessType = BusinessType.UPDATE) + @PutMapping("/modifyBalance") + public AjaxResult modifyBalance(@Validated @RequestBody ModifyBalanceDTO dto) + { + User user = eUserService.selectUserById(dto.getUserId()); + /* 记录账变 */ + int i = changeBalanceService.generateChangeBalance(null, null, dto.getType(), + ServiceConstants.SYSTEM_MODIFY, dto.getAmount(), dto.getUserId(), user.getUserName(), user.getPhonenumber(),user.getUserType()); + ServiceUtil.assertion(i == 0, "更新记录账变失败"); + return toAjax(i); + } + + } diff --git a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserWithdrawController.java b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserWithdrawController.java index 5a974cc..285481b 100644 --- a/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserWithdrawController.java +++ b/share-space-admin/src/main/java/com/ruoyi/web/controller/system/UserWithdrawController.java @@ -7,6 +7,8 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.ss.userWithdraw.domain.UserWithdraw; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawQuery; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawVO; import com.ruoyi.ss.userWithdraw.service.IUserWithdrawService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,25 +35,25 @@ public class UserWithdrawController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:userWithdraw:list')") @GetMapping("/list") - public TableDataInfo list(UserWithdraw rlUserWithdraw) + public TableDataInfo list(UserWithdrawQuery rlUserWithdraw) { startPage(); - List list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw); + List list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw); return getDataTable(list); } - /** - * 导出用户提现渠道列表 - */ - @PreAuthorize("@ss.hasPermi('system:userWithdraw:export')") - @Log(title = "用户提现渠道", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, UserWithdraw rlUserWithdraw) - { - List list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw); - ExcelUtil util = new ExcelUtil(UserWithdraw.class); - util.exportExcel(response, list, "用户提现渠道数据"); - } +// /** +// * 导出用户提现渠道列表 +// */ +// @PreAuthorize("@ss.hasPermi('system:userWithdraw:export')") +// @Log(title = "用户提现渠道", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(HttpServletResponse response, UserWithdrawQuery rlUserWithdraw) +// { +// List list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw); +// ExcelUtil util = new ExcelUtil(UserWithdraw.class); +// util.exportExcel(response, list, "用户提现渠道数据"); +// } /** * 获取用户提现渠道详细信息 diff --git a/share-space-common/src/main/java/com/ruoyi/common/constant/ServiceConstants.java b/share-space-common/src/main/java/com/ruoyi/common/constant/ServiceConstants.java index bf97952..c2ec0fe 100644 --- a/share-space-common/src/main/java/com/ruoyi/common/constant/ServiceConstants.java +++ b/share-space-common/src/main/java/com/ruoyi/common/constant/ServiceConstants.java @@ -834,6 +834,8 @@ public class ServiceConstants { public static final String PRODUCT_ORDER = "7"; /** 短信扣费 */ public static final String SMS_DEDUCTION = "8"; + /** 系统修改 */ + public static final String SYSTEM_MODIFY = "9"; /**----------------------------业务类型end----------------------------*/ /**----------------------------订单操作类型start----------------------------*/ @@ -1177,6 +1179,20 @@ public class ServiceConstants { /**----------------------------首页时间范围end----------------------------*/ + /**----------------------------多店权限start----------------------------*/ + /** 多店权限:1-单店;N-多店 */ + /** + * 多店权限:1-单店 + */ + public static final String STORE_PERMISSION_SINGLE = "1"; + + /** + * 多店权限:N-多店 + */ + public static final String STORE_PERMISSION_MULTIPLE = "N"; + + /**----------------------------多店权限end----------------------------*/ + } diff --git a/share-space-common/src/main/java/com/ruoyi/common/core/domain/dto/ModifyBalanceDTO.java b/share-space-common/src/main/java/com/ruoyi/common/core/domain/dto/ModifyBalanceDTO.java new file mode 100644 index 0000000..c89e023 --- /dev/null +++ b/share-space-common/src/main/java/com/ruoyi/common/core/domain/dto/ModifyBalanceDTO.java @@ -0,0 +1,35 @@ +package com.ruoyi.common.core.domain.dto; + +import com.ruoyi.common.core.domain.ValidGroup; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * 修改余额dto + * + * @author qiuzhenzhao + */ +@Data +public class ModifyBalanceDTO { + + /** 用户ID */ + @ApiModelProperty(value = "用户ID") + @NotNull(message = "用户ID不能为空", groups = {ValidGroup.Update.class}) + private Long userId; + + @ApiModelProperty(value = "金额") + @NotNull(message = "金额不能为空") + private BigDecimal amount; + + @ApiModelProperty(value = "备注") + @NotNull(message = "备注不能为空") + private String remark; + + @ApiModelProperty(value = "类型:1-加账;2-减账") + @NotNull(message = "类型不能为空") + private String type; + +} diff --git a/share-space-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java b/share-space-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java index 7401201..f3e0d6f 100644 --- a/share-space-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java +++ b/share-space-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.domain.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.annotation.Excel.Type; @@ -102,6 +103,7 @@ public class User extends BaseEntity /** 最后登录时间 */ @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date loginDate; /** 是否认证:0-未认证;1-已认证 */ @@ -113,8 +115,12 @@ public class User extends BaseEntity /** 微信openid */ private String wxopenid; - /** 支付渠道 */ - public Long payChannel; +// /** 支付渠道 */ +// public Long payChannel; + + @Excel(name = "自定义渠道ID列表") + @ApiModelProperty("自定义渠道ID列表") + private List channelIds; /** 分账比例 */ @NotNull(message = "分账比例不能为空", groups = {ValidGroup.CreatePartner.class}) @@ -161,6 +167,9 @@ public class User extends BaseEntity @ApiModelProperty(value = "app菜单ids") private List appMenus; + @ApiModelProperty(value = "多店权限:1-单店;N-多店") + private String multiStore; + public User() { } diff --git a/share-space-common/src/main/java/com/ruoyi/common/enums/BusinessType.java b/share-space-common/src/main/java/com/ruoyi/common/enums/BusinessType.java index a2db4c6..db327ea 100644 --- a/share-space-common/src/main/java/com/ruoyi/common/enums/BusinessType.java +++ b/share-space-common/src/main/java/com/ruoyi/common/enums/BusinessType.java @@ -208,6 +208,10 @@ public enum BusinessType /** * 禁用设备 */ - DISABLE + DISABLE, + /** + * 修改余额 + */ + MODIFYBALANCE } diff --git a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/domain/enums/BusinessType.java b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/domain/enums/BusinessType.java index d45dbf6..b50ded5 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/domain/enums/BusinessType.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/domain/enums/BusinessType.java @@ -9,7 +9,8 @@ public enum BusinessType { ORDER_REFUND("4", "订单退款:"), WITHDRAW("5", "提现"), WITHDRAW_FAIL("6", "提现失败"), - SMS_CHARGE("8", "短信扣费"); + SMS_CHARGE("8", "短信扣费"), + SYSTEM_MODIFY("9", "管理员加款"); private final String code; private final String description; diff --git a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/mapper/ChangeBalanceMapper.xml b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/mapper/ChangeBalanceMapper.xml index e0a682c..fb71fa5 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/mapper/ChangeBalanceMapper.xml +++ b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/mapper/ChangeBalanceMapper.xml @@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select cb.change_id, cb.order_no, cb.out_trade_no, cb.type, cb.bus_type, cb.before_balance, cb.after_balance, + select cb.change_id, cb.order_no, cb.out_trade_no, cb.type, cb.bus_type, cb.before_balance, cb.after_balance,cb.create_by, cb.amount, cb.owner_name, cb.owner_id, cb.owner_phone, cb.owner_type, cb.create_time, cb.reason from ss_change_balance cb left join ss_user u on u.user_id = cb.owner_id @@ -58,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" owner_phone, owner_type, create_time, + create_by, reason, @@ -73,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{ownerPhone}, #{ownerType}, #{createTime}, + #{createBy}, #{reason}, diff --git a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java index 6daeda5..89720b6 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java @@ -18,7 +18,9 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; +import static com.ruoyi.common.constant.ServiceConstants.FLOW_TYPE_DISBURSE; import static com.ruoyi.common.constant.ServiceConstants.FLOW_TYPE_INCOME; +import static com.ruoyi.common.utils.SecurityUtils.getUsername; /** * 余额变动Service业务层处理 @@ -144,12 +146,15 @@ public class ChangeBalanceServiceImpl implements IChangeBalanceService // 获取当前余额 BigDecimal balance = userService.selectUserBalanceById(userId); + String changeType; // 计算变更后的余额 BigDecimal afterBalance; if (type.equals(FLOW_TYPE_INCOME)) { afterBalance = balance.add(payFee); + changeType = "管理员加款:+"; } else { afterBalance = balance.subtract(payFee); + changeType = "管理员扣款:-"; // 校验余额是否会变成负数 if (afterBalance.compareTo(BigDecimal.ZERO) < 0) { throw new ServiceException("余额不足"); @@ -169,6 +174,7 @@ public class ChangeBalanceServiceImpl implements IChangeBalanceService rlChangeBalance.setOwnerType(userType); rlChangeBalance.setOwnerPhone(phone); rlChangeBalance.setCreateTime(DateUtils.getNowDate()); + rlChangeBalance.setCreateBy(getUsername()); // 根据 busType 生成不同的 reason 描述 BigDecimal changeAmount = rlChangeBalance.getAmount(); @@ -177,7 +183,10 @@ public class ChangeBalanceServiceImpl implements IChangeBalanceService if (businessType != null) { reason = businessType.getDescription() + orderNo; - if (businessType == BusinessType.ORDER_REFUND || businessType == BusinessType.WITHDRAW || businessType == BusinessType.SMS_CHARGE) { + if (businessType == BusinessType.SYSTEM_MODIFY) { + reason = changeType + payFee + "元"; + } + if (type.equals(FLOW_TYPE_DISBURSE)) { changeAmount = changeAmount.negate(); } } diff --git a/share-space-system/src/main/java/com/ruoyi/ss/channel/domain/Channel.java b/share-space-system/src/main/java/com/ruoyi/ss/channel/domain/Channel.java index 7be276e..4d3c375 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/channel/domain/Channel.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/channel/domain/Channel.java @@ -5,8 +5,10 @@ import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.ValidGroup; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.NonNull; import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** @@ -21,6 +23,7 @@ public class Channel extends BaseEntity private static final long serialVersionUID = 1L; /** 主键 */ + @NotNull(message = "渠道id不能为空", groups = {ValidGroup.Update.class}) private Long channelId; /** 渠道名称 */ @@ -31,13 +34,17 @@ public class Channel extends BaseEntity @Excel(name = "渠道代码") private String code; + /** 充值渠道类型:1-平台渠道;2-商户专属 */ + @Excel(name = "充值渠道类型") + private String type; + /** 是否启用 */ @Excel(name = "是否启用") private Boolean enabled; /** 成本率% */ @Excel(name = "成本率%") - @Min(value = 0, message = "成本率不允许低于0", groups = {ValidGroup.Update.class}) + @Min(value = 0, message = "成本率不允许低于0", groups = {ValidGroup.Update.class, ValidGroup.Create.class}) private BigDecimal costRate; @ApiModelProperty("渠道图片") diff --git a/share-space-system/src/main/java/com/ruoyi/ss/channel/mapper/ChannelMapper.xml b/share-space-system/src/main/java/com/ruoyi/ss/channel/mapper/ChannelMapper.xml index 33e23ea..7565e51 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/channel/mapper/ChannelMapper.xml +++ b/share-space-system/src/main/java/com/ruoyi/ss/channel/mapper/ChannelMapper.xml @@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sc.channel_id, sc.name, sc.code, + sc.type, sc.enabled, sc.cost_rate, sc.picture, @@ -22,13 +23,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sc.private_key_path, sc.merchant_serial_number, sc.refund_notify_url, - sc.appid + sc.appid, + sc.create_time from ss_channel sc and sc.name like concat('%', #{query.name}, '%') and sc.enabled = #{query.enabled} + and sc.type = #{query.type} and sc.channel_id in @@ -55,17 +58,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" channel_id, `name`, `code`, + type, enabled, cost_rate, picture, + create_time, #{channelId}, #{name}, #{code}, + #{type}, #{enabled}, #{costRate}, #{picture}, + #{createTime}, @@ -74,6 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" name = #{data.name}, code = #{data.code}, + type = #{data.type}, enabled = #{data.enabled}, cost_rate = #{data.costRate}, picture = #{data.picture}, diff --git a/share-space-system/src/main/java/com/ruoyi/ss/channel/service/IChannelService.java b/share-space-system/src/main/java/com/ruoyi/ss/channel/service/IChannelService.java index ec0ca41..ec5aa64 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/channel/service/IChannelService.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/channel/service/IChannelService.java @@ -86,4 +86,9 @@ public interface IChannelService * @return 结果 */ ChannelVO selectChannelBySerialNumber(String wechatpaySerial); + + /** + * 根据id查询 + */ + List selectByIds(List ids); } diff --git a/share-space-system/src/main/java/com/ruoyi/ss/channel/service/impl/ChannelServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/channel/service/impl/ChannelServiceImpl.java index 46ddb15..ee9c123 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/channel/service/impl/ChannelServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/channel/service/impl/ChannelServiceImpl.java @@ -1,5 +1,7 @@ package com.ruoyi.ss.channel.service.impl; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.channel.domain.ChannelQuery; import com.ruoyi.ss.channel.domain.Channel; import com.ruoyi.ss.channel.domain.ChannelVO; @@ -8,6 +10,7 @@ import com.ruoyi.ss.channel.service.IChannelService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -58,6 +61,7 @@ public class ChannelServiceImpl implements IChannelService @Override public int insertSmChannel(Channel channel) { + channel.setCreateTime(DateUtils.getNowDate()); return rlChannelMapper.insertSmChannel(channel); } @@ -126,4 +130,14 @@ public class ChannelServiceImpl implements IChannelService public ChannelVO selectChannelBySerialNumber(String wechatpaySerial) { return rlChannelMapper.selectChannelBySerialNumber(wechatpaySerial); } + + @Override + public List selectByIds(List ids) { + if (CollectionUtils.isEmptyElement(ids)) { + return Collections.emptyList(); + } + ChannelQuery query = new ChannelQuery(); + query.setChannelIds(ids); + return this.selectSmChannelList(query); + } } diff --git a/share-space-system/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java index 059625d..d0d4a89 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java @@ -8,6 +8,8 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.collection.CollectionUtils; +import com.ruoyi.ss.channelWithdraw.domain.ChannelWithdrawVO; +import com.ruoyi.ss.channelWithdraw.service.ChannelWithdrawService; import com.ruoyi.ss.device.domain.Device; import com.ruoyi.ss.device.domain.DeviceBO; import com.ruoyi.ss.device.domain.DeviceCountVO; @@ -46,6 +48,8 @@ import com.ruoyi.ss.toilet.domain.ToiletVO; import com.ruoyi.ss.toilet.service.IToiletService; import com.ruoyi.ss.user.domain.UserVO; import com.ruoyi.ss.user.service.IUserService; +import com.ruoyi.ss.userWithdraw.domain.UserWithdraw; +import com.ruoyi.ss.userWithdraw.service.IUserWithdrawService; import com.ruoyi.system.iot.domain.IotDeviceInfo; import com.ruoyi.system.iot.domain.response.CommandResponse; import com.ruoyi.system.iot.enums.IotHttpStatus; @@ -128,6 +132,12 @@ public class DeviceServiceImpl implements DeviceService @Autowired private DeviceBindRecordService deviceBindRecordService; + @Autowired + private IUserWithdrawService userWithdrawService; + + @Autowired + private ChannelWithdrawService channelWithdrawService; + /** * 查询设备 * @@ -1358,11 +1368,14 @@ public class DeviceServiceImpl implements DeviceService int updateCount = deviceMapper.bind(device.getDeviceId(), storeId, userId); ServiceUtil.assertion(updateCount != 1, "当前设备信息已变更,请刷新后重试"); - // 将用户更新变成商户 + // 将用户更新变成商户,并将全局的配置加入用户提现渠道中 UserVO userVO = userService.selectUserById(userId); if(!userVO.getUserType().equals(USER_TYPE_MERCHANT)){ int i = userService.becomeMch(userId); ServiceUtil.assertion(i != 1, "更新商户失败"); + + // 全局的配置加入用户提现渠道中 + userWithdrawalChannel(userVO.getUserId()); } // 记录绑定记录 @@ -1375,6 +1388,30 @@ public class DeviceServiceImpl implements DeviceService return Boolean.TRUE; } + private void userWithdrawalChannel(Long userId) { + List channelWithdrawVOS = channelWithdrawService.selectAllChannelWithdrawList(); + int i1 = userWithdrawService.deleteRlUserWithdrawByUserChannelId(userId); + createUserWithdrawal(userId, channelWithdrawVOS); + } + + private void createUserWithdrawal(Long userId, List channelWithdrawVOS) { + for (ChannelWithdrawVO channelWithdrawVO : channelWithdrawVOS) { + UserWithdraw rlUserWithdraw = new UserWithdraw(); + rlUserWithdraw.setHandlingChargeType(channelWithdrawVO.getHandlingChargeType()); + rlUserWithdraw.setWithdrawHandlingCharge(channelWithdrawVO.getWithdrawHandlingCharge()); + rlUserWithdraw.setUserId(userId); + rlUserWithdraw.setChannelId(channelWithdrawVO.getChannelId()); + rlUserWithdraw.setIsOpen(true); + rlUserWithdraw.setMaxAmount(channelWithdrawVO.getMaxAmount()); + rlUserWithdraw.setMinAmount(channelWithdrawVO.getMinAmount()); + rlUserWithdraw.setName(channelWithdrawVO.getName()); + rlUserWithdraw.setPicture(channelWithdrawVO.getPicture()); + rlUserWithdraw.setIsNeedCode(channelWithdrawVO.getIsNeedCode()); + int i = userWithdrawService.insertRlUserWithdraw(rlUserWithdraw); + ServiceUtil.assertion(i==0,"创建用户提现渠道失败:userId:"+ userId); + } + } + /** * 根据mac号查询数据 * @param mac diff --git a/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml b/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml index ec237f1..42abdde 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml +++ b/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml @@ -125,6 +125,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and o.status = #{status} and o.pay_channel = #{payChannel} and o.store_id = #{storeId} + and o.room_id = #{roomId} + and o.equipment_id = #{equipmentId} and o.store_name = #{storeName} and o.merchant_id = #{merchantId} and o.original_order_no = #{originalOrderNo} @@ -273,7 +275,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select u.user_id, u.user_name, u.real_name, u.id_card, u.nick_name, u.email, u.avatar,u.service_fee_proportion,u.clean_duration, u.clean_notice,u.ago_cancel,u.penalty,u.app_menus, u.phonenumber, u.password, u.sex, u.status,u.user_type,u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time,u.balance,u.before_time,u.device_admin,u.before_time, - u.remark,u.wxopenid,u.is_authentication,u.pay_channel,ub.balance + u.remark,u.wxopenid,u.is_authentication,u.channel_ids,ub.balance from ss_user u left join ss_user_balance ub on ub.user_id = u.user_id where u.user_id = #{userId} @@ -209,7 +210,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/IUserWithdrawService.java b/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/IUserWithdrawService.java index 70d146c..9114aef 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/IUserWithdrawService.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/IUserWithdrawService.java @@ -1,6 +1,8 @@ package com.ruoyi.ss.userWithdraw.service; import com.ruoyi.ss.userWithdraw.domain.UserWithdraw; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawQuery; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawVO; import java.util.List; @@ -26,7 +28,7 @@ public interface IUserWithdrawService * @param rlUserWithdraw 用户提现渠道 * @return 用户提现渠道集合 */ - public List selectRlUserWithdrawList(UserWithdraw rlUserWithdraw); + public List selectRlUserWithdrawList(UserWithdrawQuery rlUserWithdraw); /** * 根据userId查询用户提现渠道列表 diff --git a/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/impl/UserWithdrawServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/impl/UserWithdrawServiceImpl.java index deb3041..d21537a 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/impl/UserWithdrawServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/userWithdraw/service/impl/UserWithdrawServiceImpl.java @@ -2,6 +2,8 @@ package com.ruoyi.ss.userWithdraw.service.impl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.ss.userWithdraw.domain.UserWithdraw; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawQuery; +import com.ruoyi.ss.userWithdraw.domain.UserWithdrawVO; import com.ruoyi.ss.userWithdraw.mapper.UserWithdrawMapper; import com.ruoyi.ss.userWithdraw.service.IUserWithdrawService; import org.springframework.stereotype.Service; @@ -40,7 +42,7 @@ public class UserWithdrawServiceImpl implements IUserWithdrawService * @return 用户提现渠道 */ @Override - public List selectRlUserWithdrawList(UserWithdraw rlUserWithdraw) + public List selectRlUserWithdrawList(UserWithdrawQuery rlUserWithdraw) { return userWithdrawMapper.selectRlUserWithdrawList(rlUserWithdraw); }