Commit bdc1737a authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/dev' into dev

parents 028654f7 3a4ec57e
......@@ -38,7 +38,7 @@ public interface UserRestInterface {
default void checkAdminUser(){
if(null == getAdminUserInfo()) {
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
}
}
......@@ -47,7 +47,6 @@ public class ActivityPrize implements Serializable {
@Column(name = "day_max_use")
private Integer dayMaxUse;
@NotNull(message = "奖品库存不能为null")
@Column(name = "total_stock")
private Integer totalStock;
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.util.ReferralCodeUtil;
import com.xxfc.platform.activity.config.RedissonLock;
import com.xxfc.platform.activity.constant.PrizeGoodsTypeEnum;
import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.CouponDTO;
import com.xxfc.platform.activity.dto.UserCouponSendDTO;
import com.xxfc.platform.activity.entity.ActivityPrize;
import com.xxfc.platform.activity.entity.ActivityWinningRecord;
......@@ -51,7 +52,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final UserCouponBiz userCouponBiz;
private final CouponBiz couponBiz;
private final RedisTemplate<String, Object> redisTemplate;
@Resource(name = "redisTemplate")
private ValueOperations<String, Object> valueOperations;
......@@ -88,11 +89,21 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
if (CollectionUtils.isEmpty(activityPrizes)) {
throw new BaseException("奖品不能为空");
}
List<Integer> ids = activityPrizes.stream().filter(x -> Objects.nonNull(x.getGoodsId())).map(ActivityPrize::getGoodsId).collect(Collectors.toList());
List<CouponDTO> coupons = new ArrayList<>();
if (CollectionUtils.isNotEmpty(ids)){
coupons = couponBiz.findCouponsByIds(ids);
}
Map<Integer, String> couponMap = coupons.stream().collect(Collectors.toMap(CouponDTO::getId, CouponDTO::getTitle));
Map<Boolean, List<ActivityPrize>> activityPrizeMap = activityPrizes.stream().collect(Collectors.partitioningBy(x -> Objects.nonNull(x.getId()), Collectors.toList()));
//保存
List<ActivityPrize> activityPrizesOfSave = activityPrizeMap.get(Boolean.FALSE);
if (CollectionUtils.isNotEmpty(activityPrizesOfSave)) {
activityPrizesOfSave.stream().peek(x -> x.setCrtTime(new Date())).count();
activityPrizesOfSave.stream().peek(x -> {x.setCrtTime(new Date());
if (Objects.nonNull(x.getGoodsId())){
x.setName(couponMap==null?"":couponMap.get(x.getGoodsId()));
}
}).count();
mapper.insertList(activityPrizesOfSave);
}
//更新
......@@ -100,7 +111,10 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
if (CollectionUtils.isNotEmpty(activityPrizesOfUpdate)) {
for (ActivityPrize activityPrize : activityPrizesOfUpdate) {
activityPrize.setUpdTime(new Date());
mapper.updateByPrimaryKeySelective(activityPrize);
if (Objects.nonNull(activityPrize.getGoodsId())){
activityPrize.setName(couponMap==null?"":couponMap.get(activityPrize.getGoodsId()));
}
mapper.updateByPrimaryKey(activityPrize);
}
}
}
......
......@@ -143,4 +143,12 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> {
return mapper.couponsByTickerNoList(tickerNoList);
}
public List<CouponDTO> findCouponsByIds(List<Integer> ids){
List<CouponDTO> couponDTOS = mapper.findCouponsByIds(ids);
if (CollectionUtils.isEmpty(couponDTOS)){
return Collections.EMPTY_LIST;
}
return couponDTOS;
}
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.dto.CouponDTO;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.vo.CouponTitleVo;
import org.apache.ibatis.annotations.Param;
......@@ -24,4 +25,6 @@ public interface CouponMapper extends Mapper<Coupon> {
List<Coupon> couponsByTickerNoList(@Param(value = "tickerNoList") List<String> tickerNoList);
List<CouponDTO> findCouponsByIds(@Param("ids") List<Integer> ids);
}
......@@ -57,4 +57,13 @@
</where>
</select>
<select id="findCouponsByIds" resultType="com.xxfc.platform.activity.dto.CouponDTO">
select `id`,`title` from `coupon` where is_del=0
<if test="ids!=null and ids.size>0">
and id in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -439,6 +439,11 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
);
}
//还车扣除款 剩余的 钱,再减去违章预备金
oad.getDeductions().add(
initDeduction(illegalReserve, "违章保证金", DeductionTypeEnum.VIOLATE_TRAFFIC_KEEP, OrderAccountDeduction.ORIGIN_DEPOSIT)
);
//剩余押金 = 押金 - 违章保证金 - 定损金额
oad.setDepositAmount(oad.getDepositAmount().subtract(illegalReserve).subtract(csv.getDamagesAmount()));
......@@ -463,11 +468,6 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
String refundDesc = "退还车辆押金:"+ refundAmont.toString();
//还车扣除款 剩余的 钱,再减去违章预备金
oad.getDeductions().add(
initDeduction(illegalReserve, "违章保证金", DeductionTypeEnum.VIOLATE_TRAFFIC_KEEP, OrderAccountDeduction.ORIGIN_DEPOSIT)
);
refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.RESIDUE_ILLEGAL.getCode(), AccountTypeEnum.OUT_PART_DEPOSIT, oad);
//修改押金退还记录状态
......@@ -606,10 +606,9 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.OTHER_DELAY_SAFE.getCode().equals(deduction.getType())) {
deduction.setName(vio.getDeductions());
BigDecimal diff = vio.getCost().subtract(deduction.getAmount());
//修改归还押金金额
oad.setDepositAmount(oad.getDepositAmount().subtract(diff));
deduction.setAmount(vio.getCost());
//修改归还押金金额
resetDeposit(oad);
flag = Boolean.TRUE;
break;
......@@ -621,7 +620,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
OrderAccountDeduction oadNew = initDeduction(vio.getCost(), vio.getDeductions(), DeductionTypeEnum.OTHER_DELAY_SAFE, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(oadNew);
//修改归还押金金额
oad.setDepositAmount(oad.getDepositAmount().subtract(oadNew.getAmount()));
resetDeposit(oad);
}
}
......@@ -632,15 +631,21 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
}
private void resetDeposit(OrderAccountDetail oad) {
//修改归还押金金额
BigDecimal toDeduction = oad.getDeductions().parallelStream().map(OrderAccountDeduction::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
oad.setDepositAmount(oad.getOriginDepositAmount().subtract(toDeduction));
}
private void handleViolateDetail(DeductionTypeEnum dte, OrderAccountDetail oad, DedDetailDTO vio, CancelStartedVO csv) {
Boolean flag = Boolean.FALSE;
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(dte.getCode().equals(deduction.getType())) {
deduction.setName(vio.getDeductions());
BigDecimal diff = vio.getCost().subtract(deduction.getAmount());
//修改归还押金金额
oad.setDepositAmount(oad.getDepositAmount().subtract(diff));
deduction.setAmount(vio.getCost());
//修改归还押金金额
resetDeposit(oad);
//设置订单明细参数
csv.setViolateAmount(csv.getViolateAmount().add(diff));
......@@ -655,7 +660,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
OrderAccountDeduction oadNew = initDeduction(vio.getCost(), vio.getDeductions(), dte, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(oadNew);
//修改归还押金金额
oad.setDepositAmount(oad.getDepositAmount().subtract(oadNew.getAmount()));
resetDeposit(oad);
//设置订单明细参数
csv.setViolateAmount(csv.getViolateAmount().add(oadNew.getAmount()));
......
......@@ -245,7 +245,7 @@ public class OrderCalculateBiz {
//计算违约金
//residueDays * 身份价格
if(realResidueDays > 0) {
if(realResidueDays > 0) { //提前还车
//设置消耗费用列表
for(int i = 0; i < useDays; i++) {
......@@ -275,6 +275,9 @@ public class OrderCalculateBiz {
inProgressVO.setViolateDesc(" 提前还车违约金:"+ violateDesc);
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), violateDesc, DeductionTypeEnum.VIOLATE_ADVANCE, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction);
}else if (realResidueDays.equals(0)) { //准时还车
//设置消耗费用列表
useAmountList.addAll(Convert.toList(VMCalendarPriceCostDTO.class, realVmcpds));
}else if(realResidueDays < 0 && !isCancel){
//isCancel 表示是否为取消,取消则不计算延期还车(因为没有出车)
//设置消耗费用列表
......
......@@ -110,6 +110,11 @@ public class Activity {
@ApiModelProperty("0-默认;1-报名中,2-进行中;3-已结束")
private Integer status;
@Column(name = "live_url")
@ApiModelProperty("直播地址")
private String liveUrl;
@Column(name = "content")
@ApiModelProperty("活动图文内容(峰会主题)")
private String content;
......
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import tk.mybatis.mapper.annotation.KeySql;
import tk.mybatis.mapper.code.IdentityDialect;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author Administrator
*/
@Data
@Table(name = "fc_activity_temporary")
@AllArgsConstructor
@NoArgsConstructor
@ApiModel()
public class ActivityTemporary {
@Id
@KeySql(dialect = IdentityDialect.MYSQL)
private Integer id;
private String name;
private String phone;
private String inviter;
@Column(name = "crt_time")
private Date crtTime;
@Column(name = "upd_time")
private Date updTime;
}
......@@ -12,6 +12,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Lists;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.ActivityTemporary;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.mapper.ActivityBmMapper;;
import com.xxfc.platform.summit.pojo.ActivityBmExcel;
......@@ -48,6 +49,8 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
@Autowired
private MeepoUserQdBiz meepoUserQdBiz;
@Autowired
private ActivityTemporaryBiz activityTemporaryBiz;
......@@ -261,8 +264,8 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
return PageInfo.of(activityBms);
}
public ActivityBm userBm(ActivityBm activityBm, Integer id) {
return null;
public void userBm(ActivityTemporary activityTemporary) throws Exception {
activityTemporaryBiz.addModifyIfPresent(activityTemporary);
}
public List<ActivityBmExcel> excel(ActivityBmQuery query) throws Exception {
......
package com.xxfc.platform.summit.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.summit.entity.ActivityTemporary;
import com.xxfc.platform.summit.mapper.ActivityTemporaryMapper;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @author Administrator
*/
@Service
public class ActivityTemporaryBiz extends BaseBiz<ActivityTemporaryMapper, ActivityTemporary> {
public void addModifyIfPresent(ActivityTemporary activityTemporary)throws Exception {
activityTemporary.setCrtTime(new Date());
mapper.addModifyIfPresent(activityTemporary);
}
}
......@@ -39,7 +39,7 @@ public class SwaggerConfig {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.tour"))
.apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.summit"))
//.apis(RequestHandlerSelectors.any())
.build()
.globalOperationParameters(pars)
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.ActivityTemporary;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.pojo.ActivityBmExcel;
import com.xxfc.platform.summit.pojo.ActivityBmQuery;
......@@ -36,11 +37,11 @@ public class ActivityBmController extends BaseController<ActivityBmBiz, Activity
UserBiz userBiz;
@PostMapping("/add")
public ObjectRestResponse bm(@RequestBody ActivityBm activityBm, HttpServletRequest request) {
User user = userBiz.getSession(request);
@PostMapping("/app/unauth/add")
public ObjectRestResponse bm(@RequestBody ActivityTemporary activityTemporary) {
try {
return ObjectRestResponse.succ(baseBiz.userBm(activityBm, user.getId()));
baseBiz.userBm(activityTemporary);
return ObjectRestResponse.succ();
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
......
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.ActivityTemporary;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface ActivityTemporaryMapper extends Mapper<ActivityTemporary> {
void addModifyIfPresent(ActivityTemporary activityTemporary);
}
<?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.summit.mapper.ActivityTemporaryMapper">
<insert id="addModifyIfPresent" parameterType="com.xxfc.platform.summit.entity.ActivityTemporary"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO fc_activity_temporary (name,phone,inviter,crt_time,upd_time)
VALUES (#{name},#{phone},#{inviter},#{crtTime},#{updTime}) ON DUPLICATE KEY UPDATE upd_time = VALUES(crt_time)
</insert>
</mapper>
\ 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