diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java index 3e0a1a856..588dc14bd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java @@ -7,6 +7,8 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.enums.EnumMerchantMeterStatus; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.service.kw.KwMerchantMeterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -17,6 +19,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("kwMerchantMeter") @@ -36,8 +40,7 @@ public class KwMerchantMeterController extends BaseController { @SystemControllerLog(description = "电表设备-设备列表") public Result list(@ModelAttribute KwMerchantMeter kwMerchantMeter, Integer pageNum, Integer pageSize) { if (kwMerchantMeter == null) kwMerchantMeter = new KwMerchantMeter(); - - return new ResultData(); + return new ResultData(kwMerchantMeterService.listAsPage(kwMerchantMeter, pageNum, pageSize)); } @ApiOperation("绑定设备") @@ -47,6 +50,20 @@ public class KwMerchantMeterController extends BaseController { if (kwMerchantMeter == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMerchantId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMeterId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + KwMerchantMeter record = new KwMerchantMeter(); + record.setMeterId(kwMerchantMeter.getMeterId()); + record.setStatus(EnumMerchantMeterStatus.VALID.getCode()); + if (kwMerchantMeterService.selectCount(record) > 0) + return new ResultData(ErrorCode.DEVICE_HAS_BEEN_BOUND); + + kwMerchantMeter.setTenantId(getTenantId()); + kwMerchantMeter.setStatus(EnumMerchantMeterStatus.VALID.getCode()); + kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); return new ResultData(); } @@ -58,6 +75,17 @@ public class KwMerchantMeterController extends BaseController { if (kwMerchantMeter == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMerchantId() == null + && kwMerchantMeter.getId() == null + && kwMerchantMeter.getMeterId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + if (kwMerchantMeter.getId() != null) { + kwMerchantMeter.setStatus(EnumMerchantMeterStatus.INVALID.getCode()); + kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); + } else { + kwMerchantMeterService.unbindBatch(kwMerchantMeter); + } return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 7ef2fb294..58bb6c49d 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -407,6 +407,7 @@ public enum ErrorCode{ DEVICE_ALREADY_EXIST(26001, "设备已经存在"), DEVICE_QRCODE_GET_FAILED(26002, "微信二维码生成失败,请重试"), DEVICE_REACHED_MAX_NUMBER(26003, "设备已经达到最大数量"), + DEVICE_HAS_BEEN_BOUND(26004, "设备已经绑定到其他商户"), /** * 消息组件 */ diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java new file mode 100644 index 000000000..92f52db20 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java @@ -0,0 +1,23 @@ +package com.iformall.domain.vo; + +import com.iformall.domain.po.KwMeter; +import lombok.Data; + +import java.util.List; + + +/** + * @author gongbiao + */ +@Data +public class KwMerchantMeterVo extends KwMeter { + + @io.swagger.annotations.ApiModelProperty(value="商户名",name="name") + private String merchantName; + @io.swagger.annotations.ApiModelProperty(value="商户联系方式",name="linkPhone") + private String merchantLinkPhone; + + + @io.swagger.annotations.ApiModelProperty(value = "店铺列表", name = "shopVoList") + private List shopVoList; +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java new file mode 100644 index 000000000..b3ecf1f71 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java @@ -0,0 +1,35 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumMerchantMeterStatus { + + VALID(0, "有效"), + INVALID(1, "无效"),; + + public static EnumMerchantMeterStatus getEnum(Integer code) { + for (EnumMerchantMeterStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumMerchantMeterStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java index 656828d50..db6462879 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java @@ -2,12 +2,14 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import java.util.List; public interface KwMerchantMeterMapper extends CommonMapper { List findList(KwMerchantMeter param); - + List findListVo(KwMerchantMeter param); + int unbindBatch(KwMerchantMeter param); } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java index 3f0c03138..6da4dee8c 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java @@ -4,6 +4,7 @@ package com.iformall.service.kw; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import java.util.List; @@ -18,7 +19,7 @@ public interface KwMerchantMeterService { * @param pageSize * @return */ - PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize); /** @@ -37,14 +38,6 @@ public interface KwMerchantMeterService { ResultData saveOrUpdate(KwMerchantMeter record); - /** - * 根据Id删除实体 - * - * @param id - */ - void deleteById(Long id); - - /** * 根据实体查询分页列表 * @@ -52,6 +45,7 @@ public interface KwMerchantMeterService { * @return */ List findList(KwMerchantMeter record); - - + List findListVo(KwMerchantMeter record); + int selectCount(KwMerchantMeter record); + int unbindBatch(KwMerchantMeter record); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java index 1dd3c5d58..e3ca53a14 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import com.iformall.mapper.KwMerchantMeterMapper; import com.iformall.service.kw.KwMerchantMeterService; import org.slf4j.Logger; @@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; @@ -23,8 +25,8 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { KwMerchantMeterMapper kwMerchantMeterMapper; @Override - public PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findList(record)); + public PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record)); } @Override @@ -38,8 +40,11 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { if (record.getId() == null) { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); + record.setCreateTime(new Date()); + record.setUpdateTime(new Date()); kwMerchantMeterMapper.insertSelective(record); } else { + record.setUpdateTime(new Date()); kwMerchantMeterMapper.updateByPrimaryKeySelective(record); } return new ResultData(); @@ -47,13 +52,27 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { @Override - public void deleteById(Long id) { - kwMerchantMeterMapper.deleteByPrimaryKey(id); + public List findList(KwMerchantMeter record) { + return kwMerchantMeterMapper.findList(record); } @Override - public List findList(KwMerchantMeter record) { - return kwMerchantMeterMapper.findList(record); + public List findListVo(KwMerchantMeter record) { + return kwMerchantMeterMapper.findListVo(record); + } + + @Override + public int selectCount(KwMerchantMeter record) { + return kwMerchantMeterMapper.selectCount(record); + } + + @Override + public int unbindBatch(KwMerchantMeter record) { + if (record == null) + return 0; + if (record.getMeterId() == null && record.getMerchantId() == null) + return 0; + return kwMerchantMeterMapper.unbindBatch(record); } diff --git a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml index 2faf4ee88..643a8d544 100644 --- a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml @@ -9,6 +9,8 @@ + + @@ -21,11 +23,19 @@ and `id` = #{id} - + and `tenant_id` = #{tenantId} + + and `merchant_id` = #{merchantId} + + + + and `meter_id` = #{meterId} + + and `status` = #{status} @@ -39,12 +49,56 @@ order by ${sortColumns} - select - from kw_box_meter + from kw_merchant_meter + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`meter_id`,`merchant_id`,`status`,`create_time`,`update_time`, `name`, `link_phone` + + + + + + update kw_merchant_meter set status = 1 + where status = 0 + + + and `merchant_id` = #{merchantId} + + + + and `meter_id` = #{meterId} + + + +