123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.caimei.modules.order.web;
- import com.caimei.modules.order.dao.NewOrderDao;
- import com.caimei.modules.order.entity.OrderReceiptRelationPo;
- import com.caimei.modules.order.service.SplitAccountService;
- import com.caimei.redis.RedisService;
- import com.thinkgem.jeesite.common.config.Global;
- import com.thinkgem.jeesite.common.web.BaseController;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.mvc.support.RedirectAttributes;
- import javax.annotation.Resource;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- @Controller
- @RequestMapping(value = "${adminPath}/splitAccount/")
- public class SplitAccountController extends BaseController {
- @Resource
- private SplitAccountService splitAccountService;
- @Resource
- private NewOrderDao newOrderDao;
- @Resource
- private RedisService redisService;
- @RequestMapping("split")
- public String SplitAccount(RedirectAttributes redirectAttributes) {
- Integer xsfzmds = (Integer) redisService.get("XSFZMDS");
- //验锁
- if (null != xsfzmds && xsfzmds > 0) {
- addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!");
- return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
- }
- //设置分账间隔,2-3分钟,禁止重复分账
- Date splitTime = newOrderDao.findSplitTime();
- if (null != splitTime) {
- addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!");
- return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
- }
- //查询是否有账单可分账,没有return
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String currentTime = format.format(calendar.getTime());
- // 查询未分账已支付收款
- List<OrderReceiptRelationPo> orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime);
- if (null != orderRelations && orderRelations.size() > 0) {
- //设锁
- redisService.set("XSFZMDS", 1, 120L);
- splitAccountService.SplitAccount();
- addMessage(redirectAttributes, "分账成功!");
- } else {
- addMessage(redirectAttributes, "暂无收款金额可进行分账!");
- }
- return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
- }
- }
|