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 super SuitVo, ? extends K> 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));
}