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/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java                 |    8 
 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java  |  137 +++-----------
 zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java          |    2 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java |   98 ++++++++++
 zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java                                  |  266 +++++++++++++++++++++--------
 zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml             |    8 
 6 files changed, 341 insertions(+), 178 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
index 660ab82..5bd6702 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
@@ -25,4 +25,6 @@
 	ZjrVo selectUsernameByUserId(@Param("userId")Long userId, @Param("receiveId")Long receiveId);
 
     ShopDeliveryInfo selectShopDeliveryInfoByLogisticsId(@Param("logisticsId")Integer logisticsId);
+
+	ActivitySignWriteoff selectActivitySignWriteoffByUserIDAndReceiveId(@Param("logisticsId")Long id, @Param("logisticsId")long receiveId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
index 3774bde..835ed41 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -27,6 +27,7 @@
 import com.matrix.system.common.dao.SystemDictionaryDao;
 import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.shopXcx.api.service.WxShopLogisticsQueryService;
 import com.matrix.system.shopXcx.bean.ShopActivities;
 import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
 import com.matrix.system.shopXcx.bean.ShopLogisticsInfo;
@@ -65,6 +66,8 @@
 	ShopDeliveryInfoDao shopDeliveryInfoDao;
 	@Autowired
 	ShopLogisticsInfoDao shopLogisticsInfoDao;
+	@Autowired
+	private WxShopLogisticsQueryService wxShopLogisticsQueryService;
 
 	public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page,
 			SignWriteoffListDto signWriteoffListDto) {
@@ -108,20 +111,22 @@
         		
         		//物流跟踪
         		Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId();
-        		if(ObjectUtil.isNotEmpty(logisticsId)) {
-        			List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(logisticsId);
-        			if(CollUtil.isNotEmpty(shopLogisticsInfos)) {
-        				ArrayList<LogisticsVo> logisticsVos = new ArrayList<>();
-        				for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) {
-        					LogisticsVo logisticsVo = new LogisticsVo();
-        					logisticsVo.setContent(shopLogistics.getDescribe());
-        					logisticsVo.setTimestamp(shopLogistics.getLogisticsTime());
-        					logisticsVos.add(logisticsVo);
-        				}
-        				signWriteoffVo.setActivities(logisticsVos);
-        			}
-        		}
-        		
+				ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId);
+				if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){
+					//查看物流信息
+					wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo);
+					List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+					if(CollUtil.isNotEmpty(shopLogisticsInfos)) {
+						ArrayList<LogisticsVo> logisticsVos = new ArrayList<>();
+						for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) {
+							LogisticsVo logisticsVo = new LogisticsVo();
+							logisticsVo.setContent(shopLogistics.getDescribe());
+							logisticsVo.setTimestamp(shopLogistics.getLogisticsTime());
+							logisticsVos.add(logisticsVo);
+						}
+						signWriteoffVo.setActivities(logisticsVos);
+					}
+				}
         	}
         }
         result.putInMap("signWriteoffVo", signWriteoffVo);
@@ -194,96 +199,20 @@
 
         shopDeliveryInfo.setDeliveryTime(new Date());
         shopDeliveryInfoDao.insert(shopDeliveryInfo);
-//		Integer id = shopDeliveryInfo.getId();
-//		if(ObjectUtil.isNotEmpty(id)) {
-//			List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>();
-//	        AjaxResult result = new AjaxResult();
-//	        Map<String, String> logisticsInfo = new HashMap<String, String>();
-//	        try {
-//	            if (shopDeliveryInfo == null) {
-//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
-//	            }
-//	            if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
-//	                return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
-//	            }
-//	            logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
-//	            logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
-//
-//	            //如果已经签收直接查数据库
-//	            if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
-//
-//	                List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
-//	                logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
-//	                result.setStatus(AjaxResult.STATUS_SUCCESS);
-//	                result.setRows(shopLogisticsInfos);
-//	                result.putInMap("logisticsInfo", logisticsInfo);
-//	                return result;
-//	            }
-//	            Map<String, String> param = new HashMap<String, String>();
-//	            param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
-//	            param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
-//	            Map<String, String> paramsUrl = getparams(param);
-//	            LogUtil.info("物流查询参数" + paramsUrl);
-//	            String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
-//	            LogUtil.info("查询物流返回信息" + logisticsResult);
-//	            LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
-//	            if (logisticsInfoVo.isSuccess()) {
-//	                ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
-//	                shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
-//	                shopDelivery.setId(shopDeliveryInfo.getId());
-//	                logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
-//	                //更新物流状态
-//	                shopDeliveryInfoDao.updateByModel(shopDelivery);
-//	                if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
-//	                    List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
-//	                    for (int i = 0; i < mapTraces.size(); i++) {
-//	                        ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
-//	                        shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
-//	                        shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
-//	                        shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
-//	                        String acceptStation = mapTraces.get(i).get("AcceptStation");
-//	                        shopLogisticsInfo.setDescribe(acceptStation);
-//	                        shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
-//	                        if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
-//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
-//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
-//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
-//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
-//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
-//	                        } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
-//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
-//	                        } else {
-//	                            shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
-//	                        }
-//	                        shopLogisticsList.add(shopLogisticsInfo);
-//	                    }
-//	                    shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
-//	                    if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
-//	                        shopLogisticsInfoDao.batchInsert(shopLogisticsList);
-//	                    }
-//	                }
-//	            } else {
-//	                throw new GlobleException(logisticsInfoVo.getReason());
-//	            }
-//
-//	        } catch (Exception e) {
-//	            throw new GlobleException("物流信息查询失败");
-//	        }
-	        //更新核销记录
-	        activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
-	        activitySignWriteoff.setWriteoffTime(new Date());
-	        activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
-	        activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
-	        activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
-	        activitySignWriteoffDao.updateById(activitySignWriteoff);
-	        //更新领取记录
-	        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
-	        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE);
-	        activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
-	        activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
-	        activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
-	        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
-//		}
+		//更新核销记录
+		activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+		activitySignWriteoff.setWriteoffTime(new Date());
+		activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+		activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+		activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId());
+		activitySignWriteoffDao.updateById(activitySignWriteoff);
+		//更新领取记录
+		ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
+		activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE);
+		activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
+		activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
+		activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
+		activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功");
 	}
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
index da861c3..d3e876a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -9,6 +9,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
@@ -22,9 +23,14 @@
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.dto.SeeAwardTextDto;
 import com.matrix.system.shopXcx.api.dto.SignAwardDto;
+import com.matrix.system.shopXcx.api.service.WxShopLogisticsQueryService;
 import com.matrix.system.shopXcx.api.vo.*;
 import com.matrix.system.shopXcx.bean.ShopActivities;
+import com.matrix.system.shopXcx.bean.ShopDeliveryInfo;
+import com.matrix.system.shopXcx.bean.ShopLogisticsInfo;
 import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao;
+import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao;
 import com.matrix.system.shopXcx.vo.SalesOrderVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -63,6 +69,15 @@
 	
 	@Autowired
 	private ActivitySignRecordDao activitySignRecordDao;
+	
+    @Autowired
+    ShopDeliveryInfoDao shopDeliveryInfoDao;
+
+    @Autowired
+    private ShopLogisticsInfoDao shopLogisticsInfoDao;
+
+    @Autowired
+    private WxShopLogisticsQueryService wxShopLogisticsQueryService;
 	
 	@ApiOperation(value = "获取签到基本信息", notes = "")
 	@ApiResponses({
@@ -140,6 +155,56 @@
         ajaxResult.setData(signBasicInfoVo);
         return ajaxResult;
     }
+
+    /**
+     * 查看历史签到记录
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "查看历史签到记录", notes = "")
+    @GetMapping(value = "getSignRecord/{actId}/{month}")
+    @ResponseBody
+    public AjaxResult getSignRecord(@PathVariable("actId") long actId,@PathVariable("month") String dateStr) {
+        //获取登录人信息
+        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        Long companyId = loginUser.getCompanyId();
+        Long userId = loginUser.getId();
+        Date date = DateUtil.parse(dateStr);
+        /**
+         * 默认获取当前月份
+         *      获取当前月份的天数
+         */
+        List<ActivitySignRecordVo> activitySignRecordVos = new ArrayList<>();
+        //获取当前月的第一天是星期几
+        DateTime dateTime = DateUtil.beginOfMonth(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 dateSign = DateUtil.parse(monthFullDay);
+            ActivitySignRecord activitySignRecordDone = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,dateSign);
+            if(ObjectUtil.isNotEmpty(activitySignRecordDone)){
+                activitySignRecordVo.setState(1);
+            }else{
+                activitySignRecordVo.setState(2);
+            }
+            activitySignRecordVos.add(activitySignRecordVo);
+        }
+        AjaxResult ajaxResult = new AjaxResult();
+        ajaxResult = AjaxResult.buildSuccessInstance("");
+        ajaxResult.setData(activitySignRecordVos);
+        return ajaxResult;
+    }
+
     /**
      *  java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)
      * @param year
@@ -445,7 +510,7 @@
      *
      * @return
      */
-    @ApiOperation(value = "物流配送确认", notes = "")
+    @ApiOperation(value = "物流配送信息查看", notes = "")
     @PostMapping(value = "/logisticsInsure")
     @ApiResponses({
             @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
@@ -455,9 +520,40 @@
         seeAwardTextDto.setUserId(loginUser.getId());
         seeAwardTextDto.setCompanyId(loginUser.getCompanyId());
         SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto);
+        long receiveId = seeAwardTextVO.getId();
+        //获取核销记录的ID
+        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectActivitySignWriteoffByUserIDAndReceiveId(loginUser.getId(),receiveId);
+        Integer logisticsId = activitySignWriteoff.getLogisticsId();
+        ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId);
+        if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){
+            //查看物流信息
+            wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo);
+            List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+            seeAwardTextVO.setShopLogisticsInfos(shopLogisticsInfos);
+        }
         AjaxResult result=AjaxResult.buildSuccessInstance(seeAwardTextVO);
         return result;
     }
+
+    /**
+     * 物流配送确认收货
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "物流配送确认收货", notes = "")
+    @GetMapping(value = "logisticsInsureById/{awardId}")
+    @ResponseBody
+    public AjaxResult logisticsInsureById(@PathVariable("awardId") long awardId) {
+        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(awardId);
+        //如果不是待收货状态
+        if (ActivitySignReceiveRecord.STATE_FOUR != activitySignReceiveRecord.getState()) {
+            throw new GlobleException("该奖品不是待收货状态!");
+        }
+        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+        activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "收货成功!");
+    }
     
     
     
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
index 7dd4cfc..0e81d77 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
@@ -1,15 +1,20 @@
 package com.matrix.system.shopXcx.api.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.system.shopXcx.bean.ShopLogisticsInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 @ApiModel(value = "SeeAwardTextVo", description = "劵码信息")
 public class SeeAwardTextVo {
+
+	@ApiModelProperty(value ="中奖记录ID")
+	private long  id;
 	
 	@ApiModelProperty(value ="奖项名称")
 	private String  awardName;
@@ -46,4 +51,7 @@
 	@ApiModelProperty(value =" 是否已领取(1:待领取2:已领取)")
 	private Integer  state;
 
+	@ApiModelProperty(value ="物流信息记录")
+	private List<ShopLogisticsInfo> shopLogisticsInfos;
+
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
index 2a3fa33..0d3affe 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
@@ -101,4 +101,12 @@
 		where a.id = #{logisticsId}
 	</select>
 
+	<select id="selectActivitySignWriteoffByUserIDAndReceiveId" resultType="com.matrix.system.activity.entity.ActivitySignWriteoff">
+		SELECT
+			*
+		FROM
+			shop_delivery_info a
+		where a.id = #{logisticsId}
+	</select>
+
 </mapper>
\ No newline at end of file
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