From 1a43717440c8d112fc72b6344a5f6a26353ab56e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 09 七月 2024 18:43:29 +0800
Subject: [PATCH] 用户设置除非后台设置,否者不自动添加设置

---
 src/main/java/com/taoke/autopay/service/impl/WxUserSettingServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/taoke/autopay/service/impl/WxUserSettingServiceImpl.java b/src/main/java/com/taoke/autopay/service/impl/WxUserSettingServiceImpl.java
index c95d142..a79bd74 100644
--- a/src/main/java/com/taoke/autopay/service/impl/WxUserSettingServiceImpl.java
+++ b/src/main/java/com/taoke/autopay/service/impl/WxUserSettingServiceImpl.java
@@ -7,6 +7,7 @@
 import com.taoke.autopay.service.WxUserSettingService;
 import com.taoke.autopay.utils.StringUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
@@ -25,13 +26,53 @@
     @Resource
     private WxUserSettingsMapper wxUserSettingsMapper;
 
+    @Resource
+    private SystemConfigService systemConfigService;
 
+
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(WxUserSettings settings) {
-        if (settings.getCreateTime() == null) {
-            settings.setCreateTime(new Date());
+        WxUserSettings old =   wxUserSettingsMapper.selectByPrimaryKeyForUpdate(settings.getId());
+        if(old==null) {
+            if (settings.getCreateTime() == null) {
+                settings.setCreateTime(new Date());
+            }
+            wxUserSettingsMapper.insertSelective(settings);
+        }else{
+            settings.setUpdateTime(new Date());
+            wxUserSettingsMapper.updateByPrimaryKeySelective(settings);
         }
-        wxUserSettingsMapper.insertSelective(settings);
+    }
+
+    /**
+     * @author hxh 
+     * @description 鑾峰彇鐢ㄦ埛璁剧疆锛屽鏋滄病鏈夎缃氨閲囩敤榛樿璁剧疆
+     * @date 18:32 2024/7/9
+     * @param: uid
+     * @return com.taoke.autopay.entity.WxUserSettings
+     **/
+    @Override
+    public WxUserSettings getUserSettings(Long uid) {
+        WxUserSettings settings = selectByUid(uid);
+        if(settings!=null){
+            return settings;
+        }
+        settings = new WxUserSettings();
+        settings.setId(uid);
+        String value = systemConfigService.getValueCache(SystemConfigKeyEnum.DY_ORDER_MAX_PAY_COUNT_DEFAULT);
+        if (!StringUtil.isNullOrEmpty(value)) {
+            settings.setDyOrderCountPerDay(Integer.parseInt(value));
+        }
+        value = systemConfigService.getValueCache(SystemConfigKeyEnum.KS_ORDER_MAX_PAY_COUNT_DEFAULT);
+        if (!StringUtil.isNullOrEmpty(value)) {
+            settings.setKsOrderCountPerDay(Integer.parseInt(value));
+        }
+        value = systemConfigService.getValueCache(SystemConfigKeyEnum.ORDER_MAX_SUBMIT_COUNT_DEFAULT);
+        if (!StringUtil.isNullOrEmpty(value)) {
+            settings.setTotalOrderCountPerDay(Integer.parseInt(value));
+        }
+       return settings;
     }
 
     @Override
@@ -55,6 +96,10 @@
         if (uidList == null || uidList.size() == 0) {
             return new ArrayList<>();
         }
-        return wxUserSettingsMapper.listByUids(uidList);
+        List<WxUserSettings> list=new ArrayList<>();
+        for(Long uid:uidList){
+            list.add(getUserSettings(uid));
+        }
+        return list;
     }
 }

--
Gitblit v1.8.0