package com.szwl.controller;
import cn.com.crbank.ommo.bean.ResultMessage;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.gexin.fastjson.JSON;
import com.szwl.constant.ResponseCodesEnum;
import com.szwl.model.bo.R;
import com.szwl.model.bo.ResponseModel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.szwl.model.entity.TAdmin;
import com.szwl.model.entity.TEquipment;
import com.szwl.model.entity.TProduct;
import com.szwl.model.entity.TPromoCode;
//import com.szwl.model.page.Pageable;
import com.szwl.model.page.TProductPageable;
import com.szwl.model.query.TEquipmentParam;
import com.szwl.model.utils.PushUtils;
import com.szwl.service.TAdminService;
import com.szwl.service.TEquipmentService;
import com.szwl.service.TProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* 商品价格表 前端控制器
*
*
* @author wuhs
* @since 2022-04-23
*/
@Api(value = "/tProduct", tags = {"商品"})
@RestController
@RequestMapping("/tProduct")
public class TProductController {
@Autowired
TEquipmentService tEquipmentService;
@Autowired
TProductService tProductService;
@Autowired
TAdminService tAdminService;
@ApiOperation(value = "查询商品列表信息")
@GetMapping("/selectProducts")
public ResponseEntity> selectProducts(String equipmentId){
if(StringUtils.isEmpty(equipmentId)){
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(false).setData(null).setMessage(""));
}
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TProduct::getEquipmentId,Long.valueOf(equipmentId));
List list = tProductService.list(query);
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(true).setData(list).setMessage("SUCCESS"));
}
//修改花型是否显示
@ApiOperation(value = "修改花型是否显示")
@PostMapping("/updateProductsShow")
public ResponseEntity> updateProductsShow(@RequestBody String productList) {
List products = new ArrayList<>();
JSONObject jsonObject = JSONObject.parseObject(productList);
products = JSONObject.parseArray(jsonObject.get("productList").toString(), TProduct.class);
if(products.size()>0){
TProduct tProduct = products.get(0);
if(tProduct==null&&tProduct.getEquipmentId()==null){
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(false).setData("").setMessage("请退出重试"));
}
}
TEquipment equipment = tEquipmentService.getById(products.get(0).getEquipmentId());
if(equipment==null){
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(false).setData("").setMessage("请退出重试"));
}
List list = new ArrayList<>();
for(TProduct product:products){
if(product!=null&&product.getId()!=null){
// tProductService.updateById(product);
if(StringUtils.isEmpty(product.getShowType())){
product.setShowType("0");
}
product.setModifyDate(null);
product.setCreateDate(null);
product.setCodePrice(null);
product.setRmbPrice(null);
list.add(product);
// tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("updateProductsShow", product.toString()).toString());
}
}
tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("updateProductsShow", JSON.toJSONString(list)).toString());
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(true).setData("").setMessage("修改成功"));
}
@ApiOperation(value = "/多个花型价格")
@GetMapping("/updateProduct")
public ResponseModel> updateProduct(String no,String price,String equipmentId,String type) {
if(StringUtils.isEmpty(price)||StringUtils.isEmpty(equipmentId)){
return R.fail(ResponseCodesEnum.A0001,"数据有空");
}
TEquipment equipment = tEquipmentService.getById(equipmentId);
if(equipment==null||equipment.getId()==null){
return R.fail(ResponseCodesEnum.A0001,"请退出重试");
}
//修改单个
if(type.equals("0")){
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TProduct::getEquipmentId,Long.valueOf(equipmentId));
if(StringUtils.isEmpty(no)){
return R.fail(ResponseCodesEnum.A0001,"数据有空");
}
query.eq(TProduct::getNo,no);
List list = tProductService.list(query);
if(list.size()>0){
TProduct product = list.get(0);
product.setModifyDate(new Date());
product.setCodePrice(new BigDecimal(price));
product.setRmbPrice(new BigDecimal(price));
tProductService.updateById(product);
}
}
//修改多个
if(type.equals("1")){
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TProduct::getEquipmentId,Long.valueOf(equipmentId));
List list = tProductService.list(query);
if(list.size()>0){
for(TProduct product:list){
product.setModifyDate(new Date());
product.setCodePrice(new BigDecimal(price) );
product.setRmbPrice(new BigDecimal(price) );
tProductService.updateById(product);
}
}
}
tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("updateProductsPrice", "0").toString());
return R.ok(null,"修改成功");
}
@ApiOperation(value = "获取商品")
@GetMapping("/getProduct")
public ResponseModel getProduct(@RequestParam(value = "equipmentId")String equipmentId,@RequestParam(value = "productName")String productName) {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TProduct::getProductName,productName);
query.eq(TProduct::getEquipmentId,Long.valueOf(equipmentId));
List list = tProductService.list(query);
TProduct tProduct = list.get(0);
return R.ok(tProduct);
}
@ApiOperation(value = "查询商品列表信息")
@PostMapping("/selectProductList")
public ResponseModel> selectProductList(@RequestBody TEquipmentParam param) {
// public ResponseModel> selectProductList(@RequestParam(value = "clientId")String clientId,@RequestParam(value = "current") long current, @RequestParam(value = "size") long size) {
if(StringUtils.isEmpty(param.getClientId())){
return null;
}
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TEquipment::getClientId,param.getClientId());
List list = tEquipmentService.list(query);
if(list.size()>0){
TEquipment equipment = list.get(0);
LambdaQueryWrapper query1 = Wrappers.lambdaQuery();
query1.eq(TProduct::getEquipmentId,equipment.getId());
// List list1 = tProductService.list(query1);
Page page = new Page<>(param.getCurrent(), param.getSize(), true);
IPage iPage = tProductService.page(page, query1);
// TProductPageable pageable = new TProductPageable();
// pageable.setCurrent(iPage.getCurrent());
// pageable.setPages(iPage.getPages());
// pageable.setRecords(iPage.getRecords());
// pageable.setSize(iPage.getSize());
// pageable.setTotal(iPage.getTotal());
// return R.ok(pageable);
// return pageable;
return R.ok(iPage);
}
return null;
}
@ApiOperation(value = "查询商品列表信息 下拉列表查询")
@GetMapping("/getProducts")
public ResponseEntity> getProducts(String adminId){
if(StringUtils.isEmpty(adminId)){
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(false).setData(null).setMessage(""));
}
TAdmin admin = tAdminService.getById(adminId);
if(admin.getType()==3){
TAdmin parentAdmin = tAdminService.getById(admin.getParentId());
adminId = String.valueOf(parentAdmin.getId());
}
if(admin.getType()<2){
adminId = "5";
}
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TEquipment::getAdminId,adminId);
List list = tEquipmentService.list(query);
List list1 = new ArrayList<>();
if(list.size()>0){
TEquipment equipment = list.get(0);
LambdaQueryWrapper query1 = Wrappers.lambdaQuery();
query1.eq(TProduct::getEquipmentId,equipment.getId());
list1 = tProductService.list(query1);
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(true).setData(list1).setMessage("SUCCESS"));
}else {
return ResponseEntity.status(HttpStatus.OK)
.body(new ResultMessage().setCode(false).setData(list1).setMessage(""));
}
}
}