From 1e676b408c8c7e1ccca08b151619d89fdc2bc9bf Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 10 十月 2023 14:40:31 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev

---
 server/platform/src/main/java/com/doumee/api/system/SystemDictDataController.java           |   17 +++
 server/services/src/main/java/com/doumee/core/mqtt/service/MqttPushCallback.java            |    6 +
 server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java |   57 ++++++++++
 server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java          |   14 ++
 server/services/src/main/java/com/doumee/service/business/MemberService.java                |   28 +++++
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java       |   64 ++++++++++++
 server/platform/src/main/java/com/doumee/api/business/MemberController.java                 |   16 +++
 server/services/src/main/java/com/doumee/dao/business/web/response/MiniProgrammeDTO.java    |   59 ++++++++---
 server/services/src/main/java/com/doumee/dao/business/model/Member.java                     |    2 
 9 files changed, 239 insertions(+), 24 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/MemberController.java b/server/platform/src/main/java/com/doumee/api/business/MemberController.java
index 7962b8d..f09c46e 100644
--- a/server/platform/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/MemberController.java
@@ -38,6 +38,14 @@
         return ApiResponse.success(memberService.create(member));
     }
 
+    @PreventRepeat
+    @ApiOperation("绠$悊鍛橀厤缃�")
+    @PostMapping("/createManageMember")
+    @RequiresPermissions("business:member:create")
+    public ApiResponse<String> createManageMember(@RequestBody Member member){
+        return ApiResponse.success(memberService.createManageMember(member));
+    }
+
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
     @RequiresPermissions("business:member:delete")
@@ -67,6 +75,14 @@
         return ApiResponse.success(null);
     }
 
+    @ApiOperation("鏍规嵁ID淇敼鍗′俊鎭�")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:member:update")
+    public ApiResponse update(@RequestBody Member member){
+        memberService.update(member);
+        return ApiResponse.success(null);
+    }
+
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:member:query")
diff --git a/server/platform/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/platform/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 152535f..e93063b 100644
--- a/server/platform/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/platform/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -7,6 +7,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.web.response.MiniProgrammeDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -79,4 +80,20 @@
     public ApiResponse<PageData<SystemDictDataListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDataDTO> pageWrap) {
         return ApiResponse.success(systemDictDataService.findPage(pageWrap));
     }
+
+    @ApiOperation("鍒嗛〉鏌ヨ灏忕▼搴忓熀纭�閰嶇疆")
+    @PostMapping("/getMiniProgrammeDTO")
+//    @RequiresPermissions("system:dict:update")
+    public ApiResponse<MiniProgrammeDTO> getMiniProgrammeDTO(){
+        return ApiResponse.success(systemDictDataService.getMiniProgrammeDTO());
+    }
+
+    @ApiOperation("淇敼灏忕▼搴忓熀纭�閰嶇疆")
+    @PostMapping("/updateMiniProgrammeDTO")
+//    @RequiresPermissions("system:dict:update")
+    public ApiResponse updateMiniProgrammeDTO(@RequestBody MiniProgrammeDTO miniProgrammeDTO){
+        systemDictDataService.updateMiniProgrammeDTO(miniProgrammeDTO);
+        return ApiResponse.success(null);
+
+    }
 }
diff --git a/server/services/src/main/java/com/doumee/core/mqtt/service/MqttPushCallback.java b/server/services/src/main/java/com/doumee/core/mqtt/service/MqttPushCallback.java
index 83eab12..aee7901 100644
--- a/server/services/src/main/java/com/doumee/core/mqtt/service/MqttPushCallback.java
+++ b/server/services/src/main/java/com/doumee/core/mqtt/service/MqttPushCallback.java
@@ -8,21 +8,27 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+/**
+ * @author T14
+ */
 @Service
 public class MqttPushCallback implements MqttCallback {
         @Autowired
         private DeviceSubcribeService deviceSubcribeService;
         //鎺ユ敹娑堟伅鍥炶皟
+        @Override
         public void connectionLost(Throwable cause) {
 
             // 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩�
             System.out.println("杩炴帴鏂紑锛屽彲浠ュ仛閲嶈繛");
         }
 
+        @Override
         public void deliveryComplete(IMqttDeliveryToken token) {
             System.out.println("deliveryComplete---------" + token.isComplete());
         }
 
+        @Override
         public void messageArrived(String topic, MqttMessage message) throws Exception {
             // subscribe鍚庡緱鍒扮殑娑堟伅浼氭墽琛屽埌杩欓噷闈�
             System.out.println("鎺ユ敹娑堟伅涓婚 : " + topic);
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Member.java b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
index b607224..b21c16e 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Member.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -45,6 +46,7 @@
 
     @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
     @ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
+    @TableLogic
     private Integer isdeleted;
 
     @ApiModelProperty(value = "澶囨敞")
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/MiniProgrammeDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/MiniProgrammeDTO.java
index dd4f919..fa51b26 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/response/MiniProgrammeDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/response/MiniProgrammeDTO.java
@@ -1,7 +1,13 @@
 package com.doumee.dao.business.web.response;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.io.IOException;
 
 /**
  * @author T14
@@ -10,48 +16,69 @@
 public class MiniProgrammeDTO {
 
     @ApiModelProperty("涓婚〉涓婚")
-    private String projectName;
+    private String projectName = "";
 
     @ApiModelProperty("鏈嶅姟鐢佃瘽")
-    private String serverPhone;
+    private String serverPhone = "";
 
     @ApiModelProperty("鎶奸噾閲戦")
-    private String rentDeposit;
+    private String rentDeposit = "";
 
     @ApiModelProperty("钀ヤ笟鏃堕棿璧峰")
-    private String businessStarttime;
+    private String businessStarttime = "";
 
     @ApiModelProperty("钀ヤ笟鏃堕棿缁撴潫")
-    private String businessEndtime;
+    private String businessEndtime = "";
 
     @ApiModelProperty("鍏嶈垂楠戣鏃堕暱")
-    private String freeRentTime;
+    private String freeRentTime = "";
 
     @ApiModelProperty("婊¤冻棰勮鏈�灏忓��")
-    private String warnMin;
+    private String warnMin = "";
 
     @ApiModelProperty("婊¤冻棰勮鏈�澶у��")
-    private String warnMax;
+    private String warnMax = "";
 
     @ApiModelProperty("灏忕▼搴忛璀﹂拤閽夌兢鍦板潃")
-    private String warnDingdingUrl;
+    private String warnDingdingUrl = "";
 
     @ApiModelProperty("绉熻祦娴佺▼瑙嗛")
-    private String rentTipsVideo;
+    private String rentTipsVideo = "";
 
     @ApiModelProperty("楠戣溅閫氱煡鍐呭")
-    private String rentNotice;
+    private String rentNotice = "";
 
     @ApiModelProperty("鏄惁鍋滄鏈嶅姟")
-    private String  isStopServe;
+    private String  isStopServe = "";
 
     @ApiModelProperty("鍋滄鏈嶅姟鎻愮ず")
-    private String stopServeTips;
-
+    private String stopServeTips = "";
 
     @ApiModelProperty("鍋滄鏈嶅姟寮�濮�")
-    private String stopServeStarttime;
+    private String stopServeStarttime = "";
 
     @ApiModelProperty("鍋滄鏈嶅姟缁撴潫")
-    private String stopServeEndtime;
+    private String stopServeEndtime = "";
+
+    /**
+     * 瀵硅薄椹煎嘲灞炴�ц浆涓嬪垝绾�
+     * @param object
+     * @return
+     * @throws JsonProcessingException
+     */
+    public static String toUnderlineJSONString(Object object) throws JsonProcessingException {
+                 ObjectMapper mapper = new ObjectMapper();
+                 mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+                 mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+                 String reqJson = mapper.writeValueAsString(object);
+                 return reqJson;
+    }
+
+
+    public static <T> T toSnakeObject(String json, Class<T> clazz) throws IOException {
+                 ObjectMapper mapper = new ObjectMapper();
+                 mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+                 T reqJson =  mapper.readValue(json, clazz);
+                 return reqJson;
+     }
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/MemberService.java b/server/services/src/main/java/com/doumee/service/business/MemberService.java
index 9aefd3a..bc36b2a 100644
--- a/server/services/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/services/src/main/java/com/doumee/service/business/MemberService.java
@@ -19,11 +19,19 @@
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param member 瀹炰綋瀵硅薄
      * @return String
      */
     String create(Member member);
+
+    /**
+     * 鍒涘缓
+     *
+     * @param member 瀹炰綋瀵硅薄
+     * @return String
+     */
+    String createManageMember(Member member);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -52,6 +60,14 @@
      * @param member 瀹炰綋瀵硅薄
      */
     void updateById(Member member);
+
+
+    /**
+     * 涓婚敭鏇存柊鍗′俊鎭�
+     *
+     * @param member 瀹炰綋瀵硅薄
+     */
+    void update(Member member);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
@@ -83,7 +99,7 @@
      * @return List<Member>
      */
     List<Member> findList(Member member);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -92,6 +108,14 @@
      */
     PageData<Member> findPage(PageWrap<Member> pageWrap);
 
+
+    /**
+     * 鍒嗛〉鏌ヨ鍗′俊鎭�
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Member>
+     */
+    PageData<Member> findManagerMemberPage(PageWrap<Member> pageWrap);
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 20b977d..d0051b2 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -12,6 +12,7 @@
 import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
@@ -26,6 +27,7 @@
 import com.doumee.service.business.MemberService;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +59,36 @@
     }
 
     @Override
+    public String createManageMember(Member member) {
+        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+
+        QueryWrapper<Member> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .eq(Member::getType,Constants.ONE)
+                .eq(Member::getCardNo,member.getCardNo());
+        Integer integer = memberMapper.selectCount(wrapper);
+
+        if (integer > 0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍗″彿瀛樺湪閲嶅");
+        }
+        Member insert = new Member();
+        insert.setCreateDate(new Date());
+        insert.setCreator(principal.getId());
+        insert.setEditDate(new Date());
+        insert.setEditor(principal.getId());
+        insert.setIsdeleted(Constants.ZERO);
+        insert.setName(member.getName());
+        insert.setName(member.getNickname());
+        insert.setStatus(Constants.ZERO);
+        insert.setRegisterDate(new Date());
+        insert.setCardNo(member.getCardNo());
+        insert.setType(Constants.ONE);
+        memberMapper.insert(member);
+        return member.getId();
+    }
+
+    @Override
     public void deleteById(String id) {
         memberMapper.deleteById(id);
     }
@@ -78,6 +110,19 @@
     @Override
     public void updateById(Member member) {
         memberMapper.updateById(member);
+    }
+
+    @Override
+    public void update(Member member) {
+        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Member update = new Member();
+        update.setId(member.getId());
+        update.setName(member.getName());
+        update.setStatus(member.getStatus());
+        update.setEditDate(new Date());
+        update.setEditor(principal.getId());
+        memberMapper.updateById(member);
+
     }
 
     @Override
@@ -106,7 +151,7 @@
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
         return memberMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Member> findPage(PageWrap<Member> pageWrap) {
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -195,6 +240,23 @@
         return PageData.from(memberMapper.selectPage(page, queryWrapper));
     }
 
+
+    @Override
+    public PageData<Member> findManagerMemberPage(PageWrap<Member> pageWrap) {
+
+        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getName() != null) {
+            queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
+        }
+        if (pageWrap.getModel().getCardNo() != null) {
+            queryWrapper.lambda().like(Member::getCardNo, pageWrap.getModel().getCardNo());
+        }
+        queryWrapper.lambda().eq(Member::getType, Constants.ONE);
+        return PageData.from(memberMapper.selectPage(page, queryWrapper));
+    }
+
     @Override
     public long count(Member member) {
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
diff --git a/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
index 063b5ac..bf33cbf 100644
--- a/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -2,6 +2,7 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.web.response.MiniProgrammeDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -70,7 +71,7 @@
      * @date 2022/03/15 09:54
      */
     List<SystemDictData> findList(SystemDictData systemDictData);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      * @author Eva.Caesar Liu
@@ -85,4 +86,15 @@
      */
     long count(SystemDictData systemDictData);
 
+    /**
+     * 鑾峰彇灏忕▼搴忛厤缃�
+     * @return
+     */
+    MiniProgrammeDTO getMiniProgrammeDTO();
+
+    /**
+     * 淇敼灏忕▼搴忛厤缃�
+     * @param miniProgrammeDTO
+     */
+    void updateMiniProgrammeDTO(MiniProgrammeDTO miniProgrammeDTO);
 }
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 74ee0c0..ce54721 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -1,5 +1,11 @@
 package com.doumee.service.system.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.web.response.MiniProgrammeDTO;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.doumee.core.model.PageData;
@@ -11,13 +17,15 @@
 import com.doumee.service.system.SystemDictDataService;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.List;
-import java.util.UUID;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import com.doumee.core.constants.Constants;
 
@@ -86,7 +94,7 @@
         Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData).orderByAsc("sort");
         return systemDictDataMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<SystemDictDataListVO> findPage(PageWrap<QuerySystemDictDataDTO> pageWrap) {
         PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
@@ -99,7 +107,48 @@
         return systemDictDataMapper.selectCount(wrapper);
     }
 
+    @Override
+    public MiniProgrammeDTO getMiniProgrammeDTO() {
+        try {
 
+            String jasonStr = MiniProgrammeDTO.toUnderlineJSONString(new MiniProgrammeDTO());
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList());
+            QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
+            wrapper.lambda()
+                    .in(SystemDictData::getLabel,collect);
+            List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper);
+            if (CollectionUtils.isEmpty(systemDictData)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+            }
+            systemDictData.forEach(s->{
+                parse.put(s.getLabel().toLowerCase(),s.getCode());
+            });
+            String s = parse.toJSONString();
+            MiniProgrammeDTO miniProgrammeDTO = MiniProgrammeDTO.toSnakeObject(s, MiniProgrammeDTO.class);
+            return miniProgrammeDTO;
+        } catch (Exception e) {
+           throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
 
-
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void updateMiniProgrammeDTO(MiniProgrammeDTO miniProgrammeDTO) {
+        try {
+            String jasonStr = MiniProgrammeDTO.toUnderlineJSONString(miniProgrammeDTO);
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            parse.entrySet().forEach(s->{
+                if (StringUtils.isEmpty((String)s.getValue())){
+                    UpdateWrapper<SystemDictData> wrapper = new UpdateWrapper<>();
+                    wrapper.lambda()
+                            .eq(SystemDictData::getLabel,s.getKey().toUpperCase())
+                            .set(SystemDictData::getCode,s.getValue());
+                    systemDictDataMapper.update(null,wrapper);
+                }
+            });
+        } catch (JsonProcessingException e) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
 }

--
Gitblit v1.9.3