Commit 89d808a7 authored by jiaorz's avatar jiaorz

Merge branch 'master-new-activity' into luck_draw_feature

parents 3f37cbd2 c46c5a69
package com.xxfc.platform.activity.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class QueryLogDto extends PageParam {
Integer popularizeId;
Integer userId;
}
\ No newline at end of file
package com.xxfc.platform.activity.entity; package com.xxfc.platform.activity.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 用户参与推广活动(邀请有礼)的活动记录的记录(日志) * 用户参与推广活动(邀请有礼)的活动记录的记录(日志)
...@@ -84,4 +85,27 @@ public class ActivityPopularizeLog implements Serializable { ...@@ -84,4 +85,27 @@ public class ActivityPopularizeLog implements Serializable {
@ApiModelProperty(value = "状态 0--未完成;1--完成;-1--失败") @ApiModelProperty(value = "状态 0--未完成;1--完成;-1--失败")
private Integer status; private Integer status;
/**
* 昵称
*/
@Transient
private String nickname;
/**
* 头像
*/
@Transient
private String headimgurl;
/**
* 邀请的第几个用户
*/
@Transient
private Integer num;
/**
* 邀请的第几个用户的奖金
*/
@Transient
private BigDecimal amount;
} }
package com.xxfc.platform.activity.entity; package com.xxfc.platform.activity.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 活动的参与者关系表 * 活动的参与者关系表
...@@ -61,6 +65,12 @@ public class ActivityPopularizeRelation implements Serializable { ...@@ -61,6 +65,12 @@ public class ActivityPopularizeRelation implements Serializable {
@Column(name = "popularize_id") @Column(name = "popularize_id")
@ApiModelProperty(value = "活动id") @ApiModelProperty(value = "活动id")
private Integer popularizeId; private Integer popularizeId;
@Column(name = "num")
@ApiModelProperty(value = "第几个用户")
private Integer num;
@Column(name = "amount")
@ApiModelProperty(value = "获得奖励金额")
private BigDecimal amount;
} }
package com.xxfc.platform.activity.entity; package com.xxfc.platform.activity.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 用户与推广活动(邀请有礼)的关系表 * 用户与推广活动(邀请有礼)的关系表
...@@ -60,14 +64,14 @@ public class ActivityPopularizeUser implements Serializable { ...@@ -60,14 +64,14 @@ public class ActivityPopularizeUser implements Serializable {
*/ */
@Column(name = "end_progress") @Column(name = "end_progress")
@ApiModelProperty(value = "一共需要的进度") @ApiModelProperty(value = "一共需要的进度")
private Integer endProgress; private BigDecimal endProgress;
/** /**
* 当前进度 * 当前进度
*/ */
@Column(name = "current_progress") @Column(name = "current_progress")
@ApiModelProperty(value = "当前进度") @ApiModelProperty(value = "当前进度")
private Integer currentProgress; private BigDecimal currentProgress;
/** /**
* 推广活动id * 推广活动id
......
package com.xxfc.platform.activity.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Table(name = "ticket_collection_record")
@Data
public class TicketCollectionRecord {
@Id
private Integer id;
/**
* 领取人姓名
*/
private String name;
/**
* 领取人手机号
*/
private String phone;
@Column(name = "crt_time")
private Date crtTime;
@Column(name = "upd_time")
private Date updTime;
/**
* 门票类型
*/
private Integer type;
}
\ No newline at end of file
package com.xxfc.platform.activity.vo.popularize; package com.xxfc.platform.activity.vo.popularize;
import com.xxfc.platform.activity.entity.ActivityPopularize; import com.xxfc.platform.activity.entity.ActivityPopularize;
import com.xxfc.platform.activity.entity.ActivityPopularizeItem; import com.xxfc.platform.activity.entity.ActivityPopularizeUser;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -10,4 +10,5 @@ import java.util.List; ...@@ -10,4 +10,5 @@ import java.util.List;
public class PopularizeVO extends ActivityPopularize { public class PopularizeVO extends ActivityPopularize {
List<ItemVO> items; List<ItemVO> items;
List<UserVO> userVOs; List<UserVO> userVOs;
ActivityPopularizeUser activityPopularizeUser;
} }
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import org.springframework.stereotype.Service; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.activity.entity.ActivityPopularizeItem; import com.xxfc.platform.activity.entity.ActivityPopularizeItem;
import com.xxfc.platform.activity.mapper.ActivityPopularizeItemMapper; import com.xxfc.platform.activity.mapper.ActivityPopularizeItemMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/** /**
* 推广活动项,一个活动对应多个项 * 推广活动项,一个活动对应多个项
...@@ -15,4 +17,12 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +17,12 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class ActivityPopularizeItemBiz extends BaseBiz<ActivityPopularizeItemMapper,ActivityPopularizeItem> { public class ActivityPopularizeItemBiz extends BaseBiz<ActivityPopularizeItemMapper,ActivityPopularizeItem> {
public List<ActivityPopularizeItem> selectByPopularizeId(Integer popularizeId) {
Example example = new Example(ActivityPopularizeItem.class);
example.createCriteria().andEqualTo("popularizeId", popularizeId);
example.orderBy("sort").asc();
return mapper.selectByExample(example);
}
} }
\ No newline at end of file
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.dto.ApLogDTO; import com.xxfc.platform.activity.dto.ApLogDTO;
import com.xxfc.platform.activity.entity.ActivityPopularizeItem; import com.xxfc.platform.activity.dto.QueryLogDto;
import com.xxfc.platform.activity.entity.ActivityPopularizeLog;
import com.xxfc.platform.activity.mapper.ActivityPopularizeLogMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import com.xxfc.platform.activity.entity.ActivityPopularizeLog; import javax.servlet.http.HttpServletRequest;
import com.xxfc.platform.activity.mapper.ActivityPopularizeLogMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/** /**
* 用户参与推广活动(邀请有礼)的活动记录的记录(日志) * 用户参与推广活动(邀请有礼)的活动记录的记录(日志)
...@@ -18,11 +26,18 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -18,11 +26,18 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
* @date 2019-07-05 15:23:04 * @date 2019-07-05 15:23:04
*/ */
@Service @Service
public class ActivityPopularizeLogBiz extends BaseBiz<ActivityPopularizeLogMapper,ActivityPopularizeLog> { @Slf4j
public class ActivityPopularizeLogBiz extends BaseBiz<ActivityPopularizeLogMapper,ActivityPopularizeLog>{
@Autowired @Autowired
ActivityPopularizeItemBiz activityPopularizeItemBiz; ActivityPopularizeItemBiz activityPopularizeItemBiz;
@Autowired
UserFeign userFeign;
@Autowired
HttpServletRequest request;
public ApLogDTO selectOneApLogDTO(ActivityPopularizeLog entity){ public ApLogDTO selectOneApLogDTO(ActivityPopularizeLog entity){
ActivityPopularizeLog apl = mapper.selectOne(entity); ActivityPopularizeLog apl = mapper.selectOne(entity);
if(null != apl) { if(null != apl) {
...@@ -33,4 +48,36 @@ public class ActivityPopularizeLogBiz extends BaseBiz<ActivityPopularizeLogMappe ...@@ -33,4 +48,36 @@ public class ActivityPopularizeLogBiz extends BaseBiz<ActivityPopularizeLogMappe
return null; return null;
} }
} }
public ActivityPopularizeLog selectByUserIdAndPopularIdAndItemId(ActivityPopularizeLog entity) {
Example example = new Example(ActivityPopularizeLog.class);
example.createCriteria().andEqualTo("userId", entity.getUserId()).andEqualTo("itemId", entity.getItemId()).andEqualTo("popularizeId", entity.getPopularizeId());
return mapper.selectOneByExample(example);
}
public PageDataVO<ApLogDTO> selectByUserId(QueryLogDto queryLogDto) {
String token = request.getHeader("Authorization");
AppUserDTO appUserDTO = null;
if (StringUtils.isNotBlank(token)) {
appUserDTO = userFeign.userDetailByToken(token).getData();
} else {
return new PageDataVO<>();
}
Integer page = queryLogDto.getPage() == null ? 1 : queryLogDto.getPage();
Integer limit = queryLogDto.getLimit() == null ? 5 : queryLogDto.getLimit();
queryLogDto.setUserId(appUserDTO.getUserid());
queryLogDto.setPage(page);
queryLogDto.setLimit(limit);
Query query = new Query(queryLogDto);
PageDataVO<ApLogDTO> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectByUserId(query.getSuper()));
if (pageDataVO.getData() != null) {
pageDataVO.getData().parallelStream().forEach(result -> {
result.setItem(activityPopularizeItemBiz.selectById(result.getItemId()));
});
}
return pageDataVO;
}
} }
\ No newline at end of file
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO; import com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.xxfc.platform.activity.entity.ActivityPopularizeRelation; import com.xxfc.platform.activity.entity.ActivityPopularizeRelation;
import com.xxfc.platform.activity.mapper.ActivityPopularizeRelationMapper; import com.xxfc.platform.activity.mapper.ActivityPopularizeRelationMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -29,4 +28,9 @@ public class ActivityPopularizeRelationBiz extends BaseBiz<ActivityPopularizeRel ...@@ -29,4 +28,9 @@ public class ActivityPopularizeRelationBiz extends BaseBiz<ActivityPopularizeRel
} }
return activityPopularizeRelationDTOS; return activityPopularizeRelationDTOS;
} }
public Integer getByUserIdAndPopularizeId(ActivityPopularizeRelation activityPopularizeRelation) {
Integer num = mapper.getByUserIdAndPopularizeId(activityPopularizeRelation);
return num == null ? 1 : num;
}
} }
\ No newline at end of file
package com.xxfc.platform.activity.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
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.xxfc.platform.activity.entity.TicketCollectionRecord;
import com.xxfc.platform.activity.mapper.TicketCollectionRecordMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Service
@Slf4j
public class TicketCollectionRecordBiz extends BaseBiz<TicketCollectionRecordMapper, TicketCollectionRecord> {
@Autowired
UserFeign userFeign;
@Autowired
HttpServletRequest request;
public ObjectRestResponse<List<TicketCollectionRecord>> selectAllByType(Integer type) {
Integer newType = type == null ? 1 : type;
List<TicketCollectionRecord> list = mapper.selectAllByType(new TicketCollectionRecord() {{
setType(newType);
}});
return ObjectRestResponse.succ(list);
}
public ObjectRestResponse add(TicketCollectionRecord ticketCollectionRecord) {
if (ticketCollectionRecord == null) {
return ObjectRestResponse.paramIsEmpty();
}
if (ticketCollectionRecord.getPhone() == null && request.getHeader("Authorization") != null) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO != null) {
ticketCollectionRecord.setPhone(appUserDTO.getUsername());
}
}
if (ticketCollectionRecord.getType() == null){
ticketCollectionRecord.setType(1);
}
TicketCollectionRecord oldValue = selectByPhoneAndType(ticketCollectionRecord.getPhone(), ticketCollectionRecord.getType());
if (oldValue == null) {
insertSelectiveRe(ticketCollectionRecord);
} else {
BeanUtil.copyProperties(ticketCollectionRecord, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
}
return ObjectRestResponse.succ();
}
public TicketCollectionRecord selectByPhoneAndType(String phone, Integer type) {
Example example = new Example(TicketCollectionRecord.class);
example.createCriteria().andEqualTo("phone", phone).andEqualTo("type", type);
return mapper.selectOneByExample(example);
}
}
package com.xxfc.platform.activity.mapper; package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.dto.ApLogDTO;
import com.xxfc.platform.activity.entity.ActivityPopularizeLog; import com.xxfc.platform.activity.entity.ActivityPopularizeLog;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
/** /**
* 用户参与推广活动(邀请有礼)的活动记录的记录(日志) * 用户参与推广活动(邀请有礼)的活动记录的记录(日志)
* *
...@@ -11,5 +15,5 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +15,5 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-07-05 15:23:04 * @date 2019-07-05 15:23:04
*/ */
public interface ActivityPopularizeLogMapper extends Mapper<ActivityPopularizeLog> { public interface ActivityPopularizeLogMapper extends Mapper<ActivityPopularizeLog> {
List<ApLogDTO> selectByUserId(Map<String, Object> param);
} }
...@@ -17,4 +17,6 @@ import java.util.List; ...@@ -17,4 +17,6 @@ import java.util.List;
public interface ActivityPopularizeRelationMapper extends Mapper<ActivityPopularizeRelation> { public interface ActivityPopularizeRelationMapper extends Mapper<ActivityPopularizeRelation> {
List<ActivityPopularizeRelationDTO> findActivityPopularizeRelationsByActivityIdAndTime(@Param("activityId") Integer activityId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); List<ActivityPopularizeRelationDTO> findActivityPopularizeRelationsByActivityIdAndTime(@Param("activityId") Integer activityId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
Integer getByUserIdAndPopularizeId(ActivityPopularizeRelation activityPopularizeRelation);
} }
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.TicketCollectionRecord;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface TicketCollectionRecordMapper extends Mapper<TicketCollectionRecord> {
List<TicketCollectionRecord> selectAllByType(TicketCollectionRecord ticketCollectionRecord);
}
\ No newline at end of file
...@@ -28,13 +28,14 @@ import org.springframework.web.bind.annotation.*; ...@@ -28,13 +28,14 @@ import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.ArrayList; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.*; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
@RestController @RestController
@RequestMapping("activityPopularize") @RequestMapping("activityPopularize")
...@@ -101,6 +102,7 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular ...@@ -101,6 +102,7 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
UserVO userVO = BeanUtil.toBean(userFeign.userDetailById(pr.getMinorUserId()).getData(), UserVO.class); UserVO userVO = BeanUtil.toBean(userFeign.userDetailById(pr.getMinorUserId()).getData(), UserVO.class);
return userVO; return userVO;
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
vo.setActivityPopularizeUser(apu[0]);
} }
//设置任务项 //设置任务项
...@@ -111,12 +113,23 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular ...@@ -111,12 +113,23 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
.stream().map(item -> { .stream().map(item -> {
ItemVO itemVO = BeanUtil.toBean(item, ItemVO.class); ItemVO itemVO = BeanUtil.toBean(item, ItemVO.class);
itemVO.setStatus(SYS_FALSE); itemVO.setStatus(SYS_FALSE);
if(null != apu[0]) { if(null != apu[0]) {
ActivityPopularizeLog log = aplMap[0].get(item.getId()); ActivityPopularizeLog log = aplMap[0].get(item.getId());
if(null != log && SYS_TRUE.equals(log.getStatus())) { if(null != log && SYS_TRUE.equals(log.getStatus())) {
itemVO.setStatus(SYS_TRUE); itemVO.setStatus(SYS_TRUE);
} }
} }
if (null != appUserDTO) {
ActivityPopularizeLog activityPopularizeLog = popularizeLogBiz.selectByUserIdAndPopularIdAndItemId(new ActivityPopularizeLog(){{
setUserId(appUserDTO.getUserid());
setPopularizeId(v.getId());
setItemId(item.getId());
}});
if (activityPopularizeLog != null) {
itemVO.setStatus(activityPopularizeLog.getStatus());
}
}
return itemVO; return itemVO;
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
return vo; return vo;
...@@ -149,14 +162,17 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular ...@@ -149,14 +162,17 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
activityPopularizeUser = popularizeUserBiz.insertSelectiveReT(new ActivityPopularizeUser(){{ activityPopularizeUser = popularizeUserBiz.insertSelectiveReT(new ActivityPopularizeUser(){{
setPopularizeId(itemAddDTO.getPopularizeId()); setPopularizeId(itemAddDTO.getPopularizeId());
setUserId(getAppUser().getUserid()); setUserId(getAppUser().getUserid());
setEndProgress(ap.getProgress()); setEndProgress(new BigDecimal(ap.getProgress()));
}}); }});
} }
//判断是否已经添加过 //判断是否已经添加过
ActivityPopularizeLog itemLog = BeanUtil.toBean(itemAddDTO, ActivityPopularizeLog.class); ActivityPopularizeLog itemLog = BeanUtil.toBean(itemAddDTO, ActivityPopularizeLog.class);
itemLog.setUserId(getAppUser().getUserid()); itemLog.setUserId(getAppUser().getUserid());
XxBizAssert.isNull(popularizeLogBiz.selectOne(itemLog)); ActivityPopularizeLog activityPopularizeLog = popularizeLogBiz.selectOne(itemLog);
if(activityPopularizeLog != null) {
return ObjectRestResponse.createFailedResult(1023, "参加成功,请勿重复参加!");
}
//添加活动日志 //添加活动日志
itemLog.setStatus(SYS_TRUE); itemLog.setStatus(SYS_TRUE);
...@@ -176,7 +192,7 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular ...@@ -176,7 +192,7 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
ActivityPopularizeItem item1 = popularizeItemBiz.selectById(al.getItemId()); ActivityPopularizeItem item1 = popularizeItemBiz.selectById(al.getItemId());
progress += item1.getProgress(); progress += item1.getProgress();
} }
activityPopularizeUser.setCurrentProgress(progress); activityPopularizeUser.setCurrentProgress(new BigDecimal(progress));
popularizeUserBiz.updateSelectiveById(activityPopularizeUser); popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
package com.xxfc.platform.activity.rest; package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.activity.biz.ActivityPopularizeLogBiz; import com.xxfc.platform.activity.biz.ActivityPopularizeLogBiz;
import com.xxfc.platform.activity.dto.QueryLogDto;
import com.xxfc.platform.activity.entity.ActivityPopularizeLog; import com.xxfc.platform.activity.entity.ActivityPopularizeLog;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -11,4 +13,9 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -11,4 +13,9 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("activityPopularizeLog") @RequestMapping("activityPopularizeLog")
public class ActivityPopularizeLogController extends BaseController<ActivityPopularizeLogBiz,ActivityPopularizeLog> { public class ActivityPopularizeLogController extends BaseController<ActivityPopularizeLogBiz,ActivityPopularizeLog> {
@GetMapping(value = "/getByUser")
public ObjectRestResponse selectByUserId(QueryLogDto queryLogDto) {
return ObjectRestResponse.succ(baseBiz.selectByUserId(queryLogDto));
}
} }
\ 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.rest.BaseController;
import com.xxfc.platform.activity.biz.TicketCollectionRecordBiz;
import com.xxfc.platform.activity.entity.TicketCollectionRecord;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(value = "ticketCollection")
public class TicketCollectionRecordController extends BaseController<TicketCollectionRecordBiz, TicketCollectionRecord> {
@PostMapping(value = "/app/unauth/add")
public ObjectRestResponse add(@RequestBody TicketCollectionRecord ticketCollectionRecord) {
return baseBiz.add(ticketCollectionRecord);
}
@GetMapping(value = "/app/unauth/getAll")
public ObjectRestResponse<List<TicketCollectionRecord>> getAll(Integer type) {
return baseBiz.selectAllByType(type);
}
}
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</plugin> </plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.5.52.4:3307/xxfc_activity?useUnicode=true&amp;characterEncoding=UTF8" connectionURL="jdbc:mysql://10.5.52.3:3306/xxfc_activity?useUnicode=true&amp;characterEncoding=UTF8"
userId="root" userId="root"
password="sslcloud123*()"> password="sslcloud123*()">
</jdbcConnection> </jdbcConnection>
...@@ -26,6 +26,6 @@ ...@@ -26,6 +26,6 @@
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}" <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
type="XMLMAPPER"/> type="XMLMAPPER"/>
<table tableName="integral_user_status" domainObjectName="IntegralUserStatus"></table> <table tableName="ticket_collection_record" domainObjectName="TicketCollectionRecord"></table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
...@@ -15,4 +15,9 @@ ...@@ -15,4 +15,9 @@
<result property="itemId" column="item_id"/> <result property="itemId" column="item_id"/>
</resultMap> </resultMap>
<select id="selectByUserId" resultType="com.xxfc.platform.activity.dto.ApLogDTO" parameterType="Map">
select * from activity_log_list where user_id = #{userId} and popularize_id = #{popularizeId}
ORDER BY crt_time
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -25,4 +25,8 @@ ...@@ -25,4 +25,8 @@
and <![CDATA[ `crt_time` <= #{endTime}]]> and <![CDATA[ `crt_time` <= #{endTime}]]>
</if> </if>
</select> </select>
<select id="getByUserIdAndPopularizeId" parameterType="com.xxfc.platform.activity.entity.ActivityPopularizeRelation" resultType="Integer">
select num from activity_popularize_relation where major_user_id = #{majorUserId} and popularize_id = #{popularizeId} ORDER BY crt_time DESC LIMIT 1
</select>
</mapper> </mapper>
\ No newline at end of file
<?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.xxfc.platform.activity.mapper.TicketCollectionRecordMapper" >
<resultMap id="BaseResultMap" type="com.xxfc.platform.activity.entity.TicketCollectionRecord" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
<result column="crt_time" property="crtTime" jdbcType="TIMESTAMP" />
<result column="upd_time" property="updTime" jdbcType="TIMESTAMP" />
<result column="type" property="type" jdbcType="BIT" />
</resultMap>
<select id="selectAllByType" resultType="com.xxfc.platform.activity.entity.TicketCollectionRecord" parameterType="com.xxfc.platform.activity.entity.TicketCollectionRecord">
select * from ticket_collection_record where type = #{type}
</select>
</mapper>
\ No newline at end of file
...@@ -647,7 +647,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{ ...@@ -647,7 +647,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{
* @param refundReason 退款原因 * @param refundReason 退款原因
* @param outRequestNo 退款标志号 * @param outRequestNo 退款标志号
*/ */
public void testTradeRefund(String tradNo, Integer refundAmount, String refundReason, String outRequestNo) { public AlipayTradeRefundResponse testTradeRefund(String tradNo, Integer refundAmount, String refundReason, String outRequestNo) {
AlipayClient alipayClient = getAlipayClient(); AlipayClient alipayClient = getAlipayClient();
AlipayTradeRefundModel model = new AlipayTradeRefundModel(); AlipayTradeRefundModel model = new AlipayTradeRefundModel();
BigDecimal realAmount = new BigDecimal(refundAmount.toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP); BigDecimal realAmount = new BigDecimal(refundAmount.toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
...@@ -664,7 +664,9 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{ ...@@ -664,7 +664,9 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{
e.printStackTrace(); e.printStackTrace();
} }
log.info("response: {}"+response.getBody()); log.info("response: {}"+response.getBody());
return response;
} }
public static void main(String[] args) throws AlipayApiException { public static void main(String[] args) throws AlipayApiException {
OrderPayBiz orderPayBiz = new OrderPayBiz(); OrderPayBiz orderPayBiz = new OrderPayBiz();
OrderPayVo orderPayVo = new OrderPayVo(); OrderPayVo orderPayVo = new OrderPayVo();
...@@ -674,12 +676,12 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{ ...@@ -674,12 +676,12 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay>{
orderPayVo.setAmount(3); orderPayVo.setAmount(3);
orderPayVo.setBody("扣除租车订单费用"); orderPayVo.setBody("扣除租车订单费用");
orderPayVo.setSubject("租车订单交易费用"); orderPayVo.setSubject("租车订单交易费用");
//orderPayBiz.testTradeRefund("216584713656209408", 105000, "退还违约金1050元", "2165847136562094081050"); //orderPayBiz.testTradeRefund("222522054304468992", 180000, "退还违约金1800元", "222522054304461800");
//orderPayBiz.fundAuthOrderUnFreeze(orderPayVo, ""); //orderPayBiz.fundAuthOrderUnFreeze(orderPayVo, "");
//orderPayBiz.alipayOrderRefund("20191024153859000003","2019102422001421530513773694", 2, "xxxx", ""); //orderPayBiz.alipayOrderRefund("20191024153859000003","2019102422001421530513773694", 2, "xxxx", "");
//orderPayBiz.tradePay(orderPayVo, ""); //orderPayBiz.tradePay(orderPayVo, "");
//orderPayBiz.fundAuthCancel(orderPayVo, ""); //orderPayBiz.fundAuthCancel(orderPayVo, "");
//orderPayBiz.tradePay("20191114182254000019", "2019111410002001530505959461", 1,"扣除违约金", "扣除违约金"); //orderPayBiz.tradePay("20191114182254000019", "2019111410002001530505959461", 1,"扣除违约金", "扣除违约金");
orderPayBiz.fundAuthQuery("20191031172653000026"); //orderPayBiz.fundAuthQuery("20191031172653000026");
} }
} }
package com.xxfc.platform.universal.biz; package com.xxfc.platform.universal.biz;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.process.SystemConfig; import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
...@@ -142,4 +144,39 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper, OrderRefund> { ...@@ -142,4 +144,39 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper, OrderRefund> {
} }
return JsonResultUtil.createFailedResult(40004, "退款失败!"); return JsonResultUtil.createFailedResult(40004, "退款失败!");
} }
public ObjectRestResponse tradeRefund(String tradNo, Integer refundAmount, String refundReason, String outRequestNo) {
AlipayTradeRefundResponse refundResponse = payBiz.testTradeRefund(tradNo, refundAmount, refundReason, outRequestNo);
log.info("预授权转支付退款: {}", refundResponse.getBody());
if (refundResponse == null) {
return ObjectRestResponse.createFailedResult(1002, "预授权转支付失败!");
}
OrderRefund orderRefund = selectByTradNo(tradNo);
if (orderRefund == null) {
return ObjectRestResponse.createFailedResult(1003, "预授权转支付商户订单不存在!");
}
orderRefund.setRefundTradeNo(outRequestNo);
orderRefund.setId(null);
if (refundResponse.getTradeNo() != null) {
orderRefund.setSerialNumber(refundResponse.getTradeNo());
}
orderRefund.setRefundAmount(refundAmount);
orderRefund.setRefundDesc(refundReason + " 预授权转支付商户订单号是:" + tradNo);
orderRefund.setFinishTime(System.currentTimeMillis());
orderRefund.setCrtTime(System.currentTimeMillis());
orderRefund.setUpdTime(System.currentTimeMillis());
mapper.insertSelective(orderRefund);
return ObjectRestResponse.succ(orderRefund);
}
public OrderRefund selectByTradNo(String refundTradeNo) {
if (StringUtils.isNotBlank(refundTradeNo)) {
Example example = new Example(OrderRefund.class);
example.createCriteria().andEqualTo("refundTradeNo", refundTradeNo);
OrderRefund orderRefund = mapper.selectOneByExample(example);
return orderRefund;
}
return null;
}
} }
\ No newline at end of file
package com.xxfc.platform.universal.controller; package com.xxfc.platform.universal.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.xxfc.platform.universal.biz.OrderRefundBiz; import com.xxfc.platform.universal.biz.OrderRefundBiz;
import com.xxfc.platform.universal.entity.OrderRefund; import com.xxfc.platform.universal.entity.OrderRefund;
import com.xxfc.platform.universal.vo.OrderRefundVo; import com.xxfc.platform.universal.vo.OrderRefundVo;
import org.springframework.web.bind.annotation.RequestBody; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("refund") @RequestMapping("refund")
...@@ -26,4 +25,10 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe ...@@ -26,4 +25,10 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
} }
} }
@GetMapping(value = "/app/unauth/tradRefund")
@ApiOperation("预授权转支付接口")
public ObjectRestResponse tradRefund(String tradNo, Integer refundAmount, String refundReason, String outRequestNo) {
return baseBiz.tradeRefund(tradNo, refundAmount, refundReason, outRequestNo);
}
} }
\ No newline at end of file
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