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