package com.dsh.guns.modular.system.controller.code;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.dsh.course.feignClient.account.AppUserClient;
|
import com.dsh.course.feignClient.account.CityManagerClient;
|
import com.dsh.course.feignClient.account.StoreStaffClient;
|
import com.dsh.course.feignClient.account.model.CityManager;
|
import com.dsh.course.feignClient.account.model.QueryByNamePhone;
|
import com.dsh.course.feignClient.account.model.TAppUser;
|
import com.dsh.course.feignClient.account.model.TStoreStaff;
|
import com.dsh.course.feignClient.activity.CouponClient;
|
import com.dsh.course.feignClient.activity.PointMercharsClient;
|
import com.dsh.course.feignClient.activity.model.*;
|
import com.dsh.guns.config.UserExt;
|
import com.dsh.guns.core.base.tips.SuccessTip;
|
import com.dsh.guns.core.common.constant.factory.PageFactory;
|
import com.dsh.guns.core.util.ToolUtil;
|
import com.dsh.guns.modular.system.model.*;
|
import com.dsh.guns.modular.system.service.*;
|
import com.dsh.guns.modular.system.util.HttpRequestUtil;
|
import com.dsh.guns.modular.system.util.OBSUploadUtil;
|
import com.dsh.guns.modular.system.util.ResultUtil;
|
import com.google.gson.Gson;
|
import com.google.gson.JsonObject;
|
import com.sun.org.apache.bcel.internal.generic.NEW;
|
import io.swagger.models.auth.In;
|
import org.apache.poi.ss.formula.functions.T;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.annotation.Resource;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
|
/**
|
* 闸机管理 控制器
|
*/
|
|
@Controller
|
@RequestMapping("/gate")
|
public class TGateController {
|
private String PREFIX = "/system/gate/";
|
@Resource
|
private IRegionService regiService;
|
@Resource
|
private IStoreService storeService;
|
|
@Resource
|
private CouponClient client;
|
|
@Resource
|
private CityManagerClient cmgrClient;
|
|
@Autowired
|
private AppUserClient appUserClient;
|
@Autowired
|
private ICityService cityService;
|
|
@Resource
|
private PointMercharsClient pointMercharsClient;
|
@Autowired
|
private StoreStaffClient storeStaffClient;
|
@Autowired
|
private IGateService gateService;
|
@Autowired
|
private TOperatorService tOperatorService;
|
@Autowired
|
private ITSiteService siteService;
|
|
/**
|
* 跳转到优惠券管理首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
return PREFIX + "gate.html";
|
}
|
/**
|
* 跳转到添加
|
*/
|
@RequestMapping("/add")
|
public String add(Model model) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
model.addAttribute("userType",objectType);
|
System.out.println(objectType);
|
List<TOperator> list1 = tOperatorService.list();
|
model.addAttribute("yysList",list1);
|
if (UserExt.getUser().getObjectType()==1) {
|
List<TStore> list = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", 0)
|
.ne("state", 3));
|
model.addAttribute("storeList",list);
|
model.addAttribute("operatorId",0);
|
}
|
if (UserExt.getUser().getObjectType()==2){
|
List<TStore> list2 = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", UserExt.getUser().getObjectId())
|
.ne("state", 3));
|
model.addAttribute("storeList",list2);
|
model.addAttribute("operatorId",0);
|
}
|
if (UserExt.getUser().getObjectType()==3){
|
List<TStore> list3 = new ArrayList<>();
|
TStore byId = storeService.getById(UserExt.getUser().getObjectId());
|
list3.add(byId);
|
Integer operatorId = byId.getOperatorId();
|
if (operatorId==null){
|
model.addAttribute("operatorId",0);
|
}else if (operatorId==0){
|
model.addAttribute("operatorId",0);
|
}else{
|
model.addAttribute("operatorId",byId.getOperatorId());
|
}
|
model.addAttribute("storeList",list3);
|
model.addAttribute("storeId",UserExt.getUser().getObjectId());
|
// 查询场地列表
|
List<TSite> siteList = siteService.list(new QueryWrapper<TSite>()
|
.eq("storeId", UserExt.getUser().getObjectId())
|
.ne("state",3));
|
model.addAttribute("siteList",siteList);
|
}
|
return PREFIX + "gate_add.html";
|
}
|
|
/**
|
* 添加门禁接口
|
*/
|
@RequestMapping("/addDevice")
|
@ResponseBody
|
public Object addDevice(String name,Integer operatorId,Integer storeId,Integer siteId,String device) {
|
Gate gate = new Gate();
|
gate.setName(name);
|
gate.setDevice(device);
|
gate.setStoreId(storeId);
|
gate.setSiteId(siteId);
|
gate.setOperatorId(operatorId);
|
|
HashMap<String, String> map = new HashMap<>();
|
map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
|
map.put("space_id",""+storeId);
|
map.put("device_id",device);
|
map.put("region_id",""+siteId);
|
// 添加门禁
|
String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map);
|
System.out.println(s1);
|
Gson gson = new Gson();
|
// 解析请求结果,json:
|
JsonObject jsonObject = gson.fromJson(s1, JsonObject.class);
|
if (!jsonObject.get("code").toString().equals("200")){
|
return ResultUtil.error(""+jsonObject.get("message").getAsString());
|
}
|
JsonObject data = jsonObject.getAsJsonObject("data");
|
int device_id = data.get("device_id").getAsInt();
|
gate.setId(device_id);
|
gateService.save(gate);
|
return new SuccessTip<>();
|
}
|
/**
|
* 编辑门禁接口
|
*/
|
@RequestMapping("/updateDevice")
|
@ResponseBody
|
public Object updateDevice(Integer id,String name,Integer operatorId,Integer storeId,Integer siteId,String device) {
|
Gate gate = gateService.getById(id);
|
gate.setName(name);
|
gate.setDevice(device);
|
gate.setStoreId(storeId);
|
gate.setSiteId(siteId);
|
gate.setOperatorId(operatorId);
|
HashMap<String, String> map = new HashMap<>();
|
map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
|
map.put("space_id",""+storeId);
|
map.put("device_id",device);
|
map.put("region_id",""+siteId);
|
// 添加门禁
|
String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/editDevice/ids/"+id, map);
|
System.out.println(s1);
|
Gson gson = new Gson();
|
// 解析请求结果,json:
|
JsonObject jsonObject = gson.fromJson(s1, JsonObject.class);
|
if (!jsonObject.get("code").toString().equals("200")){
|
return ResultUtil.error(""+jsonObject.get("message").getAsString());
|
}
|
gateService.updateById(gate);
|
return new SuccessTip<>();
|
}
|
/**
|
* 删除门禁接口
|
*/
|
@RequestMapping("/deleteDevice")
|
@ResponseBody
|
public Object add(Integer gateId) {
|
Gate byId = gateService.getById(gateId);
|
byId.setIsDelete(1);
|
HashMap<String, String> map = new HashMap<>();
|
map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
|
// 添加门禁
|
String s1 = HttpRequestUtil.postRequest
|
("https://try.daowepark.com/v7/user_api/general/deleteDevice/ids/"+gateId, map);
|
|
System.out.println(s1);
|
Gson gson = new Gson();
|
// 解析请求结果,json:
|
JsonObject jsonObject = gson.fromJson(s1, JsonObject.class);
|
if (!jsonObject.get("code").toString().equals("200")){
|
return ResultUtil.error(""+jsonObject.get("message").getAsString());
|
}
|
gateService.updateById(byId);
|
return new SuccessTip<>();
|
}
|
/**
|
*
|
* @param id
|
* @param model
|
* @return
|
*/
|
@RequestMapping("/update/{id}")
|
public String update(@PathVariable("id") Integer id,Model model) {
|
model.addAttribute("id",id);
|
Gate byId = gateService.getById(id);
|
model.addAttribute("id",id);
|
model.addAttribute("data",byId);
|
Integer objectType = UserExt.getUser().getObjectType();
|
model.addAttribute("userType",objectType);
|
System.out.println(objectType);
|
List<TOperator> list1 = tOperatorService.list();
|
model.addAttribute("yysList",list1);
|
if (UserExt.getUser().getObjectType()==1) {
|
List<TStore> list = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", 0)
|
.ne("state", 3));
|
model.addAttribute("storeList",list);
|
List<TSite> siteList = siteService.list(new QueryWrapper<TSite>()
|
.eq("storeId", byId.getStoreId())
|
.ne("state",3));
|
model.addAttribute("siteList",siteList);
|
model.addAttribute("operatorId",byId.getOperatorId());
|
}
|
if (UserExt.getUser().getObjectType()==2){
|
List<TStore> list2 = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", UserExt.getUser().getObjectId())
|
.ne("state", 3));
|
model.addAttribute("storeList",list2);
|
model.addAttribute("operatorId",UserExt.getUser().getObjectId());
|
List<TSite> siteList = siteService.list(new QueryWrapper<TSite>()
|
.eq("storeId", byId.getStoreId())
|
.ne("state",3));
|
model.addAttribute("siteList",siteList);
|
}
|
if (UserExt.getUser().getObjectType()==3){
|
List<TStore> list3 = new ArrayList<>();
|
TStore byId1 = storeService.getById(UserExt.getUser().getObjectId());
|
list3.add(byId1);
|
Integer operatorId = byId1.getOperatorId();
|
if (operatorId==null){
|
model.addAttribute("operatorId",0);
|
}else if (operatorId==0){
|
model.addAttribute("operatorId",0);
|
}else{
|
model.addAttribute("operatorId",byId1.getOperatorId());
|
}
|
model.addAttribute("storeList",list3);
|
model.addAttribute("storeId",UserExt.getUser().getObjectId());
|
// 查询场地列表
|
List<TSite> siteList = siteService.list(new QueryWrapper<TSite>()
|
.eq("storeId", UserExt.getUser().getObjectId())
|
.ne("state",3));
|
model.addAttribute("siteList",siteList);
|
}
|
return PREFIX + "gate_edit.html";
|
}
|
|
|
/**
|
* 获取闸机列表
|
*/
|
@RequestMapping(value = "/listAll")
|
@ResponseBody
|
public Object listAll(String name,String device,String operatorName,
|
String storeName) {
|
Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
|
List<Integer> storeIds = new ArrayList<>();
|
if (UserExt.getUser().getObjectType()==2){
|
// 查询这个运营商下的所有门店
|
List<Integer> ids = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", UserExt.getUser().getObjectId())).stream().map(TStore::getId)
|
.collect(Collectors.toList());
|
if (ids.size()==0){
|
storeIds.add(-1);
|
}else{
|
storeIds.addAll(ids);
|
}
|
}
|
if (UserExt.getUser().getObjectType()==3){
|
storeIds.add(UserExt.getUser().getObjectId());
|
}
|
List<Map<String,Object>> res = gateService.listAll(name,device,operatorName,storeName,storeIds,page);
|
return res;
|
}
|
/**
|
* 根据运营商id获取门店列表
|
*/
|
@RequestMapping(value = "/getStore")
|
@ResponseBody
|
public List<TStore> getStore(Integer operatorId) {
|
List<TStore> list = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", operatorId)
|
.ne("state", 3));
|
return list;
|
|
}
|
/**
|
* 根据门店id获取场地列表
|
|
*/
|
@RequestMapping(value = "/getSite")
|
@ResponseBody
|
public List<TSite> getSite(Integer storeId) {
|
List<TSite> list = siteService.list(new QueryWrapper<TSite>()
|
.eq("storeId", storeId)
|
.ne("state", 3));
|
return list;
|
}
|
/**
|
* 跳转到门店管理列表页
|
*/
|
@RequestMapping("/storeList")
|
public String storePage(Model model) {
|
return PREFIX + "TStoreList.html";
|
}
|
@RequestMapping("/updateType")
|
@ResponseBody
|
public Object updateType(Long id) {
|
client.updateType(id);
|
return new SuccessTip<>();
|
}
|
|
@RequestMapping("/storeDetailsOfSearch")
|
@ResponseBody
|
public Object listOfStore(Integer provinceId,Integer cityId,Integer cityManagerId,String storeName){
|
System.out.println("provinceId"+provinceId);
|
System.out.println("cityId"+cityId);
|
System.out.println("cityManagerId"+cityManagerId);
|
System.out.println("storeName"+storeName);
|
String provinceCode = null;
|
String cityCode = null;
|
if (ToolUtil.isNotEmpty(provinceId)){
|
Region provinceRegion = regiService.getById(provinceId);
|
provinceCode = provinceRegion.getCode();
|
}
|
if (ToolUtil.isNotEmpty(cityId)){
|
Region cityRegion = regiService.getById(cityId);
|
cityCode = cityRegion.getCode();
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
List<Map<String,Object>> storeList = storeService.queryListOfpage(provinceCode,cityCode,cityManagerId,storeName,page);
|
if (storeList.size() > 0 ){
|
for (Map<String, Object> stringObjectMap : storeList) {
|
String provinceName = (String) stringObjectMap.get("province");
|
String cityName = (String) stringObjectMap.get("city");
|
stringObjectMap.put("provinceCity",provinceName+cityName);
|
Integer managerId = (Integer) stringObjectMap.get("cityManagerId");
|
CityManager cityManager = cmgrClient.queryCityManagerById(managerId);
|
if (ToolUtil.isNotEmpty(cityManager)){
|
stringObjectMap.put("accountName",cityManager.getName()+"+"+cityManager.getPhone());
|
}
|
}
|
}
|
return storeList;
|
}
|
|
@RequestMapping(value = "/listRecord")
|
@ResponseBody
|
public Object listRecord(Integer id,String name, Integer type, String phone) {
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
List<TAppUser> tAppUsers = appUserClient.queryByNamePhone(new QueryByNamePhone(name, phone));
|
if(tAppUsers.size()==0){
|
return new ArrayList<>();
|
}
|
CouponRecordQuery ofSearch = new CouponRecordQuery();
|
ofSearch.setId(id);
|
ofSearch.setLimit(page.getSize());
|
ofSearch.setOffset(page.getCurrent());
|
ofSearch.setIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
|
ofSearch.setType(type);
|
List<Map<String, Object>> maps = client.listRecord(ofSearch);
|
for (Map<String, Object> map : maps) {
|
map.put("id",map.get("id").toString());
|
for (TAppUser tAppUser : tAppUsers) {
|
if(map.get("userId").equals(tAppUser.getId())){
|
map.put("name",tAppUser.getName());
|
map.put("phone",tAppUser.getPhone());
|
}
|
}
|
}
|
return maps;
|
}
|
|
@RequestMapping(value = "/getProvince")
|
@ResponseBody
|
public Object getProvince(){
|
return regiService.list(new LambdaQueryWrapper<Region>()
|
.eq(Region::getParentId,0));
|
}
|
|
@RequestMapping(value = "/onShelf")
|
@ResponseBody
|
public Object onShelf(Integer id,Integer type){
|
Coupon coupon = client.queryCouponById(id);
|
coupon.setState(type);
|
client.updateCouponData(coupon);
|
return new SuccessTip<>();
|
}
|
|
|
@RequestMapping(value = "/getCity")
|
@ResponseBody
|
public Object getCity(Integer province){
|
return regiService.list(new LambdaQueryWrapper<Region>()
|
.eq(Region::getParentId,province));
|
}
|
|
@RequestMapping(value = "/uploadPic")
|
@ResponseBody
|
public Object add(@RequestParam("file") MultipartFile imgFile) throws IOException {
|
String originalFilename = imgFile.getOriginalFilename();
|
String newName = originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf("."));
|
String url = OBSUploadUtil.inputStreamUpload(imgFile);
|
Map<String, String> map = new HashMap<String, String>();
|
//是否上传成功
|
map.put("state", "SUCCESS");
|
//现在文件名称
|
map.put("title", newName);
|
//文件原名称
|
map.put("original", originalFilename);
|
//文件类型 .+后缀名
|
map.put("type", originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf(".")));
|
//文件路径
|
map.put("url", url);
|
//文件大小(字节数)
|
map.put("size", imgFile.getSize() + "");
|
System.out.println(map);
|
return url;
|
}
|
|
/**
|
* 提交添加
|
*/
|
@PostMapping(value = "/commitData")
|
@ResponseBody
|
public Object commitData( CouponDataVo dataVo){
|
System.out.println(dataVo);
|
Integer objectType = UserExt.getUser().getObjectType();
|
dataVo.setUserType(objectType);
|
client.insertIntoData(dataVo);
|
return new SuccessTip<>();
|
}
|
@PostMapping(value = "/update")
|
@ResponseBody
|
public Object update( Integer id,Integer num,Integer num1,String text){
|
Coupon coupon = client.queryCouponById(id);
|
coupon.setQuantityIssued(num);
|
coupon.setPickUpQuantity(num1);
|
coupon.setIllustrate(text);
|
client.updateCouponData(coupon);
|
return new SuccessTip<>();
|
}
|
|
|
/**
|
* 获取 积分商品列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object listOfIntegralGoods(String name, Integer type, Integer redemptionMethod , Integer userPopulation, Integer activeStatus, Integer state) {
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
|
IntegralGoodsOfSearch ofSearch = new IntegralGoodsOfSearch();
|
ofSearch.setPage(page);
|
ofSearch.setName(name);
|
ofSearch.setType(type);
|
ofSearch.setRedemptionMethod(redemptionMethod);
|
ofSearch.setUserPopulation(userPopulation);
|
ofSearch.setActiveStatus(activeStatus);
|
ofSearch.setState(state);
|
System.out.println(ofSearch);
|
return pointMercharsClient.getIntegralGoodsListOfSearch(ofSearch);
|
}
|
|
|
|
/**
|
* 跳转到修改车辆管理
|
*/
|
@RequestMapping("/tGoods_update/{id}")
|
public String tCityUpdate(@PathVariable Integer id, Model model) {
|
System.out.println("id:"+id);
|
PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
|
System.out.println("pointMercharsVo:"+pointMercharsVo);
|
String[] split = pointMercharsVo.getPics().split(",");
|
model.addAttribute("item",pointMercharsVo);
|
model.addAttribute("pictures",split);
|
return PREFIX + "TGoods_edit.html";
|
}
|
|
/**
|
* 上下架处理操作
|
* @param id 商品id
|
* @param type 1=上架操作 2=下架操作
|
* @return
|
*/
|
@RequestMapping("/grounding")
|
@ResponseBody
|
public Object updateGrounding(Integer id,Integer type) {
|
System.out.println(id);
|
System.out.println(type);
|
Map<String,Integer> map = new HashMap<>();
|
map.put("id",id);
|
map.put("type",type);
|
boolean b = pointMercharsClient.updateGoodsGroudingStatus(map);
|
System.out.println(b);
|
return new SuccessTip<>();
|
}
|
/**
|
* 上下架处理操作
|
* @return
|
*/
|
@RequestMapping("/writeOff")
|
@ResponseBody
|
public Object writeOff(String id) {
|
Long aLong = Long.valueOf(id);
|
WriteOffDTO dto = new WriteOffDTO();
|
// 核销人员id
|
Integer objectId = UserExt.getUser().getId();
|
if (UserExt.getUser().getObjectType() == 1){
|
dto.setVerifiStoreId(null);
|
}else if (UserExt.getUser().getObjectType() == 2){
|
storeService.getOne(new QueryWrapper<TStore>().eq("cityManagerId",objectId));
|
}else{
|
TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(objectId);
|
dto.setVerifiStoreId(storeByStoreStaffId.getStoreId());
|
}
|
dto.setId(aLong);
|
dto.setVerificationUserId(objectId);
|
pointMercharsClient.writeOff(dto);
|
return new SuccessTip<>();
|
}
|
|
/**
|
* 购买详情
|
* @param id 商品id
|
* @return
|
*/
|
@RequestMapping("/tPay_detail/{id}")
|
public String payOfDetails(@PathVariable(value = "id") Integer id,Model model) {
|
System.out.println(id);
|
model.addAttribute("id",id);
|
return PREFIX + "TGoods_pay.html";
|
}
|
|
|
/**
|
* 获取 购买记录列表
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/payList/{id}")
|
public Object payList(@PathVariable(value = "id") Integer id, String name, String phone, Integer status) {
|
PointMercharsPayedVo payedVo = new PointMercharsPayedVo();
|
payedVo.setId(id);
|
payedVo.setName(name);
|
payedVo.setPhone(phone);
|
payedVo.setStatus(status);
|
List<Map<String,Object>> points = pointMercharsClient.queryUserPayedGoodsList(payedVo);
|
System.out.println(points);
|
if (points.size() > 0 ){
|
for (Map<String, Object> point : points) {
|
Integer userId = (Integer) point.get("userId");
|
TAppUser tAppUser = appUserClient.queryById(userId);
|
if (ToolUtil.isNotEmpty(tAppUser)){
|
point.put("name",tAppUser.getName());
|
point.put("phone",tAppUser.getPhone());
|
}
|
}
|
if (ToolUtil.isNotEmpty(name)){
|
points = points.stream()
|
.filter(data -> {
|
String obtName = (String) data.get("name");
|
return obtName != null && obtName.contains(name);
|
})
|
.collect(Collectors.toList());
|
}
|
if (ToolUtil.isNotEmpty(phone)){
|
points = points.stream()
|
.filter(data -> {
|
String obtPhone = (String) data.get("phone");
|
return obtPhone != null && obtPhone.contains(phone);
|
})
|
.collect(Collectors.toList());
|
}
|
}
|
return points;
|
}
|
|
/**
|
* 核销操作
|
* @param id 商品id
|
* @return
|
*/
|
@RequestMapping("/write_off")
|
@ResponseBody
|
public Object GoodsWriteOff(Integer id){
|
System.out.println(id);
|
return new SuccessTip<>();
|
}
|
|
|
}
|