diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java index a084c8ac2..3efa68d99 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java @@ -327,6 +327,12 @@ public class MemberController extends BaseController { return response; } + /** + * 用户解绑鉴权卡 + * @param request + * @param dto + * @return + */ @PostMapping("/memberUnbindingCard") public RestApiResponse memberUnbindingCard(HttpServletRequest request, @RequestBody BindingCardDTO dto) { logger.info("用户解绑鉴权卡 param:{}", JSONObject.toJSONString(dto)); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index f2b15a49d..41dc6522c 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Locale; import java.util.Objects; @Service @@ -289,6 +290,10 @@ public class MemberService { // memberId 不为空,说明此卡已被绑定 throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARD_HAS_BEEN_BINDING); } + if (!StringUtils.equals(pileAuthCardInfo.getSecretKey(), dto.getSecretKey().toUpperCase(Locale.ROOT))) { + // 密钥不一致,不能绑定 + throw new BusinessException(ReturnCodeEnum.CODE_SECRET_KEY_NOT_SAME); + } authCard.setMemberId(dto.getMemberId()); authCard.setStatus("1"); // 1-正常使用 authCard.setCreateBy(dto.getMemberId()); diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileAuthCardController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileAuthCardController.java index 88e6f52f7..1e1ce8aea 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileAuthCardController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileAuthCardController.java @@ -109,4 +109,14 @@ public class PileAuthCardController extends BaseController { public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(pileAuthCardService.deletePileAuthCardByIds(ids)); } + + /** + * 停用充电站鉴权卡 + */ + @PreAuthorize("@ss.hasPermi('pile:card:edit')") + @Log(title = "充电站鉴权卡", businessType = BusinessType.UPDATE) + @GetMapping("/deactivateCard/{id}") + public AjaxResult deactivateCard(@PathVariable("id") Long id) { + return toAjax(pileAuthCardService.deactivateCard(id)); + } } diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java index 47ae14515..a5988c2dd 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java @@ -129,6 +129,8 @@ public enum ReturnCodeEnum { CODE_THIS_CARD_NOT_BIND_USER("00600002", "此卡未绑定用户!"), CODE_THIS_CARD_HAS_BEEN_BINDING("00600003", "此卡已被绑定!"), + + CODE_SECRET_KEY_NOT_SAME("00600004", "密钥错误,请检查!"), ; private String value; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileAuthCard.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileAuthCard.java index 93bcccc45..8aa314b32 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileAuthCard.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileAuthCard.java @@ -45,6 +45,8 @@ public class PileAuthCard { @Excel(name = "卡状态") private String status; + private String secretKey; + /** * 所属用户的会员id */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/BindingCardDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/BindingCardDTO.java index 572fe0944..f0882fa22 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/BindingCardDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/BindingCardDTO.java @@ -22,6 +22,11 @@ public class BindingCardDTO { */ private String physicsCard; + /** + * 密钥 + */ + private String secretKey; + /** * 电话号码 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileAuthCardMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileAuthCardMapper.java index 75ab4eb6a..18b600c43 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileAuthCardMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileAuthCardMapper.java @@ -71,6 +71,13 @@ public interface PileAuthCardMapper { */ public int deletePileAuthCardById(Long id); + /** + * 停用某张卡 + * @param id + * @return + */ + int deactivateCard(Long id); + /** * 批量删除充电站鉴权卡 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileAuthCardService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileAuthCardService.java index c84733a97..ca21d1274 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileAuthCardService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileAuthCardService.java @@ -88,5 +88,12 @@ public interface IPileAuthCardService { */ public int deletePileAuthCardById(Long id); + /** + * 停用某张卡 + * @param id + * @return + */ + int deactivateCard(Long id); + int unBindingCard(PileAuthCard pileAuthCard); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java index 92ebc5eb2..d399f7af9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service.impl; import java.util.List; +import java.util.Locale; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; @@ -9,6 +10,7 @@ import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.dto.PileAuthCardDTO; import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.vo.web.PileAuthCardVO; +import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.jsowell.pile.mapper.PileAuthCardMapper; @@ -109,10 +111,12 @@ public class PileAuthCardServiceImpl implements IPileAuthCardService { } memberBasicInfo.setStatus("1"); // 1-正常使用 } + String secretKey = RandomStringUtils.randomAlphanumeric(8).toUpperCase(Locale.ROOT); // 生成8位数的字母 + 数字随机数 PileAuthCard pileAuthCard = PileAuthCard.builder() .logicCard(dto.getLogicCard()) .memberId(memberBasicInfo.getMemberId()) .status(memberBasicInfo.getStatus()) + .secretKey(secretKey) .build(); return pileAuthCardMapper.insertPileAuthCard(pileAuthCard); } @@ -167,6 +171,11 @@ public class PileAuthCardServiceImpl implements IPileAuthCardService { return pileAuthCardMapper.deletePileAuthCardById(id); } + @Override + public int deactivateCard(Long id) { + return pileAuthCardMapper.deactivateCard(id); + } + @Override public int unBindingCard(PileAuthCard pileAuthCard) { return pileAuthCardMapper.unBindingCard(pileAuthCard); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileAuthCardVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileAuthCardVO.java index b4493dca5..a92a207eb 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileAuthCardVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/PileAuthCardVO.java @@ -20,6 +20,8 @@ public class PileAuthCardVO { private String status; + private String secretKey; + private String createTime; private String memberId; diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileAuthCardMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileAuthCardMapper.xml index 359dbd713..cf998be58 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileAuthCardMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileAuthCardMapper.xml @@ -9,6 +9,7 @@ + @@ -18,11 +19,11 @@ - select id, logic_card, physics_card, status, member_id, create_time, create_by, update_time, update_by, del_flag from pile_auth_card + select id, logic_card, physics_card, status, secret_key, member_id, create_time, create_by, update_time, update_by, del_flag from pile_auth_card - id, logic_card, physics_card, status, member_id, create_time, create_by, update_time, update_by, del_flag + id, logic_card, physics_card, status, secret_key, member_id, create_time, create_by, update_time, update_by, del_flag @@ -46,6 +48,7 @@ t1.logic_card as logicCard, t1.physics_card as physicsCard, t1.status, + t1.secret_key as secretKey, t1.create_time as createTime, t1.member_id as memberId, t2.mobile_number as phoneNumber, @@ -63,6 +66,7 @@ logic_card, physics_card, status, + secret_key, member_id, create_time, create_by, @@ -74,6 +78,7 @@ #{logicCard}, #{physicsCard}, #{status}, + #{secretKey}, #{memberId}, #{createTime}, #{createBy}, @@ -102,6 +107,12 @@ delete from pile_auth_card where id = #{id} + + update pile_auth_card + set status = '9' + where id = #{id,jdbcType=BIGINT} + + delete from pile_auth_card where id in @@ -139,6 +150,7 @@ t1.logic_card as logicCard, t1.physics_card as physicsCard, t1.status, + t1.secret_key as secretKey, t1.create_time as createTime, t1.member_id as memberId, t2.mobile_number as phoneNumber, diff --git a/jsowell-ui/src/api/pile/card.js b/jsowell-ui/src/api/pile/card.js index dbc81f274..5fcb5cbb0 100644 --- a/jsowell-ui/src/api/pile/card.js +++ b/jsowell-ui/src/api/pile/card.js @@ -42,3 +42,11 @@ export function delCard(id) { method: 'delete' }) } + +// 停用某张卡 +export function deactivateCard(id){ + return request({ + url: '/pile/card/deactivateCard/' + id, + method: 'get' + }) +} diff --git a/jsowell-ui/src/views/pile/card/index.vue b/jsowell-ui/src/views/pile/card/index.vue index 8a356600d..afa5009a4 100644 --- a/jsowell-ui/src/views/pile/card/index.vue +++ b/jsowell-ui/src/views/pile/card/index.vue @@ -87,6 +87,7 @@ :value="scope.row.status"/> + @@ -170,7 +171,7 @@