diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/Device.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/Device.java
index 8725ad51..bdf6255e 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/Device.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/domain/Device.java
@@ -251,4 +251,9 @@ public class Device extends BaseEntity
@Excel(name = "结束使用的电量")
@ApiModelProperty("结束使用的电量")
private BigDecimal expireEle;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "最后一次设置总电量初始读数的时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("最后一次设置总电量初始读数的时间")
+ private LocalDateTime lastInitReading;
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.java
index 60b97679..39aacdae 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.java
@@ -9,6 +9,7 @@ import com.ruoyi.ss.device.domain.vo.DeviceVO;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -217,4 +218,10 @@ public interface DeviceMapper
* @return
*/
int addEle(@Param("deviceId") Long deviceId, @Param("amount") BigDecimal amount);
+
+ /**
+ * 记录读数
+ */
+ int initTotalEle(@Param("deviceId") Long deviceId);
+
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.xml
index 5cb46740..890eed7e 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.xml
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/mapper/DeviceMapper.xml
@@ -67,6 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sd.last_recover_time,
sd.version,
sd.expire_ele,
+ sd.last_init_reading,
sm.model_name as model,
sm.picture as picture,
sm.tags as model_tags,
@@ -392,6 +393,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
online_status2,
version,
expire_ele,
+ last_init_reading,
#{storeId},
@@ -445,6 +447,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{onlineStatus2},
#{version},
#{expireEle},
+ #{lastInitReading},
@@ -529,6 +532,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
online_status2 = #{onlineStatus2},
version = #{version},
expire_ele = #{expireEle},
+ last_init_reading = #{lastInitReading},
where device_id = #{deviceId}
@@ -668,6 +672,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where device_id = #{deviceId} and agent_id is null
+
+ update sm_device
+ set init_reading = total_electri_quantity,
+ last_init_reading = now()
+ where device_id = #{deviceId}
+
+
delete from sm_device where device_id = #{deviceId}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/DeviceService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/DeviceService.java
index 4480039b..e3f10511 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/DeviceService.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/DeviceService.java
@@ -383,4 +383,10 @@ public interface DeviceService
* @param totalEle 总用电量
*/
int closeNotFinishedBill(DeviceVO device, BigDecimal totalEle);
+
+ /**
+ * 记录初始化读数
+ */
+ int initTotalEle(Long deviceId);
+
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java
index 6a5b03bc..9459f594 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java
@@ -1230,6 +1230,16 @@ public class DeviceServiceImpl implements DeviceService
return closeCount;
}
+ @Override
+ public int initTotalEle(Long deviceId) {
+ if (deviceId == null) {
+ return 0;
+ }
+ // 拉取设备信息
+ this.pullDeviceInfo(deviceId);
+ return deviceMapper.initTotalEle(deviceId);
+ }
+
/**
* 设备是否已经被绑定
*
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/realName/service/impl/RealNameValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/realName/service/impl/RealNameValidatorImpl.java
index 2ab39646..12a44611 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/realName/service/impl/RealNameValidatorImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/realName/service/impl/RealNameValidatorImpl.java
@@ -5,6 +5,8 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.ss.realName.domain.RealNameQuery;
import com.ruoyi.ss.realName.service.RealNameService;
import com.ruoyi.ss.realName.service.RealNameValidator;
+import com.ruoyi.ss.user.domain.SmUserQuery;
+import com.ruoyi.ss.user.service.ISmUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -18,6 +20,9 @@ public class RealNameValidatorImpl implements RealNameValidator {
@Autowired
private RealNameService realNameService;
+ @Autowired
+ private ISmUserService userService;
+
/**
* 判断身份证是否已经实名
*/
@@ -26,9 +31,10 @@ public class RealNameValidatorImpl implements RealNameValidator {
if (StringUtils.isBlank(idCard)) {
return;
}
- RealNameQuery query = new RealNameQuery();
- query.setEqIdCard(idCard);
+ SmUserQuery query = new SmUserQuery();
+ query.setIsReal(true);
+ query.setEqRealIdCard(idCard);
query.setExcludeUserId(userId);
- ServiceUtil.assertion(realNameService.selectCount(query) > 0, "身份证已被其他用户使用,无法重复实名");
+ ServiceUtil.assertion(userService.selectCount(query) > 0, "当前身份证已被其他用户使用,无法重复实名");
}
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserQuery.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserQuery.java
index f83de936..2095fda8 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserQuery.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/domain/SmUserQuery.java
@@ -40,4 +40,7 @@ public class SmUserQuery extends SmUser {
@ApiModelProperty("精准支付宝OpenId")
private String eqAliOpenId;
+
+ @ApiModelProperty("精准身份证号")
+ private String eqRealIdCard;
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.java
index fdb5698f..7e9d5f51 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.java
@@ -141,4 +141,9 @@ public interface SmUserMapper
* 绑定手机号
*/
int bindMobile(@Param("userId") Long userId, @Param("mobile") String mobile);
+
+ /**
+ * 解除实名认证
+ */
+ int resetRealName(Long userId);
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
index 5f4ca4db..e87279c9 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
@@ -96,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and su.ali_open_id = #{eqAliOpenId}
and su.agent_allow_mch_switch != #{agentAllowMchSwitch}
and if(su.is_real, su.real_name, su.user_name) like concat('%', #{realOrUserName}, '%')
+ and su.real_id_card = #{eqRealIdCard}
and su.user_id in (
select sdt.tenant_id
@@ -359,6 +360,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where user_id = #{userId} and (phonenumber is null or phonenumber = '')
+
+ update sm_user
+ set is_real = false,
+ real_name = null,
+ real_id_card = null,
+ real_phone = null
+ where user_id = #{userId}
+
+
delete from sm_user where user_id = #{userId}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
index ec414699..1ded6b03 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
@@ -288,4 +288,9 @@ public interface ISmUserService
* @param ciphertext 支付宝手机号密文
*/
int bindAliMobile(Long userId, String ciphertext);
+
+ /**
+ * 重置实名认证
+ */
+ int resetRealName(Long userId);
}
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
index cade2f41..6a1ef259 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
@@ -704,6 +704,11 @@ public class SmUserServiceImpl implements ISmUserService
return this.bindMobile(userId, mobile);
}
+ @Override
+ public int resetRealName(Long userId) {
+ return smUserMapper.resetRealName(userId);
+ }
+
private SmUserVO selectOne(SmUserQuery query) {
PageHelper.startPage(1, 1);
List list = this.selectSmUserList(query);
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 d9866127..1a95ab99 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
@@ -218,15 +218,17 @@ public class AppDeviceController extends BaseController {
@ApiOperation("刷新数据信息v2")
@GetMapping("/v2/refreshIot")
public AjaxResult syncIotBySn(@RequestParam(required = false) Long deviceId,
- @RequestParam(required = false) String deviceNo) {
- if (deviceId == null && StringUtils.isBlank(deviceNo)) {
- return error("设备ID和SN必须传入其中一个");
- }
+ @RequestParam(required = false) String deviceNo,
+ @RequestParam(required = false) String mac) {
DeviceVO device = null;
if (deviceId != null) {
device = smDeviceService.selectById(deviceId);
} else if (StringUtils.hasText(deviceNo)) {
device = smDeviceService.selectByDeviceNo(deviceNo);
+ } else if (StringUtils.hasText(mac)) {
+ device = smDeviceService.selectByAnyMac(mac);
+ } else {
+ return error("设备ID、SN、MAC必须传入其中一个");
}
smDeviceService.pullDeviceInfo(device);
return success();
diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmDeviceController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmDeviceController.java
index 2920384d..ec31037a 100644
--- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmDeviceController.java
+++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmDeviceController.java
@@ -249,4 +249,11 @@ public class SmDeviceController extends BaseController
return toAjax(deviceService.setWifi(dto));
}
+ @ApiOperation("初始化设备总用电量读数")
+ @PreAuthorize("@ss.hasPermi('system:device:initTotalEle')")
+ @PutMapping("/{deviceId}/initTotalEle")
+ public AjaxResult initTotalEle(@PathVariable Long deviceId ) {
+ return toAjax(deviceService.initTotalEle(deviceId));
+ }
+
}
diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java
index abc16779..6f735f41 100644
--- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java
+++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmUserController.java
@@ -146,4 +146,14 @@ public class SmUserController extends BaseController
return toAjax(smUserService.logicDel(userIds));
}
+ /**
+ * 删除普通用户信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:smUser:unbindRealName')")
+ @Log(title = "解除实名认证", businessType = BusinessType.OTHER)
+ @PutMapping("/{userId}/resetRealName")
+ public AjaxResult resetRealName(@PathVariable Long userId) {
+ return toAjax(smUserService.resetRealName(userId));
+ }
+
}