| | |
| | | package com.matrix.system.padApi.action; |
| | | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.matrix.component.asyncmessage.AsyncMessageManager; |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.vo.OrderDetailVo; |
| | | import com.matrix.system.common.bean.BusParameterSettings; |
| | | import com.matrix.system.common.bean.CustomerDataDictionary; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.constance.AppConstance; |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.common.dao.CustomerDataDictionaryDao; |
| | | import com.matrix.system.common.service.SysUsersService; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.enums.BooleanEnum; |
| | | import com.matrix.system.hive.action.BaseController; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.SysOrder; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.SysOrderItemDao; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hive.service.MoneyCardUseService; |
| | | import com.matrix.system.hive.service.ShoppingGoodsService; |
| | | import com.matrix.system.hive.service.SysOrderService; |
| | | import com.matrix.system.hive.service.SysShopInfoService; |
| | | import com.matrix.system.padApi.dto.PadOrderListDto; |
| | | import com.matrix.system.padApi.vo.PadOrderDetailVo; |
| | | import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; |
| | | import com.matrix.system.wechart.templateMsg.UniformMsgParam; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.assertj.core.util.Arrays; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | @CrossOrigin(origins = "*") |
| | | @Api(value = "PadOrderAction", tags = "pad端订单请求") |
| | |
| | | return AjaxResult.buildSuccessInstance("补交成功"); |
| | | } |
| | | |
| | | @Autowired |
| | | private SysOrderItemDao orderItemDao; |
| | | @Autowired |
| | | private SysUsersService sysUsersService; |
| | | @Autowired |
| | | private CustomerDataDictionaryDao dataDictionaryDao; |
| | | @Resource |
| | | private SysShopInfoService currentService; |
| | | @Resource |
| | | private MoneyCardUseService cardUseService; |
| | | @Autowired |
| | | private AsyncMessageManager asyncMessageManager; |
| | | @Resource |
| | | private SysShopInfoDao shopInfoDao; |
| | | @Resource |
| | | private ShoppingGoodsService shoppingGoodsService; |
| | | |
| | | @ApiOperation(value = "查询当前登录人", notes = "查询当前登录人") |
| | | @GetMapping(value = "/getLoginUser") |
| | | public AjaxResult getLoginUser() { |
| | | AjaxResult result = AjaxResult.buildSuccessInstance(""); |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | result.putInMap("user", user); |
| | | return result; |
| | | } |
| | | |
| | | @ApiOperation(value = "根据ID查询用户", notes = "根据ID查询用户") |
| | | @GetMapping(value = "/getUserById/{id}") |
| | | public AjaxResult getUserById(@PathVariable Long id) { |
| | | AjaxResult result = AjaxResult.buildSuccessInstance(""); |
| | | SysUsers user = sysUsersService.findById(id); |
| | | result.putInMap("user", user); |
| | | return result; |
| | | } |
| | | |
| | | @ApiOperation(value = "获取业绩用户列表", notes = "获取业绩用户列表") |
| | | @GetMapping(value = "/shopAll") |
| | | public AjaxResult shopAll() { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, sysUsersService.findByRoleName(true, null)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取业绩类型", notes = "获取业绩类型") |
| | | @GetMapping(value = "getListByParentCode/{parentCode}") |
| | | public AjaxResult getListByParentCode(@PathVariable String parentCode) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<CustomerDataDictionary> list = dataDictionaryDao.selectByParentCode(parentCode, user.getCompanyId()); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, list, list.size()); |
| | | } |
| | | |
| | | @ApiOperation(value = "查询当前登录用户所在门店信息", notes = "查询当前登录用户所在门店信息") |
| | | @GetMapping(value = "findUserShop") |
| | | public AjaxResult findUserShop() { |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, |
| | | java.util.Arrays.asList(currentService.findById(user.getShopId())), null); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取用户的可用充值卡", notes = "获取用户的可用充值卡") |
| | | @GetMapping(value = "getUseMoneyCard/{vipId}") |
| | | public AjaxResult getUseMoneyCard(Long vipId) { |
| | | MoneyCardUse moneyCardUse = new MoneyCardUse(); |
| | | moneyCardUse.setVipId(vipId); |
| | | moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); |
| | | List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, cards); |
| | | } |
| | | |
| | | @ApiOperation(value = "根据订单ID查询订单信息", notes = "根据订单ID查询订单信息") |
| | | @GetMapping(value = "/findOrderById/{id}") |
| | | public AjaxResult findOrderById(@PathVariable Long id) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | SysOrder order = orderService.findById(id); |
| | | order.setItems(orderItemDao.selectByOrderId(id)); |
| | | return AjaxResult.buildSuccessInstance(Arrays.asList(order)); |
| | | } |
| | | |
| | | @ApiOperation(value = "列表显示搜索项目绑定的产品信息", notes = "列表显示搜索项目绑定的产品信息") |
| | | @PostMapping(value = "/showList") |
| | | public AjaxResult showList(@RequestBody ShoppingGoods shoppingGoods, PaginationVO pageVo) { |
| | | QueryUtil.setQueryLimit(shoppingGoods); |
| | | if(StringUtils.isBlank(pageVo.getSort())){ |
| | | pageVo.setOrder("desc"); |
| | | pageVo.setSort("createTime"); |
| | | } |
| | | //2表示查询总部产品 |
| | | if (shoppingGoods.getHeadquarters()!=null && 2==shoppingGoods.getHeadquarters()) { |
| | | //仅查询本店产品 |
| | | SysShopInfo zbShop = shopInfoDao.selectZbShop(getMe().getCompanyId()); |
| | | //如果是总部自己查询自己的库存则不需加入这个调价 |
| | | if (getMe().getShopId().equals(zbShop.getId())){ |
| | | shoppingGoods.setHeadquarters(1); |
| | | } |
| | | } |
| | | shoppingGoods.setIsDel(ShoppingGoods.NORMAL); |
| | | List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo); |
| | | AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shoppingGoodsService.findTotal(shoppingGoods)); |
| | | return result; |
| | | } |
| | | |
| | | @ApiOperation(value = "计算订单金额", notes = "计算订单金额") |
| | | @PostMapping(value = "/calculationOrder") |
| | | public AjaxResult calculationOrder(@RequestBody SysOrder sysOrder) { |
| | | BigDecimal total = BigDecimal.ZERO; |
| | | BigDecimal zkTotal = BigDecimal.ZERO; |
| | | //默认排序 |
| | | List<SysOrderItem> items = sysOrder.getItems(); |
| | | |
| | | for (int i = 0; i < items.size(); i++) { |
| | | SysOrderItem item = items.get(i); |
| | | zkTotal = zkTotal.add(new BigDecimal(item.getZkPrice() * item.getCount())); |
| | | total = total.add(new BigDecimal(item.getPrice() * item.getCount())); |
| | | } |
| | | SysOrder sysOrderResult = new SysOrder(); |
| | | sysOrderResult.setZkTotal(zkTotal.setScale(2, BigDecimal.ROUND_DOWN).doubleValue()); |
| | | sysOrderResult.setTotal(total.doubleValue()); |
| | | |
| | | return AjaxResult.buildSuccessInstance(java.util.Arrays.asList(sysOrderResult)); |
| | | } |
| | | |
| | | @ApiOperation(value = "订单支付", notes = "订单支付") |
| | | @PostMapping(value = "/payOrder") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult payOrder(@RequestBody SysOrder sysOrder) { |
| | | SysUsers user = getMe(); |
| | | sysOrder.setShopId(user.getShopId()); |
| | | sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL); |
| | | sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N); |
| | | //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 |
| | | sysOrder = orderService.checkAndSaveOrder(sysOrder); |
| | | orderService.payOrder(sysOrder); |
| | | |
| | | //发送微信公众号提醒 |
| | | UniformMsgParam uniformMsgParam = new UniformMsgParam(user.getCompanyId(), UniformMsgParam.GZH_GMCG); |
| | | uniformMsgParam.put("orderId", sysOrder.getId()); |
| | | asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); |
| | | |
| | | //处理用户购买的产品 |
| | | return AjaxResult.buildSuccessInstance(java.util.Arrays.asList(sysOrder), "订单结算成功"); |
| | | } |
| | | |
| | | @ApiOperation(value = "订单保存接口-挂单", notes = "订单保存接口-挂单") |
| | | @PostMapping(value = "/saveOrder") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult saveOrder(@RequestBody SysOrder sysOrder) { |
| | | SysUsers user = getMe(); |
| | | sysOrder.setShopId(user.getShopId()); |
| | | //校验保存订单 |
| | | sysOrder = orderService.checkAndSaveOrder(sysOrder); |
| | | //处理用户购买的产品 |
| | | return AjaxResult.buildSuccessInstance(java.util.Arrays.asList(sysOrder), "订单保存成功"); |
| | | } |
| | | |
| | | |
| | | } |