From f9bb41486c8c9b89c762d5ccff850e4c23a2caa8 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 06 Apr 2021 17:20:49 +0800
Subject: [PATCH] 修改bug2

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java |    8 +
 zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java                            |   92 +++++++++++++++
 zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java             |    8 +
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java           |    4 
 zq-erp/src/main/java/com/matrix/system/app/vo/ParameterSettingVo.java                 |   39 ++++++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java                |   24 +++
 zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java       |  139 ++++++++++++++++------
 7 files changed, 271 insertions(+), 43 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index 1ea1ccc..6a882aa 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.matrix.component.redis.RedisClient;
+import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.*;
 import com.matrix.system.app.authority.AppAuthorityManager;
@@ -11,10 +12,11 @@
 import com.matrix.system.app.dto.UploadPhotoDto;
 import com.matrix.system.app.utils.Sms106Send;
 import com.matrix.system.app.vo.UserInfoVo;
-import com.matrix.system.common.authority.DefaultAuthorityManager;
 import com.matrix.system.common.authority.strategy.AccountPasswordLogin;
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.common.tools.UploadUtil;
@@ -62,6 +64,9 @@
 
     @Autowired
     private AppAuthorityManager authorityManager;
+
+    @Autowired
+    private BusParameterSettingsDao busParameterSettingsDao;
 
     @Autowired
     private RedisClient redisClient;
@@ -220,4 +225,21 @@
     public AjaxResult findAppVersion() {
         return AjaxResult.buildSuccessInstance(sysUsersService.findAppVersion());
     }
+
+
+
+    @ApiOperation(value = "获取app配置", notes = "获取app配置")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = AppVersion.class)
+    })
+    @GetMapping(value = "/findAppSettings")
+    public AjaxResult findAppSettings() {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        AjaxResult result = AjaxResult.buildSuccessInstance("查询成功");
+        result.putInMap(AppConstance.APP_BANNER_GL, busParameterSettingsDao.selectCompanyParamByCode(AppConstance.APP_BANNER_GL,user.getCompanyId()));
+        return result;
+    }
+
+
+
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ParameterSettingVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ParameterSettingVo.java
new file mode 100644
index 0000000..b7f82c7
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ParameterSettingVo.java
@@ -0,0 +1,39 @@
+package com.matrix.system.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * jyy
+ */
+@Data
+@ApiModel(value = "ParameterSettingVo", description = "配置返回参数类")
+public class ParameterSettingVo  {
+
+    @ApiModelProperty(value = "参数编码ID")
+    private Long paramId;
+
+
+    @ApiModelProperty(value = "参数编码")
+    private String paramCode;
+
+
+
+    @ApiModelProperty(value = "参数值")
+    private String paramValue;
+
+
+    @ApiModelProperty(value = "值1")
+    private String paramValue1;
+
+
+    @ApiModelProperty(value = "值2")
+    private String paramValue2;
+
+
+    @ApiModelProperty(value = "值3")
+    private String paramValue3;
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
index 957ed99..2d78a95 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
@@ -553,6 +553,14 @@
      */
     public static final String WECHARPAY_CERTLOCAL_PATH = "certLocalPath";
 
+    /**
+     * APP管理模块Banner
+     */
+    public static final String APP_BANNER_GL = "APP_BANNER_GL";
+
+
+
+
 
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
index 1c36562..24c9221 100644
--- a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
+++ b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
@@ -6,9 +6,11 @@
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.SysUsersDao;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.score.constant.ScoreSettingConstant;
 import com.matrix.system.score.dao.ScoreUseRecordDao;
@@ -53,12 +55,12 @@
      * 扣除用户积分
      */
     @Transactional(rollbackFor = Exception.class)
-    public void deductionScore(Long vipId,Long oprationUserId,Long shopId, Integer score, Long businessId, int type,String remark) {
-        Long companyId= vipInfoDao.selectById(vipId).getCompanyId();
+    public void deductionScore(Long vipId, Long oprationUserId, Long shopId, Integer score, Long businessId, int type, String remark) {
+        Long companyId = vipInfoDao.selectById(vipId).getCompanyId();
 
-        String createBy=MatrixConstance.SYSTEM_USER;
-        if(oprationUserId!=null){
-            createBy=sysUsersDao.selectById(oprationUserId).getSuName();
+        String createBy = MatrixConstance.SYSTEM_USER;
+        if (oprationUserId != null) {
+            createBy = sysUsersDao.selectById(oprationUserId).getSuName();
         }
 
         List<ScoreVipDetail> effectiveScoreList = scoreVipDetailDao.selectEffectiveScore(vipId);
@@ -74,20 +76,18 @@
                 //余额充足
                 currentDedution = score;
                 scoreVipDetail.setRemainScore(surplus);
-                if(surplus==0){
+                if (surplus == 0) {
                     scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_WX);
                 }
                 scoreVipDetailDao.updateById(scoreVipDetail);
-                score=0;
+                score = 0;
             } else {
                 currentDedution = scoreVipDetail.getRemainScore();
                 scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_WX);
                 scoreVipDetail.setRemainScore(0);
                 scoreVipDetailDao.updateById(scoreVipDetail);
-                score=Math.abs(surplus);
+                score = Math.abs(surplus);
             }
-
-
 
 
             //新增扣除记录
@@ -107,11 +107,11 @@
             scoreUseRecord.setOprationUserId(oprationUserId);
             scoreUseRecordDao.insert(scoreUseRecord);
 
-            if(surplus > 0 || surplus == 0){
+            if (surplus > 0 || surplus == 0) {
                 break;
             }
         }
-        if(score>0){
+        if (score > 0) {
             throw new GlobleException("积分不足");
         }
     }
@@ -120,26 +120,26 @@
      * 新增用户积分
      */
     @Transactional(rollbackFor = Exception.class)
-    public void addScore(Long vipId, Long oprationUserId,Long shopId, Integer score, Long businessId, int type,String remark) {
-        Long companyId= vipInfoDao.selectById(vipId).getCompanyId();
+    public void addScore(Long vipId, Long oprationUserId, Long shopId, Integer score, Long businessId, int type, String remark) {
+        Long companyId = vipInfoDao.selectById(vipId).getCompanyId();
 
-        if(score<0){
+        if (score < 0) {
             throw new IllegalArgumentException("score必须有为大于零的数");
         }
 
-        String createBy=MatrixConstance.SYSTEM_USER;
-        if(oprationUserId!=null){
-            createBy=sysUsersDao.selectById(oprationUserId).getSuName();
+        String createBy = MatrixConstance.SYSTEM_USER;
+        if (oprationUserId != null) {
+            createBy = sysUsersDao.selectById(oprationUserId).getSuName();
         }
 
         //计算过期时间
         BusParameterSettings yxqSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId);
-        Calendar cal=Calendar.getInstance();
+        Calendar cal = Calendar.getInstance();
         int year = cal.get(Calendar.YEAR);
-        int sxYear=year+(Integer.parseInt(yxqSetting.getParamValue())-1);
-        Date sxys=DateUtil.stringToDate(sxYear+"-12-31 23:59",DateUtil.DATE_FORMAT_MM );
+        int sxYear = year + (Integer.parseInt(yxqSetting.getParamValue()) - 1);
+        Date sxys = DateUtil.stringToDate(sxYear + "-12-31 23:59", DateUtil.DATE_FORMAT_MM);
 
-        ScoreVipDetail scoreVipDetail=new ScoreVipDetail();
+        ScoreVipDetail scoreVipDetail = new ScoreVipDetail();
 
         scoreVipDetail.setCreateBy(createBy);
         scoreVipDetail.setUpdateBy(createBy);
@@ -158,7 +158,7 @@
         scoreVipDetailDao.insert(scoreVipDetail);
 
         //新增添加记录
-        ScoreUseRecord   scoreUseRecord = new ScoreUseRecord();
+        ScoreUseRecord scoreUseRecord = new ScoreUseRecord();
         scoreUseRecord.setPreScore(score);
         scoreUseRecord.setCreateBy(createBy);
         scoreUseRecord.setUpdateBy(createBy);
@@ -180,28 +180,87 @@
     }
 
     /**
+     * 根据固定等级规则新增用户积分
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void addScoreByParamSetting(Long vipId, Long oprationUserId, Long shopId, Integer firstScore, Long businessId, int type, String remark, BusParameterSettings parameterSetting) {
+
+
+        SysVipInfo vipInfo = sysVipInfoDao.selectById(vipId);
+
+
+        //添加自己的积分
+        if (firstScore > 0) {
+            addScore(
+                    vipInfo.getId(),
+                    oprationUserId,
+                    shopId,
+                    firstScore,
+                    businessId,
+                    type,
+                    remark
+            );
+        }
+
+        if (StringUtils.isNotBlank(parameterSetting.getParamValue())
+                && vipInfo.getRecommendId() != null) {
+            //推荐注册老带新积分奖励
+            SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId());
+            Integer secondScore = new Integer(parameterSetting.getParamValue());
+            if (secondScore > 0) {
+                addScore(
+                        referrerVip.getId(),
+                        oprationUserId,
+                        shopId,
+                        secondScore,
+                        businessId,
+                        type,
+                        remark
+                );
+            }
+            //推荐注册二级带新积分奖励
+            if (StringUtils.isNotBlank(parameterSetting.getParamValue1())
+                    && referrerVip.getRecommendId() != null) {
+                Integer threeScore = new Integer(parameterSetting.getParamValue());
+                if (threeScore > 0) {
+                    addScore(
+                            referrerVip.getRecommendId(),
+                            oprationUserId,
+                            shopId,
+                            threeScore,
+                            businessId,
+                            type,
+                            remark
+                    );
+                }
+            }
+        }
+    }
+
+
+    /**
      * 退积分
      */
-    public void refundScore(Long vipId, Integer score, Long oldBusinessId, int type){
+    public void refundScore(Long vipId, Integer score, Long oldBusinessId, int type) {
 
-        Long companyId= vipInfoDao.selectById(vipId).getCompanyId();
+        Long companyId = vipInfoDao.selectById(vipId).getCompanyId();
 
-        if(score<0){
+        if (score < 0) {
             throw new IllegalArgumentException("score必须有为大于零的数");
         }
         //查询原始使用记录
-        QueryWrapper queryWrapper=new QueryWrapper();
-        queryWrapper.eq("business_id",oldBusinessId);
-        queryWrapper.eq("company_id",companyId);
-        queryWrapper.eq("type",type);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("business_id", oldBusinessId);
+        queryWrapper.eq("company_id", companyId);
+        queryWrapper.eq("type", type);
         List<ScoreUseRecord> scoreUseRecordList = scoreUseRecordDao.selectList(queryWrapper);
         scoreUseRecordList.forEach(scoreUseRecord -> {
             ScoreVipDetail scoreVipDetail = scoreVipDetailDao.selectById(scoreUseRecord.getScoreVipDetailId());
-            if(scoreVipDetail!=null){
-                if(DateTime.now().isAfter(scoreVipDetail.getValiditeTime())){
+            if (scoreVipDetail != null) {
+                if (DateTime.now().isAfter(scoreVipDetail.getValiditeTime())) {
                     //积分还有效
-                    scoreVipDetail.setRemainScore( scoreVipDetail.getRemainScore()+score);
-                    scoreVipDetail.setUsedScore(scoreVipDetail.getUsedScore()-score);
+                    scoreVipDetail.setRemainScore(scoreVipDetail.getRemainScore() + score);
+                    scoreVipDetail.setUsedScore(scoreVipDetail.getUsedScore() - score);
                     scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX);
                     scoreVipDetailDao.updateById(scoreVipDetail);
                     scoreUseRecordDao.deleteById(scoreUseRecord.getId());
@@ -211,15 +270,15 @@
         });
     }
 
-    public void removeByBusinessId( Long vipId,  Long oldBusinessId){
-        Long companyId= vipInfoDao.selectById(vipId).getCompanyId();
+    public void removeByBusinessId(Long vipId, Long oldBusinessId) {
+        Long companyId = vipInfoDao.selectById(vipId).getCompanyId();
 
-        if(oldBusinessId==null){
+        if (oldBusinessId == null) {
             throw new IllegalArgumentException("oldBusinessId必须有");
         }
-        QueryWrapper queryWrapper=new QueryWrapper();
-        queryWrapper.eq("business_id",oldBusinessId);
-        queryWrapper.eq("company_id",companyId);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("business_id", oldBusinessId);
+        queryWrapper.eq("company_id", companyId);
         scoreVipDetailDao.delete(queryWrapper);
         scoreUseRecordDao.delete(queryWrapper);
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
index b34cdd5..7b87e5f 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
@@ -5,6 +5,7 @@
 import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.system.common.constance.AppConstance;
 
+import com.matrix.system.score.service.ScoreVipDetailService;
 import com.matrix.system.shopXcx.bean.ShopOrder;
 import com.matrix.system.shopXcx.bean.ShopProductComment;
 import com.matrix.system.shopXcx.dao.ShopOrderDao;
@@ -52,6 +53,9 @@
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "删除成功");
     }
 
+    @Autowired
+    ScoreVipDetailService scoreVipDetailService;
+
     /**
      * 接收保存产品评价数据
      */
@@ -81,6 +85,10 @@
         modifyMap.put("id", orderId);
         modifyMap.put("orderStatus", ShopOrder.ORDER_STATUS_ALREADY_REMARK);
         shopOrderDao.updateByMap(modifyMap);
+
+        //scoreVipDetailService.addScoreByParamSetting(loginUser.getId(),null,);
+
+
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功");
     }
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
index 82aea50..9cac99e 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
@@ -108,10 +108,10 @@
                     sysVipInfo.setSessionKey(sessionKey);
                     sysVipInfo.setCompanyId(HostInterceptor.getCompanyId());
                     sysVipInfo.setArrivalWay("微商城");
+                    sysVipInfo.setVipName("微信用户");
                     sysVipInfo.setVipState(Dictionary.VIP_STATE_HY);
                     sysVipInfo.setVipType(Dictionary.VIP_TYPE_NOCARD);
                     sysVipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP);
-
                     sysVipInfo.setVipNo(openId);
                     sysVipInfoService.add(sysVipInfo);
 
@@ -177,7 +177,7 @@
 
         BeanUtil.copyProperties(xcxUserSaveUserInfoDto,sysVipInfo);
         sysVipInfo.setPhone(xcxUserSaveUserInfoDto.getPhoneNumber());
-        if(StringUtils.isBlank(loginUser.getVipName())){
+        if(StringUtils.isBlank(loginUser.getVipName())||loginUser.getVipName().equals("微信用户")){
             sysVipInfo.setVipName(xcxUserSaveUserInfoDto.getNickName());
         }
         if(StringUtils.isBlank(loginUser.getSex())){
diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
new file mode 100644
index 0000000..e12109a
--- /dev/null
+++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
@@ -0,0 +1,92 @@
+package com.matrix;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.SysCompany;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.dao.SysCompanyDao;
+import com.matrix.system.hive.bean.ParameterSettings;
+import com.matrix.system.hive.dao.ParameterSettingsDao;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 配置工具
+ * 
+ * @author jiangyouyao
+ * @email 512061637@qq.com
+ * @date 2019年2月25日
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class ParameterSettingsTool {
+
+
+	@Autowired
+	private ParameterSettingsDao parameterSettingsDao;
+
+	@Autowired
+	private BusParameterSettingsDao busParameterSettingsDao;
+
+	@Autowired
+	private SysCompanyDao sysCompanyDao;
+
+	/*
+	给所有公司加上多个配置,如果已经存在则跳过
+	 */
+	@Test
+	public void addSettings(){
+
+		List<ParameterSettings> newSettings=new ArrayList<>();
+
+
+		ParameterSettings newSetting1=new ParameterSettings();
+		newSetting1.setCode("APP_BANNER_GL");
+		newSetting1.setName("APP管理模块Banner");
+		newSetting1.setType(1);
+		newSetting1.setCategory("APP设置");
+		newSettings.add(newSetting1);
+
+		for (ParameterSettings newSetting : newSettings) {
+			List<ParameterSettings> parameterSettings = parameterSettingsDao.selectByModel(newSetting);
+			if(CollectionUtil.isEmpty(parameterSettings)){
+				parameterSettingsDao.insert(newSetting);
+				System.out.println("新增配置"+newSetting.getName());
+			}else {
+				System.out.println("配置"+newSetting.getName()+"已经存在");
+			}
+			addSettingsTOAllCompany(newSetting);
+		}
+	}
+
+	private void addSettingsTOAllCompany(ParameterSettings newSetting) {
+
+		List<SysCompany> allCompany = sysCompanyDao.selectByModel(null);
+
+		for (SysCompany sysCompany : allCompany) {
+			BusParameterSettings checkExist = busParameterSettingsDao.selectCompanyParamByCode(newSetting.getCode(), sysCompany.getComId());
+			if(checkExist==null){
+				BusParameterSettings busParameterSettings=new BusParameterSettings();
+				busParameterSettings.setCompanyId(sysCompany.getComId());
+				busParameterSettings.setParamCode(newSetting.getCode());
+				busParameterSettings.setParamValue("");
+				busParameterSettingsDao.insert(busParameterSettings);
+				System.out.println(sysCompany.getComName()+"新增成功");
+			}else{
+				System.out.println("公司"+sysCompany.getComName()+"已经存在配置"+newSetting.getName());
+			}
+
+		}
+
+
+
+	}
+
+
+}

--
Gitblit v1.9.1