Commit 58f7733f authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/base-modify' into base-modify

parents fd73d86b d4a658a8
......@@ -52,4 +52,10 @@ public class AppUserManageDTO {
*/
private Integer source;
/**
*
*/
private String registrationDate;
}
......@@ -19,7 +19,6 @@ import java.io.Serializable;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "base_user_member_export")
public class BaseUserMemberExportDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String username;
......
......@@ -15,7 +15,7 @@ import lombok.Data;
public class UserMemberDTO {
public static final int ISBIND_BIND = 1;
/**
* 用户id
*/
......
package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/11 10:39
*/
@Data
public class UserMemberSaveDTO {
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "会员名")
private String username;
/**
* 会员等级
*/
@ApiModelProperty(value = "会员等级")
private Integer memberLevel;
/**
* 赠送总天数
*/
@ApiModelProperty(value = "赠送总天数")
private Integer totalNumber;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays;
}
......@@ -135,6 +135,5 @@ public class BaseUserMember implements Serializable {
@Column(name = "recent_recharge")
private Long recentRecharge;
}
......@@ -4,8 +4,6 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -15,7 +13,6 @@ import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.integration.amqp.dsl.Amqp;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
......@@ -26,6 +23,7 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
/**
......@@ -49,6 +47,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
@Autowired
private UserMemberLevelBiz userMemberLevelBiz;
@Autowired
private AppUserLoginBiz appUserLoginBiz;
//获取用户会员信息
@Cache(key = "user:member{1}")
public UserMemberVo getMemberInfoByUserId(Integer userId){
......@@ -141,6 +142,11 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
if(freeDays>0&&freeDays>=days){
freeDays=freeDays-days;
baseUserMember.setRentFreeDays(freeDays);
Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
if(days>0){
payCount=payCount+1;
}
baseUserMember.setPayCount(payCount);
getMyBiz().updateSelectiveById(baseUserMember);
num=freeDays;
}
......@@ -154,10 +160,12 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
payCount=payCount+1;
/*Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
if(days>0){
payCount=payCount+1;
}
baseUserMember.setPayCount(payCount);
getMyBiz().updateSelectiveById(baseUserMember);
getMyBiz().updateSelectiveById(baseUserMember);*/
num=freeDays;
}else {
/*lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
......@@ -220,12 +228,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
return;
}else if (baseUserMembers.size()==1){
baseUserMember.setUpdTime(System.currentTimeMillis());
updateSelectiveById(baseUserMember);
getMyBiz().updateSelectiveById(baseUserMember);
}else {
throw new BaseException("Member purchase repeat!");
}
}
}
\ No newline at end of file
......@@ -2,7 +2,9 @@ package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -16,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -41,13 +44,50 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
private AppUserLoginBiz appUserLoginBiz;
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO){
if (userMemberSaveDTO!=null){
UserMemberDTO userMemberDTO = new UserMemberDTO();
BaseUserMemberLevel level = userMemberLevelBiz.getLevel(userMemberSaveDTO.getMemberLevel());
Map<String, Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(Arrays.asList(userMemberSaveDTO.getPhone()));
if (phoneAndUserIdMap!=null){
userMemberDTO.setUserId(phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()));
userMemberDTO.setMemberLevel(userMemberSaveDTO.getMemberLevel());
userMemberDTO.setDiscount(level==null?0:(level.getDiscount()==null?0:level.getDiscount()));
userMemberDTO.setTotalNumber(userMemberSaveDTO.getTotalNumber());
userMemberDTO.setRentFreeDays(userMemberSaveDTO.getRentFreeDays());
userMemberDTO.setIsBind(1);
try {
baseUserMemberBiz.updUserMemberByUserId(userMemberDTO);
} catch (Exception e) {
log.error("会员更新或新增错误:【{}】",e.getMessage());
throw new BaseException(e);
}
}
BaseUserMemberExport memberExport = BaseUserMemberExport
.builder()
.username(userMemberSaveDTO.getPhone())
.memberLevel(userMemberSaveDTO.getMemberLevel())
.totalNumber(userMemberSaveDTO.getTotalNumber())
.rentFreeDays(userMemberSaveDTO.getRentFreeDays())
.discount(level==null?0:level.getDiscount()==null?0:level.getDiscount())
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? 0 : 1))
.isDel(0)
.build();
if (log.isDebugEnabled()){
log.debug("当前组装的数据:【{}】",memberExport);
}
mapper.insertSelective(memberExport);
}
}
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int importUserMember(List<String[]> userMemberData){
List<BaseUserMemberExport> baseUserMemberExports = new ArrayList<>();
List<Integer> levels = userMemberData.stream().map(x -> x[1]).map(Integer::valueOf).collect(Collectors.toList());
List<Integer> levels = userMemberData.stream().map(x -> x[1]).map(Integer::valueOf).distinct().collect(Collectors.toList());
Map<Integer, Integer> levelAndDisCountMap= userMemberLevelBiz.getUserMemberLevelAndDisCountMapByLevels(levels);
List<String> phones = userMemberData.stream().map(x -> x[0]).collect(Collectors.toList());
List<String> phones = userMemberData.stream().map(x -> x[0]).distinct().collect(Collectors.toList());
Map<String,Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones);
for (String[] data : userMemberData) {
......
......@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.AdminBootstrap;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberExportBiz;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.excel.ExcelImport;
......@@ -67,7 +68,7 @@ public class UserMemberController {
}
@PostMapping("/user/export")
public ObjectRestResponse importUserMember(MultipartFile userMemberExcel) {
public ObjectRestResponse importUserMember(@RequestPart("file") MultipartFile userMemberExcel) {
List<String[]> userMemberData = ExcelImport.getExcelData(userMemberExcel);
if (userMemberData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
......@@ -86,13 +87,12 @@ public class UserMemberController {
}
}
@GetMapping("/user/excel_model/dowload")
@GetMapping("/app/unauth/user/excel_model/dowload")
public ResponseEntity<byte[]> dowloadUserMemberExcelModel(HttpServletResponse response){
// 重置response
response.reset();
//设置http头信息的内容
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");
response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=usermember.xlsx");
InputStream inputStream = AdminBootstrap.class.getClassLoader().getResourceAsStream("file/usermember.xlsx");
try {
......
package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberExportBiz;
import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/11 9:58
*/
@RestController
@RequestMapping("/admin/member")
public class UserMemberAdminController {
@Autowired
private BaseUserMemberExportBiz baseUserMemberExportBiz;
@PostMapping("/save")
public ObjectRestResponse<Void> saveUserMember(@RequestBody UserMemberSaveDTO userMemberSaveDTO) {
baseUserMemberExportBiz.saveUserMember(userMemberSaveDTO);
return ObjectRestResponse.succ();
}
}
......@@ -96,7 +96,7 @@ public class IntegralRule{
/**
* 描述
*/
private String desc;
private String detail;
/**
* 规则图片
......@@ -125,4 +125,5 @@ public class IntegralRule{
@Column(name = "other_rule")
private String otherRule;
}
\ No newline at end of file
......@@ -24,7 +24,7 @@ public class IntegralUserRecord {
/**
* 0-获取积分;1-抵扣积分
*/
private Boolean type;
private Integer type;
/**
* 积分数
......
package com.xxfc.platform.activity.util;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class IntegralToolsUtils {
//获取数组中的最大值
public static Integer getMax(Integer point, Integer otherRulePoint, Integer finishPoint) {
int[] arr = {point, otherRulePoint, finishPoint};
Arrays.sort(arr);
return arr[arr.length - 1];
}
//获取两个时间戳相隔的天数
public static int differentDaysByMillisecond(Long date1,Long date2){
Date startDate = new Date();
startDate.setTime(date1);
Date endDate = new Date();
endDate.setTime(date2);
return endDate.getDate() - startDate.getDate();
}
//获取当天的0点
public static Long getDayStart() {
long current = System.currentTimeMillis();
long zero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
return zero;
}
//获取当前时间的周一
public static Long weekFirstDay(int week, int param) {
Calendar c1 = Calendar.getInstance();
int dow = c1.get(Calendar.DAY_OF_WEEK);
c1.add(Calendar.DATE, -dow - 7 * (week - 1) + param);
return c1.getTime().getTime()/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
}
public static Integer getQuarter() {
Calendar c = Calendar.getInstance();
int month = c.get(c.MONTH) + 1;
int quarter = 0;
if (month >= 1 && month <= 3) {
quarter = 1;
} else if (month >= 4 && month <= 6) {
quarter = 2;
} else if (month >= 7 && month <= 9) {
quarter = 3;
} else {
quarter = 4;
}
return quarter;
}
public static String[] getCurrQuarter(int num) {
String[] s = new String[2];
String str = "";
// 设置本年的季
Calendar quarterCalendar = null;
switch (num) {
case 1: // 本年到现在经过了一个季度,在加上前4个季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 3);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "01-01";
s[1] = str;
break;
case 2: // 本年到现在经过了二个季度,在加上前三个季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 6);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "04-01";
s[1] = str;
break;
case 3:// 本年到现在经过了三个季度,在加上前二个季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 9);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "07-01";
s[1] = str;
break;
case 4:// 本年到现在经过了四个季度,在加上前一个季度
quarterCalendar = Calendar.getInstance();
str = formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "10-01";
s[1] = str.substring(0, str.length() - 5) + "12-31";
break;
}
return s;
}
public static String formatDate(Date currentDate, String pattern){
if(currentDate == null || "".equals(pattern) || pattern == null){
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(currentDate);
}
public static Long parseDate(String currentDate) {
if(StringUtils.isBlank(currentDate)){
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try{
date = sdf.parse(currentDate);
}catch (Exception e){
}
return date == null? null : date.getTime();
}
/**
* 获取指定日期所在月份开始的时间戳
*
* @param date
* 指定日期
* @return
*/
public static Long getMonthBegin(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
// 设置为1号,当前日期既为本月第一天
c.set(Calendar.DAY_OF_MONTH, 1);
// 将小时至0
c.set(Calendar.HOUR_OF_DAY, 0);
// 将分钟至0
c.set(Calendar.MINUTE, 0);
// 将秒至0
c.set(Calendar.SECOND, 0);
// 将毫秒至0
c.set(Calendar.MILLISECOND, 0);
// 获取本月第一天的时间戳
return c.getTimeInMillis();
}
/**
* 获取指定日期所在月份结束的时间戳
*
* @param date
* 指定日期
* @return
*/
public static Long getMonthEnd(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
// 设置为当月最后一天
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
// 将小时至23
c.set(Calendar.HOUR_OF_DAY, 23);
// 将分钟至59
c.set(Calendar.MINUTE, 59);
// 将秒至59
c.set(Calendar.SECOND, 59);
// 将毫秒至999
c.set(Calendar.MILLISECOND, 999);
// 获取本月最后一天的时间戳
return c.getTimeInMillis();
}
public static Long getLastDayOfYear(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR, last);
return cal.getTime().getTime()/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset() + 24 * 60 * 60 * 1000 - 1;
}
public static Long getFirstDayOfYear(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int first = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR, first);
return cal.getTime().getTime()/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
}
}
package com.xxfc.platform.activity.vo;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class IntegralRuleDto extends PageParam {
/**
* 主键id
*/
private Integer id;
/**
* 周期单位:0-天,1-周;3-月;4-季;5-年
*/
private Integer period;
/**
* 次数
*/
private Integer number;
/**
* 积分
*/
private Integer point;
/**
* 积分兑换:金额/分
*/
private BigDecimal price;
/**
* 是否连续:0-不连续;1-连续
*/
private Boolean isContinuity;
/**
* 多少天后连续算
*/
private Integer finishDay;
/**
* n天获取的积分
*/
private Integer finishPoint;
/**
* 是否启用:1-启用;0-停用
*/
private Boolean status;
/**
* 创建时间
*/
private Long crtTime;
/**
* 是否删除:0-正常;1-删除
*/
private Boolean isdel;
/**
* 规则开始时间
*/
private Long startTime;
/**
* 规则结束时间
*/
private Long endTime;
/**
* 更新时间
*/
private Long updTime;
/**
* 备注
*/
private String remarks;
/**
* 描述
*/
private String desc;
/**
* 规则图片
*/
private String img;
/**
* 排序
*/
private Integer orderId;
/**
* 规则名称
*/
private String name;
/**
* 获取积分规则
*/
private String regulation;
/**
* json字符串 如:[{"day":4,"integeral":8},{"day":4,"integeral":8}]
*/
private String otherRule;
}
package com.xxfc.platform.activity.vo;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class IntegralUserRecordDto extends PageParam {
Integer userId;
Long startTime;
Long endTime;
Integer integralRuleId;
}
package com.xxfc.platform.activity.vo;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class IntegralUserTotalDto extends PageParam{
Integer userId;
private Integer point;
}
......@@ -4,8 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.activity.entity.IntegralRule;
import com.xxfc.platform.activity.mapper.IntegralRuleMapper;
import com.xxfc.platform.activity.vo.IntegralRuleDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -31,10 +35,10 @@ public class IntegralRuleBiz extends BaseBiz<IntegralRuleMapper, IntegralRule> {
return ObjectRestResponse.createDefaultFail();
}
BeanUtil.copyProperties(integralRule, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
mapper.updateByPrimaryKeySelective(oldValue);
updateByIdRe(oldValue);
return ObjectRestResponse.succ();
}
mapper.insertSelective(integralRule);
insertSelective(integralRule);
return ObjectRestResponse.succ();
}
......@@ -52,7 +56,7 @@ public class IntegralRuleBiz extends BaseBiz<IntegralRuleMapper, IntegralRule> {
return ObjectRestResponse.createDefaultFail();
}
oldValue.setIsdel(true);
mapper.updateByPrimaryKeySelective(oldValue);
updateByIdRe(oldValue);
return ObjectRestResponse.succ();
}
......@@ -61,17 +65,14 @@ public class IntegralRuleBiz extends BaseBiz<IntegralRuleMapper, IntegralRule> {
return ObjectRestResponse.paramIsEmpty();
}
IntegralRule oldValue = mapper.selectByPrimaryKey(integralRule.getId());
if(oldValue == null) {
return ObjectRestResponse.createDefaultFail();
}
return ObjectRestResponse.succ(oldValue);
}
public ObjectRestResponse<List<IntegralRule>> getAll(IntegralRule integralRule) {
List<IntegralRule> integralRules = mapper.selectAllByParam(integralRule);
return ObjectRestResponse.succ(integralRules);
public ObjectRestResponse<PageDataVO> getAll(IntegralRuleDto integralRule) {
Query query = new Query(integralRule);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectAllByParam(integralRule));
return ObjectRestResponse.succ(pageDataVO);
}
}
package com.xxfc.platform.activity.biz;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.activity.entity.IntegralUserRecord;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.mapper.IntegralUserRecordMapper;
import com.xxfc.platform.activity.user.UserInfoBiz;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import com.xxfc.platform.activity.vo.IntegralUserTotalDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional
@Slf4j
......@@ -19,13 +30,46 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
@Autowired
UserInfoBiz userInfoBiz;
@Autowired
IntegralUserTotalBiz integralUserTotalBiz;
/**
* 添加用户积分记录
* @param integralUserRecord
* @return
*/
public ObjectRestResponse add(IntegralUserRecord integralUserRecord) {
return ObjectRestResponse.succ();
if(integralUserRecord == null) {
return ObjectRestResponse.paramIsEmpty();
}
if(integralUserRecord.getType() == 0) {//获取积分 增加总积分表
ObjectRestResponse<IntegralUserTotal> objectRestResponse = integralUserTotalBiz.getByUser();
if(objectRestResponse.getStatus() == RestCode.SUCCESS.getStatus() && objectRestResponse.getData() != null) {
IntegralUserTotal integralUserTotal = objectRestResponse.getData();
IntegralUserTotalDto integralUserTotalDto = new IntegralUserTotalDto();
integralUserTotalDto.setUserId(integralUserTotal.getUserId());
integralUserTotalDto.setPoint(integralUserRecord.getPoint());
integralUserTotalBiz.add(integralUserTotalDto);
} else {
IntegralUserTotalDto integralUserTotalDto = new IntegralUserTotalDto();
integralUserTotalDto.setUserId(integralUserRecord.getUserId());
integralUserTotalDto.setPoint(integralUserRecord.getPoint());
integralUserTotalBiz.add(integralUserTotalDto);
}
} else if(integralUserRecord.getType() == 1) {//扣减积分
ObjectRestResponse<IntegralUserTotal> objectRestResponse = integralUserTotalBiz.getByUser();
if(objectRestResponse.getStatus() == RestCode.SUCCESS.getStatus() && objectRestResponse.getData() != null) {
IntegralUserTotal integralUserTotal = objectRestResponse.getData();
IntegralUserTotalDto integralUserTotalDto = new IntegralUserTotalDto();
integralUserTotalDto.setUserId(integralUserTotal.getUserId());
integralUserTotalDto.setPoint(- integralUserRecord.getPoint());
integralUserTotalBiz.add(integralUserTotalDto);
} else {
return ObjectRestResponse.createFailedResult(1008,"用户积分不足");
}
}
insertSelective(integralUserRecord);
return ObjectRestResponse.succ();
}
/**
......@@ -43,7 +87,7 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
return ObjectRestResponse.createDefaultFail();
}
integralUserRecord.setIsdel(true);
mapper.updateByPrimaryKeySelective(integralUserRecord);
updateByIdRe(integralUserRecord);
return ObjectRestResponse.succ();
}
......@@ -51,12 +95,21 @@ public class IntegralUserRecordBiz extends BaseBiz<IntegralUserRecordMapper, Int
* 根据获取某个用户的列表
* @return
*/
public ObjectRestResponse<IntegralUserRecord> getUserList() {
public ObjectRestResponse<PageDataVO> getUserList(IntegralUserRecordDto integralUserRecordDto) {
AppUserDTO appUserDTO = userInfoBiz.getUserInfo();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
return ObjectRestResponse.succ();
Query query = new Query(integralUserRecordDto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectByUserId(appUserDTO.getUserid()));
return ObjectRestResponse.succ(pageDataVO);
}
public ObjectRestResponse<List<IntegralUserRecord>> getByUserAndTime(IntegralUserRecordDto integralUserRecordDto) {
if(integralUserRecordDto == null) {
return ObjectRestResponse.paramIsEmpty();
}
List<IntegralUserRecord> integralUserRecordList = mapper.selectByUserAndTime(integralUserRecordDto);
return ObjectRestResponse.succ(integralUserRecordList);
}
}
......@@ -5,9 +5,13 @@ import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.mapper.IntegralUserTotalMapper;
import com.xxfc.platform.activity.user.UserInfoBiz;
import com.xxfc.platform.activity.vo.IntegralRuleDto;
import com.xxfc.platform.activity.vo.IntegralUserTotalDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -23,34 +27,36 @@ public class IntegralUserTotalBiz extends BaseBiz<IntegralUserTotalMapper, Integ
/**
* 添加用户总积分
* @param integralUserTotal
* @param integralUserTotalDto
* @return
*/
public ObjectRestResponse add(IntegralUserTotal integralUserTotal) {
public ObjectRestResponse add(IntegralUserTotalDto integralUserTotalDto) {
AppUserDTO appUserDTO = userInfoBiz.getUserInfo();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
if(integralUserTotal == null) {
if(integralUserTotalDto == null || integralUserTotalDto.getPoint() == null) {
return ObjectRestResponse.paramIsEmpty();
}
integralUserTotal.setUserId(appUserDTO.getUserid());
if(integralUserTotal.getId() != null) {
IntegralUserTotal oldValue = mapper.selectByPrimaryKey(integralUserTotal.getId());
if(oldValue == null) {
return ObjectRestResponse.createDefaultFail();
integralUserTotalDto.setUserId(appUserDTO.getUserid());
List<IntegralUserTotal> integralUserTotalList = mapper.selectAllByParam(integralUserTotalDto);
if(integralUserTotalList != null && integralUserTotalList.size() > 0) {
integralUserTotalList.get(0).setTotalPoint(integralUserTotalList.get(0).getTotalPoint() + integralUserTotalDto.getPoint());
integralUserTotalList.get(0).setRestPoint(integralUserTotalList.get(0).getRestPoint() + integralUserTotalDto.getPoint());
updateByIdRe( integralUserTotalList.get(0));
return ObjectRestResponse.succ();
}
BeanUtil.copyProperties(integralUserTotal, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
mapper.updateByPrimaryKeySelective(oldValue);
IntegralUserTotal integralUserTotal = new IntegralUserTotal();
integralUserTotal.setUserId(appUserDTO.getUserid());
integralUserTotal.setTotalPoint(integralUserTotalDto.getPoint());
integralUserTotal.setRestPoint(integralUserTotalDto.getPoint());
integralUserTotal.setIsdel(false);
insertSelective(integralUserTotal);
return ObjectRestResponse.succ();
}
mapper.insertSelective(integralUserTotal);
return ObjectRestResponse.succ();
}
/**
* 删除信息
* @param id
* @return
*/
public ObjectRestResponse deleteOne() {
......@@ -58,14 +64,14 @@ public class IntegralUserTotalBiz extends BaseBiz<IntegralUserTotalMapper, Integ
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
IntegralUserTotal integralUserTotal = new IntegralUserTotal();
integralUserTotal.setUserId(appUserDTO.getUserid());
List<IntegralUserTotal> oldValue = mapper.selectAllByParam(integralUserTotal);
IntegralUserTotalDto integralUserTotalDto = new IntegralUserTotalDto();
integralUserTotalDto.setUserId(appUserDTO.getUserid());
List<IntegralUserTotal> oldValue = mapper.selectAllByParam(integralUserTotalDto);
if(oldValue == null || oldValue.size() <= 0) {
return ObjectRestResponse.createDefaultFail();
}
oldValue.get(0).setIsdel(true);
mapper.updateByPrimaryKeySelective(oldValue.get(0));
updateByIdRe(oldValue.get(0));
return ObjectRestResponse.succ();
}
......@@ -78,23 +84,22 @@ public class IntegralUserTotalBiz extends BaseBiz<IntegralUserTotalMapper, Integ
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
IntegralUserTotal integralUserTotal = new IntegralUserTotal();
integralUserTotal.setUserId(appUserDTO.getUserid());
List<IntegralUserTotal> oldValue = mapper.selectAllByParam(integralUserTotal);
if(oldValue == null || oldValue.size() <= 0) {
return ObjectRestResponse.createDefaultFail();
}
return ObjectRestResponse.succ(oldValue.get(0));
IntegralUserTotalDto integralUserTotalDto = new IntegralUserTotalDto();
integralUserTotalDto.setUserId(appUserDTO.getUserid());
List<IntegralUserTotal> oldValue = mapper.selectAllByParam(integralUserTotalDto);
return ObjectRestResponse.succ(oldValue == null || oldValue.size() <=0 ? null : oldValue.get(0));
}
/**
* 获取所有的信息
* @param integralUserTotal
* @return
*/
public ObjectRestResponse<List<IntegralUserTotal>> getAll(IntegralUserTotal integralUserTotal) {
List<IntegralUserTotal> integralUserTotals = mapper.selectAllByParam(integralUserTotal);
return ObjectRestResponse.succ(integralUserTotals);
public ObjectRestResponse<PageDataVO> getAll(IntegralUserTotalDto integralUserTotalDto) {
Query query = new Query(integralUserTotalDto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectAllByParam(integralUserTotalDto));
return ObjectRestResponse.succ(pageDataVO);
}
}
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.IntegralRule;
import com.xxfc.platform.activity.vo.IntegralRuleDto;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface IntegralRuleMapper extends Mapper<IntegralRule> {
public List<IntegralRule> selectAllByParam(IntegralRule integralRule);
public List<IntegralRule> selectAllByParam(IntegralRuleDto integralRuleDto);
}
\ No newline at end of file
......@@ -3,5 +3,8 @@ package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.IntegralSignRecord;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface IntegralSignRecordMapper extends Mapper<IntegralSignRecord> {
List<IntegralSignRecord> selectByUserId(Integer userId);
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.IntegralUserRecord;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface IntegralUserRecordMapper extends Mapper<IntegralUserRecord> {
List<IntegralUserRecord> selectByUserId(Integer userId);
List<IntegralUserRecord> selectByUserAndTime(IntegralUserRecordDto integralUserRecordDto);
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.vo.IntegralUserTotalDto;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface IntegralUserTotalMapper extends Mapper<IntegralUserTotal> {
List<IntegralUserTotal> selectAllByParam(IntegralUserTotal integralUserTotal);
List<IntegralUserTotal> selectAllByParam(IntegralUserTotalDto integralUserTotalDto);
}
\ No newline at end of file
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.biz.IntegralRuleBiz;
import com.xxfc.platform.activity.entity.IntegralRule;
import com.xxfc.platform.activity.vo.IntegralRuleDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -41,8 +43,8 @@ public class IntegralRuleController {
@GetMapping(value = "/list")
@ApiOperation(value = "获取所有的规则")
public ObjectRestResponse<List<IntegralRule>> getList(IntegralRule integralRule) {
return integralRuleBiz.getAll(integralRule);
public ObjectRestResponse<PageDataVO> getList(IntegralRuleDto integralRuleDto) {
return integralRuleBiz.getAll(integralRuleDto);
}
}
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.biz.IntegralSignRecordBiz;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -14,4 +16,9 @@ public class IntegralSignRecordController {
@Autowired
IntegralSignRecordBiz integralSignRecordBiz;
@PostMapping(value = "/add")
public ObjectRestResponse add(Integer integralRuleId) {
return integralSignRecordBiz.add(integralRuleId);
}
}
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.biz.IntegralUserRecordBiz;
import com.xxfc.platform.activity.entity.IntegralUserRecord;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -14,4 +19,21 @@ public class IntegralUserRecordController {
@Autowired
IntegralUserRecordBiz integralUserRecordBiz;
@PostMapping(value = "/add")
public ObjectRestResponse add(IntegralUserRecord integralUserRecord) {
return integralUserRecordBiz.add(integralUserRecord);
}
@PostMapping(value = "/delete")
public ObjectRestResponse deleteById(Integer id) {
return integralUserRecordBiz.deleteOne(id);
}
@GetMapping(value = "/getListByUser")
public ObjectRestResponse getByUser(IntegralUserRecordDto integralUserRecordDto) {
return integralUserRecordBiz.getUserList(integralUserRecordDto);
}
}
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.biz.IntegralUserTotalBiz;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.vo.IntegralUserTotalDto;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -8,4 +15,29 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping(value = "integralUserTotal")
@Api(value = "用户总积分")
public class IntegralUserTotalController {
@Autowired
IntegralUserTotalBiz integralUserTotalBiz;
@PostMapping(value = "/add")
public ObjectRestResponse add(IntegralUserTotalDto integralUserTotalDto) {
return integralUserTotalBiz.add(integralUserTotalDto);
}
@PostMapping(value = "/delete")
public ObjectRestResponse deleteById() {
return integralUserTotalBiz.deleteOne();
}
@GetMapping(value = "/getByUser")
public ObjectRestResponse getByUser() {
return integralUserTotalBiz.getByUser();
}
@GetMapping(value = "/getAll")
public ObjectRestResponse getAll(IntegralUserTotalDto integralUserTotalDto) {
return integralUserTotalBiz.getAll(integralUserTotalDto);
}
}
......@@ -20,7 +20,7 @@
<result column="end_time" property="endTime" jdbcType="BIGINT" />
<result column="upd_time" property="updTime" jdbcType="BIGINT" />
<result column="remarks" property="remarks" jdbcType="VARCHAR" />
<result column="desc" property="desc" jdbcType="VARCHAR" />
<result column="detail" property="detail" jdbcType="VARCHAR" />
<result column="img" property="img" jdbcType="VARCHAR" />
<result column="order_id" property="orderId" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
......@@ -28,16 +28,14 @@
<result column="other_rule" property="otherRule" jdbcType="LONGVARCHAR" />
</resultMap>
<select id="selectAllByParam" resultType="com.xxfc.platform.activity.entity.IntegralRule" parameterType="com.xxfc.platform.activity.entity.IntegralRule">
<select id="selectAllByParam" resultType="com.xxfc.platform.activity.entity.IntegralRule" parameterType="com.xxfc.platform.activity.vo.IntegralRuleDto">
select * from integral_rule
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="name != null">
and name like concat("%", #{name}, "%")
</if>
and isdel = 0 and status = 1
</where>
order by order_id DESC ,crt_time DESC
</select>
......
......@@ -11,4 +11,10 @@
<result column="start_time" property="startTime" jdbcType="BIGINT" />
<result column="last_time" property="lastTime" jdbcType="BIGINT" />
</resultMap>
<select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.xxfc.platform.activity.entity.IntegralSignRecord">
select * from integral_sign_record
where user_id = #{userId} and isdel = 0
order by last_time
</select>
</mapper>
\ No newline at end of file
......@@ -7,7 +7,7 @@
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_id" property="userId" jdbcType="INTEGER" />
<result column="type" property="type" jdbcType="BIT" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="point" property="point" jdbcType="INTEGER" />
<result column="integral_rule_id" property="integralRuleId" jdbcType="INTEGER" />
<result column="crt_time" property="crtTime" jdbcType="BIGINT" />
......@@ -15,4 +15,18 @@
<result column="isdel" property="isdel" jdbcType="BIT" />
<result column="channel_id" property="channelId" jdbcType="INTEGER" />
</resultMap>
<select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.xxfc.platform.activity.entity.IntegralUserRecord">
select * from integral_user_record
<where>
<if test="userId != null">
and user_id = #{userId}
</if>
</where>
order by crt_time DESC
</select>
<select id="selectByUserAndTime" resultType="com.xxfc.platform.activity.entity.IntegralUserRecord" parameterType="com.xxfc.platform.activity.vo.IntegralUserRecordDto">
select * from integral_user_record
where user_id = #{userId} and crt_time between #{startTime} and #{endTime} and integral_rule_id = #{integralRuleId}
</select>
</mapper>
\ No newline at end of file
......@@ -13,7 +13,7 @@
<result column="upd_time" property="updTime" jdbcType="BIGINT" />
</resultMap>
<select id="selectAllByParam" parameterType="com.xxfc.platform.activity.entity.IntegralUserTotal" resultType="com.xxfc.platform.activity.entity.IntegralUserTotal">
<select id="selectAllByParam" parameterType="com.xxfc.platform.activity.vo.IntegralUserTotalDto" resultType="com.xxfc.platform.activity.entity.IntegralUserTotal">
select * from integral_user_total
<where>
<if test="userId != null">
......
......@@ -152,7 +152,10 @@
<if test="no != null">
and no like CONCAT ("%", #{no}, "%")
</if>
<if test="startTime != null">
<if test="startTime != null and status == 4">
and r.start_time between #{startTime} and #{endTime}
</if>
<if test="startTime != null and status == 5">
and r.start_time between #{startTime} and #{endTime}
</if>
<if test="startCompanyId != null">
......
......@@ -72,6 +72,7 @@ public class TourUserController extends TourBaseController<TourUserBiz> {
TourUser tourUser1=new TourUser();
tourUser1.setUserid(userid);
tourUser1.setIdCard(tourUser.getIdCard());
tourUser1.setIsdel(0);
tourUser1=baseBiz.selectOne(tourUser1);
if(tourUser1!=null){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"出游人证件号一样");
......
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