套餐API
This commit is contained in:
parent
d51db24133
commit
a04c399c71
|
@ -22,6 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="userId != null"> and su.user_id = #{userId}</if>
|
||||
<if test="storeId != null"> and sd.store_id = #{storeId}</if>
|
||||
<if test="deviceId != null"> and sd.device_id = #{deviceId}</if>
|
||||
<if test="deviceNo != null"> and sd.device_no like concat('%', #{deviceNo}, '%')</if>
|
||||
<if test="deviceIds != null and deviceIds.size() > 0">
|
||||
and sd.device_id in
|
||||
<foreach collection="deviceIds" open="(" close=")" separator="," item="item">
|
||||
|
|
|
@ -43,4 +43,7 @@ public class StoreQuery extends Store {
|
|||
method = "name"
|
||||
)
|
||||
private String groupBy;
|
||||
|
||||
@ApiModelProperty("关键词")
|
||||
private String keyword;
|
||||
}
|
||||
|
|
|
@ -45,6 +45,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="deleted != null "> and ss.deleted = #{deleted}</if>
|
||||
<if test="deleted == null "> and ss.deleted = false</if>
|
||||
<if test="userName != null "> and su.user_name like concat('%', #{userName}, '%')</if>
|
||||
<if test="keyword != null and keyword != ''">
|
||||
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}, '%')
|
||||
)
|
||||
</if>
|
||||
<if test="center != null and center.size() == 2 and radius != null">
|
||||
and #{radius} >= round(st_distance_sphere(point(#{center[0]}, #{center[1]}), point(ss.lng, ss.lat)))
|
||||
</if>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -16,4 +16,10 @@ public class SuitQuery extends Suit {
|
|||
|
||||
@ApiModelProperty("设备id列表")
|
||||
private List<Long> deviceIds;
|
||||
|
||||
@ApiModelProperty("套餐id列表")
|
||||
private List<Long> suitIds;
|
||||
|
||||
@ApiModelProperty("商户id")
|
||||
private Long mchId;
|
||||
}
|
||||
|
|
|
@ -67,4 +67,11 @@ public interface SuitMapper
|
|||
* @param suitIds ids
|
||||
*/
|
||||
int logicDel(@Param("suitIds") List<Long> suitIds);
|
||||
|
||||
/**
|
||||
* 查询数量
|
||||
* @param query
|
||||
* @return
|
||||
*/
|
||||
int selectCount(SuitQuery query);
|
||||
}
|
||||
|
|
|
@ -46,6 +46,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="deleted == null"> and ss.deleted = false</if>
|
||||
<if test="deleted != null"> and ss.deleted = #{deleted}</if>
|
||||
<if test="deviceName != null"> and sd.device_name like concat('%', #{deviceName}, '%')</if>
|
||||
<if test="suitIds != null and suitIds.size() > 0">
|
||||
and ss.suit_id in
|
||||
<foreach item="item" collection="suitIds" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="mchId != null"> and store.user_id = #{mchId}</if>
|
||||
</sql>
|
||||
|
||||
<select id="selectSuitList" parameterType="SuitQuery" resultMap="SuitResult">
|
||||
|
@ -61,6 +68,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where ss.suit_id = #{suitId} and ss.deleted = false
|
||||
</select>
|
||||
|
||||
<select id="selectCount" resultType="java.lang.Integer">
|
||||
select count(ss.suit_id) as `count`
|
||||
from sm_suit ss
|
||||
left join sm_device sd on sd.device_id = ss.device_id
|
||||
left join sm_store store on store.store_id = sd.store_id
|
||||
<where>
|
||||
<include refid="searchCondition"/>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="insertSuit" parameterType="Suit">
|
||||
insert into sm_suit
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
|
|
@ -84,4 +84,18 @@ public interface ISuitService
|
|||
* @param keyMapper 分组映射方法,需要保证唯一性
|
||||
*/
|
||||
<K> Map<K, List<SuitVo>> selectGroup(SuitQuery query, Function<? super SuitVo, ? extends K> keyMapper);
|
||||
|
||||
/**
|
||||
* 根据设备查询套餐列表
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
List<SuitVo> selectByDeviceId(Long deviceId);
|
||||
|
||||
/**
|
||||
* 查询套餐数量
|
||||
* @param query
|
||||
* @return
|
||||
*/
|
||||
int selectCount(SuitQuery query);
|
||||
}
|
||||
|
|
|
@ -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<Long> suitIds);
|
||||
|
||||
/**
|
||||
* APP删除前校验
|
||||
*/
|
||||
ValidateResult preLogicDelByApp(List<Long> ids);
|
||||
|
||||
|
||||
/**
|
||||
* APP创建前校验
|
||||
*/
|
||||
ValidateResult preCreateByApp(SuitBO suit);
|
||||
|
||||
/**
|
||||
* APP更新前校验
|
||||
*/
|
||||
ValidateResult preUpdateByApp(SuitBO suit);
|
||||
|
||||
/**
|
||||
* 判断这些套餐是否是指定客户的
|
||||
*/
|
||||
boolean isBelong(List<Long> ids, Long userId);
|
||||
}
|
||||
|
|
|
@ -141,4 +141,31 @@ public class SuitServiceImpl implements ISuitService
|
|||
}
|
||||
return list.stream().collect(Collectors.groupingBy(keyMapper));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备查询套餐列表
|
||||
*
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SuitVo> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Long> suitIds) {
|
||||
if (CollectionUtils.isEmpty(suitIds)) {
|
||||
if (CollectionUtils.isEmptyElement(suitIds)) {
|
||||
return error("数据不允许为空");
|
||||
}
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* APP删除前校验
|
||||
*
|
||||
* @param ids
|
||||
*/
|
||||
@Override
|
||||
public ValidateResult preLogicDelByApp(List<Long> 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<Long> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ public class SmUserVo extends SmUser {
|
|||
|
||||
@Excel(name = "提现金额")
|
||||
@ApiModelProperty("提现金额")
|
||||
@JsonView(JsonViewProfile.App.class)
|
||||
private BigDecimal withDrawlAmount; // 提现金额
|
||||
|
||||
@ApiModelProperty("总收入")
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 修改设备
|
||||
*/
|
||||
|
|
|
@ -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<StoreVo> list = storeService.listNearBy(query);
|
||||
return getDataTable(list);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@ApiOperation("获取店铺信息")
|
||||
|
|
|
@ -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<SuitVo> 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<Long> ids = Arrays.asList(suitIds);
|
||||
ServiceUtil.assertion(suitValidator.preLogicDelByApp(ids));
|
||||
return success(suitService.logicDel(ids) >= 1);
|
||||
}
|
||||
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user