Feat: 完善第一期代码工程

This commit is contained in:
xinsin 2023-04-24 23:25:16 +08:00
parent b724e1cdec
commit d6b1551aaf
11 changed files with 219 additions and 4 deletions

View File

@ -1,9 +1,16 @@
package top.xinsin.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import top.xinsin.pojo.Commission;
import top.xinsin.pojo.Store;
import top.xinsin.service.CommissionService;
import top.xinsin.util.R;
import java.util.List;
/**
* <p>
@ -17,4 +24,19 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/commission")
public class CommissionController {
@Autowired
private CommissionService commissionService;
@RequestMapping(path = "/addCommission",method = RequestMethod.POST)
public R<Boolean> addCommission(@RequestBody Commission commission){return commissionService.addCommission(commission);}
@RequestMapping(path = "/changeCommission",method = RequestMethod.POST)
public R<Boolean> changeCommission(@RequestBody Commission commission){return commissionService.changeCommission(commission);}
@RequestMapping(path = "/delCommission",method = RequestMethod.GET)
public R<Boolean> delCommission(@RequestParam("id")Integer id){return commissionService.delCommission(id);}
@RequestMapping(path = "/getCommission",method = RequestMethod.GET)
public R<JSONObject> getCommission(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return commissionService.getCommission(page,num);}
@RequestMapping(path = "/getCommissionByPrice",method = RequestMethod.GET)
public R<Double> getCommissionByPrice(@RequestParam("shopId")Integer shopId,@RequestParam("range")Double range){return commissionService.getCommissionByPrice(shopId,range);}
@RequestMapping(path = "/changeCommissionStatus", method = RequestMethod.GET)
public R<String> changeCommissionStatus(@RequestParam("commissionId") Integer commissionId, @RequestParam("status") Boolean status) {return commissionService.changeCommissionStatus(commissionId, status);}
}

View File

@ -36,4 +36,6 @@ public class StoreController {
public R<JSONObject> getStore(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return storeService.getStore(page,num);}
@RequestMapping(path = "/getAllStore",method = RequestMethod.GET)
public R<List<Store>> getAllStore(){return storeService.getAllStore();}
@RequestMapping(path = "/changeStoreStatus", method = RequestMethod.GET)
public R<String> changeStoreStatus(@RequestParam("storeId") Integer storeId, @RequestParam("status") Boolean status) {return storeService.changeStoreStatus(storeId, status);}
}

View File

@ -3,6 +3,9 @@ package top.xinsin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import top.xinsin.pojo.Order;
import top.xinsin.pojo.vo.OrderVO;
import java.util.List;
/**
* @author xinsin
@ -11,4 +14,6 @@ import top.xinsin.pojo.Order;
*/
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
// public List<OrderVO> selectAllByStoreName(Integer page,Integer num);
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
import java.io.Serial;
import java.io.Serializable;
import java.sql.Blob;
import java.util.Date;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -37,11 +38,11 @@ public class Commission implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("create_time")
private LocalDateTime createTime;
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("update_time")
private LocalDateTime updateTime;
private java.util.Date updateTime;
@TableField("del")
@TableLogic
private Integer del;

View File

@ -94,4 +94,6 @@ public class Order implements Serializable {
@ExcelProperty({"sku"})
@TableField("sku")
private String sku;
@TableField(exist = false)
private String storeName;
}

View File

@ -0,0 +1,45 @@
package top.xinsin.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author xinsin
* Created On 2023/4/24 22:21
* @version 1.0
*/
@Data
public class OrderVO {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String orderNo;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderTime;
private String orderStatus;
private String wangNo;
private String wechatNo;
private String alipayNo;
private Double payAmt;
private Double commission;
private String alipayName;
private String rpName;
private String rpWechatName;
private String remark;
private String phoneNumber;
private String cardNo;
private Integer flag;
private String flagRemark;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date payTime;
private String address;
private Integer shopId;
private String sku;
private String storeName;
}

View File

@ -1,8 +1,19 @@
package top.xinsin.service;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.xinsin.mapper.CommissionMapper;
import top.xinsin.pojo.Account;
import top.xinsin.pojo.Commission;
import com.baomidou.mybatisplus.extension.service.IService;
import top.xinsin.pojo.Store;
import top.xinsin.util.HttpCodes;
import top.xinsin.util.R;
import java.util.Date;
/**
* <p>
@ -15,4 +26,58 @@ import com.baomidou.mybatisplus.extension.service.IService;
@Service
public class CommissionService {
@Autowired
private CommissionMapper commissionMapper;
public R<Boolean> addCommission(Commission commission) {
commission.setCreateTime(new Date());
int insert = commissionMapper.insert(commission);
return insert != 0 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555,false);
}
public R<Boolean> changeCommission(Commission commission) {
commission.setUpdateTime(new Date());
int update = commissionMapper.updateById(commission);
return update != 0 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555,false);
}
public R<Boolean> delCommission(Integer id) {
int delete = commissionMapper.deleteById(id);
return delete != 0 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555,false);
}
public R<JSONObject> getCommission(Integer page, Integer num) {
JSONObject jsonObject = new JSONObject();
Page<Commission> commissionPage = new Page<>(page,num);
Page<Commission> commissionPage1 = commissionMapper.selectPage(commissionPage, null);
jsonObject.fluentPut("info",commissionPage1.getRecords()).fluentPut("total",commissionPage1.getTotal());
return R.success(jsonObject);
}
public R<Double> getCommissionByPrice(Integer shopId, Double range) {
LambdaQueryWrapper<Commission> commissionLambdaQueryWrapper = new LambdaQueryWrapper<>();
commissionLambdaQueryWrapper
.le(Commission::getPriceMax,range)
.ge(Commission::getPriceMin,range)
.eq(Commission::getStoreId,shopId);
Commission commission = commissionMapper.selectOne(commissionLambdaQueryWrapper);
if (commission != null){
return R.success(commission.getCommission());
}else{
return R.failed(HttpCodes.HTTP_CODES555,0.0);
}
}
public R<String> changeCommissionStatus(Integer commissionId, Boolean status) {
Commission commission = new Commission();
commission.setId(commissionId);
commission.setStatus(status);
int i = commissionMapper.updateById(commission);
if (i == 1) {
return status ? R.success("启用该佣金项成功") : R.success("禁用该佣金项成功");
} else {
return R.failed(HttpCodes.HTTP_CODES555, "修改佣金状态失败");
}
}
}

View File

@ -15,8 +15,13 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import top.xinsin.enums.OrderStatus;
import top.xinsin.enums.SearchType;
import top.xinsin.mapper.CommissionMapper;
import top.xinsin.mapper.OrderMapper;
import top.xinsin.mapper.StoreMapper;
import top.xinsin.pojo.Commission;
import top.xinsin.pojo.Order;
import top.xinsin.pojo.Store;
import top.xinsin.pojo.vo.OrderVO;
import top.xinsin.util.ExcelParserUtil;
import top.xinsin.util.HttpCodes;
import top.xinsin.util.R;
@ -38,6 +43,10 @@ import java.util.List;
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private StoreMapper storeMapper;
@Autowired
private CommissionMapper commissionMapper;
public R<String> addOrder(Order order) {
order.setOrderTime(new Date());
@ -48,6 +57,24 @@ public class OrderService {
public R<JSONObject> getOrder(Integer page, Integer num) {
Page<Order> orderPage = new Page<>((long)page, (long)num);
Page<Order> orderPage1 = this.orderMapper.selectPage(orderPage, null);
orderPage1.getRecords().forEach(e -> {
LambdaQueryWrapper<Store> orderVOLambdaQueryWrapper = new LambdaQueryWrapper<>();
orderVOLambdaQueryWrapper.eq(Store::getId,e.getStoreId());
Store store = storeMapper.selectOne(orderVOLambdaQueryWrapper);
e.setStoreName(store.getName());
LambdaQueryWrapper<Commission> commissionLambdaQueryWrapper = new LambdaQueryWrapper<>();
commissionLambdaQueryWrapper
.eq(Commission::getStoreId,e.getStoreId())
.le(Commission::getPriceMax,e.getCommission())
.ge(Commission::getPriceMin,e.getCommission());
Commission commission = commissionMapper.selectOne(commissionLambdaQueryWrapper);
if (commission != null){
e.setCommission(commission.getCommission());
}else{
e.setCommission(0.0);
}
});
JSONObject jsonObject = new JSONObject();
jsonObject.fluentPut("info", orderPage1.getRecords()).fluentPut("total", orderPage1.getTotal());
return R.success(jsonObject);

View File

@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.xinsin.mapper.StoreMapper;
import top.xinsin.pojo.Commission;
import top.xinsin.pojo.Store;
import com.baomidou.mybatisplus.extension.service.IService;
import top.xinsin.util.HttpCodes;
@ -56,4 +57,16 @@ public class StoreService {
public R<List<Store>> getAllStore() {
return R.success(storeMapper.selectList(null));
}
public R<String> changeStoreStatus(Integer storeId, Boolean status) {
Store store = new Store();
store.setId(storeId);
store.setStatus(status);
int i = storeMapper.updateById(store);
if (i == 1) {
return status ? R.success("启用该商铺成功") : R.success("禁用该商铺成功");
} else {
return R.failed(HttpCodes.HTTP_CODES555, "修改商铺状态失败");
}
}
}

View File

@ -0,0 +1,18 @@
<?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="top.xinsin.mapper.CommissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="top.xinsin.pojo.Commission">
<id column="id" property="id" />
<result column="price_min" property="priceMin" />
<result column="price_max" property="priceMax" />
<result column="commission" property="commission" />
<result column="store_id" property="storeId" />
<result column="cteate_time" property="cteateTime" />
<result column="update_time" property="updateTime" />
<result column="del" property="del" />
<result column="status" property="status" />
</resultMap>
</mapper>

View File

@ -0,0 +1,15 @@
<?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="top.xinsin.mapper.StoreMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="top.xinsin.pojo.Store">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="del" property="del" />
<result column="status" property="status" />
</resultMap>
</mapper>