master
ck 5 years ago
parent 244a5afd19
commit 24ca545763

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

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

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

@ -1,5 +1,6 @@
package com.jingcheng.template.quartz; package com.jingcheng.template.quartz;
import com.jingcheng.template.service.UsersService;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -12,15 +13,16 @@ import java.io.IOException;
@Component @Component
public class ScheduledTask { public class ScheduledTask {
/** @Resource
* 010 UsersService usersService;
*/
private static final String SYNC_USERS_TASK = "0 10 0 * * ?";
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 * @param userId
* @return * @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 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); AjaxResult registWxUser(String code);
void chancesTask();
} }

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

@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
@ -146,6 +147,7 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper, Users> implem
if (null == users){ if (null == users){
Users newUsers = new Users(); Users newUsers = new Users();
newUsers.setOpenId(openId); newUsers.setOpenId(openId);
newUsers.setChances(3);
// newUsers.setNickName(nickName); // newUsers.setNickName(nickName);
// newUsers.setHeadImgUrl(headimgurl); // newUsers.setHeadImgUrl(headimgurl);
newUsers.setUserId(UUID.randomUUID().toString()); newUsers.setUserId(UUID.randomUUID().toString());
@ -175,5 +177,12 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper, Users> implem
return ajaxResult; 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"?> <?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"> <!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"> <mapper namespace="com.jingcheng.template.mapper.UsersMapper">
<select id="getUsersByConditions" resultType="com.jingcheng.template.model.Users"> <update id="updateChancesTask">
SELECT u.`id`,u.`name`,u.`user_no`,u.`password`,u.`work_units`,u.`sex`,u.`is_certificate`, UPDATE users set chances = 3
u.`create_date_time`,u.`update_date_time`,u.`create_by`,u.`update_by`,u.`state`,u.`business_level_id`, </update>
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>
</mapper> </mapper>

Loading…
Cancel
Save