Commit d4718040 authored by shiyu's avatar shiyu

签到需要发布一个商品

parent d6ee16bd
......@@ -15,7 +15,9 @@ import com.wwdz.ch.core.util.CacheUtil;
import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.core.util.PriceUtil;
import com.wwdz.ch.db.dao.SwitchDao;
import com.wwdz.ch.db.dao.UserSignInDao;
import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.UserSignIn;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.AuctionConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
......@@ -94,6 +96,9 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
@Autowired
SendMsgService sendMsgService;
@Autowired
UserSignInDao userSignInDao;
@Override
@Transactional
public Result create(SupplierItemRequestDto dto) {
......@@ -612,6 +617,13 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
String url = wxAppletApi.getUrlLink("/pages/saleSelf/index","userId=" + oldItem.getCreatorId() + "&shareRecordId=");
String msg = "您发布的" + oldItem.getName() + ",内容涉嫌违反平台规定,已被平台下架,请前往"+ url + "查看";
aliSmsSender.sendSms(oldItem.getCreatorId(), msg);
//如果用户今天签到了,则取消签到记录
UserSignIn todaySignIn = userSignInDao.findTodayRecord(oldItem.getCreatorId());
if (todaySignIn != null) {
UserSignIn updateDto = new UserSignIn();
updateDto.setId(todaySignIn.getId());
// updateDto.set
}
return Result.success();
} catch (Exception e) {
logger.error("违规下架失败 error : {}", e);
......
......@@ -168,7 +168,6 @@ public class DateTimeUtil {
System.out.println(datesList);
int year = 2024; // 示例年份
int month = 10; // 示例月份
// 调用方法并输出结果
int dayOfWeekInt = getFirstDayOfMonth(year, month);
System.out.println(year + "年 " + month + "月的一号是: " + dayOfWeekInt);
......@@ -177,5 +176,14 @@ public class DateTimeUtil {
LocalDate today = LocalDate.now();
System.out.println(today.getYear()+ "-" + today.getMonthValue());
LocalDateTime startOfDay = today.atTime(LocalTime.MIN);
Date startDate = Date.from(startOfDay.atZone(java.time.ZoneId.systemDefault()).toInstant());
LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
Date endDate = Date.from(endOfDay.atZone(java.time.ZoneId.systemDefault()).toInstant());
System.out.println(startDate);
System.out.println(endDate);
}
}
......@@ -150,4 +150,11 @@ public interface SupplierItemDao {
*/
List<SupplierItem> findListByPage(SupplierItemRequestDto dto);
/**
* 某个时间段是否发布过商品
* @param dto
* @return
*/
boolean isUploadItem(SupplierItemRequestDto dto);
}
package com.wwdz.ch.db.domain;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import com.xxdxxs.entity.Entity;
import lombok.Data;
/**
* @author shiyu
* @date 2024/11/22
* @date 2024/12/12
*/
@Data
public class UserSignIn implements Entity {
......@@ -42,6 +44,11 @@ public class UserSignIn implements Entity {
*/
private Integer consecutiveDays;
/**
* 总连续天数
*/
private Integer totalConsecutiveDays;
/**
* 是否有奖励
*/
......@@ -57,6 +64,11 @@ public class UserSignIn implements Entity {
*/
private Boolean isGet;
/**
* 是否有效
*/
private Boolean isValid;
private static final long serialVersionUID = 1L;
@Override
......@@ -71,9 +83,11 @@ public class UserSignIn implements Entity {
sb.append(", updateTime=").append(updateTime);
sb.append(", signInDate=").append(signInDate);
sb.append(", consecutiveDays=").append(consecutiveDays);
sb.append(", totalConsecutiveDays=").append(totalConsecutiveDays);
sb.append(", isReward=").append(isReward);
sb.append(", rewardLevel=").append(rewardLevel);
sb.append(", isGet=").append(isGet);
sb.append(", isValid=").append(isValid);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
......@@ -97,9 +111,11 @@ public class UserSignIn implements Entity {
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
&& (this.getSignInDate() == null ? other.getSignInDate() == null : this.getSignInDate().equals(other.getSignInDate()))
&& (this.getConsecutiveDays() == null ? other.getConsecutiveDays() == null : this.getConsecutiveDays().equals(other.getConsecutiveDays()))
&& (this.getTotalConsecutiveDays() == null ? other.getTotalConsecutiveDays() == null : this.getTotalConsecutiveDays().equals(other.getTotalConsecutiveDays()))
&& (this.getIsReward() == null ? other.getIsReward() == null : this.getIsReward().equals(other.getIsReward()))
&& (this.getRewardLevel() == null ? other.getRewardLevel() == null : this.getRewardLevel().equals(other.getRewardLevel()))
&& (this.getIsGet() == null ? other.getIsGet() == null : this.getIsGet().equals(other.getIsGet()));
&& (this.getIsGet() == null ? other.getIsGet() == null : this.getIsGet().equals(other.getIsGet()))
&& (this.getIsValid() == null ? other.getIsValid() == null : this.getIsValid().equals(other.getIsValid()));
}
@Override
......@@ -112,9 +128,11 @@ public class UserSignIn implements Entity {
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
result = prime * result + ((getSignInDate() == null) ? 0 : getSignInDate().hashCode());
result = prime * result + ((getConsecutiveDays() == null) ? 0 : getConsecutiveDays().hashCode());
result = prime * result + ((getTotalConsecutiveDays() == null) ? 0 : getTotalConsecutiveDays().hashCode());
result = prime * result + ((getIsReward() == null) ? 0 : getIsReward().hashCode());
result = prime * result + ((getRewardLevel() == null) ? 0 : getRewardLevel().hashCode());
result = prime * result + ((getIsGet() == null) ? 0 : getIsGet().hashCode());
result = prime * result + ((getIsValid() == null) ? 0 : getIsValid().hashCode());
return result;
}
......@@ -132,9 +150,11 @@ public class UserSignIn implements Entity {
updateTime("update_time", "updateTime", "TIMESTAMP", false),
signInDate("sign_in_date", "signInDate", "VARCHAR", false),
consecutiveDays("consecutive_days", "consecutiveDays", "INTEGER", false),
totalConsecutiveDays("total_consecutive_days", "totalConsecutiveDays", "INTEGER", false),
isReward("is_reward", "isReward", "BIT", false),
rewardLevel("reward_level", "rewardLevel", "INTEGER", false),
isGet("is_get", "isGet", "BIT", false);
isGet("is_get", "isGet", "BIT", false),
isValid("is_valid", "isValid", "BIT", false);
/**
* This field was generated by MyBatis Generator.
......
......@@ -20,6 +20,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
@Override
public boolean insert(UserSignIn userSignin) {
userSignin.setIsValid(true);
return userSignInMapper.insert(userSignin) > 0;
}
......@@ -28,6 +29,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
UserSignInExample example = new UserSignInExample();
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andIsValidEqualTo(true);
example.setOrderByClause("create_time desc");
return userSignInMapper.selectOneByExample(example);
}
......@@ -39,6 +41,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
criteria.andUserIdEqualTo(dto.getUserId());
JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria :: andCreateTimeGreaterThanOrEqualTo);
JdbcHelper.ifPresent(dto.getEndQueryTime(), criteria :: andCreateTimeLessThanOrEqualTo);
criteria.andIsValidEqualTo(true);
example.setOrderByClause("create_time desc");
return userSignInMapper.selectByExample(example);
}
......@@ -51,6 +54,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andSignInDateEqualTo(yesterdayString);
criteria.andIsValidEqualTo(true);
return userSignInMapper.selectOneByExample(example);
}
......@@ -62,6 +66,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andSignInDateEqualTo(todayString);
criteria.andIsValidEqualTo(true);
return userSignInMapper.selectOneByExample(example);
}
......@@ -71,6 +76,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andSignInDateEqualTo(date);
criteria.andIsValidEqualTo(true);
return userSignInMapper.countByExample(example) > 0;
}
......@@ -81,6 +87,7 @@ public class UserSignInDaoImpl implements UserSignInDao {
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andSignInDateEqualTo(date);
criteria.andIsValidEqualTo(true);
return userSignInMapper.selectOneByExample(example);
}
......
......@@ -335,4 +335,15 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
PageHelper.startPage(dto.getPage(), dto.getLimit());
return supplierItemMapper.selectByExampleWithBLOBs(example);
}
@Override
public boolean isUploadItem(SupplierItemRequestDto dto) {
SupplierItemExample example = new SupplierItemExample();
SupplierItemExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getStartCreateTime(), criteria::andCreateTimeGreaterThanOrEqualTo);
JdbcHelper.ifPresent(dto.getEndCreateTime(), criteria::andCreateTimeLessThanOrEqualTo);
criteria.andIsDeletedEqualTo(false);
criteria.andStockGreaterThan(0);
return supplierItemMapper.countByExample(example) > 0;
}
}
......@@ -8,9 +8,11 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sign_in_date" jdbcType="VARCHAR" property="signInDate" />
<result column="consecutive_days" jdbcType="INTEGER" property="consecutiveDays" />
<result column="total_consecutive_days" jdbcType="INTEGER" property="totalConsecutiveDays" />
<result column="is_reward" jdbcType="BIT" property="isReward" />
<result column="reward_level" jdbcType="INTEGER" property="rewardLevel" />
<result column="is_get" jdbcType="BIT" property="isGet" />
<result column="is_valid" jdbcType="BIT" property="isValid" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
......@@ -71,8 +73,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, user_id, create_time, update_time, sign_in_date, consecutive_days, is_reward,
reward_level, is_get
id, user_id, create_time, update_time, sign_in_date, consecutive_days, total_consecutive_days,
is_reward, reward_level, is_get, is_valid
</sql>
<select id="selectByExample" parameterType="com.wwdz.ch.db.domain.UserSignInExample" resultMap="BaseResultMap">
select
......@@ -107,8 +109,8 @@
</foreach>
</when>
<otherwise>
id, user_id, create_time, update_time, sign_in_date, consecutive_days, is_reward,
reward_level, is_get
id, user_id, create_time, update_time, sign_in_date, consecutive_days, total_consecutive_days,
is_reward, reward_level, is_get, is_valid
</otherwise>
</choose>
from user_sign_in
......@@ -139,8 +141,8 @@
</foreach>
</when>
<otherwise>
id, user_id, create_time, update_time, sign_in_date, consecutive_days, is_reward,
reward_level, is_get
id, user_id, create_time, update_time, sign_in_date, consecutive_days, total_consecutive_days,
is_reward, reward_level, is_get, is_valid
</otherwise>
</choose>
from user_sign_in
......@@ -161,11 +163,13 @@
SELECT LAST_INSERT_ID()
</selectKey>
insert into user_sign_in (user_id, create_time, update_time,
sign_in_date, consecutive_days, is_reward,
reward_level, is_get)
sign_in_date, consecutive_days, total_consecutive_days,
is_reward, reward_level, is_get,
is_valid)
values (#{userId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{signInDate,jdbcType=VARCHAR}, #{consecutiveDays,jdbcType=INTEGER}, #{isReward,jdbcType=BIT},
#{rewardLevel,jdbcType=INTEGER}, #{isGet,jdbcType=BIT})
#{signInDate,jdbcType=VARCHAR}, #{consecutiveDays,jdbcType=INTEGER}, #{totalConsecutiveDays,jdbcType=INTEGER},
#{isReward,jdbcType=BIT}, #{rewardLevel,jdbcType=INTEGER}, #{isGet,jdbcType=BIT},
#{isValid,jdbcType=BIT})
</insert>
<insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.UserSignIn">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
......@@ -188,6 +192,9 @@
<if test="consecutiveDays != null">
consecutive_days,
</if>
<if test="totalConsecutiveDays != null">
total_consecutive_days,
</if>
<if test="isReward != null">
is_reward,
</if>
......@@ -197,6 +204,9 @@
<if test="isGet != null">
is_get,
</if>
<if test="isValid != null">
is_valid,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">
......@@ -214,6 +224,9 @@
<if test="consecutiveDays != null">
#{consecutiveDays,jdbcType=INTEGER},
</if>
<if test="totalConsecutiveDays != null">
#{totalConsecutiveDays,jdbcType=INTEGER},
</if>
<if test="isReward != null">
#{isReward,jdbcType=BIT},
</if>
......@@ -223,6 +236,9 @@
<if test="isGet != null">
#{isGet,jdbcType=BIT},
</if>
<if test="isValid != null">
#{isValid,jdbcType=BIT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.wwdz.ch.db.domain.UserSignInExample" resultType="java.lang.Long">
......@@ -252,6 +268,9 @@
<if test="record.consecutiveDays != null">
consecutive_days = #{record.consecutiveDays,jdbcType=INTEGER},
</if>
<if test="record.totalConsecutiveDays != null">
total_consecutive_days = #{record.totalConsecutiveDays,jdbcType=INTEGER},
</if>
<if test="record.isReward != null">
is_reward = #{record.isReward,jdbcType=BIT},
</if>
......@@ -261,6 +280,9 @@
<if test="record.isGet != null">
is_get = #{record.isGet,jdbcType=BIT},
</if>
<if test="record.isValid != null">
is_valid = #{record.isValid,jdbcType=BIT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
......@@ -274,9 +296,11 @@
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
sign_in_date = #{record.signInDate,jdbcType=VARCHAR},
consecutive_days = #{record.consecutiveDays,jdbcType=INTEGER},
total_consecutive_days = #{record.totalConsecutiveDays,jdbcType=INTEGER},
is_reward = #{record.isReward,jdbcType=BIT},
reward_level = #{record.rewardLevel,jdbcType=INTEGER},
is_get = #{record.isGet,jdbcType=BIT}
is_get = #{record.isGet,jdbcType=BIT},
is_valid = #{record.isValid,jdbcType=BIT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
......@@ -299,6 +323,9 @@
<if test="consecutiveDays != null">
consecutive_days = #{consecutiveDays,jdbcType=INTEGER},
</if>
<if test="totalConsecutiveDays != null">
total_consecutive_days = #{totalConsecutiveDays,jdbcType=INTEGER},
</if>
<if test="isReward != null">
is_reward = #{isReward,jdbcType=BIT},
</if>
......@@ -308,6 +335,9 @@
<if test="isGet != null">
is_get = #{isGet,jdbcType=BIT},
</if>
<if test="isValid != null">
is_valid = #{isValid,jdbcType=BIT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
......@@ -318,9 +348,11 @@
update_time = #{updateTime,jdbcType=TIMESTAMP},
sign_in_date = #{signInDate,jdbcType=VARCHAR},
consecutive_days = #{consecutiveDays,jdbcType=INTEGER},
total_consecutive_days = #{totalConsecutiveDays,jdbcType=INTEGER},
is_reward = #{isReward,jdbcType=BIT},
reward_level = #{rewardLevel,jdbcType=INTEGER},
is_get = #{isGet,jdbcType=BIT}
is_get = #{isGet,jdbcType=BIT},
is_valid = #{isValid,jdbcType=BIT}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectOneByExample" parameterType="com.wwdz.ch.db.domain.UserSignInExample" resultMap="BaseResultMap">
......@@ -356,8 +388,8 @@
</foreach>
</when>
<otherwise>
id, user_id, create_time, update_time, sign_in_date, consecutive_days, is_reward,
reward_level, is_get
id, user_id, create_time, update_time, sign_in_date, consecutive_days, total_consecutive_days,
is_reward, reward_level, is_get, is_valid
</otherwise>
</choose>
from user_sign_in
......
......@@ -72,7 +72,7 @@
<javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper"
targetProject="ch-dao/src/main/java"/>
<table tableName="category" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<table tableName="user_sign_in" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table>
......
......@@ -20,6 +20,7 @@ import com.wwdz.ch.db.domain.UserSignIn;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.entity.vo.SignInRewardVo;
import com.wwdz.ch.wx.service.UserSigninService;
import com.xxdxxs.utils.DateUtils;
......@@ -32,9 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
......@@ -387,6 +389,19 @@ public class UserSigninServiceImpl implements UserSigninService {
resultMap.put("calendar", calendar);
//签到进度
resultMap.put("rate", (int)Math.ceil((Double.valueOf(resultMap.get("consecutiveDays").toString()) / 21) * 100));
//查询用户当天有没有发布过商品
SupplierItemRequestDto supplierItemRequestDto = new SupplierItemRequestDto();
LocalDateTime startOfDay = today.atTime(LocalTime.MIN);
Date startDate = Date.from(startOfDay.atZone(java.time.ZoneId.systemDefault()).toInstant());
LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
Date endDate = Date.from(endOfDay.atZone(java.time.ZoneId.systemDefault()).toInstant());
supplierItemRequestDto.setStartCreateTime(startDate);
supplierItemRequestDto.setEndCreateTime(endDate);
if (supplierItemDao.isUploadItem(supplierItemRequestDto)) {
resultMap.put("todayIsUpload", true);
} else {
resultMap.put("todayIsUpload", false);
}
return Result.success(resultMap);
} catch (Exception e) {
logger.error("查询签到记录失败 error : {}", e);
......
......@@ -77,7 +77,7 @@ public class SignInNoticeJob {
/**
* 每天下午两点执行一次
*/
@Scheduled(cron = "0 0 14 * * ?")
@Scheduled(cron = "0 20 11 * * ?")
public void execute() {
/* if ("dev".equals(env)) {
logger.info(">>>>>>>>>>>>>>>>>>>>>>> dev环境, 不执行发送签到提醒通知定时作业<<<<<<<<<<<<<<<<<<<<<");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment