Browse Source

附加积分奖扣相关接口

feature/evaluate
Jackwang 3 years ago
parent
commit
5e368852b6
  1. 37
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/RecordRewardFormDTO.java
  2. 51
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/SubmitRewardFormDTO.java
  3. 35
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointRewardController.java
  4. 10
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java
  5. 12
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointRewardDao.java
  6. 10
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAnnexService.java
  7. 10
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRewardRuleService.java
  8. 21
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRewardService.java
  9. 21
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAnnexServiceImpl.java
  10. 13
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRewardRuleServiceImpl.java
  11. 57
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRewardServiceImpl.java
  12. 12
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml
  13. 16
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRewardDao.xml

37
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/RecordRewardFormDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @program: epmet-cloud
* @description:
* @author: wangtong
* @create: 2022-06-15 17:21
**/
@Data
public class RecordRewardFormDTO extends PageFormDTO implements Serializable {
/**
* 客户ID
*/
private String customerId;
/**
*积分申请房屋ID
*/
private String houseId;
/**
*业务编码积分奖励point_reward积分扣罚point_fine
*/
@NotNull(message = "业务编码不可为空")
private String businessCode;
}

51
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/SubmitRewardFormDTO.java

@ -0,0 +1,51 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @program: epmet-cloud
* @description:
* @author: wangtong
* @create: 2022-06-15 17:21
**/
@Data
public class SubmitRewardFormDTO implements Serializable {
/**
* 客户ID
*/
private String customerId;
/**
* 工作人员ID
*/
private String staffId;
/**
*积分申请房屋ID
*/
private String houseId;
/**
*业务编码积分奖励point_reward积分扣罚point_fine
*/
private String businessCode;
/**
*规则ID集合
*/
private List<String> ruleIdList;
/**
*附件url集合
*/
private List<String> annexList;
/**
*备注说明
*/
private String statement;
}

35
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointRewardController.java

@ -1,15 +1,19 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.PointRewardDTO;
import com.epmet.dto.form.RecordRewardFormDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.excel.PointRewardExcel;
import com.epmet.service.PointRewardService;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,7 +31,7 @@ import java.util.Map;
* @since v1.0.0 2022-06-15
*/
@RestController
@RequestMapping("pointReward")
@RequestMapping("reward")
public class PointRewardController {
@Autowired
@ -77,6 +81,33 @@ public class PointRewardController {
ExcelUtils.exportExcelToTarget(response, null, list, PointRewardExcel.class);
}
/**
* @describe: 提交积分奖扣
* @author wangtong
* @date 2022/6/15 17:30
* @params [tokenDto, dto]
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("submit")
public Result submit(@LoginUser TokenDto tokenDto, @RequestBody SubmitRewardFormDTO dto){
ValidatorUtils.validateEntity(dto);
dto.setCustomerId(tokenDto.getCustomerId());
dto.setStaffId(tokenDto.getUserId());
return pointRewardService.submit(dto);
}
/**
* @describe: 查询积分奖扣记录
* @author wangtong
* @date 2022/6/16 14:21
* @params [tokenDto, dto]
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData<java.util.Map<java.lang.String,java.lang.Object>>>
*/
@PostMapping("record")
public Result<PageData<PointRewardDTO>> record(@LoginUser TokenDto tokenDto, @RequestBody RecordRewardFormDTO dto){
ValidatorUtils.validateEntity(dto);
dto.setCustomerId(tokenDto.getCustomerId());
return new Result<PageData<PointRewardDTO>>().ok(pointRewardService.record(dto));
}
}

10
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointAdditiveRuleDao.java

@ -5,6 +5,7 @@ import com.epmet.dto.CategorydetailResultDTO;
import com.epmet.dto.PointAdditiveRuleDTO;
import com.epmet.dto.form.List4applyFormDTO;
import com.epmet.dto.form.List4treeFormDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointAdditiveRuleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -55,4 +56,13 @@ public interface PointAdditiveRuleDao extends BaseDao<PointAdditiveRuleEntity> {
* @return java.util.List<com.epmet.dto.PointAdditiveRuleDTO>
*/
List<PointAdditiveRuleDTO> selectList4tree(List4treeFormDTO dto);
/**
* @describe: 根据规则查询积分总值
* @author wangtong
* @date 2022/6/16 10:43
* @params [dto]
* @return java.lang.Integer
*/
Integer selectPointTotalByIds(SubmitRewardFormDTO dto);
}

12
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointRewardDao.java

@ -1,9 +1,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.PointRewardDTO;
import com.epmet.dto.form.RecordRewardFormDTO;
import com.epmet.entity.PointRewardEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 积分奖扣
*
@ -13,4 +17,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PointRewardDao extends BaseDao<PointRewardEntity> {
/**
* @describe: 查询积分奖扣记录
* @author wangtong
* @date 2022/6/16 14:29
* @params [dto]
* @return java.util.List<com.epmet.dto.PointRewardDTO>
*/
List<PointRewardDTO> selectRewardRecord(RecordRewardFormDTO dto);
}

10
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAnnexService.java

@ -3,6 +3,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.PointAnnexDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointAnnexEntity;
import java.util.List;
@ -75,4 +76,13 @@ public interface PointAnnexService extends BaseService<PointAnnexEntity> {
* @date 2022-06-14
*/
void delete(String[] ids);
/**
* @describe: 提交积分奖扣
* @author wangtong
* @date 2022/6/16 9:27
* @params [id, dto]
* @return void
*/
void insertBatchPoint(String rewardId, SubmitRewardFormDTO dto);
}

10
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRewardRuleService.java

@ -3,6 +3,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.PointRewardRuleDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointRewardRuleEntity;
import java.util.List;
@ -75,4 +76,13 @@ public interface PointRewardRuleService extends BaseService<PointRewardRuleEntit
* @date 2022-06-15
*/
void delete(String[] ids);
/**
* @describe: 插入积分奖扣明细
* @author wangtong
* @date 2022/6/16 9:37
* @params [id, dto]
* @return void
*/
void insertBatchPointRule(String rewardId, SubmitRewardFormDTO dto);
}

21
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRewardService.java

@ -2,7 +2,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.PointRewardDTO;
import com.epmet.dto.form.RecordRewardFormDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointRewardEntity;
import java.util.List;
@ -75,4 +78,22 @@ public interface PointRewardService extends BaseService<PointRewardEntity> {
* @date 2022-06-15
*/
void delete(String[] ids);
/**
* @describe: 提交积分奖扣
* @author wangtong
* @date 2022/6/15 17:30
* @params [tokenDto, dto]
* @return com.epmet.commons.tools.utils.Result
*/
Result submit(SubmitRewardFormDTO dto);
/**
* @describe: 查询积分奖扣记录
* @author wangtong
* @date 2022/6/16 14:21
* @params [tokenDto, dto]
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData<java.util.Map<java.lang.String,java.lang.Object>>>
*/
PageData<PointRewardDTO> record(RecordRewardFormDTO dto);
}

21
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAnnexServiceImpl.java

@ -3,15 +3,15 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.PointAnnexDao;
import com.epmet.dto.PointAnnexDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointAnnexEntity;
import com.epmet.service.PointAnnexService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -80,4 +80,21 @@ public class PointAnnexServiceImpl extends BaseServiceImpl<PointAnnexDao, PointA
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public void insertBatchPoint(String rewardId, SubmitRewardFormDTO dto) {
Integer sort = 1;
for(String pointUrl : dto.getAnnexList()){
PointAnnexEntity entity = new PointAnnexEntity();
entity.setCustomerId(dto.getCustomerId());
entity.setBusinessId(rewardId);
entity.setBusinessCode(dto.getBusinessCode());
entity.setUrl(pointUrl);
entity.setSort(sort);
sort++;
insert(entity);
}
}
}

13
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRewardRuleServiceImpl.java

@ -8,6 +8,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.PointRewardRuleDao;
import com.epmet.dto.PointRewardRuleDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointRewardRuleEntity;
import com.epmet.redis.PointRewardRuleRedis;
import com.epmet.service.PointRewardRuleService;
@ -84,4 +85,16 @@ public class PointRewardRuleServiceImpl extends BaseServiceImpl<PointRewardRuleD
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public void insertBatchPointRule(String rewardId, SubmitRewardFormDTO dto) {
dto.getRuleIdList().forEach(ruleId->{
PointRewardRuleEntity entity = new PointRewardRuleEntity();
entity.setCustomerId(dto.getCustomerId());
entity.setRewardId(rewardId);
entity.setRuleId(ruleId);
insert(entity);
});
}
}

57
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRewardServiceImpl.java

@ -3,14 +3,26 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.PointAdditiveRuleDao;
import com.epmet.dao.PointRewardDao;
import com.epmet.dto.PointRewardDTO;
import com.epmet.dto.form.RecordRewardFormDTO;
import com.epmet.dto.form.SubmitRewardFormDTO;
import com.epmet.entity.PointRewardEntity;
import com.epmet.redis.PointRewardRedis;
import com.epmet.service.PointAnnexService;
import com.epmet.service.PointRewardRuleService;
import com.epmet.service.PointRewardService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -32,6 +44,15 @@ public class PointRewardServiceImpl extends BaseServiceImpl<PointRewardDao, Poin
@Autowired
private PointRewardRedis pointRewardRedis;
@Autowired
private PointAnnexService pointAnnexService;
@Autowired
private PointRewardRuleService pointRewardRuleService;
@Autowired
private PointAdditiveRuleDao pointAdditiveRuleDao;
@Override
public PageData<PointRewardDTO> page(Map<String, Object> params) {
IPage<PointRewardEntity> page = baseDao.selectPage(
@ -84,4 +105,38 @@ public class PointRewardServiceImpl extends BaseServiceImpl<PointRewardDao, Poin
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result submit(SubmitRewardFormDTO dto) {
HouseInfoCache houseCache = CustomerIcHouseRedis.getHouseInfo(dto.getCustomerId(),dto.getHouseId());
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(dto.getCustomerId(),dto.getStaffId());
PointRewardEntity insertEntity = new PointRewardEntity();
insertEntity.setCustomerId(dto.getCustomerId());
insertEntity.setAgencyId(staffInfo.getAgencyId());
insertEntity.setAgencyPids(staffInfo.getAgencyPIds());
insertEntity.setHouseId(dto.getHouseId());
insertEntity.setHouseAllName(houseCache.getAllName());
insertEntity.setStaffId(staffInfo.getStaffId());
insertEntity.setStaffName(staffInfo.getRealName());
insertEntity.setBusinessCode(dto.getBusinessCode());
insertEntity.setStatement(dto.getStatement());
//根据积分规则去获取分值
Integer pointSum = pointAdditiveRuleDao.selectPointTotalByIds(dto);
insertEntity.setPointValue(pointSum);
insert(insertEntity);
//插入积分奖扣明细
pointRewardRuleService.insertBatchPointRule(insertEntity.getId(),dto);
//插入积分附件
pointAnnexService.insertBatchPoint(insertEntity.getId(),dto);
return new Result().ok("提交成功!");
}
@Override
public PageData<PointRewardDTO> record(RecordRewardFormDTO dto) {
PageHelper.startPage(dto.getPageNo(), dto.getPageSize());
List<PointRewardDTO> list = baseDao.selectRewardRecord(dto);
PageInfo<PointRewardDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

12
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdditiveRuleDao.xml

@ -75,6 +75,18 @@
and CUSTOMER_ID=#{customerId}
order by UPDATED_TIME desc
</select>
<select id="selectPointTotalByIds" resultType="java.lang.Integer">
SELECT sum(POINT_VALUE)
FROM `point_additive_rule`
where DEL_FLAG='0'
and CUSTOMER_ID=#{customerId}
<if test="ruleIdList != null and ruleIdList.size() > 0">
AND id in
<foreach collection="ruleIdList" item="ruleId" open="(" close=")" separator=",">
#{ruleId}
</foreach>
</if>
</select>
</mapper>

16
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRewardDao.xml

@ -22,6 +22,22 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectRewardRecord" resultType="com.epmet.dto.PointRewardDTO">
select id,
HOUSE_ID,
HOUSE_ALL_NAME,
STATEMENT,
POINT_VALUE,
CREATED_TIME
from point_reward
where DEL_FLAG='0'
and BUSINESS_CODE=#{businessCode}
and CUSTOMER_ID=#{customerId}
<if test="houseId != null and houseId != ''">
and HOUSE_ID= #{houseId}
</if>
order by CREATED_TIME desc
</select>
</mapper>
Loading…
Cancel
Save