diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/SmDeviceMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/SmDeviceMapper.xml index 6f9fc77a..e2ff56b0 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/SmDeviceMapper.xml +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/SmDeviceMapper.xml @@ -22,6 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and su.user_id = #{userId} and sd.store_id = #{storeId} and sd.device_id = #{deviceId} + and sd.device_no like concat('%', #{deviceNo}, '%') and sd.device_id in diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/domain/StoreQuery.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/domain/StoreQuery.java index 94754d92..15b36715 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/domain/StoreQuery.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/domain/StoreQuery.java @@ -43,4 +43,7 @@ public class StoreQuery extends Store { method = "name" ) private String groupBy; + + @ApiModelProperty("关键词") + private String keyword; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/mapper/StoreMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/store/mapper/StoreMapper.xml index 1f516fe2..a8a40ec8 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/mapper/StoreMapper.xml +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/mapper/StoreMapper.xml @@ -45,6 +45,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ss.deleted = #{deleted} and ss.deleted = false and su.user_name like concat('%', #{userName}, '%') + + and ( + ss.name like concat('%', #{keyword}, '%') + or ss.contact_name like concat('%', #{keyword}, '%') + or ss.contact_mobile like concat('%', #{keyword}, '%') + or ss.address like concat('%', #{keyword}, '%') + ) + and #{radius} >= round(st_distance_sphere(point(#{center[0]}, #{center[1]}), point(ss.lng, ss.lat))) diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java index 031446cf..ea8301a4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java @@ -4,6 +4,8 @@ import java.math.BigDecimal; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonView; +import com.ruoyi.common.core.domain.JsonViewProfile; +import com.ruoyi.common.core.domain.ValidGroup; import com.ruoyi.ss.device.domain.DeviceView; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,6 +14,10 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + /** * 套餐对象 sm_suit * @@ -24,35 +30,40 @@ public class Suit extends BaseEntity private static final long serialVersionUID = 1L; /** 套餐id */ - @JsonView(DeviceView.SuitList.class) + @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) + @NotNull(message = "套餐id不允许为空", groups = {ValidGroup.Update.class, ValidGroup.FrontUpdate.class}) private Long suitId; /** 设备id */ @Excel(name = "设备id") + @NotNull(message = "设备ID不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) + @JsonView(JsonViewProfile.AppMch.class) private Long deviceId; /** 套餐名称 */ @Excel(name = "套餐名称") - @JsonView(DeviceView.SuitList.class) + @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) + @NotNull(message = "套餐名称不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) + @Size(min = 1, max = 50, message = "套餐名称长度在1~50个字符之间") private String name; /** 通电时间(分) */ @Excel(name = "通电时间(分钟)") - @JsonView(DeviceView.SuitList.class) + @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) + @NotNull(message = "通电时间不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) + @Min(value = 1, message = "通电时间不允许小于1分钟") private BigDecimal value; /** 价格(元) */ @Excel(name = "价格(元)") - @JsonView(DeviceView.SuitList.class) + @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) + @NotNull(message = "价格不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) + @Min(value = 0, message = "价格不允许小于0") private BigDecimal price; /** 详细说明 */ @Excel(name = "详细说明") - @JsonView(DeviceView.SuitList.class) + @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) + @Size(max = 200, message = "详细说明长度不能超过200个字符") private String description; - - /** 删除标志 */ - @Excel(name = "删除标志") - @JsonIgnore - private Boolean deleted; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitBO.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitBO.java new file mode 100644 index 00000000..9f52d300 --- /dev/null +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitBO.java @@ -0,0 +1,40 @@ +package com.ruoyi.ss.suit.domain; + +import lombok.Data; + +/** + * @author wjh + * 2024/5/8 + */ +@Data +public class SuitBO extends Suit { + + /** + * 过滤APP创建字段 + * @return + */ + public SuitBO filterCreateByApp() { + SuitBO bo = new SuitBO(); + bo.setDeviceId(getDeviceId()); + bo.setName(getName()); + bo.setValue(getValue()); + bo.setPrice(getPrice()); + bo.setDescription(getDescription()); + return bo; + } + + /** + * 过滤APP更新字段 + * @return + */ + public SuitBO filterUpdateByApp() { + SuitBO bo = new SuitBO(); + bo.setSuitId(getSuitId()); + bo.setDeviceId(getDeviceId()); + bo.setName(getName()); + bo.setValue(getValue()); + bo.setPrice(getPrice()); + bo.setDescription(getDescription()); + return bo; + } +} diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitQuery.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitQuery.java index ed170c88..da342e00 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitQuery.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/SuitQuery.java @@ -16,4 +16,10 @@ public class SuitQuery extends Suit { @ApiModelProperty("设备id列表") private List deviceIds; + + @ApiModelProperty("套餐id列表") + private List suitIds; + + @ApiModelProperty("商户id") + private Long mchId; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.java index f5e2bf09..af7daa55 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.java @@ -67,4 +67,11 @@ public interface SuitMapper * @param suitIds ids */ int logicDel(@Param("suitIds") List suitIds); + + /** + * 查询数量 + * @param query + * @return + */ + int selectCount(SuitQuery query); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.xml index 0ec961b9..a1c0d0ac 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.xml +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/mapper/SuitMapper.xml @@ -46,6 +46,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ss.deleted = false and ss.deleted = #{deleted} and sd.device_name like concat('%', #{deviceName}, '%') + + and ss.suit_id in + + #{item} + + + and store.user_id = #{mchId} + + insert into sm_suit diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/ISuitService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/ISuitService.java index b9700785..783f7ac4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/ISuitService.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/ISuitService.java @@ -84,4 +84,18 @@ public interface ISuitService * @param keyMapper 分组映射方法,需要保证唯一性 */ Map> selectGroup(SuitQuery query, Function keyMapper); + + /** + * 根据设备查询套餐列表 + * @param deviceId + * @return + */ + List selectByDeviceId(Long deviceId); + + /** + * 查询套餐数量 + * @param query + * @return + */ + int selectCount(SuitQuery query); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/SuitValidator.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/SuitValidator.java index 917d7c58..a72733ec 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/SuitValidator.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/SuitValidator.java @@ -1,6 +1,7 @@ package com.ruoyi.ss.suit.service; import com.ruoyi.common.core.domain.ValidateResult; +import com.ruoyi.ss.suit.domain.SuitBO; import org.springframework.stereotype.Service; import java.util.List; @@ -12,5 +13,29 @@ import java.util.List; */ public interface SuitValidator { + /** + * 逻辑删除前校验 + */ ValidateResult preLogicDel(List suitIds); + + /** + * APP删除前校验 + */ + ValidateResult preLogicDelByApp(List ids); + + + /** + * APP创建前校验 + */ + ValidateResult preCreateByApp(SuitBO suit); + + /** + * APP更新前校验 + */ + ValidateResult preUpdateByApp(SuitBO suit); + + /** + * 判断这些套餐是否是指定客户的 + */ + boolean isBelong(List ids, Long userId); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java index 685e89c9..8af18c0b 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitServiceImpl.java @@ -141,4 +141,31 @@ public class SuitServiceImpl implements ISuitService } return list.stream().collect(Collectors.groupingBy(keyMapper)); } + + /** + * 根据设备查询套餐列表 + * + * @param deviceId + * @return + */ + @Override + public List selectByDeviceId(Long deviceId) { + if (deviceId == null) { + return Collections.emptyList(); + } + SuitQuery query = new SuitQuery(); + query.setDeviceId(deviceId); + return this.selectSuitList(query); + } + + /** + * 查询套餐数量 + * + * @param query + * @return + */ + @Override + public int selectCount(SuitQuery query) { + return suitMapper.selectCount(query); + } } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java index 62fe883f..0851933b 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/service/impl/SuitValidatorImpl.java @@ -2,11 +2,18 @@ package com.ruoyi.ss.suit.service.impl; import com.ruoyi.common.core.domain.BaseValidator; import com.ruoyi.common.core.domain.ValidateResult; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.ss.device.service.DeviceValidator; +import com.ruoyi.ss.suit.domain.SuitBO; +import com.ruoyi.ss.suit.domain.SuitQuery; +import com.ruoyi.ss.suit.service.ISuitService; import com.ruoyi.ss.suit.service.SuitValidator; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; +import com.ruoyi.common.utils.CollectionUtils; import java.util.Collections; +import java.util.HashSet; import java.util.List; /** @@ -16,11 +23,99 @@ import java.util.List; */ @Service public class SuitValidatorImpl extends BaseValidator implements SuitValidator { + + @Autowired + private DeviceValidator deviceValidator; + + @Autowired + private ISuitService suitService; + @Override public ValidateResult preLogicDel(List suitIds) { - if (CollectionUtils.isEmpty(suitIds)) { + if (CollectionUtils.isEmptyElement(suitIds)) { return error("数据不允许为空"); } return success(); } + + /** + * APP删除前校验 + * + * @param ids + */ + @Override + public ValidateResult preLogicDelByApp(List ids) { + ValidateResult result = this.preLogicDel(ids); + if (result.isError()) { + return result; + } + + if (!this.isBelong(ids, SecurityUtils.getUserId())) { + return error("您没有权限删除这些套餐"); + } + + return success(); + } + + /** + * APP创建前校验 + * + * @param suit + * @return + */ + @Override + public ValidateResult preCreateByApp(SuitBO suit) { + if (suit == null) { + return error("数据不允许为空"); + } + + // 设备校验 + if (!deviceValidator.isBelong(suit.getDeviceId(), SecurityUtils.getUserId())) { + return error("该设备不属于该用户"); + } + + return success(); + } + + /** + * APP更新前校验 + * + * @param suit + * @return + */ + @Override + public ValidateResult preUpdateByApp(SuitBO suit) { + if (suit == null) { + return error("数据不允许为空"); + } + Long userId = SecurityUtils.getUserId(); + + // 判断套餐是否属于用户 + if (!this.isBelong(Collections.singletonList(suit.getSuitId()), userId)) { + return error("您无权修改该套餐"); + } + + // 设备校验 + if (suit.getDeviceId() != null) { + if (!deviceValidator.isBelong(suit.getDeviceId(), userId)) { + return error("该设备不属于该用户"); + } + } + + return success(); + } + + /** + * 判断这些套餐是否是指定用户的 + */ + @Override + public boolean isBelong(List ids, Long userId) { + if (CollectionUtils.isEmptyElement(ids) || userId == null) { + return false; + } + SuitQuery query = new SuitQuery(); + query.setSuitIds(ids); + query.setMchId(userId); + return suitService.selectCount(query) == new HashSet<>(ids).size(); + } } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java index 430e27df..856c0c2e 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserVo.java @@ -27,6 +27,7 @@ public class SmUserVo extends SmUser { @Excel(name = "提现金额") @ApiModelProperty("提现金额") + @JsonView(JsonViewProfile.App.class) private BigDecimal withDrawlAmount; // 提现金额 @ApiModelProperty("总收入") diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java index a0beaaa5..9663459f 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppDeviceController.java @@ -18,6 +18,10 @@ import com.ruoyi.ss.device.domain.enums.DevicePowerStatus; import com.ruoyi.ss.device.domain.vo.SmDeviceVo; import com.ruoyi.ss.device.service.ISmDeviceService; import com.ruoyi.ss.meterReadingRecord.service.ISmMeterReadingRecordService; +import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery; +import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus; +import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillType; +import com.ruoyi.ss.transactionBill.service.TransactionBillService; import com.ruoyi.web.core.annotation.MchRequired; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -52,9 +56,13 @@ public class AppDeviceController extends BaseController { @Value("${debug}") private Boolean debug; + @Autowired private DeviceValidator deviceValidator; + @Autowired + private TransactionBillService transactionBillService; + /** * 修改设备 */ diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppStoreController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppStoreController.java index f991a621..a724b390 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppStoreController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppStoreController.java @@ -123,10 +123,9 @@ public class AppStoreController extends BaseController { @GetMapping("/listNearBy") @JsonView(JsonViewProfile.App.class) @Anonymous - public TableDataInfo listNearBy(@Validated(ValidGroup.Query.class) StoreQuery query) { - startPage(); + public AjaxResult listNearBy(@Validated(ValidGroup.Query.class) StoreQuery query) { List list = storeService.listNearBy(query); - return getDataTable(list); + return success(list); } @ApiOperation("获取店铺信息") diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppSuitController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppSuitController.java new file mode 100644 index 00000000..6e3cdd1b --- /dev/null +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppSuitController.java @@ -0,0 +1,91 @@ +package com.ruoyi.web.controller.app; + +import com.fasterxml.jackson.annotation.JsonView; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.JsonViewProfile; +import com.ruoyi.common.core.domain.ValidGroup; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.ServiceUtil; +import com.ruoyi.ss.device.service.DeviceValidator; +import com.ruoyi.ss.suit.domain.SuitBO; +import com.ruoyi.ss.suit.domain.SuitVo; +import com.ruoyi.ss.suit.service.ISuitService; +import com.ruoyi.ss.suit.service.SuitValidator; +import com.ruoyi.web.core.annotation.MchRequired; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +/** + * @author wjh + * 2024/5/8 + */ +@RestController +@RequestMapping("/app/suit") +public class AppSuitController extends BaseController { + + + @Autowired + private ISuitService suitService; + + @Autowired + private SuitValidator suitValidator; + + @Autowired + private DeviceValidator deviceValidator; + + @ApiOperation("查询设备套餐列表") + @MchRequired + @JsonView(JsonViewProfile.AppMch.class) + @GetMapping("/listByDeviceId/{deviceId}") + public AjaxResult list(@PathVariable Long deviceId) + { + ServiceUtil.assertion(!deviceValidator.isBelong(deviceId, getUserId()), "这不是您的设备,无法查看"); + List list = suitService.selectByDeviceId(deviceId); + return success(list); + } + + @ApiOperation("获取套餐详细信息") + @JsonView(JsonViewProfile.AppMch.class) + @MchRequired + @GetMapping("/{suitId}") + public AjaxResult getInfo(@PathVariable("suitId") Long suitId) { + return success(suitService.selectSuitBySuitId(suitId)); + } + + @ApiOperation("新增套餐") + @PostMapping + @MchRequired + public AjaxResult add(@RequestBody @Validated({ValidGroup.FrontCreate.class}) SuitBO suit) { + suit = suit.filterCreateByApp(); + ServiceUtil.assertion(suitValidator.preCreateByApp(suit)); + return success(suitService.insertSuit(suit)); + } + + @ApiOperation("修改套餐") + @MchRequired + @PutMapping + public AjaxResult edit(@RequestBody @Validated({ValidGroup.FrontUpdate.class}) SuitBO suit) + { + suit = suit.filterUpdateByApp(); + ServiceUtil.assertion(suitValidator.preUpdateByApp(suit)); + return success(suitService.updateSuit(suit)); + } + + @MchRequired + @ApiOperation("删除套餐") + @DeleteMapping("/{suitIds}") + public AjaxResult remove(@PathVariable @ApiParam("套餐id列表") Long[] suitIds) + { + List ids = Arrays.asList(suitIds); + ServiceUtil.assertion(suitValidator.preLogicDelByApp(ids)); + return success(suitService.logicDel(ids) >= 1); + } + +} diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java index 2d609c8a..2dc629be 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java @@ -9,6 +9,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; +import com.ruoyi.ss.device.service.DeviceValidator; import com.ruoyi.ss.transactionBill.domain.TransactionBill; import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery; import com.ruoyi.ss.transactionBill.domain.bo.TransactionBillBO; @@ -56,6 +57,9 @@ public class AppTransactionBillController extends BaseController @Autowired private TransactionBillValidator transactionBillValidator; + @Autowired + private DeviceValidator deviceValidator; + /** * 查询充值记录列表 */ @@ -190,4 +194,18 @@ public class AppTransactionBillController extends BaseController return AjaxResult.success(smTransactionBillService.selectDeviceRechargeFailList(getUserId())); } + @MchRequired + @ApiOperation("获取设备充值列表") + @GetMapping("/rechargeListByDevice") + @JsonView(JsonViewProfile.AppMch.class) + public TableDataInfo getDeviceRechargeList(@RequestParam @ApiParam("设备id") Long deviceId) { + ServiceUtil.assertion(!deviceValidator.isBelong(deviceId, getUserId()), "这不是您的设备,无法查询"); + TransactionBillQuery query = new TransactionBillQuery(); + query.setDeviceId(deviceId); + query.setType(TransactionBillType.RECHARGE.getType()); + query.setStatus(TransactionBillStatus.SUCCESS.getStatus()); + startPage(); + return getDataTable(smTransactionBillService.selectSmTransactionBillList(query)); + } + } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SuitController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SuitController.java index 491b7748..55a7c0bc 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SuitController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SuitController.java @@ -4,12 +4,15 @@ import java.util.Arrays; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.core.domain.ValidGroup; import com.ruoyi.common.utils.ServiceUtil; +import com.ruoyi.ss.suit.domain.SuitBO; import com.ruoyi.ss.suit.domain.SuitQuery; import com.ruoyi.ss.suit.domain.SuitVo; import com.ruoyi.ss.suit.service.SuitValidator; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -84,7 +87,7 @@ public class SuitController extends BaseController @PreAuthorize("@ss.hasPermi('ss:suit:add')") @Log(title = "套餐", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody Suit suit) + public AjaxResult add(@RequestBody @Validated(ValidGroup.Create.class) SuitBO suit) { return toAjax(suitService.insertSuit(suit)); } @@ -95,7 +98,7 @@ public class SuitController extends BaseController @PreAuthorize("@ss.hasPermi('ss:suit:edit')") @Log(title = "套餐", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody Suit suit) + public AjaxResult edit(@RequestBody @Validated(ValidGroup.Update.class) Suit suit) { return toAjax(suitService.updateSuit(suit)); }