Browse Source

积分任务列表

dev
yinzuomei 4 years ago
parent
commit
55993c4815
  1. 31
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/MyPointTaskFormDTO.java
  2. 84
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/MyPointTaskResultDTO.java
  3. 26
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java
  4. 6
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java
  5. 9
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java
  6. 37
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java
  7. 27
      epmet-module/epmet-point/epmet-point-server/src/main/resources/db/migration/V0.0.11__point_rule_sort.sql
  8. 1
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRuleDao.xml
  9. 58
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml

31
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/MyPointTaskFormDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 积分任务列表查询入参
*
* @author yinzuomei@elink-cn.com
* @date 2021/6/18 13:56
*/
@Data
public class MyPointTaskFormDTO implements Serializable {
private static final long serialVersionUID = 8274146750217261820L;
/**
* 当前用户Id
* */
@NotBlank(message = "tokenDto获取userId为空")
private String userId;
@NotBlank(message = "tokenDto获取customerId为空")
private String customerId;
/**
* 未完成unfinished已完成finished全部all
* */
@NotBlank(message = "未完成:unfinished;已完成:finished;全部:all")
private String type;
}

84
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/MyPointTaskResultDTO.java

@ -0,0 +1,84 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 积分任务列表查询返参
*
* @author yinzuomei@elink-cn.com
* @date 2021/6/18 13:58
*/
@Data
public class MyPointTaskResultDTO implements Serializable {
/**
* 规则名称
* */
private String ruleName;
/**
* 规则描述
* */
private String ruleDesc;
/**
* 加减积分描述举例积分+2
* */
private String pointDesc;
/**
* 完成情况描述举例完成0/3
* */
private String finishTotalDesc;
/**
* 去完成 or 已完成
* */
private String finishFlag;
/**
* 楼院小组:group爱心互助heart; 前端根据这个key跳转到相应页面
* */
private String linkPage;
/**
* 事件CODE 来自事件表
*/
// @JsonIgnore
private String eventCode;
/**
* 操作类型 加积分:add;减积分:subtract
*/
// @JsonIgnore
private String operateType;
/**
* 积分上限 0表示不涉及积分上限
*/
// @JsonIgnore
private Integer upLimit;
/**
* 获得积分值
*/
// @JsonIgnore
private Integer point;
/**
* 已完成次数
*/
private Integer finishedCount;
/**
* 上限次数,-1代表没有上限
*/
private Integer upLimitCount;
/**
* 排序
*/
private Integer sort;
}

26
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java

@ -4,10 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CommonPageUserFormDTO;
import com.epmet.dto.form.CommonUserFormDTO;
import com.epmet.dto.form.ResiAroundPartyPointRankFormDTO;
import com.epmet.dto.form.ResiPointRankFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.PointVerificationLogService;
import com.epmet.service.UserPointActionLogService;
@ -15,7 +12,10 @@ import com.epmet.service.UserPointStatisticalDailyService;
import com.epmet.service.UserPointTotalService;
import com.epmet.utils.ModuleConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -156,4 +156,20 @@ public class ResiPointController {
List<ResiAroundPartyPointRankResultDTO> resultDTOS = userPointStatisticalDailyService.listAroundPartyPointRank(formDTO);
return new Result<List<ResiAroundPartyPointRankResultDTO>>().ok(resultDTOS);
}
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.MyPointTaskResultDTO>>
* @param tokenDto
* @param formDTO
* @author yinzuomei
* @description 积分任务列表
* @Date 2021/6/18 14:19
**/
@PostMapping("mytasklist")
public Result<List<MyPointTaskResultDTO>> queryMyPointTaskList(@LoginUser TokenDto tokenDto,@RequestBody MyPointTaskFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO);
return new Result<List<MyPointTaskResultDTO>>().ok(pointActionLogService.queryMyPointTaskList(formDTO));
}
}

6
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java

@ -18,6 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.MyPointTaskResultDTO;
import com.epmet.dto.result.ResiPointLogPeriodResultDTO;
import com.epmet.entity.UserPointActionLogEntity;
import org.apache.ibatis.annotations.Mapper;
@ -63,4 +64,9 @@ public interface UserPointActionLogDao extends BaseDao<UserPointActionLogEntity>
* @return java.lang.Integer
*/
Integer selectIncrease(@Param("type")String type, @Param("objectId")String objectId);
List<MyPointTaskResultDTO> queryMyPointTaskList(@Param("customerId")String customerId,
@Param("userId")String userId,
@Param("type")String type,
@Param("dateId")String dateId);
}

9
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java

@ -22,6 +22,8 @@ import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.UserPointActionLogDTO;
import com.epmet.dto.form.CommonPageUserFormDTO;
import com.epmet.dto.form.MyPointTaskFormDTO;
import com.epmet.dto.result.MyPointTaskResultDTO;
import com.epmet.dto.result.ResiPointLogListResultDTO;
import com.epmet.entity.UserPointActionLogEntity;
import dto.form.SendPointFormDTO;
@ -133,4 +135,11 @@ public interface UserPointActionLogService extends BaseService<UserPointActionLo
* @return java.lang.Integer
*/
Integer getIncrease(String type, String objectId);
/**
* 积分任务列表
*
* @param formDTO
* @return Result<MyPointTaskResultDTO>
*/
List<MyPointTaskResultDTO> queryMyPointTaskList(MyPointTaskFormDTO formDTO);
}

37
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java

@ -35,9 +35,14 @@ import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.BizPointUserTotalDetailDTO;
import com.epmet.dto.UserPointActionLogDTO;
import com.epmet.dto.form.CommonPageUserFormDTO;
import com.epmet.dto.form.MyPointTaskFormDTO;
import com.epmet.dto.result.MyPointTaskResultDTO;
import com.epmet.dto.result.ResiPointLogListResultDTO;
import com.epmet.dto.result.ResiPointLogPeriodResultDTO;
import com.epmet.entity.*;
import com.epmet.entity.PointRuleEntity;
import com.epmet.entity.UserPointActionLogEntity;
import com.epmet.entity.UserPointStatisticalDailyEntity;
import com.epmet.entity.UserPointTotalEntity;
import com.epmet.service.*;
import com.epmet.utils.DimIdGenerator;
import com.epmet.utils.ModuleConstant;
@ -54,7 +59,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -512,4 +516,33 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl<UserPointActi
int minusTotal = null == entity2? NumConstant.ZERO : entity2.getPoint();
return plusTotal - minusTotal;
}
/**
* 积分任务列表
*
* @param formDTO
* @return Result<MyPointTaskResultDTO>
*/
@Override
public List<MyPointTaskResultDTO> queryMyPointTaskList(MyPointTaskFormDTO formDTO) {
//默认查询当天
String dateId= DateUtils.getBeforeNDay(0);
List<MyPointTaskResultDTO> list=baseDao.queryMyPointTaskList(formDTO.getCustomerId(),formDTO.getUserId(),formDTO.getType(), dateId);
list.forEach(dto->{
if(NumConstant.ZERO==dto.getUpLimit()){
//无上限
dto.setFinishTotalDesc("完成"+dto.getFinishedCount());
dto.setFinishFlag("去完成");
}else{
dto.setFinishTotalDesc("完成".concat(String.valueOf(dto.getFinishedCount())).concat("/").concat(String.valueOf(dto.getUpLimitCount())));
if(dto.getUpLimitCount().equals(dto.getFinishedCount())){
dto.setFinishFlag("已完成");
}else{
dto.setFinishFlag("未完成");
}
}
});
return list;
}
}

27
epmet-module/epmet-point/epmet-point-server/src/main/resources/db/migration/V0.0.11__point_rule_sort.sql

@ -0,0 +1,27 @@
alter table point_rule_default add COLUMN SORT INT(11) COMMENT '规则显示顺序' AFTER ENABLED_FLAG ;
alter table point_rule add COLUMN SORT INT(11) COMMENT '规则显示顺序' AFTER ENABLED_FLAG ;
alter table point_rule_default add COLUMN LINK_PAGE VARCHAR(32) COMMENT '链接页面' AFTER SORT ;
alter table point_rule add COLUMN LINK_PAGE VARCHAR(32) COMMENT '链接页面' AFTER SORT ;
update point_rule_default set sort='1001',LINK_PAGE='group' where EVENT_CODE='participate_one_topic' and DEL_FLAG='0';
update point_rule_default set sort='1002',LINK_PAGE='group' where EVENT_CODE='publish_one_topic' and DEL_FLAG='0';
update point_rule_default set sort='1003',LINK_PAGE='group' where EVENT_CODE='invite_resi_into_group' and DEL_FLAG='0';
update point_rule_default set sort='1004',LINK_PAGE='group' where EVENT_CODE='invite_new_into_group' and DEL_FLAG='0';
update point_rule_default set sort='1005',LINK_PAGE='group' where EVENT_CODE='leader_resolve_topic' and DEL_FLAG='0';
update point_rule_default set sort='1006',LINK_PAGE='group' where EVENT_CODE='shift_topic_to_issue' and DEL_FLAG='0';
update point_rule_default set sort='1007',LINK_PAGE='group' where EVENT_CODE='topic_to_issue' and DEL_FLAG='0';
update point_rule_default set sort='1008',LINK_PAGE='group' where EVENT_CODE='topic_to_project' and DEL_FLAG='0';
update point_rule_default set sort='2001',LINK_PAGE='heart' where EVENT_CODE='register_volunteer' and DEL_FLAG='0';
update point_rule_default set sort='2002',LINK_PAGE='heart' where EVENT_CODE='active_insert_live' and DEL_FLAG='0';
update point_rule set sort='1001',LINK_PAGE='group' where EVENT_CODE='participate_one_topic' and DEL_FLAG='0';
update point_rule set sort='1002',LINK_PAGE='group' where EVENT_CODE='publish_one_topic' and DEL_FLAG='0';
update point_rule set sort='1003',LINK_PAGE='group' where EVENT_CODE='invite_resi_into_group' and DEL_FLAG='0';
update point_rule set sort='1004',LINK_PAGE='group' where EVENT_CODE='invite_new_into_group' and DEL_FLAG='0';
update point_rule set sort='1005',LINK_PAGE='group' where EVENT_CODE='leader_resolve_topic' and DEL_FLAG='0';
update point_rule set sort='1006',LINK_PAGE='group' where EVENT_CODE='shift_topic_to_issue' and DEL_FLAG='0';
update point_rule set sort='1007',LINK_PAGE='group' where EVENT_CODE='topic_to_issue' and DEL_FLAG='0';
update point_rule set sort='1008',LINK_PAGE='group' where EVENT_CODE='topic_to_project' and DEL_FLAG='0';
update point_rule set sort='2001',LINK_PAGE='heart' where EVENT_CODE='register_volunteer' and DEL_FLAG='0';
update point_rule set sort='2002',LINK_PAGE='heart' where EVENT_CODE='active_insert_live' and DEL_FLAG='0';

1
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRuleDao.xml

@ -33,6 +33,7 @@
CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
AND FUNCTION_ID = #{functionId,jdbcType=VARCHAR}
AND DEL_FLAG = '0'
order by sort asc
</select>
<update id="updateByCustomerId">
UPDATE point_rule

58
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml

@ -73,4 +73,62 @@
AND OBJECT_ID = #{objectId}
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<select id="queryMyPointTaskList" parameterType="map" resultType="com.epmet.dto.result.MyPointTaskResultDTO">
select
temp.*
from (
SELECT
pr.RULE_NAME AS ruleName,
pr.RULE_DESC AS ruleDesc,
(
CASE
WHEN pr.OPERATE_TYPE = 'plus' THEN
CONCAT( '积分+', pr.POINT )
WHEN pr.OPERATE_TYPE = 'minus' THEN
CONCAT( '积分-', pr.POINT )
else '未知'
END
) AS pointDesc,
'' AS finishTotalDesc,
'' AS finishFlag,
pr.LINK_PAGE AS linkPage,
pr.EVENT_CODE AS eventCode,
pr.OPERATE_TYPE AS operateType,
pr.UP_LIMIT AS upLimit,
pr.POINT AS point,
(
SELECT
count( 1 )
FROM
user_point_action_log u
WHERE
u.USER_ID = #{userId}
AND u.EVENT_ID = pr.EVENT_CODE
AND u.DEL_FLAG = '0'
AND u.CUSTOMER_ID = #{customerId}
AND DATE_FORMAT( u.CREATED_TIME, '%Y%m%d' ) =#{dateId}
) AS finishedCount,
(case when pr.UP_LIMIT='0' then '-1'
else CEIL(pr.UP_LIMIT/pr.point)
end
)as upLimitCount,
pr.sort
FROM
point_rule pr
WHERE
pr.DEL_FLAG = '0'
AND pr.CUSTOMER_ID = #{customerId}
AND pr.ENABLED_FLAG = '1'
)temp
where 1=1
<if test='null != type and "unfinished" == type'>
and temp.finishedCount=0
</if>
<if test='null != type and "finished" == type'>
and temp.upLimit !=0
and temp.finishedCount=temp.upLimitCount
</if>
ORDER BY temp.sort ASC
</select>
</mapper>
Loading…
Cancel
Save