From f50e081f650eb067cce44fce3db64a237fde145b Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 20 Apr 2021 13:44:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop

---
 zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java |  266 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 193 insertions(+), 73 deletions(-)

diff --git a/zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java b/zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
index b4ebcf4..2a71e6c 100644
--- a/zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
+++ b/zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
@@ -1,27 +1,33 @@
 package com.matrix;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
+import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
+import com.matrix.system.activity.dao.ActivitySignRecordDao;
+import com.matrix.system.activity.dao.ActivitySignWriteoffDao;
 import com.matrix.system.activity.entity.ActivitySignAwardSet;
-import com.matrix.system.common.bean.BusParameterSettings;
-import com.matrix.system.common.dao.BusParameterSettingsDao;
-import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
-import com.matrix.system.score.constant.ScoreSettingConstant;
+import com.matrix.system.activity.entity.ActivitySignRecord;
 import com.matrix.system.shopXcx.api.vo.ActivitySignAwardSetVo;
+import com.matrix.system.shopXcx.api.vo.ActivitySignRecordVo;
 import com.matrix.system.shopXcx.api.vo.SignBasicInfoJsonVo;
 import com.matrix.system.shopXcx.api.vo.SignBasicInfoVo;
 import com.matrix.system.shopXcx.bean.ShopActivities;
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
-import org.junit.Assert;
 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.boot.test.web.client.TestRestTemplate;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 @RunWith(SpringRunner.class)
@@ -29,30 +35,91 @@
 public class FenxiaoSoreInitTest {
 	
 	@Autowired
-    private BusParameterSettingsDao busParameterSettingsDao;
-    @Autowired
     private ShopActivitiesDao shopActivitiesDao;
-    @Autowired
-    private ActivitySignAwardSetDao activitySignAwardSetDao;
-
-    @Autowired
-    private TestRestTemplate restTemplate;
-
-
-    @Test
-    public void getName() {
-        String name = restTemplate.getForObject("/common/job", String.class);
-        System.out.println(name);
-        Assert.assertEquals("1", name);
+	
+	@Autowired
+	private ActivitySignAwardSetDao activitySignAwardSetDao;
+	
+	@Autowired
+	private ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
+	
+	@Autowired
+	private ActivitySignWriteoffDao activitySignWriteoffDao;
+	
+	@Autowired
+	private ActivitySignRecordDao activitySignRecordDao;
+	
+	public static void main(String[] args) {
+		System.out.println(getCurrentMonthDay(DateUtil.date()));
+		System.out.println(getMonthFullDay(DateUtil.year(DateUtil.date()),DateUtil.month(DateUtil.date())+1).toString());
+	}
+	
+	/**
+     * 获取当月的 天数
+     * */
+    public static int getCurrentMonthDay(Date date) {
+        Date beginOfMonth = DateUtil.beginOfMonth(date);
+        Date endOfMonth = DateUtil.endOfMonth(date);
+        long betweenDay = DateUtil.between(beginOfMonth, endOfMonth, DateUnit.DAY);
+        return Integer.parseInt(String.valueOf(betweenDay))+1;
     }
-
-    @Test
-    public void getSignBasicInfo() {
+    /**
+     *  java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)
+     * @param year
+     * @param month
+     * @return
+     */
+    public static List<String> getMonthFullDay(int year , int month){
+        SimpleDateFormat dateFormatYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
+        List<String> fullDayList = new ArrayList<>(32);
+        // 获得当前日期对象
+        Calendar cal = Calendar.getInstance();
+        cal.clear();// 清除信息
+        cal.set(Calendar.YEAR, year);
+        // 1月从0开始
+        cal.set(Calendar.MONTH, month-1 );
+        // 当月1号
+        cal.set(Calendar.DAY_OF_MONTH,1);
+        int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        for (int j = 1; j <= count ; j++) {
+            fullDayList.add(dateFormatYYYYMMDD.format(cal.getTime()));
+            cal.add(Calendar.DAY_OF_MONTH,1);
+        }
+        return fullDayList;
+    }
+//    @Test
+//    public void getinterger() {
+//		Long userId = 30L;
+//		Long companyId = 36L;
+//		int size = activitySignReceiveRecordDao.getSignAwardReceiveCount(userId,companyId);
+//    }
+//    /**
+//     * 获取累计签到天数
+//     * @param actId
+//     * @param userId
+//     * @param date
+//     * @return
+//     */
+//    public int getCumulativeDay(long actId, long userId,Date date, int i) {
+//        ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,date);
+//        if(ObjectUtil.isEmpty(activitySignRecordOld)) {
+//            return i;
+//        }
+//        i++;
+//        DateTime offsetDay = DateUtil.offsetDay(date, -i);
+//        return getCumulativeDay(actId,userId,offsetDay,i);
+//    }
+	@Test
+    public void clickSign() {
+        long actId = 74L;
+        Long userId = 30L;
         Long companyId = 36L;
         //获取签到活动的信息
         SignBasicInfoVo signBasicInfoVo = new SignBasicInfoVo();
+        AjaxResult ajaxResult = new AjaxResult();
+
         ShopActivities shopActivities = shopActivitiesDao.selectOneByCompanyIdAndActTypeAndActStatus(companyId,ShopActivities.ACTIVITIES_TYPE_SIGN,ShopActivities.ACTSTATUS_STATUS_ING);
-        Long actId = shopActivities.getId();
+
         signBasicInfoVo.setActName(shopActivities.getActName());
         signBasicInfoVo.setActCode(shopActivities.getActCode());
         signBasicInfoVo.setId(shopActivities.getId());
@@ -61,13 +128,66 @@
         signBasicInfoVo.setSignBasicInfoJsonVo(signBasicInfoJsonVo);
 
         List<ActivitySignAwardSetVo> activitySignAwardSetVos = activitySignAwardSetDao
-                .selectListByActIDAndCompanyId(actId,companyId, ActivitySignAwardSet.AWARDSTATE_WORK);
+                .selectListByActIDAndCompanyId(actId,companyId,ActivitySignAwardSet.AWARDSTATE_WORK);
         signBasicInfoVo.setActivitySignAwardSetVos(activitySignAwardSetVos);
 
-        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
-        ajaxResult.setData(signBasicInfoVo);
-       System.out.println(signBasicInfoVo);
+        //今日是否已经参与
+        ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,new Date());
+        if(ObjectUtil.isNotEmpty(activitySignRecord)) {
+            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_SIGN);
+        }else {
+            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_NOTSIGN);
+        }
+        /**
+         * 默认获取当前月份
+         *      获取当前月份的天数
+         */
+        List<ActivitySignRecordVo> activitySignRecordVos = new ArrayList<>();
+        //获取当前月的第一天是星期几
+        DateTime dateTime = DateUtil.beginOfMonth(DateUtil.date());
+        int i = DateUtil.dayOfWeek(dateTime);
+        for(int j = 1;j<i;j++){
+            ActivitySignRecordVo activitySignRecordVoNull = new ActivitySignRecordVo();
+            activitySignRecordVos.add(activitySignRecordVoNull);
+        }
+        List<String> monthFullDays = getMonthFullDay(DateUtil.year(DateUtil.date()), DateUtil.month(DateUtil.date()) + 1);
+        for(String monthFullDay : monthFullDays){
+            ActivitySignRecordVo activitySignRecordVo = new ActivitySignRecordVo();
+            activitySignRecordVo.setSignTime(monthFullDay);
+            activitySignRecordVo.setActivityId(actId);
+            activitySignRecordVo.setCompanyId(companyId);
+            //对应日期是否已签到
+            Date date = DateUtil.parse(monthFullDay);
+            ActivitySignRecord activitySignRecordDone = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,date);
+            if(ObjectUtil.isNotEmpty(activitySignRecordDone)){
+                activitySignRecordVo.setState(1);
+            }else{
+                activitySignRecordVo.setState(2);
+            }
+            activitySignRecordVos.add(activitySignRecordVo);
+        }
+        signBasicInfoVo.setActivitySignRecords(activitySignRecordVos);
 
+        //累计签到日期
+        int cumulativeDay = getCumulativeDay(actId, userId, DateUtil.date(), 0);
+        signBasicInfoVo.setActAumulativeDay(cumulativeDay);
+        System.out.println(signBasicInfoVo);
+    }
+	/**
+     * 获取累计签到天数
+     * @param actId
+     * @param userId
+     * @param date
+     * @return
+     */
+    public int getCumulativeDay(long actId, long userId,Date date, int i) {
+        ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,date);
+        if(ObjectUtil.isEmpty(activitySignRecordOld)) {
+            return i;
+        }
+        i++;
+        DateTime offsetDay = DateUtil.offsetDay(date, -i);
+        return getCumulativeDay(actId,userId,offsetDay,i);
     }
 	public void InitByCompanyId() {
 	    //对应的公司ID
@@ -76,50 +196,50 @@
 //		//initBusParameterFenxiaoSetting(companyId);
 	}
 
-    /**
-     * 初始化默认积分规则设置
-     */
-    public void initBusParameterSetting(long companyId) {
-        List<BusParameterSettings> ruleSettings=new ArrayList<>();
-
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CREDIT_POINTS_CASH, companyId));
-
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CASH_CONSUMPTION, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.PRINCIPAL_BALANCE_CONSUMPTION, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.BONUS_BALANCE_CONSUMPTION, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.PRINCIPAL_CONSUMPTION, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.GIVE_CONSUMPTION, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.REFERRALS_CONSUMPTION, companyId));
-
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CASH_CONSUMPTION_SHOP, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.RESERVATION_SERVICE_SHOP, companyId));
-        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.EVALUATUIN_ORDER_SHOP, companyId));
-
-        busParameterSettingsDao.batchInsert(ruleSettings);
-    }
-
-    /**
-     * 初始化默认分销规则设置
-     */
-    public void initBusParameterFenxiaoSetting(long companyId) {
-        List<BusParameterSettings> ruleSettings=new ArrayList<>();
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_SWITCH, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_MODEL, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_APPLY_WAY, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_AUDIT_METHOD, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_APPLY_CONDITION, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_PLAN, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_POSTER, companyId));
-        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_ZGFY, companyId));
-        busParameterSettingsDao.batchInsert(ruleSettings);
-    }
-
-    private BusParameterSettings addScoreRuleSetting(String code,long companyId) {
-        BusParameterSettings busParameterSetting = new BusParameterSettings();
-        busParameterSetting.setParamCode(code);
-        busParameterSetting.setCompanyId(companyId);
-        return busParameterSetting;
-    }
+//    /**
+//     * 初始化默认积分规则设置
+//     */
+//    public void initBusParameterSetting(long companyId) {
+//        List<BusParameterSettings> ruleSettings=new ArrayList<>();
+//
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CREDIT_POINTS_CASH, companyId));
+//
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CASH_CONSUMPTION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.PRINCIPAL_BALANCE_CONSUMPTION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.BONUS_BALANCE_CONSUMPTION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.PRINCIPAL_CONSUMPTION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.GIVE_CONSUMPTION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.REFERRALS_CONSUMPTION, companyId));
+//
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CASH_CONSUMPTION_SHOP, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.RESERVATION_SERVICE_SHOP, companyId));
+//        ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.EVALUATUIN_ORDER_SHOP, companyId));
+//
+//        busParameterSettingsDao.batchInsert(ruleSettings);
+//    }
+//
+//    /**
+//     * 初始化默认分销规则设置
+//     */
+//    public void initBusParameterFenxiaoSetting(long companyId) {
+//        List<BusParameterSettings> ruleSettings=new ArrayList<>();
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_SWITCH, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_MODEL, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_APPLY_WAY, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_AUDIT_METHOD, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_APPLY_CONDITION, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_PLAN, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_POSTER, companyId));
+//        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_ZGFY, companyId));
+//        busParameterSettingsDao.batchInsert(ruleSettings);
+//    }
+//
+//    private BusParameterSettings addScoreRuleSetting(String code,long companyId) {
+//        BusParameterSettings busParameterSetting = new BusParameterSettings();
+//        busParameterSetting.setParamCode(code);
+//        busParameterSetting.setCompanyId(companyId);
+//        return busParameterSetting;
+//    }
 
 }

--
Gitblit v1.9.1