package com.sinata.shop.modular.mall.controller;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.sinata.common.enums.EnumUserBankDetailDoneType;
|
import com.sinata.core.base.controller.BaseController;
|
import com.sinata.core.util.DateUtils2;
|
import com.sinata.core.util.ExcelExportUtil;
|
import com.sinata.shop.core.common.annotion.BussinessLog;
|
import com.sinata.shop.core.common.annotion.Permission;
|
import com.sinata.shop.core.common.constant.factory.PageFactory;
|
import com.sinata.shop.core.log.LogObjectHolder;
|
import com.sinata.shop.core.shiro.ShiroKit;
|
import com.sinata.shop.modular.member.model.MemUserBankDetail;
|
import com.sinata.shop.modular.member.service.IMemUserBankDetailService;
|
import com.sinata.shop.modular.mall.dto.BankDetailSearchDto;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 门店账户明细控制器
|
*
|
* @author goku
|
*/
|
@Controller
|
@RequestMapping("/memMerchantBankDetail")
|
public class MemMerchantBankDetailController extends BaseController {
|
|
private String PREFIX = "/mall/memMerchantBankDetail/";
|
|
@Autowired
|
private IMemUserBankDetailService memUserBankDetailService;
|
|
/**
|
* 跳转到门店账户明细首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
model.addAttribute("bankDetailDoneTypes", Arrays.asList(
|
EnumUserBankDetailDoneType.MALL_GOODS_REFUND
|
));
|
return PREFIX + "memMerchantBankDetail.html";
|
}
|
|
/**
|
* 跳转到添加门店账户明细
|
*/
|
@RequestMapping("/memMerchantBankDetail_add")
|
public String memMerchantBankDetailAdd() {
|
return PREFIX + "memMerchantBankDetail_add.html";
|
}
|
|
/**
|
* 跳转到修改门店账户明细
|
*/
|
@RequestMapping("/memMerchantBankDetail_update/{memMerchantBankDetailId}")
|
public String memMerchantBankDetailUpdate(@PathVariable Integer memMerchantBankDetailId, Model model) {
|
MemUserBankDetail memMerchantBankDetail = memUserBankDetailService.selectById(memMerchantBankDetailId);
|
model.addAttribute("item", memMerchantBankDetail);
|
LogObjectHolder.me().set(memMerchantBankDetail);
|
return PREFIX + "memMerchantBankDetail_edit.html";
|
}
|
|
/**
|
* 获取门店账户明细列表
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/list")
|
public Object list(BankDetailSearchDto dto) {
|
Page<MemUserBankDetail> page = new PageFactory().defaultPage();
|
Integer merchantId = ShiroKit.getUserId();
|
Wrapper<MemUserBankDetail> wrapper = new EntityWrapper<MemUserBankDetail>()
|
.orderBy("id", false)
|
.eq("merchant_id", merchantId)
|
.in("done_type", Arrays.asList(
|
EnumUserBankDetailDoneType.MALL_GOODS_REFUND.index))
|
.ge(StrUtil.isNotBlank(dto.getBeginTime()), "crete_time", dto.getBeginTime())
|
.le(StrUtil.isNotBlank(dto.getEndTime()), "crete_time", dto.getEndTime() + " 23:59:59")
|
.eq(StrUtil.isNotBlank(dto.getOrderNo()), "order_no", dto.getOrderNo())
|
.eq(dto.getDoneType() != null, "done_type", dto.getDoneType());
|
|
// 查询数据列表
|
List<MemUserBankDetail> list = memUserBankDetailService.selectPage(page, wrapper).getRecords();
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
@ResponseBody
|
@RequestMapping(value = "/export")
|
public void export(BankDetailSearchDto dto, HttpServletResponse response) throws IOException {
|
Integer merchantId = ShiroKit.getUserId();
|
Wrapper<MemUserBankDetail> wrapper = new EntityWrapper<MemUserBankDetail>()
|
.orderBy("id", false)
|
.eq("merchant_id", merchantId)
|
.in("done_type", Arrays.asList(EnumUserBankDetailDoneType.MALL_GOODS_PAY.getIndex(),
|
EnumUserBankDetailDoneType.MALL_GOODS_REFUND.getIndex()))
|
.ge(StrUtil.isNotBlank(dto.getBeginTime()), "crete_time", dto.getBeginTime())
|
.le(StrUtil.isNotBlank(dto.getEndTime()), "crete_time", dto.getEndTime() + " 23:59:59")
|
.eq(StrUtil.isNotBlank(dto.getOrderNo()), "mall_order_no", dto.getOrderNo())
|
.eq(dto.getDoneType() != null, "done_type", dto.getDoneType());
|
List<MemUserBankDetail> bankDetails = this.memUserBankDetailService.selectList(wrapper);
|
|
List<List<Object>> dataList = new ArrayList<>();
|
List<Object> titles = CollUtil.newArrayList("触发时间", "触发方式", "进出帐", "金额", "关联订单号");
|
dataList.add(titles);
|
|
for (MemUserBankDetail bankDetail : bankDetails) {
|
dataList.add(CollUtil.newArrayList(DateUtil.format(bankDetail.getCreateTime(), "YYYY-MM-dd HH:mm"),
|
EnumUserBankDetailDoneType.getMarkByIndex(bankDetail.getDoneType()),
|
"",
|
bankDetail.getAmount(),
|
bankDetail.getOrderNo()));
|
}
|
ExcelExportUtil.easySheet("导出数据" + DateUtils2.formatDate(new Date(), "YYYYMMddHHmmSS"), "导出数据", dataList, response);
|
}
|
|
/**
|
* 新增门店账户明细
|
*/
|
@Permission
|
@ResponseBody
|
@BussinessLog(value = "新增门店账户明细")
|
@RequestMapping(value = "/add")
|
public Object add(MemUserBankDetail memMerchantBankDetail) {
|
memUserBankDetailService.insert(memMerchantBankDetail);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除/批量删除
|
*/
|
@Permission
|
@ResponseBody
|
@BussinessLog(value = "删除/批量删除门店账户明细")
|
@RequestMapping(value = "/delete")
|
public Object delete(@RequestParam String ids) {
|
// 逻辑删除
|
memUserBankDetailService.updateForSet("is_delete = 1", new EntityWrapper<MemUserBankDetail>().in("id", ids.split(",")));
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改门店账户明细
|
*/
|
@Permission
|
@ResponseBody
|
@BussinessLog(value = "修改门店账户明细")
|
@RequestMapping(value = "/update")
|
public Object update(MemUserBankDetail memMerchantBankDetail) {
|
memUserBankDetailService.updateById(memMerchantBankDetail);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改门店账户明细状态
|
*/
|
@ResponseBody
|
@BussinessLog(value = "修改门店账户明细状态")
|
@RequestMapping(value = "/updateState")
|
public Object updateState(Integer memMerchantBankDetailId, Integer state) {
|
memUserBankDetailService.updateForSet("state = " + state, new EntityWrapper<MemUserBankDetail>().eq("id", memMerchantBankDetailId));
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 跳转门店账户明细详情
|
*/
|
@RequestMapping(value = "/detail/{memMerchantBankDetailId}")
|
public Object detail(@PathVariable("memMerchantBankDetailId") Integer memMerchantBankDetailId, Model model) {
|
MemUserBankDetail memMerchantBankDetail = memUserBankDetailService.selectById(memMerchantBankDetailId);
|
model.addAttribute("item", memMerchantBankDetail);
|
return PREFIX + "memMerchantBankDetail_detail.html";
|
}
|
}
|