master
ck 5 years ago
parent 244a5afd19
commit 24ca545763

@ -32,8 +32,7 @@ public class AwardRecordController extends BaseController<AwardRecordService, Aw
ajaxResult.setRetmsg("userId为空");
return ajaxResult;
}
Integer count = awardRecordService.getUserAwardRecordNum(userId);
ajaxResult.setData(count);
ajaxResult = awardRecordService.getUserAwardRecordNum(userId);
} catch (Exception e) {
e.printStackTrace();
String errMsg = e.getMessage() != null ? e.getMessage() : "操作失败";
@ -96,19 +95,24 @@ public class AwardRecordController extends BaseController<AwardRecordService, Aw
return ajaxResult;
}
@RequestMapping("insert-fail-record")
public AjaxResult insertFailRecord(@RequestBody AjaxRequest ajaxRequest){
@RequestMapping("update-chance")
public AjaxResult updateChance(@RequestBody AjaxRequest ajaxRequest){
AjaxResult ajaxResult = new AjaxResult();
JSONObject jsonObject = ajaxRequest.getData();
try {
String userId = jsonObject.getString("userId");
String source = jsonObject.getString("source");
Integer type = jsonObject.getInteger("type");
if (StringUtils.isEmpty(userId)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("userId为空");
return ajaxResult;
}
ajaxResult = awardRecordService.insertFailRecord(userId,source);
if (null == type){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("type类型不可为空");
return ajaxResult;
}
ajaxResult = awardRecordService.updateChance(userId,type);
} catch (Exception e) {
e.printStackTrace();
String errMsg = e.getMessage() != null ? e.getMessage() : "操作失败";

@ -19,4 +19,5 @@ import java.util.List;
*/
@Repository
public interface UsersMapper extends CommonMapper<Users> {
int updateChancesTask();
}

@ -23,6 +23,8 @@ public class Users extends BaseEntity {
private String userId;
private Integer chances;
private String userNo;//工号
private String password;//密码

@ -1,5 +1,6 @@
package com.jingcheng.template.quartz;
import com.jingcheng.template.service.UsersService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -12,15 +13,16 @@ import java.io.IOException;
@Component
public class ScheduledTask {
/**
* 010
*/
private static final String SYNC_USERS_TASK = "0 10 0 * * ?";
@Resource
UsersService usersService;
private static final String CHANCE_TASK = "0 0 0 * * ?";
/**
*
* 0:00
* @throws IOException
*/
private static final String DOWNLOAD_WX_EMPLOYEE = "0 0/10 * * * ? ";
@Scheduled(cron = CHANCE_TASK)
public void downloadWxEmployee() {
usersService.chancesTask();
}
}

@ -12,7 +12,7 @@ public interface AwardRecordService<AwardRecord> extends BaseService<AwardRecord
* @param userId
* @return
*/
Integer getUserAwardRecordNum(String userId);
AjaxResult getUserAwardRecordNum(String userId);
/**
*
@ -37,7 +37,7 @@ public interface AwardRecordService<AwardRecord> extends BaseService<AwardRecord
AjaxResult getAwardRecordList(JSONObject jsonObject);
/**
*
* /
*/
AjaxResult insertFailRecord(String userId,String source);
AjaxResult updateChance(String userId,Integer type);
}

@ -27,4 +27,6 @@ public interface UsersService<Users> extends BaseService<Users> {
AjaxResult registWxUser(String code);
void chancesTask();
}

@ -47,7 +47,8 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
@SneakyThrows
@Override
public Integer getUserAwardRecordNum(String userId) {
public AjaxResult getUserAwardRecordNum(String userId) {
AjaxResult ajaxResult = new AjaxResult();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
Date start = simpleDateFormat.parse(simpleDateFormat2.format(new Date())+ " 00:00:00");
@ -58,7 +59,22 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
awardRecordCriteria.andEqualTo("userId", userId);
awardRecordCriteria.andBetween("createDateTime",start,end);
Integer count = awardRecordMapper.selectCountByExample(awardRecordExample);
return count;
JSONObject jsonObject = new JSONObject();
Users findUsers = new Users();
findUsers.setUserId(userId);
findUsers.setState(Constants.STATE_VALID);
Users users = usersMapper.selectOne(findUsers);
if (null == users){
ajaxResult.setRetmsg("用户不存在");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}else {
jsonObject.put("count",count);
jsonObject.put("chances",users.getChances());
ajaxResult.setData(jsonObject);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
}
return ajaxResult;
}
@SneakyThrows
@ -81,8 +97,7 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
awardRecordCriteria.andEqualTo("state", 1);
awardRecordCriteria.andEqualTo("userId", userId);
awardRecordCriteria.andNotEqualTo("awardType",0);
awardRecordCriteria.andBetween("createDateTime",start,end);
//今日抽中次数
//抽中奖品次数
Integer todayAwardCount = awardRecordMapper.selectCountByExample(awardRecordExample);
Example awardRecordExample2 = new Example(AwardRecord.class);
Example.Criteria awardRecordCriteria2 = awardRecordExample.createCriteria();
@ -91,13 +106,8 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
awardRecordCriteria2.andBetween("createDateTime",start,end);
//今日抽总次数
Integer todayCount = awardRecordMapper.selectCountByExample(awardRecordExample2);
if (todayCount >= 3){
ajaxResult.setRetmsg("今日已抽三次");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}
if (todayAwardCount >= 1){
logger.info("今日已抽中");
logger.info("此用户已抽中过奖品");
isAward = false;
}else {
int range = (int) (1 / awardRate);
@ -144,7 +154,7 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
AwardRecord awardRecord = new AwardRecord();
awardRecord.setAwardType(awardType);
awardRecord.setUserId(userId);
awardRecord.setAwardTimes(todayCount+1);
awardRecord.setAwardTimes(todayCount + 1);
awardRecord.setCreateDateTime(new Date());
awardRecord.setUpdateDateTime(new Date());
awardRecord.setState(Constants.STATE_VALID);
@ -260,18 +270,28 @@ public class AwardRecordServiceImpl extends BaseServiceImpl<AwardRecordMapper, A
@SneakyThrows
@Override
public AjaxResult insertFailRecord(String userId, String source) {
public AjaxResult updateChance(String userId, Integer type) {
AjaxResult ajaxResult = new AjaxResult();
AwardRecord awardRecord = new AwardRecord();
awardRecord.setUserId(userId);
awardRecord.setSource(source);
awardRecord.setAwardType(0);
awardRecord.setCreateDateTime(new Date());
awardRecord.setUpdateDateTime(new Date());
awardRecord.setState(Constants.STATE_VALID);
awardRecordMapper.insert(awardRecord);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setData(awardRecord.getId());
Users findUsers = new Users();
findUsers.setUserId(userId);
findUsers.setState(Constants.STATE_VALID);
Users users = usersMapper.selectOne(findUsers);
Integer chances = users.getChances();
if (null == users) {
ajaxResult.setRetmsg("用户不存在");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}else {
if (0 == type){
//减命
users.setChances(chances - 1);
}else {
//加命
users.setChances(chances + 1);
}
users.setUpdateDateTime(new Date());
usersMapper.updateByPrimaryKeySelective(users);
}
return ajaxResult;
}
}

@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@ -146,6 +147,7 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper, Users> implem
if (null == users){
Users newUsers = new Users();
newUsers.setOpenId(openId);
newUsers.setChances(3);
// newUsers.setNickName(nickName);
// newUsers.setHeadImgUrl(headimgurl);
newUsers.setUserId(UUID.randomUUID().toString());
@ -175,5 +177,12 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper, Users> implem
return ajaxResult;
}
@Override
public void chancesTask() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
logger.info(simpleDateFormat.format(new Date())+ "刷新用户chances");
usersMapper.updateChancesTask();
}
}

@ -1,119 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jingcheng.template.mapper.UsersMapper">
<select id="getUsersByConditions" resultType="com.jingcheng.template.model.Users">
SELECT u.`id`,u.`name`,u.`user_no`,u.`password`,u.`work_units`,u.`sex`,u.`is_certificate`,
u.`create_date_time`,u.`update_date_time`,u.`create_by`,u.`update_by`,u.`state`,u.`business_level_id`,
u.`business_level_name`,u.`role_id`,u.role_name,u.`phone`,u.`score` from users u
LEFT JOIN
(SELECT tu.`id`,tu.`training_id`,tu.`users_id`,tu.`state`,t.training_name
from training_users tu
left join training t
on tu.training_id = t.id
where tu.state = 1
) ntu
on ntu.users_id = u.id
left join
(select `groups_id`,`users_id` from groups_users where state = 1) gu
on gu.users_id = u.id
WHERE
1 = 1
<if test="isCertificate != null">
AND u.is_certificate = #{isCertificate}
</if>
<if test="roleId != null">
AND u.role_id = #{roleId}
</if>
<if test="joinStartTime != null and joinStartTime != '' and joinEndTime != null and joinEndTime != ''">
AND u.create_date_time between #{joinStartTime} and #{joinEndTime}
</if>
<if test="param != null">
and (u.`phone` LIKE CONCAT('%',#{param},'%')
or u.name like concat('%',#{param},'%')
or u.work_units like concat('%',#{param},'%')
or u.user_no like concat('%',#{param},'%'))
</if>
<if test="trainingId != null">
AND ntu.training_id = #{trainingId}
</if>
<if test="groupsId != null">
AND gu.groups_id = #{groupsId}
</if>
and (u.state = 1 or u.state = 2)
and u.`role_id` != 5
group by u.`id`
</select>
<select id="getExportUsersByConditions" resultType="java.util.LinkedHashMap">
SELECT u.`id` as ID,u.`user_no` as 账号 ,u.`name` as 姓名,u.`password` as 密码 ,
(case when u.`sex` = 0 then '女'
when u.`sex` = 1 then '男'
ELSE '未知' end) as 性别
,u.`work_units` as 单位,u.role_name as 角色,
g.groups_name as 分组,
(case when u.`is_certificate` = 0 then '否'
ELSE '是' end) as 是否认证,
u.`create_date_time` as 加入时间,
(case when u.`state` = 0 then '已删除'
when u.`state` = 1 then '已启用'
ELSE '已冻结' end) as 状态
from users u
LEFT JOIN
(SELECT tu.`id`,tu.`training_id`,tu.`users_id`,tu.`state`,t.training_name
from training_users tu
left join training t
on tu.training_id = t.id
) ntu
on ntu.users_id = u.id
left join
(select GROUP_CONCAT(groups_name SEPARATOR "," ) as groups_name ,users_id FROM `groups_users` where state = 1 GROUP BY users_id) g
on g.users_id = u.id
left join
(select `groups_id`,`users_id` from groups_users where state = 1) gu
on gu.users_id = u.id
WHERE
1 = 1
<if test="isCertificate != null">
AND u.is_certificate = #{isCertificate}
</if>
<if test="roleId != null">
AND u.role_id = #{roleId}
</if>
<if test="joinStartTime != null and joinStartTime != '' and joinEndTime != null and joinEndTime != ''">
AND u.create_date_time between #{joinStartTime} and #{joinEndTime}
</if>
<if test="param != null">
and (u.`phone` LIKE CONCAT('%',#{param},'%')
or u.name like concat('%',#{param},'%')
or u.work_units like concat('%',#{param},'%')
or u.user_no like concat('%',#{param},'%'))
</if>
<if test="trainingId != null">
AND ntu.training_id = #{trainingId}
</if>
<if test="groupsId != null">
AND gu.groups_id = #{groupsId}
</if>
and u.state = 1 or u.state = 2
group by u.`id`
</select>
<select id="superAdminGetUsersList" resultType="com.jingcheng.template.model.Users">
select u.`id`,u.`name`,u.`role_name`,u.`role_id`,u.`user_no`,u.`password`,u.`work_units`,
u.`sex`,u.`is_certificate`,u.`business_level_name`,u.`business_level_id`,u.`create_date_time`,
u.`update_date_time`,u.`create_by`,u.`update_by`,u.`state`,u.`phone`,u.`score`
from users u
left join groups_users gu
on gu.users_id = u.`id`
where gu.groups_id = #{groupsId} and (u.`role_id` = 1 or u.`role_id` = 2) AND u.state = 1 and gu.state = 1
<if test="name != null and name !=''">
and u.`name` LIKE CONCAT('%',#{name},'%')
</if>
</select>
<select id="getbanUsers" resultType="com.jingcheng.template.model.Users">
select u.`id`,u.`name`,u.`role_id`,u.`role_name` from users u left join groups_users gu
on gu.users_id = u.id
where
gu.groups_id = #{groupsId} AND u.role_id = 2 and u.state = 1 and gu.state = 1
</select>
<update id="updateChancesTask">
UPDATE users set chances = 3
</update>
</mapper>

Loading…
Cancel
Save