记得上下班打卡 | git大法好,push需谨慎

Commit 09c7da68 authored by 张国柄's avatar 张国柄

+会员订单:订单退款;

parent 1652e54d
package com.liquidnet.service.adam.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel(value = "AdamMemberOrderRefundParam", description = "会员订单退款入参")
@Data
public class AdamMemberOrderRefundParam implements Serializable {
private static final long serialVersionUID = 3811495229630522458L;
@NotBlank(message = "订单号不能为空")
@ApiModelProperty(required = true, value = "订单号")
private String orderNo;
@NotNull(message = "退款金额不能为空")
@DecimalMin(value = "0.01", message = "退款金额不能小于0.01")
@ApiModelProperty(required = true, value = "退款金额")
private BigDecimal refundAmt;
@NotNull(message = "请选择是否能继续购买会员")
@ApiModelProperty(required = true, value = "是否能继续购买会员[1-是|2-否]")
private Integer buyMark;
@NotBlank(message = "请输入退款原因")
@ApiModelProperty(required = true, value = "退款原因")
private String reason;
}
......@@ -124,4 +124,9 @@ public enum BusinessType
* 快递-打印 23
*/
BATCH_PRINT,
/**
* 会员订单退款
*/
MORDER_REFUND,
}
package com.liquidnet.client.admin.web.controller.zhengzai.adam;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.annotation.Log;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.param.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.param.admin.MemberOrderListReq;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -27,8 +33,7 @@ import java.util.List;
*/
@Controller
@RequestMapping("adam/order")
public class AdamMemberOrderController extends BaseController
{
public class AdamMemberOrderAdminController extends BaseController {
private String prefix = "zhengzai/adam/order";
@Autowired
......@@ -36,30 +41,21 @@ public class AdamMemberOrderController extends BaseController
@RequiresPermissions("adam:order:orderlist:view")
@GetMapping("/orderList")
public String order()
{
public String order() {
return prefix + "/orderList/order";
}
/**
* 查询【请填写功能名称】列表
*/
@Log(title = "会员订单", businessType = BusinessType.LIST)
@Log(title = "会员订单列表", businessType = BusinessType.LIST)
@RequiresPermissions("adam:order:orderlist:list")
@PostMapping("/orderList/list")
@ResponseBody
public TableDataInfo list(MemberOrderListReq memberOrderListReq)
{
public TableDataInfo list(MemberOrderListReq memberOrderListReq) {
startPage();
List<MemberOrderDto> list = adamMemberOrderAdminService.getMemberOrderList(memberOrderListReq);
return getDataTable(list);
}
/**
* 订单详情
*/
@Log(title = "会员订单", businessType = BusinessType.DETAIL)
@Log(title = "会员订单详情", businessType = BusinessType.DETAIL)
@RequiresPermissions("adam:order:orderlist:detail")
@GetMapping("/orderList/detail/{orderId}")
public String orderDetail(@PathVariable("orderId") String orderId, ModelMap mmap) {
......@@ -68,73 +64,22 @@ public class AdamMemberOrderController extends BaseController
return prefix + "/orderList/detail";
}
// /**
// * 导出【请填写功能名称】列表
// */
// @RequiresPermissions("adam:order:export")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// @ResponseBody
// public AjaxResult export(AdamMemberOrder adamMemberOrder)
// {
// List<AdamMemberOrder> list = adamMemberOrderService.selectAdamMemberOrderList(adamMemberOrder);
// ExcelUtil<AdamMemberOrder> util = new ExcelUtil<AdamMemberOrder>(AdamMemberOrder.class);
// return util.exportExcel(list, "【请填写功能名称】数据");
// }
// /**
// * 新增【请填写功能名称】
// */
// @GetMapping("/add")
// public String add()
// {
// return prefix + "/add";
// }
@Log(title = "会员订单退款", businessType = BusinessType.MORDER_REFUND)
@RequiresPermissions("adam:order:orderlist:refund")
@PostMapping("/orderList/refund")
@ResponseBody
public AjaxResult orderRefund(@Validated AdamMemberOrderRefundParam parameter) {
LambdaQueryWrapper<AdamMemberOrder> queryWrapper = Wrappers.lambdaQuery(AdamMemberOrder.class)
.eq(AdamMemberOrder::getOrderNo, parameter.getOrderNo());
AdamMemberOrder memberOrder = adamMemberOrderAdminService.getOne(queryWrapper);
// /**
// * 新增保存【请填写功能名称】
// */
// @RequiresPermissions("adam:order:add")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
// @PostMapping("/add")
// @ResponseBody
// public AjaxResult addSave(AdamMemberOrder adamMemberOrder)
// {
// return toAjax(adamMemberOrderService.insertAdamMemberOrder(adamMemberOrder));
// }
if (null == memberOrder) {
return this.error("订单不存在");
}
if (memberOrder.getPricePaid().compareTo(parameter.getRefundAmt()) < 0) {
return this.error("退款金额超出订单实际支付金额");
}
// /**
// * 修改【请填写功能名称】
// */
// @GetMapping("/edit/{mid}")
// public String edit(@PathVariable("mid") String mid, ModelMap mmap)
// {
// AdamMemberOrder adamMemberOrder = adamMemberOrderService.selectAdamMemberOrderById(mid);
// mmap.put("adamMemberOrder", adamMemberOrder);
// return prefix + "/edit";
// }
//
// /**
// * 修改保存【请填写功能名称】
// */
// @RequiresPermissions("adam:order:edit")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
// @PostMapping("/edit")
// @ResponseBody
// public AjaxResult editSave(AdamMemberOrder adamMemberOrder)
// {
// return toAjax(adamMemberOrderService.updateAdamMemberOrder(adamMemberOrder));
// }
//
// /**
// * 删除【请填写功能名称】
// */
// @RequiresPermissions("adam:order:remove")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
// @PostMapping( "/remove")
// @ResponseBody
// public AjaxResult remove(String ids)
// {
// return toAjax(adamMemberOrderService.deleteAdamMemberOrderByIds(ids));
// }
return this.toAjax(adamMemberOrderAdminService.refundProcessing(parameter, memberOrder));
}
}
......@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.param.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.param.admin.MemberOrderListReq;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
......@@ -18,7 +19,10 @@ import java.util.List;
* @date 2021/6/6 16:23
*/
public interface IAdamMemberOrderAdminService extends IService<AdamMemberOrder> {
List<MemberOrderDto> getMemberOrderList(MemberOrderListReq memberOrderListReq);
MemberOrderDetailAdminVo getMemberOrderDetail(String orderNo);
boolean refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder);
}
......@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.param.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.param.admin.MemberOrderListReq;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderExtVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
......@@ -16,6 +18,8 @@ import com.liquidnet.service.adam.entity.*;
import com.liquidnet.service.adam.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
......@@ -98,4 +102,22 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
detailAdminVo.setAdamMemberOrderExtVo(AdamMemberOrderExtVo.getNew().copy(adamMemberOrderExt));
return detailAdminVo;
}
@Override
@Transactional
public boolean refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder) {
LinkedMultiValueMap<String, Object> linkedMultiValueMap = new LinkedMultiValueMap<>();
linkedMultiValueMap.add("code", memberOrder.getPayNo());
linkedMultiValueMap.add("notifyUrl", null);
linkedMultiValueMap.add("orderCode", memberOrder.getOrderNo());
linkedMultiValueMap.add("orderRefundCode", IDGenerator.nextTimeId2());
linkedMultiValueMap.add("paymentId", null);
linkedMultiValueMap.add("paymentType", (memberOrder.getDeviceFrom() + memberOrder.getPayType()).toUpperCase());
linkedMultiValueMap.add("price", param.getRefundAmt());
linkedMultiValueMap.add("priceTotal", memberOrder.getPricePaid());
linkedMultiValueMap.add("reason", param.getReason());
return true;
}
}
......@@ -24,7 +24,7 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
boolean saveOrUpadateRst;
AdamMemberRights saveOrUpdateInfo = new AdamMemberRights();
if (StringUtils.isEmpty(mrightsId)) {
saveOrUpdateInfo.setMrightsId(IDGenerator.nextBilliId());
saveOrUpdateInfo.setMrightsId(IDGenerator.nextMilliId2());
saveOrUpdateInfo.setMemberId(param.getMemberId());
saveOrUpdateInfo.setState(1);
......
......@@ -9,7 +9,7 @@ public class IDGenerator {
private static final String CROSS_BAR = "-";
private static final String EMPTY_STR = "";
private static final DateTimeFormatter MILLISECOND = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
private static final DateTimeFormatter BILLISECOND = DateTimeFormatter.ofPattern("yyDN");
private static final DateTimeFormatter MILLISECOND_2 = DateTimeFormatter.ofPattern("yyDHHmmssSSS");
public static String nextSnowId() {
return GenSnowFlowerUtil.next();
......@@ -19,12 +19,16 @@ public class IDGenerator {
return nextMilliId() + String.valueOf(System.nanoTime()).substring(9);
}
public static String nextTimeId2() {
return nextMilliId2() + String.valueOf(System.nanoTime()).substring(8);
}
public static String nextMilliId() {
return LocalDateTime.now().format(MILLISECOND);
}
public static String nextBilliId() {
return LocalDateTime.now().format(BILLISECOND);
public static String nextMilliId2() {
return LocalDateTime.now().format(MILLISECOND_2);
}
public static String get32UUID() {
......@@ -74,7 +78,7 @@ public class IDGenerator {
System.out.println(""+IDGenerator.refundCode());
System.out.println("nextTimeId==="+IDGenerator.nextTimeId());
System.out.println("nextMilliId==="+IDGenerator.nextMilliId());
System.out.println("nextBilliId==="+IDGenerator.nextBilliId());
System.out.println("nextMilliId2==="+IDGenerator.nextMilliId2());
System.out.println("nextSnowId==="+IDGenerator.nextSnowId());
System.out.println("get32UUID==="+IDGenerator.get32UUID());
}
......
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