充值记录
This commit is contained in:
parent
239aa0aeab
commit
78fb118550
@ -0,0 +1,79 @@
|
||||
package com.fuint.business.largeSscreen.controller;
|
||||
|
||||
|
||||
import com.fuint.business.largeSscreen.service.LargeSscreenService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 大屏(ActiveConsumption)表控制层
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-11-10 10:44:58
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("business/largeSscreen")
|
||||
public class LargeSscreenController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private LargeSscreenService largeSscreenService;
|
||||
|
||||
/**
|
||||
* 查询油品销售排名
|
||||
* @return
|
||||
*/
|
||||
/*@GetMapping("{storId}")
|
||||
public ResponseObject selectOilSalesRank(@PathVariable Integer storId) {
|
||||
return getSuccessResult(this.largeSscreenService.selectOilSalesRank(storId));
|
||||
}*/
|
||||
/**
|
||||
* 查询油品销售排名
|
||||
* @return
|
||||
*/
|
||||
@GetMapping
|
||||
public ResponseObject selectOilSalesRank() {
|
||||
return getSuccessResult(this.largeSscreenService.selectOilSalesRank());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品销售排名
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("goods")
|
||||
public ResponseObject selectGoodsSalesRank() {
|
||||
return getSuccessResult(this.largeSscreenService.selectGoodsSalesRank());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询员工销售排名
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("staff")
|
||||
public ResponseObject selectStaffSalesRank() {
|
||||
return getSuccessResult(this.largeSscreenService.selectStaffSalesRank());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询本月销售额排名
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("sales")
|
||||
public ResponseObject selectSalesRank() {
|
||||
return getSuccessResult(this.largeSscreenService.selectSalesRank());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询公司年度排行榜
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("salesAll")
|
||||
public ResponseObject selectSalesAllRank() {
|
||||
return getSuccessResult(this.largeSscreenService.selectSalesAllRank());
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.fuint.business.largeSscreen.mapper;
|
||||
|
||||
public interface LargeSscreenServiceMapper {
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
<?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.fuint.business.largeSscreen.mapper.LargeSscreenServiceMapper">
|
||||
<!--<select id="selectConsumptionChilds" resultMap="ActiveConsumptionChildMap">
|
||||
select
|
||||
*
|
||||
from active_consumption_child acc
|
||||
where
|
||||
acc.active_consumption_id = #{id}
|
||||
</select>-->
|
||||
</mapper>
|
@ -0,0 +1,41 @@
|
||||
package com.fuint.business.largeSscreen.service;
|
||||
|
||||
import com.fuint.business.largeSscreen.vo.OilOrderVO;
|
||||
import com.fuint.business.largeSscreen.vo.OrderGoodsVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public interface LargeSscreenService {
|
||||
|
||||
/**
|
||||
* 查询油品销售排名
|
||||
* @return
|
||||
*/
|
||||
List<OilOrderVO> selectOilSalesRank();
|
||||
|
||||
/**
|
||||
* 查询商品销售排名
|
||||
* @return
|
||||
*/
|
||||
List<OrderGoodsVO> selectGoodsSalesRank();
|
||||
|
||||
/**
|
||||
* 查询员工销售排名
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> selectStaffSalesRank();
|
||||
|
||||
/**
|
||||
* 查询本月销售额排名
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> selectSalesRank();
|
||||
|
||||
/**
|
||||
* 查询公司年度排行榜
|
||||
* @return
|
||||
*/
|
||||
Map<String, String> selectSalesAllRank();
|
||||
}
|
@ -0,0 +1,257 @@
|
||||
package com.fuint.business.largeSscreen.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.fuint.business.largeSscreen.mapper.LargeSscreenServiceMapper;
|
||||
import com.fuint.business.largeSscreen.service.LargeSscreenService;
|
||||
import com.fuint.business.largeSscreen.vo.OilOrderVO;
|
||||
import com.fuint.business.largeSscreen.vo.OrderGoodsVO;
|
||||
import com.fuint.business.member.mapper.LJStaffMapper;
|
||||
import com.fuint.business.order.mapper.OilOrderMapper;
|
||||
import com.fuint.business.order.mapper.OrderGoodsMapper;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Base64;
|
||||
|
||||
@Service("LargeSscreenService")
|
||||
public class LargeSscreenServiceImpl implements LargeSscreenService {
|
||||
|
||||
@Resource
|
||||
private LargeSscreenServiceMapper largeSscreenServiceMapper;
|
||||
@Resource
|
||||
private OilOrderMapper oilOrderMapper;
|
||||
@Resource
|
||||
private OrderGoodsMapper orderGoodsMapper;
|
||||
@Resource
|
||||
private LJStaffMapper ljStaffMapper;
|
||||
private final static String IV = "1234567890123456";//需要前端与后端配置一致
|
||||
private final static String KEY = "1234567890123456";
|
||||
|
||||
/**
|
||||
* 查询油品销售排名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OilOrderVO> selectOilSalesRank() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
ArrayList<OilOrderVO> oilOrderVOS2 = new ArrayList<>();
|
||||
OilOrderVO oilOrderVO1 = new OilOrderVO();
|
||||
oilOrderVO1.setOilType("柴油");
|
||||
oilOrderVO1.setOilName("0#");
|
||||
oilOrderVO1.setPayAomunt(0);
|
||||
oilOrderVO1.setExponent("0");
|
||||
oilOrderVO1.setStatus("0");
|
||||
oilOrderVOS2.add(oilOrderVO1);
|
||||
OilOrderVO oilOrderVO2 = new OilOrderVO();
|
||||
oilOrderVO2.setOilType("柴油");
|
||||
oilOrderVO2.setOilName("-10##");
|
||||
oilOrderVO2.setPayAomunt(0);
|
||||
oilOrderVO2.setExponent("0");
|
||||
oilOrderVO2.setStatus("0");
|
||||
oilOrderVOS2.add(oilOrderVO2);
|
||||
OilOrderVO oilOrderVO3 = new OilOrderVO();
|
||||
oilOrderVO3.setOilType("汽油");
|
||||
oilOrderVO3.setOilName("92##");
|
||||
oilOrderVO3.setPayAomunt(0);
|
||||
oilOrderVO3.setExponent("0");
|
||||
oilOrderVO3.setStatus("0");
|
||||
oilOrderVOS2.add(oilOrderVO3);
|
||||
OilOrderVO oilOrderVO4 = new OilOrderVO();
|
||||
oilOrderVO4.setOilType("汽油");
|
||||
oilOrderVO4.setOilName("95#");
|
||||
oilOrderVO4.setPayAomunt(0);
|
||||
oilOrderVO4.setExponent("0");
|
||||
oilOrderVO4.setStatus("0");
|
||||
oilOrderVOS2.add(oilOrderVO4);
|
||||
OilOrderVO oilOrderVO5 = new OilOrderVO();
|
||||
oilOrderVO5.setOilType("汽油");
|
||||
oilOrderVO5.setOilName("京92#");
|
||||
oilOrderVO5.setPayAomunt(0);
|
||||
oilOrderVO5.setExponent("0");
|
||||
oilOrderVO5.setStatus("0");
|
||||
oilOrderVOS2.add(oilOrderVO5);
|
||||
ArrayList<OilOrderVO> oilOrderVOS1 = new ArrayList<>();
|
||||
//当天的数据
|
||||
List<OilOrderVO> oilOrderVOS = oilOrderMapper.selectOilSalesRank(storeId);
|
||||
//昨天的数据
|
||||
List<OilOrderVO> oilOrderVOSs = oilOrderMapper.selectOilSalesRankYestoday(storeId);
|
||||
for (OilOrderVO oilOrderVO : oilOrderVOS) {
|
||||
String OilName = "";
|
||||
double v = 0.0;
|
||||
OilName = oilOrderVO.getOilName();
|
||||
oilOrderVO.setExponent(100+"%");
|
||||
for (OilOrderVO orderVOSs : oilOrderVOSs) {
|
||||
if (orderVOSs.getOilName().equals(OilName)){
|
||||
v = orderVOSs.getPayAomunt() / oilOrderVO.getPayAomunt() * 100;
|
||||
BigDecimal bg = new BigDecimal(v);
|
||||
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
oilOrderVO.setExponent(f1 + "%");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (v > 0.0){
|
||||
oilOrderVO.setStatus("1");
|
||||
}else {
|
||||
oilOrderVO.setStatus("0");
|
||||
}
|
||||
oilOrderVOS1.add(oilOrderVO);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(oilOrderVOS1)){
|
||||
return oilOrderVOS1;
|
||||
}else {
|
||||
return oilOrderVOS2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品销售排名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OrderGoodsVO> selectGoodsSalesRank() {
|
||||
List<OrderGoodsVO> orderGoodsVOS = new ArrayList<>();
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
//今天的销量
|
||||
List<OrderGoodsVO> orderGoodsVOSToday = orderGoodsMapper.selectGoodsSalesRank(storeId);
|
||||
//昨天的销量
|
||||
List<OrderGoodsVO> orderGoodsVOSYseToday = orderGoodsMapper.selectGoodsSalesRankYestoday(storeId);
|
||||
for (OrderGoodsVO orderGoodsVO : orderGoodsVOSToday) {
|
||||
String goodsName = "";
|
||||
double v = 0;
|
||||
goodsName = orderGoodsVO.getGoodsName();
|
||||
orderGoodsVO.setTodayCount(orderGoodsVO.getGoodsNumber());
|
||||
orderGoodsVO.setGoodsName(orderGoodsVO.getGoodsName());
|
||||
orderGoodsVO.setYesTodayCount(0);
|
||||
for (OrderGoodsVO goodsVO : orderGoodsVOSYseToday) {
|
||||
if (goodsVO.getGoodsName().equals(goodsName)){
|
||||
orderGoodsVO.setYesTodayCount(goodsVO.getGoodsNumber());
|
||||
v = (double)goodsVO.getGoodsNumber() / orderGoodsVO.getGoodsNumber() * 100;
|
||||
BigDecimal bg = new BigDecimal(v);
|
||||
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
orderGoodsVO.setExpent(f1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderGoodsVOS.add(orderGoodsVO);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(orderGoodsVOS)){
|
||||
return orderGoodsVOS;
|
||||
}else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询员工销售排名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, String>> selectStaffSalesRank() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
List<Map<String, String>> maps = ljStaffMapper.employeeSalesMongth(storeId);
|
||||
if (maps.size()>3){
|
||||
List<Map<String, String>> maps1 = maps.subList(0, 4);
|
||||
return maps1;
|
||||
}else {
|
||||
return maps;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询本月销售额排名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, String>> selectSalesRank() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
List<Map<String, String>> maps = oilOrderMapper.oilSalesMongth(storeId);
|
||||
for (Map<String, String> map : maps) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String format = sdf.format(map.get("sales_day"));
|
||||
map.put("sales_day",format);
|
||||
}
|
||||
return maps;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询公司年度排行榜
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> selectSalesAllRank() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
HashMap<String, String> stringStringHashMap = new HashMap<>();
|
||||
//年
|
||||
Map<String, String> yeathMap = oilOrderMapper.oilSalesYeath(storeId);
|
||||
if (ObjectUtils.isNotEmpty(yeathMap.get("totalSales"))){
|
||||
stringStringHashMap.put("yeathSales",yeathMap.get("totalSales"));
|
||||
}else {
|
||||
stringStringHashMap.put("yeathSales","0");
|
||||
}
|
||||
//月
|
||||
Map<String, String> mongthMap = oilOrderMapper.oilSalesMongths(storeId);
|
||||
if (ObjectUtils.isNotEmpty(mongthMap.get("totalSales"))){
|
||||
stringStringHashMap.put("mongthSales",mongthMap.get("totalSales"));
|
||||
}else {
|
||||
stringStringHashMap.put("mongthSales","0");
|
||||
}
|
||||
//周
|
||||
Map<String, String> weekMap = oilOrderMapper.oilSalesWeek(storeId);
|
||||
if (ObjectUtils.isNotEmpty(weekMap.get("totalSales"))){
|
||||
stringStringHashMap.put("weekSales",weekMap.get("totalSales"));
|
||||
}else {
|
||||
stringStringHashMap.put("weekSales","0");
|
||||
}
|
||||
//日
|
||||
Map<String, String> dayMap = oilOrderMapper.oilSalesDay(storeId);
|
||||
if (ObjectUtils.isNotEmpty(dayMap.get("totalSales"))){
|
||||
stringStringHashMap.put("daySales",dayMap.get("totalSales"));
|
||||
}else {
|
||||
stringStringHashMap.put("daySales","0");
|
||||
}
|
||||
//总销售额
|
||||
Map<String, String> allMap = oilOrderMapper.oilSalesAll(storeId);
|
||||
if (ObjectUtils.isNotEmpty(allMap.get("totalSales"))){
|
||||
stringStringHashMap.put("allSales",allMap.get("totalSales"));
|
||||
}else {
|
||||
stringStringHashMap.put("allSales","0");
|
||||
}
|
||||
return stringStringHashMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解密方法
|
||||
* @param content
|
||||
* @param key
|
||||
* @param iv
|
||||
* @return
|
||||
*/
|
||||
public static String decrypt(String content, String key, String iv){
|
||||
try {
|
||||
byte[] encrypted1 = Base64.getDecoder().decode(content);
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
||||
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
|
||||
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
|
||||
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
|
||||
byte[] original = cipher.doFinal(encrypted1);
|
||||
return new String(original).trim();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("加密算法异常 CryptoUtil decrypt()解密方法,异常信息:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.fuint.business.largeSscreen.vo;
|
||||
|
||||
import com.fuint.business.order.entity.OilOrder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class OilOrderVO extends OilOrder implements Serializable {
|
||||
//油品类型
|
||||
private String OilType;
|
||||
//油品名称
|
||||
private String oilName;
|
||||
//销售额
|
||||
private double payAomunt;
|
||||
//增长指数
|
||||
private String exponent;
|
||||
//上涨状态
|
||||
private String status;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.fuint.business.largeSscreen.vo;
|
||||
|
||||
import com.fuint.business.order.entity.OrderGoods;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class OrderGoodsVO extends OrderGoods implements Serializable {
|
||||
//商品名称
|
||||
private String goodsName;
|
||||
//商品售出数量
|
||||
private Integer goodsNumber;
|
||||
//今天的销量
|
||||
private Integer todayCount;
|
||||
//昨天的销量
|
||||
private Integer yesTodayCount;
|
||||
private double expent;
|
||||
}
|
@ -2,6 +2,9 @@ package com.fuint.business.marketingActivity.activeDiscount.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 折扣营销表(ActiveDiscount)表数据库访问层
|
||||
@ -11,5 +14,12 @@ import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount
|
||||
*/
|
||||
public interface ActiveDiscountMapper extends BaseMapper<ActiveDiscount> {
|
||||
|
||||
/**
|
||||
* 折扣
|
||||
* @param storeId
|
||||
* @param amount
|
||||
* @return
|
||||
*/
|
||||
//List<ActiveDiscountPayVO> selectActiveDiscount(@Param("storeId") Integer storeId, @Param("amount")double amount);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,16 @@
|
||||
<?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.fuint.business.marketingActivity.activeDiscount.mapper.ActiveDiscountMapper">
|
||||
<!--<select id="selectActiveDiscount" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
|
||||
SELECT
|
||||
ad.id activeId,
|
||||
ad.NAME activeName,
|
||||
adc.amount amount,
|
||||
adc.discount discount
|
||||
FROM
|
||||
active_discount ad
|
||||
LEFT JOIN active_discount_child adc ON ad.id = adc.active_discount_id
|
||||
where ad.store_id = #{storeId}
|
||||
and adc.amount <= #{amount}
|
||||
</select>-->
|
||||
</mapper>
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.dto.ActiveDiscountDTO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountVO;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -15,6 +15,7 @@ import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount
|
||||
import com.fuint.business.marketingActivity.activeDiscount.service.ActiveDiscountChildService;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.service.ActiveDiscountService;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountVO;
|
||||
import com.fuint.business.petrolStationManagement.service.OilNameService;
|
||||
import com.fuint.business.store.service.StoreService;
|
||||
@ -51,6 +52,8 @@ public class ActiveDiscountServiceImpl extends ServiceImpl<ActiveDiscountMapper,
|
||||
private LJUserGradeService userGradeService;
|
||||
@Resource
|
||||
private OilNameService oilNameService;
|
||||
@Resource
|
||||
private ActiveDiscountMapper activeDiscountMapper;
|
||||
/**
|
||||
* 新增数据
|
||||
* @param activeDiscountDTO
|
||||
@ -254,6 +257,7 @@ public class ActiveDiscountServiceImpl extends ServiceImpl<ActiveDiscountMapper,
|
||||
return activeDiscountAppletVOS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 数组转字符串
|
||||
* @param array
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.fuint.business.marketingActivity.activeDiscount.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ActiveDiscountPayVO implements Serializable {
|
||||
//活动id
|
||||
private Integer activeId;
|
||||
//活动名称
|
||||
private String activeName;
|
||||
//满足金额
|
||||
private double amount;
|
||||
//折扣
|
||||
private double discount;
|
||||
//可用油品
|
||||
private String oilId;
|
||||
//适用会员
|
||||
private String adaptUser;
|
||||
}
|
@ -2,6 +2,7 @@ package com.fuint.business.marketingActivity.activeExchange.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.ActiveExchangeRecordDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.PaymentActiveDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.TransferDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.service.ActiveExchangeService;
|
||||
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
|
||||
@ -89,4 +90,16 @@ public class ActiveExchangeController extends BaseController {
|
||||
public ResponseObject selectAll() {
|
||||
return getSuccessResult(this.activeExchangeService.select());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* test
|
||||
* @param paymentActiveDTO
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("test")
|
||||
public ResponseObject paymentActiveVO(@Param("transferDTO") PaymentActiveDTO paymentActiveDTO) {
|
||||
return getSuccessResult(this.activeExchangeService.paymentActive(paymentActiveDTO));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.fuint.business.marketingActivity.activeExchange.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class PaymentActiveDTO implements Serializable {
|
||||
//支付类型 0:储值卡 1:囤油卡 2:现金
|
||||
private String type;
|
||||
//支付金额
|
||||
private double amount;
|
||||
//可用油品Id
|
||||
private Integer oilId;
|
||||
//会员等级
|
||||
private Integer mtUserLevel;
|
||||
}
|
@ -2,11 +2,9 @@ package com.fuint.business.marketingActivity.activeExchange.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.ActiveExchangeRecordDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.PaymentActiveDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.TransferDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ActiveAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ActiveExchangeRecordVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ExchangeFavorableVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.MaxoutVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.*;
|
||||
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchangeRecord;
|
||||
|
||||
import java.util.List;
|
||||
@ -50,4 +48,11 @@ public interface ActiveExchangeService {
|
||||
* @return
|
||||
*/
|
||||
List<ActiveAppletVO> select();
|
||||
|
||||
/**
|
||||
* 优惠活动接口
|
||||
* @param paymentActiveDTO
|
||||
* @return
|
||||
*/
|
||||
PaymentActiveVO paymentActive(PaymentActiveDTO paymentActiveDTO);
|
||||
}
|
||||
|
@ -8,16 +8,17 @@ import com.fuint.business.marketingActivity.activeConsumption.service.ActiveCons
|
||||
import com.fuint.business.marketingActivity.activeConsumption.vo.ActiveConsumptionAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscount;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscountChild;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.mapper.ActiveDiscountMapper;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.service.ActiveDiscountChildService;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.service.ActiveDiscountService;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.ActiveExchangeRecordDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.PaymentActiveDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.dto.TransferDTO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.service.ActiveExchangeService;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ActiveAppletVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ActiveExchangeRecordVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.ExchangeFavorableVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.MaxoutVO;
|
||||
import com.fuint.business.marketingActivity.activeExchange.vo.*;
|
||||
import com.fuint.business.marketingActivity.activeFullminus.entity.ActiveFullminus;
|
||||
import com.fuint.business.marketingActivity.activeFullminus.service.ActiveFullminusService;
|
||||
import com.fuint.business.marketingActivity.activeFullminus.vo.ActiveFullminusAppletVO;
|
||||
@ -34,9 +35,12 @@ import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableS
|
||||
import com.fuint.business.marketingActivity.cardValue.entity.CardValue;
|
||||
import com.fuint.business.marketingActivity.cardValue.service.CardValueService;
|
||||
import com.fuint.business.marketingActivity.cardValue.vo.CardValueAppletVO;
|
||||
import com.fuint.business.order.mapper.OilOrderMapper;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilName;
|
||||
import com.fuint.business.petrolStationManagement.service.OilNameService;
|
||||
import com.fuint.business.userManager.service.LJUserGradeService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -75,7 +79,9 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
|
||||
@Resource
|
||||
private CardValueService cardValueService;
|
||||
@Resource
|
||||
private OilNameService oilNameService;
|
||||
private ActiveDiscountMapper activeDiscountMapper;
|
||||
@Resource
|
||||
private OilOrderMapper oilOrderMapper;
|
||||
/**
|
||||
* 分页查询所有
|
||||
* @param
|
||||
@ -370,4 +376,48 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
|
||||
}
|
||||
return activeAppletVOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 优惠活动接口
|
||||
* @param paymentActiveDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public PaymentActiveVO paymentActive(PaymentActiveDTO paymentActiveDTO) {
|
||||
PaymentActiveVO paymentActiveVO = new PaymentActiveVO();
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
double amount = 0.0;
|
||||
//折扣
|
||||
List<ActiveDiscountPayVO> activeDiscountVOList = oilOrderMapper.selectActiveDiscount(storeId,paymentActiveDTO.getAmount());
|
||||
if (CollectionUtils.isNotEmpty(activeDiscountVOList)){
|
||||
for (ActiveDiscountPayVO activeDiscountPayVO : activeDiscountVOList) {
|
||||
if (activeDiscountPayVO.getOilId().contains(paymentActiveDTO.getOilId().toString()) &&
|
||||
activeDiscountPayVO.getAdaptUser().contains(paymentActiveDTO.getMtUserLevel().toString())){
|
||||
if (activeDiscountPayVO.getDiscount() * activeDiscountPayVO.getAmount() > amount){
|
||||
amount = activeDiscountPayVO.getDiscount() * activeDiscountPayVO.getAmount();
|
||||
paymentActiveVO.setActiveId(activeDiscountPayVO.getActiveId());
|
||||
paymentActiveVO.setAmount(activeDiscountPayVO.getAmount());
|
||||
paymentActiveVO.setFavorableAmount(amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//满减
|
||||
List<ActiveDiscountPayVO> activeFuletVOList = oilOrderMapper.selectActiveFule(storeId,paymentActiveDTO.getAmount());
|
||||
if (CollectionUtils.isNotEmpty(activeFuletVOList)){
|
||||
for (ActiveDiscountPayVO activeDiscountPayVO : activeFuletVOList) {
|
||||
if (activeDiscountPayVO.getOilId().contains(paymentActiveDTO.getOilId().toString()) &&
|
||||
activeDiscountPayVO.getAdaptUser().contains(paymentActiveDTO.getMtUserLevel().toString())){
|
||||
if (activeDiscountPayVO.getAmount() > amount){
|
||||
amount = activeDiscountPayVO.getDiscount() * activeDiscountPayVO.getAmount();
|
||||
paymentActiveVO.setActiveId(activeDiscountPayVO.getActiveId());
|
||||
paymentActiveVO.setAmount(activeDiscountPayVO.getAmount());
|
||||
paymentActiveVO.setFavorableAmount(amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return paymentActiveVO;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.fuint.business.marketingActivity.activeExchange.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class PaymentActiveVO implements Serializable {
|
||||
//活动id
|
||||
private Integer activeId;
|
||||
//应付金额
|
||||
private double amount;
|
||||
//优惠金额
|
||||
private double favorableAmount;
|
||||
}
|
@ -2,6 +2,7 @@ package com.fuint.business.marketingActivity.cardFule.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fuint.business.marketingActivity.cardFule.dto.CardFuelRecordDTO;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
|
||||
import com.fuint.business.marketingActivity.cardFule.service.CardFuelRecordService;
|
||||
@ -85,6 +86,17 @@ public class CardFuelRecordController extends BaseController {
|
||||
return getSuccessResult(this.cardFuelRecordService.insert(cardFuelRecord));
|
||||
}
|
||||
|
||||
/**
|
||||
* 囤油卡充值
|
||||
*
|
||||
* @param cardFuelRecordDTO 实体
|
||||
* @return 新增结果
|
||||
*/
|
||||
@PostMapping("addFuleCarRecords")
|
||||
public ResponseObject addFuleCarRecords(@RequestBody CardFuelRecordDTO cardFuelRecordDTO) throws Exception {
|
||||
return getSuccessResult(this.cardFuelRecordService.addFuleCarRecords(cardFuelRecordDTO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑数据
|
||||
*
|
||||
@ -141,5 +153,19 @@ public class CardFuelRecordController extends BaseController {
|
||||
return getSuccessResult(iPageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户屯油卡充值记录
|
||||
*/
|
||||
@GetMapping("test")
|
||||
public ResponseObject test(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
|
||||
@Param("cardFuelRecord") String cardFuelRecord) throws JsonProcessingException {
|
||||
Page page = new Page(pageNo, pageSize);
|
||||
IPage<CardFuelRecordDTO> iPageList = this.cardFuelRecordService.test(page, cardFuelRecord);
|
||||
return getSuccessResult(iPageList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,9 +5,11 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CardFuelRecordDTO extends CardFuelRecord {
|
||||
private String authCode;
|
||||
|
||||
private String recordName;
|
||||
private String obtain;
|
||||
private String authCode;
|
||||
private Double realyPayBills;
|
||||
//付款类型 1.微信 2.支付宝
|
||||
private String payType;
|
||||
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -16,6 +17,7 @@ import java.io.Serializable;
|
||||
* @since 2023-10-31 13:54:27
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
@Data
|
||||
public class CardFuelDiesel extends Model<CardFuelDiesel> {
|
||||
//主键id
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ -60,168 +62,5 @@ public class CardFuelDiesel extends Model<CardFuelDiesel> {
|
||||
//更新时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getChainStorId() {
|
||||
return chainStorId;
|
||||
}
|
||||
|
||||
public void setChainStorId(Integer chainStorId) {
|
||||
this.chainStorId = chainStorId;
|
||||
}
|
||||
|
||||
public Integer getStoreId() {
|
||||
return storeId;
|
||||
}
|
||||
|
||||
public void setStoreId(Integer storeId) {
|
||||
this.storeId = storeId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getOilType() {
|
||||
return oilType;
|
||||
}
|
||||
|
||||
public void setOilType(String oilType) {
|
||||
this.oilType = oilType;
|
||||
}
|
||||
|
||||
public Double getLockupPrice() {
|
||||
return lockupPrice;
|
||||
}
|
||||
|
||||
public void setLockupPrice(Double lockupPrice) {
|
||||
this.lockupPrice = lockupPrice;
|
||||
}
|
||||
|
||||
public Double getRechargeBalance() {
|
||||
return rechargeBalance;
|
||||
}
|
||||
|
||||
public void setRechargeBalance(Double rechargeBalance) {
|
||||
this.rechargeBalance = rechargeBalance;
|
||||
}
|
||||
|
||||
public Double getIncomeLitres() {
|
||||
return incomeLitres;
|
||||
}
|
||||
|
||||
public void setIncomeLitres(Double incomeLitres) {
|
||||
this.incomeLitres = incomeLitres;
|
||||
}
|
||||
|
||||
public Integer getPoints() {
|
||||
return points;
|
||||
}
|
||||
|
||||
public void setPoints(Integer points) {
|
||||
this.points = points;
|
||||
}
|
||||
|
||||
public String getActiveTime() {
|
||||
return activeTime;
|
||||
}
|
||||
|
||||
public void setActiveTime(String activeTime) {
|
||||
this.activeTime = activeTime;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getActiveStatus() {
|
||||
return activeStatus;
|
||||
}
|
||||
|
||||
public void setActiveStatus(String activeStatus) {
|
||||
this.activeStatus = activeStatus;
|
||||
}
|
||||
|
||||
public String getActivityProgress() {
|
||||
return activityProgress;
|
||||
}
|
||||
|
||||
public void setActivityProgress(String activityProgress) {
|
||||
this.activityProgress = activityProgress;
|
||||
}
|
||||
|
||||
public String getCreateBy() {
|
||||
return createBy;
|
||||
}
|
||||
|
||||
public void setCreateBy(String createBy) {
|
||||
this.createBy = createBy;
|
||||
}
|
||||
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Date createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public String getUpdateBy() {
|
||||
return updateBy;
|
||||
}
|
||||
|
||||
public void setUpdateBy(String updateBy) {
|
||||
this.updateBy = updateBy;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取主键值
|
||||
*
|
||||
* @return 主键值
|
||||
*/
|
||||
@Override
|
||||
protected Serializable pkVal() {
|
||||
return this.id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,8 @@ package com.fuint.business.marketingActivity.cardFule.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fuint.api.fuyou.entity.ReturnParameter;
|
||||
import com.fuint.business.marketingActivity.cardFule.dto.CardFuelRecordDTO;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
|
||||
import com.fuint.business.marketingActivity.cardValue.dto.CardValueRecordDTO;
|
||||
@ -87,4 +89,14 @@ public interface CardFuelRecordService {
|
||||
* @return
|
||||
*/
|
||||
IPage<CardFuelRecord> queryByPageApplet(Page page, CardFuelRecord cardFuelRecord);
|
||||
|
||||
/**
|
||||
* 囤油卡充值
|
||||
* @param cardFuelRecordDTO
|
||||
* @return
|
||||
*/
|
||||
ReturnParameter addFuleCarRecords(CardFuelRecordDTO cardFuelRecordDTO) throws Exception;
|
||||
|
||||
|
||||
IPage<CardFuelRecordDTO> test(Page page, String cardFuelRecord) throws JsonProcessingException;
|
||||
}
|
||||
|
@ -7,30 +7,49 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import com.fuint.api.fuyou.entity.ReceiveParameter;
|
||||
import com.fuint.api.fuyou.entity.ReturnParameter;
|
||||
import com.fuint.api.fuyou.service.FyPayService;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.business.integral.entity.IntegralDetail;
|
||||
import com.fuint.business.integral.service.IntegralDetailService;
|
||||
import com.fuint.business.marketingActivity.cardExchange.entity.CardExchange;
|
||||
import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorable;
|
||||
import com.fuint.business.marketingActivity.cardFule.dto.CardFuelRecordDTO;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelChange;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelDiesel;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
|
||||
import com.fuint.business.marketingActivity.cardFule.mapper.CardFuelRecordMapper;
|
||||
import com.fuint.business.marketingActivity.cardFule.service.CardFuelChangeService;
|
||||
import com.fuint.business.marketingActivity.cardFule.service.CardFuelDieselService;
|
||||
import com.fuint.business.marketingActivity.cardFule.service.CardFuelRecordService;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.service.CardFuleOrdersService;
|
||||
import com.fuint.business.marketingActivity.cardValue.dto.CardValueRecordDTO;
|
||||
import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
|
||||
import com.fuint.business.marketingActivity.cardValue.vo.CardValueVO;
|
||||
import com.fuint.business.marketingActivity.cardValueOrders.entity.CardValueOrders;
|
||||
import com.fuint.business.member.entity.LJStaff;
|
||||
import com.fuint.business.member.service.ILJStaffService;
|
||||
import com.fuint.business.order.entity.CardBalanceChange;
|
||||
import com.fuint.business.order.entity.OilBalanceChange;
|
||||
import com.fuint.business.order.service.OilBalanceChangeService;
|
||||
import com.fuint.business.userManager.entity.UserBalance;
|
||||
import com.fuint.business.userManager.mapper.LJUserMapper;
|
||||
import com.fuint.business.userManager.service.UserBalanceService;
|
||||
import com.fuint.business.userManager.vo.LJUserVo;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -57,11 +76,17 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
|
||||
@Resource
|
||||
private UserBalanceService userBalanceService;
|
||||
@Resource
|
||||
private CardFuelRecordService cardFuelRecordService;
|
||||
@Resource
|
||||
private IntegralDetailService integralDetailService;
|
||||
@Resource
|
||||
private CardFuelChangeService cardFuelChangeService;
|
||||
@Resource
|
||||
private ILJStaffService mtStaffService;
|
||||
@Resource
|
||||
private CardFuelDieselService cardFuelDieselService;
|
||||
@Resource
|
||||
private CardFuleOrdersService cardFuleOrdersService;
|
||||
@Resource
|
||||
private OilBalanceChangeService oilBalanceChangeService;
|
||||
/**
|
||||
* 通过ID查询单条数据
|
||||
*
|
||||
@ -339,4 +364,178 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
|
||||
return this.cardFuelRecordMapper.queryByPageApplet(page,cardFuelRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 囤油卡充值
|
||||
* @param cardFuelRecordDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ReturnParameter addFuleCarRecords(CardFuelRecordDTO cardFuelRecordDTO) throws Exception {
|
||||
Double cardFavorableValue = 0.0;
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
//订单信息
|
||||
CardFuleOrders cardFuleOrders = new CardFuleOrders();
|
||||
//会员信息
|
||||
LJUserVo ljUserVo = ljUserMapper.selectUserById(nowAccountInfo.getId());
|
||||
//员工信息
|
||||
LJStaff ljStaff = mtStaffService.selectStaffById(cardFuelRecordDTO.getMtStaffId());
|
||||
//查询囤油卡信息
|
||||
CardFuelDiesel cardFuelDiesel = cardFuelDieselService.getById(cardFuelRecordDTO.getId());
|
||||
cardFuleOrders.setCardFuleId(cardFuelDiesel.getId());
|
||||
cardFuleOrders.setAmount(cardFuelDiesel.getRechargeBalance());
|
||||
cardFuleOrders.setPayAmount(cardFuelDiesel.getRechargeBalance());
|
||||
cardFuleOrders.setPoints(cardFuelDiesel.getPoints());
|
||||
cardFuleOrders.setType(cardFuelDiesel.getType());
|
||||
cardFuleOrders.setOilType(cardFuelDiesel.getOilType());
|
||||
cardFuleOrders.setIncomeLitres(cardFuelDiesel.getIncomeLitres());
|
||||
cardFuleOrders.setLockupPrice(cardFuelDiesel.getLockupPrice());
|
||||
//订单号
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String timestamp = dateFormat.format(new Date());
|
||||
String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6);
|
||||
String orderNo = "cardfule"+timestamp+randomString;
|
||||
cardFuleOrders.setOrderNo(orderNo);
|
||||
//付款类型
|
||||
cardFuleOrders.setPayType(cardFuelRecordDTO.getPayType());
|
||||
//用户信息
|
||||
cardFuleOrders.setStoreId(ljUserVo.getStoreId());
|
||||
cardFuleOrders.setMtUserId(ljUserVo.getId());
|
||||
cardFuleOrders.setName(ljUserVo.getName());
|
||||
cardFuleOrders.setMobile(ljUserVo.getMobile());
|
||||
//员工信息
|
||||
cardFuleOrders.setStaffId(ljStaff.getId());
|
||||
cardFuleOrders.setRealName(ljStaff.getRealName());
|
||||
cardFuleOrders.setStaffMobile(ljStaff.getMobile());
|
||||
//订单金额
|
||||
cardFuleOrders.setAmount(0.02);
|
||||
/*
|
||||
//订单金额
|
||||
cardFuleOrders.setAmount(cardFuelDiesel.getRechargeBalance());
|
||||
//支付金额
|
||||
cardFuleOrders.setPayAmount(cardFuelDiesel.getRechargeBalance());
|
||||
}*/
|
||||
//支付金额
|
||||
cardFuleOrders.setPayAmount(0.01);
|
||||
cardFuleOrders.setStatus("unpaid");
|
||||
//生成订单
|
||||
boolean save = cardFuleOrdersService.save(cardFuleOrders);
|
||||
if (save) {
|
||||
//生成订单之后调用支付接口
|
||||
ReceiveParameter receiveParameter = new ReceiveParameter();
|
||||
//封装支付参数
|
||||
receiveParameter.setOrderNo(orderNo);
|
||||
receiveParameter.setType("5");
|
||||
receiveParameter.setStoreId(nowAccountInfo.getStoreId());
|
||||
receiveParameter.setGoodsMoney(cardFuleOrders.getPayAmount());
|
||||
receiveParameter.setPayType(cardFuleOrders.getPayType());
|
||||
receiveParameter.setUserId(nowAccountInfo.getId());
|
||||
receiveParameter.setContent("囤油卡充值");
|
||||
// 调用支付接口
|
||||
try {
|
||||
map = fyPayService.applet(receiveParameter);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (map.get("code").equals("success")){
|
||||
return JSONObject.parseObject(JSONObject.toJSONString(map.get("data")),ReturnParameter.class);
|
||||
}else {
|
||||
throw new Exception(map.get("msg").toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CardFuelRecordDTO> test(Page page, String cardFuelRecord) throws JsonProcessingException {
|
||||
fuleRechargeFinallDeal(cardFuelRecord);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 屯油卡充值后续处理
|
||||
* @param orderNo
|
||||
*/
|
||||
@Transactional
|
||||
public void fuleRechargeFinallDeal(String orderNo) throws JsonProcessingException {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
UserBalance userBalance1 = new UserBalance();
|
||||
CardFuelRecord cardFuelRecord = new CardFuelRecord();
|
||||
OilBalanceChange oilBalanceChange = new OilBalanceChange();
|
||||
double afterLitres = 0.0;
|
||||
//订单详情
|
||||
CardFuleOrders cardFuleOrders = cardFuleOrdersService.getOneByOrderNo(orderNo);
|
||||
//更新订单状态
|
||||
cardFuleOrders.setStatus("paid");
|
||||
cardFuleOrders.setPayTime(new Date());
|
||||
cardFuleOrdersService.updateById(cardFuleOrders);
|
||||
//用户余额
|
||||
UserBalance userBalance = userBalanceService.selectUserBalance(cardFuleOrders.getMtUserId());
|
||||
//用户 (新用户新建 老用户叠加)
|
||||
if (ObjectUtils.isNotEmpty(userBalance)){
|
||||
//积分
|
||||
if (ObjectUtils.isNotEmpty(userBalance.getPoints()) && ObjectUtils.isNotEmpty(cardFuleOrders.getPoints())){
|
||||
userBalance.setPoints(userBalance.getPoints() + cardFuleOrders.getPoints());
|
||||
}
|
||||
//屯油卡余油
|
||||
if (ObjectUtils.isNotEmpty(userBalance.getRefuelMoney()) && ObjectUtils.isNotEmpty(cardFuleOrders.getIncomeLitres())
|
||||
&& ObjectUtils.isNotEmpty(cardFuleOrders.getType()) && ObjectUtils.isNotEmpty(cardFuleOrders.getOilType())){
|
||||
String refuelMoney = userBalance.getRefuelMoney();
|
||||
List<JSONObject> jsonObjectList = JSONArray.parseArray(refuelMoney, JSONObject.class);
|
||||
for (JSONObject jsonObject : jsonObjectList) {
|
||||
|
||||
}
|
||||
//String type = json.getString("type");
|
||||
|
||||
//afterLitres = userBalance.getRefuelMoney() + cardFuleOrders.getIncomeLitres();
|
||||
//userBalance.setCardBalance(afterBalance);
|
||||
}
|
||||
userBalanceService.updateUserBalance(userBalance);
|
||||
}else {
|
||||
userBalance1.setMtUserId(cardFuleOrders.getMtUserId());
|
||||
userBalance1.setStoreId(cardFuleOrders.getStoreId());
|
||||
userBalance1.setChainStoreId(nowAccountInfo.getChainStoreId());
|
||||
//积分
|
||||
if (ObjectUtils.isNotEmpty(cardFuleOrders.getPoints())){
|
||||
userBalance1.setPoints(cardFuleOrders.getPoints());
|
||||
}
|
||||
//油量
|
||||
/*if (ObjectUtils.isNotEmpty(userBalance.getRefuelMoney()) && ObjectUtils.isNotEmpty(cardValueOrders.getAmount())){
|
||||
userBalance.setCardBalance(userBalance.getCardBalance() + cardValueOrders.getAmount());
|
||||
}*/
|
||||
userBalanceService.save(userBalance1);
|
||||
}
|
||||
//用户余额变化记录
|
||||
oilBalanceChange.setUserId(cardFuleOrders.getMtUserId());
|
||||
oilBalanceChange.setChainStoreId(nowAccountInfo.getChainStoreId());
|
||||
oilBalanceChange.setStoreId(cardFuleOrders.getStoreId());
|
||||
oilBalanceChange.setChangeType("1");
|
||||
oilBalanceChange.setFromType("囤油卡充值");
|
||||
oilBalanceChange.setOilBalance(cardFuleOrders.getIncomeLitres());
|
||||
//变化之后的余油
|
||||
//oilBalanceChange.setAfterOilChange(cardFuleOrders.getIncomeLitres());
|
||||
oilBalanceChange.setType(cardFuleOrders.getType());
|
||||
oilBalanceChange.setOrderNo(cardFuleOrders.getOrderNo());
|
||||
oilBalanceChange.setOilType(cardFuleOrders.getOilType());
|
||||
oilBalanceChangeService.save(oilBalanceChange);
|
||||
//生成充值记录
|
||||
cardFuelRecord.setMtUserId(cardFuleOrders.getMtUserId());
|
||||
cardFuelRecord.setName(cardFuleOrders.getName());
|
||||
cardFuelRecord.setMobile(cardFuleOrders.getMobile());
|
||||
cardFuelRecord.setMtStaffId(cardFuleOrders.getStaffId());
|
||||
cardFuelRecord.setRealName(cardFuleOrders.getRealName());
|
||||
cardFuelRecord.setStaffMobile(cardFuleOrders.getStaffMobile());
|
||||
cardFuelRecord.setCardFuelId(cardFuleOrders.getCardFuleId());
|
||||
cardFuelRecord.setRechargeBalance(cardFuleOrders.getPayAmount());
|
||||
cardFuelRecord.setIncomeLitres(cardFuleOrders.getIncomeLitres());
|
||||
cardFuelRecord.setPaymentType(cardFuleOrders.getPaymentType());
|
||||
cardFuelRecord.setPoints(cardFuleOrders.getPoints());
|
||||
cardFuelRecord.setPayStatus("paid");
|
||||
cardFuelRecord.setStoreId(cardFuleOrders.getStoreId());
|
||||
cardFuelRecord.setPaymentNo(cardFuleOrders.getOrderNo());
|
||||
cardFuelRecord.setChainStoreId(nowAccountInfo.getChainStoreId());
|
||||
cardFuelRecord.setType(cardFuleOrders.getType());
|
||||
cardFuelRecord.setOilType(cardFuleOrders.getOilType());
|
||||
cardFuelRecordMapper.insert(cardFuelRecord);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,88 @@
|
||||
package com.fuint.business.marketingActivity.cardFuleOrders.controller;
|
||||
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.service.CardFuleOrdersService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 囤油充值订单(CardFuleOrders)表控制层
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-25 15:49:26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("business/marketingActivity/cardFuleOrders")
|
||||
public class CardFuleOrdersController extends BaseController {
|
||||
/**
|
||||
* 服务对象
|
||||
*/
|
||||
@Resource
|
||||
private CardFuleOrdersService cardFuleOrdersService;
|
||||
|
||||
/**
|
||||
* 分页查询所有数据
|
||||
*
|
||||
* @param page 分页对象
|
||||
* @param cardFuleOrders 查询实体
|
||||
* @return 所有数据
|
||||
*/
|
||||
@GetMapping
|
||||
public ResponseObject selectAll(Page<CardFuleOrders> page, CardFuleOrders cardFuleOrders) {
|
||||
return getSuccessResult(this.cardFuleOrdersService.page(page, new QueryWrapper<>(cardFuleOrders)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过主键查询单条数据
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 单条数据
|
||||
*/
|
||||
@GetMapping("{id}")
|
||||
public ResponseObject selectOne(@PathVariable Serializable id) {
|
||||
return getSuccessResult(this.cardFuleOrdersService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增数据
|
||||
*
|
||||
* @param cardFuleOrders 实体对象
|
||||
* @return 新增结果
|
||||
*/
|
||||
@PostMapping
|
||||
public ResponseObject insert(@RequestBody CardFuleOrders cardFuleOrders) {
|
||||
return getSuccessResult(this.cardFuleOrdersService.save(cardFuleOrders));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数据
|
||||
*
|
||||
* @param cardFuleOrders 实体对象
|
||||
* @return 修改结果
|
||||
*/
|
||||
@PutMapping
|
||||
public ResponseObject update(@RequestBody CardFuleOrders cardFuleOrders) {
|
||||
return getSuccessResult(this.cardFuleOrdersService.updateById(cardFuleOrders));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*
|
||||
* @param idList 主键结合
|
||||
* @return 删除结果
|
||||
*/
|
||||
@DeleteMapping
|
||||
public ResponseObject delete(@RequestParam("idList") List<Long> idList) {
|
||||
return getSuccessResult(this.cardFuleOrdersService.removeByIds(idList));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,81 @@
|
||||
package com.fuint.business.marketingActivity.cardFuleOrders.entity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 囤油充值订单(CardFuleOrders)表实体类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-25 15:49:26
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
@Data
|
||||
public class CardFuleOrders extends Model<CardFuleOrders> {
|
||||
//主键id
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
//支付类型
|
||||
private String payType;
|
||||
//订单号
|
||||
private String orderNo;
|
||||
//所属店铺ID
|
||||
private Integer storeId;
|
||||
//订单金额
|
||||
private Double amount;
|
||||
//支付金额
|
||||
private Double payAmount;
|
||||
//优惠金额
|
||||
private Double discount;
|
||||
//锁价单价
|
||||
private Double lockupPrice;
|
||||
//所得升数
|
||||
private Double incomeLitres;
|
||||
//油卡类型 0:汽油卡 1:柴油卡 2:天然气
|
||||
private String type;
|
||||
//油品类型:0:0# 1:-10# 2:京0# 3:92# 4:95# 98# 3:京92# 4:京95#
|
||||
private String oilType;
|
||||
//用户备注
|
||||
private String remark;
|
||||
//订单状态
|
||||
private String status;
|
||||
//支付时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date payTime;
|
||||
//会员id
|
||||
private Integer mtUserId;
|
||||
//会员名字
|
||||
private String name;
|
||||
//会员手机号码
|
||||
private String mobile;
|
||||
//员工id
|
||||
private Integer staffId;
|
||||
//员工姓名
|
||||
private String realName;
|
||||
//员工手机号码
|
||||
private String staffMobile;
|
||||
//囤油卡id
|
||||
private Integer cardFuleId;
|
||||
//支付方式
|
||||
private String paymentType;
|
||||
//积分
|
||||
private Integer points;
|
||||
//创建者
|
||||
private String createBy;
|
||||
//创建时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
//更新者
|
||||
private String updateBy;
|
||||
//更新时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.fuint.business.marketingActivity.cardFuleOrders.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders;
|
||||
import com.fuint.business.marketingActivity.cardValueOrders.entity.CardValueOrders;
|
||||
|
||||
/**
|
||||
* 囤油充值订单(CardFuleOrders)表数据库访问层
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-25 15:49:26
|
||||
*/
|
||||
public interface CardFuleOrdersMapper extends BaseMapper<CardFuleOrders> {
|
||||
/**
|
||||
* 根据订单编号返回订单信息
|
||||
* @param orderNo
|
||||
* @return
|
||||
*/
|
||||
CardFuleOrders getOneByOrderNo(String orderNo);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,26 @@
|
||||
<?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.fuint.business.marketingActivity.cardFuleOrders.mapper.CardFuleOrdersMapper">
|
||||
<select id="getOneByOrderNo" resultType="com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders">
|
||||
select * from card_fule_orders where order_no = #{orderNo}
|
||||
</select>
|
||||
<!--<sql id="selectOrders">
|
||||
select * from card_value_orders
|
||||
</sql>
|
||||
<select id="selectCardValueOrders"
|
||||
resultType="com.fuint.business.marketingActivity.cardValueOrders.entity.CardValueOrders">
|
||||
<include refid="selectOrders"></include>
|
||||
<where>
|
||||
<if test="order.userId != null and order.userId != ''">
|
||||
and user_id = #{order.userId}
|
||||
</if>
|
||||
<if test="order.status != null and order.status != ''">
|
||||
and status = #{order.status}
|
||||
</if>
|
||||
</where>
|
||||
order by pay_time desc
|
||||
</select>-->
|
||||
</mapper>
|
||||
|
||||
|
||||
|
@ -0,0 +1,16 @@
|
||||
package com.fuint.business.marketingActivity.cardFuleOrders.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders;
|
||||
|
||||
/**
|
||||
* 囤油充值订单(CardFuleOrders)表服务接口
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-25 15:49:26
|
||||
*/
|
||||
public interface CardFuleOrdersService extends IService<CardFuleOrders> {
|
||||
|
||||
CardFuleOrders getOneByOrderNo(String orderNo);
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
package com.fuint.business.marketingActivity.cardFuleOrders.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.mapper.CardFuleOrdersMapper;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.entity.CardFuleOrders;
|
||||
import com.fuint.business.marketingActivity.cardFuleOrders.service.CardFuleOrdersService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 囤油充值订单(CardFuleOrders)表服务实现类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-25 15:49:27
|
||||
*/
|
||||
@Service("cardFuleOrdersService")
|
||||
public class CardFuleOrdersServiceImpl extends ServiceImpl<CardFuleOrdersMapper, CardFuleOrders> implements CardFuleOrdersService {
|
||||
|
||||
@Resource
|
||||
private CardFuleOrdersMapper cardFuleOrdersMapper;
|
||||
/**
|
||||
* 根据订单编号查询订单信息
|
||||
* @param orderNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public CardFuleOrders getOneByOrderNo(String orderNo) {
|
||||
return cardFuleOrdersMapper.getOneByOrderNo(orderNo);
|
||||
}
|
||||
}
|
||||
|
@ -574,7 +574,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
}
|
||||
|
||||
/**
|
||||
* 充值后续处理
|
||||
* 储值卡充值后续处理
|
||||
* @param orderNo
|
||||
*/
|
||||
@Transactional
|
||||
|
@ -39,5 +39,6 @@ public interface LJStaffMapper extends BaseMapper<LJStaff> {
|
||||
int auditPrem(@Param("id")Integer id,@Param("auditPrem") String auditPrem);
|
||||
|
||||
List<Map<String,String>> employeeSales(@Param("storeId") Integer storeId);
|
||||
List<Map<String,String>> employeeSalesMongth(@Param("storeId") Integer storeId);
|
||||
|
||||
}
|
||||
|
@ -58,4 +58,27 @@ where ms.store_id = #{storeId}
|
||||
ORDER BY
|
||||
totalSum DESC
|
||||
</select>
|
||||
|
||||
<select id="employeeSalesMongth" resultType="java.util.Map">
|
||||
SELECT
|
||||
ms.id,
|
||||
ms.real_name realName,
|
||||
COALESCE(SUM(oo.pay_amount), 0) AS oilSum,
|
||||
COALESCE(SUM(cvr.recharge_balance), 0) AS cardSum,
|
||||
COALESCE(SUM(cfr.recharge_balance), 0) AS fuelSum,
|
||||
COALESCE(SUM(oo.pay_amount), 0) +
|
||||
COALESCE(SUM(cvr.recharge_balance), 0) +
|
||||
COALESCE(SUM(cfr.recharge_balance), 0) AS totalSum
|
||||
FROM
|
||||
mt_staff ms
|
||||
LEFT JOIN oil_order oo ON ms.id = oo.staff_id
|
||||
LEFT JOIN card_value_record cvr ON ms.id = cvr.mt_staff_id
|
||||
LEFT JOIN card_fuel_record cfr ON ms.id = cfr.mt_staff_id
|
||||
where ms.store_id = #{storeId}
|
||||
/*and date_format(ms.create_time,'%Y-%m') = date_format(now(),'%Y-%m')*/
|
||||
GROUP BY
|
||||
ms.id, ms.real_name
|
||||
ORDER BY
|
||||
totalSum DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -0,0 +1,94 @@
|
||||
package com.fuint.business.order.controller;
|
||||
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.api.ApiController;
|
||||
import com.baomidou.mybatisplus.extension.api.R;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.order.entity.CardBalanceChange;
|
||||
import com.fuint.business.order.entity.OilBalanceChange;
|
||||
import com.fuint.business.order.service.OilBalanceChangeService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 余油变化表(OilBalanceChange)表控制层
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-26 09:33:33
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("business/oilBalanceChange")
|
||||
public class OilBalanceChangeController extends BaseController {
|
||||
/**
|
||||
* 服务对象
|
||||
*/
|
||||
@Resource
|
||||
private OilBalanceChangeService oilBalanceChangeService;
|
||||
|
||||
/**
|
||||
* 分页查询所有数据
|
||||
* @param oilBalanceChange
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping
|
||||
public ResponseObject selectAll(OilBalanceChange oilBalanceChange,
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
return getSuccessResult(this.oilBalanceChangeService.page(page, new QueryWrapper<>(oilBalanceChange)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过主键查询单条数据
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 单条数据
|
||||
*/
|
||||
@GetMapping("{id}")
|
||||
public ResponseObject selectOne(@PathVariable Serializable id) {
|
||||
return getSuccessResult(this.oilBalanceChangeService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增数据
|
||||
*
|
||||
* @param oilBalanceChange 实体对象
|
||||
* @return 新增结果
|
||||
*/
|
||||
@PostMapping
|
||||
public ResponseObject insert(@RequestBody OilBalanceChange oilBalanceChange) {
|
||||
return getSuccessResult(this.oilBalanceChangeService.save(oilBalanceChange));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数据
|
||||
*
|
||||
* @param oilBalanceChange 实体对象
|
||||
* @return 修改结果
|
||||
*/
|
||||
@PutMapping
|
||||
public ResponseObject update(@RequestBody OilBalanceChange oilBalanceChange) {
|
||||
return getSuccessResult(this.oilBalanceChangeService.updateById(oilBalanceChange));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*
|
||||
* @param idList 主键结合
|
||||
* @return 删除结果
|
||||
*/
|
||||
@DeleteMapping
|
||||
public ResponseObject delete(@RequestParam("idList") List<Long> idList) {
|
||||
return getSuccessResult(this.oilBalanceChangeService.removeByIds(idList));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,58 @@
|
||||
package com.fuint.business.order.entity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 余油变化表(OilBalanceChange)表实体类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-26 09:33:33
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
@Data
|
||||
public class OilBalanceChange extends Model<OilBalanceChange> {
|
||||
//主键id
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
//用户id
|
||||
private Integer userId;
|
||||
//连锁店id
|
||||
private Integer chainStoreId;
|
||||
//油站id
|
||||
private Integer storeId;
|
||||
//油卡类型 0:汽油卡 1:柴油卡 2:天然气
|
||||
private String type;
|
||||
//油号id
|
||||
private Integer oilNumberId;
|
||||
//油品类型:0:0# 1:-10# 2:京0# 3:92# 4:95# 98# 3:京92# 4:京95#
|
||||
private String oilType;
|
||||
//余额变化类型 0:-减少 1:增加
|
||||
private String changeType;
|
||||
//消费来源
|
||||
private String fromType;
|
||||
//余油变化值
|
||||
private Double oilBalance;
|
||||
//变化之后的余油
|
||||
private Double afterOilChange;
|
||||
//订单号
|
||||
private String orderNo;
|
||||
//创建时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
//创建人
|
||||
private String createBy;
|
||||
//更新时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
//更新人
|
||||
private String updateBy;
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.fuint.business.order.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.business.order.entity.OilBalanceChange;
|
||||
|
||||
/**
|
||||
* 余油变化表(OilBalanceChange)表数据库访问层
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-26 09:33:33
|
||||
*/
|
||||
public interface OilBalanceChangeMapper extends BaseMapper<OilBalanceChange> {
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package com.fuint.business.order.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.largeSscreen.vo.OilOrderVO;
|
||||
import com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO;
|
||||
import com.fuint.business.order.entity.OilOrder;
|
||||
import com.fuint.business.order.vo.Excel.OilOrderExcel;
|
||||
import com.fuint.business.order.vo.OilOrderVo;
|
||||
@ -50,6 +52,42 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
|
||||
|
||||
List<Map<String, String>> oilSales(@Param("storeId") Integer storeId);
|
||||
|
||||
Map<String, String> oilSalesYeath(@Param("storeId") Integer storeId);
|
||||
List<Map<String, String>> oilSalesMongth(@Param("storeId") Integer storeId);
|
||||
Map<String, String> oilSalesMongths(@Param("storeId") Integer storeId);
|
||||
Map<String, String> oilSalesWeek(@Param("storeId") Integer storeId);
|
||||
Map<String, String> oilSalesDay(@Param("storeId") Integer storeId);
|
||||
Map<String, String> oilSalesAll(@Param("storeId") Integer storeId);
|
||||
|
||||
// List<Map<String, String>> salesByOilProductByWeek(@Param("list") List<OilNumber> oilName,@Param("storeId") Integer storeId);
|
||||
List<Map<String, String>> salesByOilProduct(@Param("list") List<OilNumber> oilName,@Param("storeId") Integer storeId,@Param("type") String type);
|
||||
|
||||
/**
|
||||
* 查询油品销售排名本月
|
||||
* @return
|
||||
*/
|
||||
List<OilOrderVO> selectOilSalesRank(Integer storeId);
|
||||
|
||||
/**
|
||||
* 查询油品销售排名昨日
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
List<OilOrderVO> selectOilSalesRankYestoday(int i);
|
||||
|
||||
/**
|
||||
* 折扣
|
||||
* @param storeId
|
||||
* @param amount
|
||||
* @return
|
||||
*/
|
||||
List<ActiveDiscountPayVO> selectActiveDiscount(@Param("storeId") Integer storeId, @Param("amount")double amount);
|
||||
|
||||
/**
|
||||
* 满减
|
||||
* @param storeId
|
||||
* @param amount
|
||||
* @return
|
||||
*/
|
||||
List<ActiveDiscountPayVO> selectActiveFule(@Param("storeId") Integer storeId, @Param("amount")double amount);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.fuint.business.order.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.business.largeSscreen.vo.OrderGoodsVO;
|
||||
import com.fuint.business.order.entity.OrderGoods;
|
||||
import com.fuint.business.order.vo.OrderGoodsVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -13,4 +14,18 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
|
||||
* @return
|
||||
*/
|
||||
public List<OrderGoodsVo> selectOrderGoods(@Param("orderId") int orderId);
|
||||
|
||||
/**
|
||||
* 查询商品今天销售量
|
||||
* @param storeId
|
||||
* @return
|
||||
*/
|
||||
List<OrderGoodsVO> selectGoodsSalesRank(Integer storeId);
|
||||
|
||||
/**
|
||||
* 查询商品昨天销售量
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
List<OrderGoodsVO> selectGoodsSalesRankYestoday(int i);
|
||||
}
|
||||
|
@ -214,6 +214,58 @@
|
||||
ORDER BY
|
||||
date_range.date
|
||||
</select>
|
||||
<select id="oilSalesMongth" resultType="java.util.Map">
|
||||
SELECT
|
||||
date_range.date AS sales_day,
|
||||
COALESCE(SUM(oil_order.pay_amount), 0) AS total_sales
|
||||
FROM
|
||||
(
|
||||
SELECT CURDATE() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS date
|
||||
FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
|
||||
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
|
||||
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) c
|
||||
) date_range
|
||||
LEFT JOIN
|
||||
oil_order ON DATE(oil_order.create_time) = date_range.date
|
||||
WHERE
|
||||
store_id = #{storeId}
|
||||
/*and
|
||||
date_format(create_time,'%Y-%m') = date_format(now(),'%Y-%m')*/
|
||||
GROUP BY
|
||||
date_range.date
|
||||
ORDER BY
|
||||
date_range.date
|
||||
</select>
|
||||
|
||||
<select id="oilSalesYeath" resultType="java.util.Map">
|
||||
select SUM(pay_amount) totalSales
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
and date_format(create_time,'%Y') = date_format(now(),'%Y')
|
||||
</select>
|
||||
<select id="oilSalesMongths" resultType="java.util.Map">
|
||||
select SUM(pay_amount) totalSales
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
and date_format(create_time,'%Y-%m') = date_format(now(),'%Y-%m')
|
||||
</select>
|
||||
<select id="oilSalesWeek" resultType="java.util.Map">
|
||||
select SUM(pay_amount) totalSales
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
and YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now())
|
||||
</select>
|
||||
<select id="oilSalesDay" resultType="java.util.Map">
|
||||
select SUM(pay_amount) totalSales
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
and DATE(create_time) = curdate()
|
||||
</select>
|
||||
<select id="oilSalesAll" resultType="java.util.Map">
|
||||
select SUM(pay_amount) totalSales
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
</select>
|
||||
<!-- COUNT(*) AS count-->
|
||||
<!-- -- and store_id = #{storeId}-->
|
||||
|
||||
@ -260,4 +312,56 @@
|
||||
year_week
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
<select id="selectOilSalesRank" resultType="com.fuint.business.largeSscreen.vo.OilOrderVO"
|
||||
parameterType="integer">
|
||||
SELECT ona.oil_type OilType, ona.oil_name oilName, SUM(oor.pay_amount) payAomunt
|
||||
from oil_order oor
|
||||
left join oil_name ona on oor.oils = ona.id
|
||||
where store_id = #{storeId}
|
||||
and DATE(oor.create_time) = curdate()
|
||||
GROUP BY oils
|
||||
ORDER BY payAomunt desc
|
||||
limit 5
|
||||
</select>
|
||||
<select id="selectOilSalesRankYestoday" resultType="com.fuint.business.largeSscreen.vo.OilOrderVO"
|
||||
parameterType="integer">
|
||||
SELECT ona.oil_type OilType, ona.oil_name oilName, SUM(oor.pay_amount) payAomunt
|
||||
from oil_order oor
|
||||
left join oil_name ona on oor.oils = ona.id
|
||||
where store_id = #{storeId}
|
||||
and date(oor.create_time) = date_sub(curdate(),interval 1 day)
|
||||
GROUP BY oils
|
||||
ORDER BY payAomunt desc
|
||||
</select>
|
||||
|
||||
<select id="selectActiveDiscount" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
|
||||
SELECT
|
||||
ad.id activeId,
|
||||
ad.NAME activeName,
|
||||
ad.diesel_user_level adaptUser,
|
||||
ad.adapt_oil oilId,
|
||||
adc.amount amount,
|
||||
adc.discount discount
|
||||
FROM
|
||||
active_discount ad
|
||||
LEFT JOIN active_discount_child adc ON ad.id = adc.active_discount_id
|
||||
where ad.store_id = #{storeId}
|
||||
and adc.amount <= #{amount}
|
||||
</select>
|
||||
|
||||
<select id="selectActiveFule" resultType="com.fuint.business.marketingActivity.activeDiscount.vo.ActiveDiscountPayVO">
|
||||
SELECT
|
||||
af.id activeId,
|
||||
af.NAME activeName,
|
||||
af.diesel_user_level adaptUser,
|
||||
af.adapt_oil oilId,
|
||||
adc.amount amount,
|
||||
adc.deduction_amount discount
|
||||
FROM
|
||||
active_fullminus af
|
||||
LEFT JOIN active_discount_child adc ON af.id = adc.active_discount_id
|
||||
where af.store_id = #{storeId}
|
||||
and adc.amount <= #{amount}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
@ -12,4 +12,28 @@
|
||||
mog.order_id = #{orderId}
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
<select id="selectGoodsSalesRank" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
|
||||
SELECT cg.name goodsName, SUM(mog.num) goodsNumber
|
||||
from mt_order_goods mog
|
||||
left join mt_order mo on mo.id = mog.order_id
|
||||
left join mt_goods mg on mog.goods_id = mg.id
|
||||
left join cvs_goods cg on mg.cvs_good_id = cg.id
|
||||
where mo.store_id = #{storeId}
|
||||
and DATE(mo.create_time) = curdate()
|
||||
GROUP BY cg.name
|
||||
ORDER BY goodsNumber desc
|
||||
limit 3
|
||||
</select>
|
||||
|
||||
<select id="selectGoodsSalesRankYestoday" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
|
||||
SELECT cg.name goodsName, SUM(mog.num) goodsNumber
|
||||
from mt_order_goods mog
|
||||
left join mt_order mo on mo.id = mog.order_id
|
||||
left join mt_goods mg on mog.goods_id = mg.id
|
||||
left join cvs_goods cg on mg.cvs_good_id = cg.id
|
||||
where mo.store_id = #{storeId}
|
||||
and date(mo.create_time) = date_sub(curdate(),interval 1 day)
|
||||
GROUP BY cg.name
|
||||
ORDER BY goodsNumber desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.fuint.business.order.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.order.entity.OilBalanceChange;
|
||||
|
||||
/**
|
||||
* 余油变化表(OilBalanceChange)表服务接口
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-26 09:33:33
|
||||
*/
|
||||
public interface OilBalanceChangeService extends IService<OilBalanceChange> {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
package com.fuint.business.order.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.order.mapper.OilBalanceChangeMapper;
|
||||
import com.fuint.business.order.entity.OilBalanceChange;
|
||||
import com.fuint.business.order.service.OilBalanceChangeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 余油变化表(OilBalanceChange)表服务实现类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2023-12-26 09:33:33
|
||||
*/
|
||||
@Service("oilBalanceChangeService")
|
||||
public class OilBalanceChangeServiceImpl extends ServiceImpl<OilBalanceChangeMapper, OilBalanceChange> implements OilBalanceChangeService {
|
||||
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ public class UserBalance extends BaseEntity implements Serializable {
|
||||
*/
|
||||
private Integer growthValue;
|
||||
/**
|
||||
* 加油金
|
||||
* 剩余油量
|
||||
*/
|
||||
private String refuelMoney;
|
||||
|
||||
|
@ -35,6 +35,11 @@ public class ShiroConfig {
|
||||
filterMap.put("/clientApi/captcha/getCode","anon");
|
||||
filterMap.put("/clientApi/sign/**","anon");
|
||||
filterMap.put("/backendApi/login/loginByPhone","anon");
|
||||
/*filterMap.put("/business/largeSscreen","anon");
|
||||
filterMap.put("/business/largeSscreen/goods","anon");
|
||||
filterMap.put("/business/largeSscreen/staff","anon");
|
||||
filterMap.put("/business/largeSscreen/sales","anon");
|
||||
filterMap.put("/business/largeSscreen/salesAll","anon");*/
|
||||
filterMap.put("/static/**","anon");
|
||||
//会员模板导出
|
||||
filterMap.put("/excel/export","anon");
|
||||
|
@ -1,8 +1,7 @@
|
||||
# \u57FA\u672C\u914D\u7F6E
|
||||
server.port=8080
|
||||
server.port=8081
|
||||
env.profile=dev
|
||||
env.properties.path=D:/workspaces/oilSystem/fuintBackend/configure/
|
||||
|
||||
env.properties.path=D:/office/proj/oilSystem/fuintBackend/configure/
|
||||
|
||||
# \u6570\u636E\u5E93\u914D\u7F6E
|
||||
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
|
||||
@ -21,7 +20,7 @@ spring.servlet.multipart.max-request-size=10MB
|
||||
|
||||
# mybatis\u914D\u7F6E
|
||||
mybatis-plus.mapper-locations = classpath*:/mapper/*Mapper.xml,classpath*:com/fuint/**/xml/*Mapper.xml
|
||||
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0536\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mybatis-plus.configuration.intercepts=com.example.MyInterceptor
|
||||
# \u9ED8\u8BA4\u65F6\u95F4\u683C\u5F0F
|
||||
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
|
||||
@ -70,4 +69,4 @@ rocketmq.consumer.tags=anran-sync-tags,anran-async-tags
|
||||
#rocketmq.consumer.consumeThreadMin=20
|
||||
#rocketmq.consumer.consumeThreadMax=64
|
||||
##???????????????1?
|
||||
#rocketmq.consumer.consumeMessageBatchMaxSize=1
|
||||
#rocketmq.consumer.consumeMessageBatchMaxSize=1
|
||||
|
Loading…
Reference in New Issue
Block a user