IndexController.java 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499
  1. package com.szwl.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.google.gson.Gson;
  8. import com.qiniu.http.Response;
  9. import com.qiniu.storage.BucketManager;
  10. import com.qiniu.storage.Configuration;
  11. import com.qiniu.storage.Region;
  12. import com.qiniu.storage.UploadManager;
  13. import com.qiniu.storage.model.DefaultPutRet;
  14. import com.qiniu.util.Auth;
  15. import com.szwl.constant.ConfigConsts;
  16. import com.szwl.constant.ResponseCodesEnum;
  17. import com.szwl.model.bean.*;
  18. import com.szwl.model.bo.JsonUtils;
  19. import com.szwl.model.bo.R;
  20. import com.szwl.model.bo.ResponseModel;
  21. import com.szwl.model.dto.MachineDTO;
  22. import com.szwl.model.dto.ReturnCoinVo;
  23. import com.szwl.model.entity.*;
  24. import com.szwl.model.utils.AdminUtils;
  25. import com.szwl.model.utils.HttpClientSslUtils;
  26. import com.szwl.model.utils.PushUtils;
  27. import com.szwl.service.*;
  28. import com.szwl.service.es.EsTEquipmentService;
  29. import com.szwl.util.IDGenerator;
  30. import com.szwl.util.WechatSendUtil;
  31. import com.szwl.util.WhoIsUtil;
  32. import io.swagger.annotations.Api;
  33. import io.swagger.annotations.ApiOperation;
  34. import org.apache.commons.io.IOUtils;
  35. import org.apache.commons.lang.StringUtils;
  36. import org.apache.ibatis.annotations.Case;
  37. import org.springframework.beans.factory.annotation.Autowired;
  38. import org.springframework.web.bind.annotation.*;
  39. import javax.annotation.Resource;
  40. import javax.servlet.ServletInputStream;
  41. import javax.servlet.http.HttpServletRequest;
  42. import javax.servlet.http.HttpServletResponse;
  43. import java.io.IOException;
  44. import java.io.PrintWriter;
  45. import java.math.BigDecimal;
  46. import java.math.RoundingMode;
  47. import java.text.ParseException;
  48. import java.text.SimpleDateFormat;
  49. import java.util.*;
  50. import static com.szwl.util.geoCoderUtil.getLocByLonLatVer;
  51. @Api(value = "/indexController", tags = {"设备信息上传接口"})
  52. @RestController
  53. @RequestMapping("/api/app_equipment/index")
  54. public class IndexController {
  55. @Autowired
  56. TAdminService adminService;
  57. @Autowired
  58. TEquipmentService equipmentService;
  59. @Autowired
  60. TEquipmentApplyService equipmentApplyService;
  61. @Autowired
  62. TProductService productService;
  63. @Autowired
  64. TProportionService proportionService;
  65. @Autowired
  66. TEquipmentDescService equipmentDescService;
  67. @Autowired
  68. EsTEquipmentService esTEquipmentService;
  69. @Autowired
  70. TParametersService parametersService;
  71. @Autowired
  72. TPriceService priceService;
  73. @Autowired
  74. TPromoCodeService promoCodeService;
  75. @Autowired
  76. TDiyFlowerService diyFlowerService;
  77. @Autowired
  78. TNameDictionaryService nameDictionaryService;
  79. @Autowired
  80. TWechatService wechatService;
  81. @Resource
  82. TLocationCheckService locationCheckService;
  83. @Autowired
  84. TGoodsDataService goodsDataService;
  85. @Autowired
  86. TAlarmRecordService alarmRecordService;
  87. @Autowired
  88. ReturnCoinRecordService returnCoinRecordService;
  89. private static final String appid = "07784f5fedb508046c841b391005b7de";
  90. @ApiOperation(value = "心跳")
  91. @RequestMapping(value = "/heart.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  92. @ResponseBody
  93. public String heart(@RequestBody EquipmentVo equipmentVo) {
  94. String clientId = equipmentVo.getClientId();
  95. Date lastUpdateTime = equipmentVo.getLastUpdateTime();
  96. String cabinetHd = equipmentVo.getCabinetHd();
  97. String cabinetTm = equipmentVo.getCabinetTm();
  98. String furnaceSp = equipmentVo.getFurnaceSp();
  99. String furnaceTm = equipmentVo.getFurnaceTm();
  100. String gtClientId = equipmentVo.getGtClientId();
  101. String volume = equipmentVo.getVolume();
  102. Integer eqeStatus = equipmentVo.getEqeStatus();
  103. Boolean isSleep = equipmentVo.getIs_sleep();
  104. String netWorkingMode = equipmentVo.getNetWorkingMode();
  105. String numberOne = equipmentVo.getNumberOne();
  106. String candyGeneratorTm = equipmentVo.getCandyGeneratorTm();
  107. String outsideTm = equipmentVo.getOutsideTm();
  108. String outsideHd = equipmentVo.getOutsideHd();
  109. Integer workingMode = equipmentVo.getWorkingMode();
  110. Integer isAlarm = equipmentVo.getIsAlarm();
  111. //有记录,则进行修改
  112. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  113. query.eq(TEquipment::getClientId, clientId);
  114. TEquipment newEquipment = equipmentService.getOne(query);
  115. if (newEquipment != null) {
  116. newEquipment.setNetWorkingMode(netWorkingMode);
  117. if (StringUtils.isNotEmpty(cabinetTm)) {
  118. newEquipment.setCabinetTm(cabinetTm);
  119. }
  120. if (StringUtils.isNotEmpty(cabinetHd)) {
  121. newEquipment.setCabinetHd(cabinetHd);
  122. }
  123. if (StringUtils.isNotEmpty(furnaceSp)) {
  124. newEquipment.setFurnaceSp(furnaceSp);
  125. }
  126. if (StringUtils.isNotEmpty(furnaceTm)) {
  127. newEquipment.setFurnaceTm(furnaceTm);
  128. }
  129. newEquipment.setLastUpdateTime(lastUpdateTime);
  130. if (eqeStatus != null) {
  131. newEquipment.setEqeStatus(eqeStatus);
  132. }
  133. if (isSleep != null) {
  134. newEquipment.setIsSleep(isSleep);
  135. }
  136. if (!StringUtils.isEmpty(furnaceTm)) {
  137. int fur = Integer.parseInt(furnaceTm);
  138. if (newEquipment.getEqeStatus() == 0 && fur > 150) {
  139. newEquipment.setEqeStatus(1);
  140. }
  141. if (newEquipment.getEqeStatus() == null) {
  142. newEquipment.setEqeStatus(1);
  143. }
  144. }
  145. if (!StringUtils.isEmpty(volume)) {
  146. newEquipment.setVolume(volume);
  147. }
  148. // 是否报警
  149. if (isAlarm != null) {
  150. if (isAlarm == 1) {
  151. newEquipment.setIsAlarm(true);
  152. } else if (isAlarm == 0) {
  153. // 更改报警状态,并消除以往的报警记录
  154. LambdaUpdateWrapper<TAlarmRecord> wrapper = Wrappers.lambdaUpdate();
  155. wrapper.eq(TAlarmRecord::getClientId, clientId);
  156. wrapper.eq(TAlarmRecord::getIsEliminate, 0);
  157. wrapper.le(TAlarmRecord::getCreateDate, new Date());
  158. wrapper.set(TAlarmRecord::getIsEliminate, 1);
  159. alarmRecordService.update(wrapper);
  160. newEquipment.setIsAlarm(false);
  161. }
  162. }
  163. newEquipment.setGtClientId(gtClientId);
  164. newEquipment.setModifyDate(new Date());
  165. equipmentService.updateById(newEquipment);
  166. TEquipmentDesc equipmentDesc = equipmentDescService.getById(newEquipment.getId());
  167. if (StringUtils.isNotEmpty(equipmentVo.getBlueSugar())) {
  168. equipmentDesc.setBlueSugar(equipmentVo.getBlueSugar());
  169. }
  170. if (StringUtils.isNotEmpty(equipmentVo.getRedSugar())) {
  171. equipmentDesc.setRedSugar(equipmentVo.getRedSugar());
  172. }
  173. if (StringUtils.isNotEmpty(equipmentVo.getYellowSugar())) {
  174. equipmentDesc.setYellowSugar(equipmentVo.getYellowSugar());
  175. }
  176. if (StringUtils.isNotEmpty(equipmentVo.getWhiteSugar())) {
  177. equipmentDesc.setWhiteSugar(equipmentVo.getWhiteSugar());
  178. }
  179. if (StringUtils.isNotEmpty(equipmentVo.getWater())) {
  180. equipmentDesc.setWater(equipmentVo.getWater());
  181. }
  182. if (StringUtils.isNotEmpty(equipmentVo.getWasteWater())) {
  183. equipmentDesc.setWasteWater(equipmentVo.getWasteWater());
  184. }
  185. if (StringUtils.isNotEmpty(equipmentVo.getStick())) {
  186. equipmentDesc.setStick(equipmentVo.getStick());
  187. }
  188. // 如果是爆米花机
  189. String machineType = newEquipment.getMachineType();
  190. if (StringUtils.isNotEmpty(machineType) && "1".equals(newEquipment.getMachineType())) {
  191. // 爆米花机搅拌温度
  192. if (StringUtils.isNotEmpty(cabinetTm)) {
  193. equipmentDesc.setStirTm(cabinetTm);
  194. }
  195. // 爆米花机玉米发生器温度
  196. if (StringUtils.isNotEmpty(cabinetHd)) {
  197. equipmentDesc.setCornGeneratorTm(cabinetHd);
  198. }
  199. // 爆米花机杯子剩余量
  200. if (StringUtils.isNotEmpty(furnaceTm)) {
  201. equipmentDesc.setCupQuantity(Long.parseLong(furnaceTm));
  202. }
  203. }
  204. // 如果是雪糕机
  205. if (StringUtils.isNotEmpty(machineType) && "2".equals(newEquipment.getMachineType())) {
  206. if (workingMode != null) {
  207. equipmentDesc.setWorkingMode(workingMode);
  208. }
  209. }
  210. if (StringUtils.isNotEmpty(numberOne)) {
  211. equipmentDesc.setNumberOne(numberOne);
  212. }
  213. if (StringUtils.isNotEmpty(candyGeneratorTm)) {
  214. equipmentDesc.setCandyGeneratorTm(candyGeneratorTm);
  215. }
  216. if (StringUtils.isNotEmpty(outsideHd)) {
  217. equipmentDesc.setOutsideHd(outsideHd);
  218. }
  219. if (StringUtils.isNotEmpty(outsideTm)) {
  220. equipmentDesc.setOutsideTm(outsideTm);
  221. }
  222. equipmentDescService.updateById(equipmentDesc);
  223. return "心跳成功";
  224. }
  225. return "心跳失败";
  226. }
  227. /**
  228. * 设备初始化申请2
  229. */
  230. @ApiOperation(value = "设备初始化申请2")
  231. @RequestMapping(value = "/initNew2.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  232. @ResponseBody
  233. public String initNew2(String clientId, String managerId, String gtClientId, String equipmentType, String ip, String longitude, String latitude) throws IOException {
  234. if (StringUtils.isEmpty(clientId) || StringUtils.isEmpty(longitude) || StringUtils.isEmpty(latitude)) {
  235. return "设备编号、经纬度不能为空";
  236. }
  237. // 根据 clientId 查设备的 location,country
  238. LambdaQueryWrapper<TLocationCheck> lqw = Wrappers.lambdaQuery();
  239. lqw.eq(TLocationCheck::getClientId, clientId);
  240. TLocationCheck locationCheck = locationCheckService.getOne(lqw);
  241. if (Objects.isNull(locationCheck)) {
  242. return "生产部未录入改设备的位置信息";
  243. }
  244. // 判断ip是否属于国内,if 国内,放行
  245. double lon = Double.parseDouble(longitude);
  246. double lat = Double.parseDouble(latitude);
  247. // 经度范围在73至135之间,纬度范围在3至53之间,即国内区域
  248. // 经度:73~124,纬度17~47,经度排除韩国,纬度排除俄罗斯,海南以南
  249. if (!(lon >= 73) || !(lon <= 124) || !(lat >= 17) || !(lat <= 47)) {
  250. // 根据 ip 校验位置信息
  251. // String addr = WhoIsUtil.getLocByIp(ip);
  252. // 根据 longitude, latitude 校验位置信息
  253. String addr;
  254. String ipApiAddr = WhoIsUtil.getLocByIp2(ip);
  255. try {
  256. String lonLatAddr = getLocByLonLatVer(longitude, latitude);
  257. if (lonLatAddr != null && !lonLatAddr.isEmpty()) {
  258. addr = lonLatAddr + ipApiAddr;
  259. } else {
  260. addr = ipApiAddr;
  261. }
  262. } catch (Exception e) {
  263. e.printStackTrace();
  264. addr = "Failed to get geolocation";
  265. }
  266. locationCheck.setIp(ip);
  267. locationCheck.setLongitude(longitude);
  268. locationCheck.setLatitude(latitude);
  269. locationCheck.setAddr(addr);
  270. locationCheckService.saveOrUpdate(locationCheck);
  271. String checkResult = locationCheckService.locCheckMsg(locationCheck, clientId, addr);
  272. if (checkResult.equals("fail")) {
  273. return "位置不匹配,请联系营销经理/售后处理";
  274. }
  275. }
  276. return this.initNew(clientId, managerId, gtClientId, equipmentType);
  277. }
  278. /**
  279. * 设备申请
  280. *
  281. * @param clientId 个推
  282. * @param managerId 管理系统id
  283. * @return
  284. */
  285. @ApiOperation(value = "设备申请")
  286. @RequestMapping(value = "/initNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  287. @ResponseBody
  288. public String initNew(String clientId, String managerId, String gtClientId, String equimentType) {
  289. String machineType = "0";
  290. String status = "0";
  291. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  292. query.like(TEquipment::getClientId, clientId);
  293. List<TEquipment> list = equipmentService.list(query);
  294. if (!list.isEmpty()) {
  295. TEquipment equipment = list.get(0);
  296. if (equipment.getAdminId() != 31) {
  297. if (!equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()).equals("xxx")) {
  298. String managerId1 = equipment.getManagerId();
  299. if (!managerId.equals(managerId1)) {
  300. return "该设备未脱离";
  301. } else {
  302. return "该设备已经初始化";
  303. }
  304. }
  305. } else {
  306. status = "1";
  307. }
  308. }
  309. if (StringUtils.isEmpty(gtClientId)) {
  310. return "设备不能为空";
  311. }
  312. LambdaQueryWrapper<TEquipmentApply> query1 = Wrappers.lambdaQuery();
  313. query1.eq(TEquipmentApply::getClientId, clientId);
  314. query1.eq(TEquipmentApply::getStatusType, "1");
  315. query1.eq(TEquipmentApply::getManagerId, managerId);
  316. String dateStr = "2022-12-28 00:00:00";
  317. //获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
  318. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  319. try {
  320. //使用SimpleDateFormat的parse()方法生成Date
  321. Date date = sf.parse(dateStr);
  322. query1.gt(TEquipmentApply::getCreateDate, date);
  323. } catch (ParseException e) {
  324. e.printStackTrace();
  325. }
  326. List<TEquipmentApply> list1 = equipmentApplyService.list(query1);
  327. if (list1.size() > 0) {
  328. return "重复申请";
  329. }
  330. TEquipmentApply equipmentApply = new TEquipmentApply();
  331. equipmentApply.setStatusType(1);
  332. equipmentApply.setClientId(clientId);
  333. equipmentApply.setManagerId(managerId);
  334. equipmentApply.setGtClientId(gtClientId);
  335. Long adminId = AdminUtils.decrypt(false, managerId);
  336. if (adminId == null) {
  337. return "找不到商家";
  338. }
  339. TAdmin admin = adminService.getById(adminId);
  340. if (admin == null) {
  341. return "找不到商家";
  342. }
  343. Integer type = admin.getType();
  344. if (type != null && type == 3) {
  345. return "账号类型错误,请使用商家账号绑定";
  346. }
  347. //所属商家
  348. String username = admin.getUsername();
  349. equipmentApply.setAdminId(adminId);
  350. equipmentApply.setAdminUserName(username);
  351. equipmentApply.setEquimentType(equimentType);
  352. // 如果是爆米花
  353. if (equimentType.equals("P10") || equimentType.equals("P20") || equimentType.equals("P30") || equimentType.equals("SBM10")) {
  354. machineType = "1";
  355. }
  356. // 如果是冰淇淋
  357. if (equimentType.equals("SI320")) {
  358. machineType = "2";
  359. }
  360. // 如果是冰沙机
  361. if (equimentType.equals("EF210")) {
  362. machineType = "3";
  363. }
  364. equipmentApply.setMachineType(machineType);
  365. equipmentApply.setCreateDate(new Date());
  366. equipmentApply.setModifyDate(new Date());
  367. equipmentApplyService.save(equipmentApply);
  368. if (status.equals("1") || String.valueOf(adminId).equals("3") || String.valueOf(adminId).equals("31") || String.valueOf(adminId).equals("506") || String.valueOf(adminId).equals("1090")) {
  369. Long id = equipmentApply.getId();
  370. agree(id);
  371. return "设备申请成功";
  372. }
  373. if (admin.getApplyStartTime() != null && admin.getApplyEndTime() != null) {
  374. Date applyStartTime = admin.getApplyStartTime();
  375. Date applyEndTime = admin.getApplyEndTime();
  376. Date now = new Date();
  377. if (now.getTime() > applyStartTime.getTime() && now.getTime() < applyEndTime.getTime()) {
  378. Long id = equipmentApply.getId();
  379. agree(id);
  380. return "设备申请成功";
  381. }
  382. }
  383. return "设备申请中,请耐心等待";
  384. }
  385. private void agree(Long id) {
  386. String status = "agreed";
  387. if (null != id) {
  388. TEquipmentApply equipmentApply = equipmentApplyService.getById(id);
  389. Integer statusType = equipmentApply.getStatusType();
  390. if (statusType > 1) {
  391. equipmentApply = null;
  392. }
  393. if (equipmentApply != null) {
  394. if (!StringUtils.isEmpty(status)) {
  395. if (status.equals("agreed")) {
  396. String clientId = equipmentApply.getClientId();
  397. //判断是否设备初始化
  398. Long adminId = equipmentApply.getAdminId();
  399. String adminLevel = equipmentApply.getAdminLevel();
  400. String adminUserName = equipmentApply.getAdminUserName();
  401. String gtClientId = equipmentApply.getGtClientId();
  402. String equimentType = equipmentApply.getEquimentType();
  403. String machineType = equipmentApply.getMachineType();
  404. TAdmin admin = adminService.getById(adminId);
  405. String companyType = admin.getCompanyType(); // 公司平台
  406. String old = "";
  407. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  408. query.like(TEquipment::getClientId, clientId + "xxx");
  409. List<TEquipment> list = equipmentService.list(query);
  410. LambdaQueryWrapper<TEquipment> query0 = Wrappers.lambdaQuery();
  411. query0.eq(TEquipment::getClientId, clientId);
  412. List<TEquipment> list2 = equipmentService.list(query0);
  413. equipmentApply.setStatusType(3);
  414. if (list.size() > 0 || list2.size() > 0) {
  415. //表示设备第二次申请了:主要为了区分脱离以及初始化
  416. old = "1";
  417. //重新修改设备名称
  418. TEquipment equipment = new TEquipment();
  419. if (list2.size() > 0) {
  420. equipment = list2.get(0);
  421. } else {
  422. equipment = list.get(0);
  423. }
  424. equipment.setClientId(clientId);
  425. equipment.setGtClientId(gtClientId);
  426. equipment.setAdminId(adminId);
  427. equipment.setAdminLevel(adminLevel);
  428. equipment.setAdminUserName(adminUserName);
  429. equipment.setMachineType(machineType);
  430. equipment.setCompanyType(companyType);
  431. if (equipmentApply.getEquimentType().equals("MG320-1")) {
  432. if (!equipmentApply.getEquimentType().equals(equipment.getEquimentType()) && equipment.getEquimentType().equals("MG320")) {
  433. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  434. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  435. List<TProduct> productList = productService.list(queryProduct);
  436. if (productList.size() == 18) {
  437. //从18种变成30种花型
  438. saveProductMG12(equipment.getId());
  439. }
  440. }
  441. equipment.setEquimentType("MG320");
  442. } else {
  443. equipment.setEquimentType(equipmentApply.getEquimentType());
  444. }
  445. // if (equipmentApply.getEquimentType().equals("MG330")) {
  446. // equipment.setEquimentType("MG330");
  447. // }
  448. // if (equipmentApply.getEquimentType().equals("P30")) {
  449. // equipment.setEquimentType(equipmentApply.getEquimentType());
  450. // }
  451. // if (equipmentApply.getEquimentType().equals("SI320")) {
  452. // equipment.setEquimentType(equipmentApply.getEquimentType());
  453. // }
  454. equipmentService.updateById(equipment);
  455. LambdaQueryWrapper<TProportion> queryProportion = Wrappers.lambdaQuery();
  456. queryProportion.eq(TProportion::getEquipmentId, equipment.getId());
  457. List<TProportion> list1 = proportionService.list(queryProportion);
  458. if (list1.size() > 0) {
  459. for (TProportion proportion : list1) {
  460. proportionService.removeById(proportion.getId());
  461. }
  462. }
  463. try {
  464. esTEquipmentService.updateDataById(equipment);
  465. } catch (Exception e) {
  466. e.printStackTrace();
  467. }
  468. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  469. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  470. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  471. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")) {
  472. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  473. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  474. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")) {
  475. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  476. PushUtils.push(equipmentApply.getGtClientId(), "【冰淇淋】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  477. }
  478. if (equipment.getEquimentType().equals("280")) {
  479. equipmentService.sentMessage(clientId, PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  480. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  481. }
  482. LambdaQueryWrapper<TEquipmentDesc> lqw = Wrappers.lambdaQuery();
  483. lqw.eq(TEquipmentDesc::getEquipmentId, equipment.getId());
  484. List<TEquipmentDesc> equipmentDescs = equipmentDescService.list(lqw);
  485. if (equipmentDescs.size() == 0) {
  486. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  487. equipmentDesc.setEquipmentId(equipment.getId());
  488. equipmentDescService.save(equipmentDesc);
  489. }
  490. } else {
  491. TEquipment equipment = new TEquipment();
  492. equipment.setId(IDGenerator.commonID());
  493. equipment.setCreateDate(new Date());
  494. equipment.setModifyDate(new Date());
  495. equipment.setClientId(clientId);
  496. equipment.setManagerId(equipmentApply.getManagerId());
  497. equipment.setAdminId(adminId);
  498. equipment.setAdminLevel(adminLevel);
  499. equipment.setGtClientId(gtClientId);
  500. equipment.setAdminUserName(adminUserName);
  501. equipment.setIsUsing(true);
  502. equipment.setIsNetWork(true);
  503. equipment.setGuestPwd("123456");
  504. equipment.setAdminPwd("123456");
  505. equipment.setChannel("1");
  506. equipment.setProductTotal(0);
  507. equipment.setCompanyType(companyType);
  508. equipment.setMachineType(machineType);
  509. //设置默认规则
  510. equipment.setTimeRuleId(Long.valueOf(1));
  511. if (equimentType.equals("MG320-1")) {
  512. equipment.setEquimentType("MG320");
  513. } else {
  514. equipment.setEquimentType(equimentType);
  515. }
  516. if (!StringUtils.isEmpty(equimentType) && equimentType.equals("MG280")) {
  517. Long monthBegin = getMonthBegin(new Date());
  518. long time = System.currentTimeMillis();
  519. if (time < monthBegin) {
  520. equipment.setEndDate(new Date(monthBegin));
  521. } else {
  522. Date date = nextMonthDate();
  523. equipment.setEndDate(date);
  524. }
  525. equipmentService.sentMessage(clientId, PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  526. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate", String.valueOf(equipment.getEndDate().getTime())).toString());
  527. }
  528. equipmentService.save(equipment);
  529. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  530. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  531. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  532. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")) {
  533. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  534. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  535. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")) {
  536. equipmentService.sentMessage(clientId, PushUtils.buildJson("statusType", "agreed" + old).toString());
  537. PushUtils.push(equipmentApply.getGtClientId(), "【冰淇淋】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  538. }
  539. LambdaQueryWrapper<TEquipment> query3 = Wrappers.lambdaQuery();
  540. query3.eq(TEquipment::getClientId, clientId);
  541. TEquipment tEquipment = equipmentService.getOne(query3);
  542. try {
  543. if (tEquipment != null) {
  544. esTEquipmentService.insertData(tEquipment);
  545. }
  546. } catch (Exception e) {
  547. e.printStackTrace();
  548. }
  549. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  550. equipmentDesc.setEquipmentId(tEquipment.getId());
  551. equipmentDescService.save(equipmentDesc);
  552. }
  553. //获取设备的id
  554. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  555. query1.eq(TEquipment::getClientId, clientId);
  556. TEquipment equipment = equipmentService.getOne(query1);
  557. Long equipmentId = equipment.getId();
  558. // 如果存在旧花型,就删除重新创建
  559. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  560. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  561. List<TProduct> productList = productService.list(queryProduct);
  562. if (productList.isEmpty()) {
  563. if (StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  564. if (equipmentApply.getEquimentType() != null && equipmentApply.getEquimentType().equals("MG280")) {
  565. saveProductMG280(equipmentId);
  566. } else if (equipmentApply.getEquimentType() != null && equipmentApply.getEquimentType().equals("MG320-1")) {
  567. saveProductMG1(equipmentId);
  568. } else {
  569. saveProduct(equipmentId);
  570. }
  571. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("1")) {
  572. switch (equimentType) {
  573. case "P30":
  574. saveGoodsData(equipmentId, machineType, 6, equimentType);
  575. break;
  576. case "P20":
  577. saveGoodsData(equipmentId, machineType, 12, equimentType);
  578. break;
  579. case "P10":
  580. saveGoodsData(equipmentId, machineType, 2, equimentType);
  581. break;
  582. case "SBM10":
  583. saveGoodsData(equipmentId, machineType, 2, equimentType);
  584. break;
  585. default:
  586. break;
  587. }
  588. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("2")) {
  589. if (equimentType.equals("SI320")) {
  590. saveGoodsData(equipmentId, machineType, 6, equimentType);
  591. }
  592. } else if (StringUtils.isNotEmpty(machineType) && machineType.equals("3")) {
  593. if (equimentType.equals("EF210")) {
  594. saveGoodsData(equipmentId, machineType, 5, equimentType);
  595. }
  596. }
  597. }
  598. if (String.valueOf(adminId).equals("3") || String.valueOf(adminId).equals("31") || String.valueOf(adminId).equals("506") || String.valueOf(adminId).equals("1090")) {
  599. //自动设置分销
  600. setProportion(adminId, equipmentId, clientId);
  601. }
  602. } else if (status.equals("rejected")) {
  603. equipmentApply.setStatusType(2);
  604. equipmentService.sentMessage(equipmentApply.getClientId(), PushUtils.buildJson("statusType", "rejected").toString());
  605. }
  606. equipmentApplyService.updateById(equipmentApply);
  607. }
  608. }
  609. }
  610. }
  611. private void setProportion(Long adminId, Long equipmentId, String clientId) {
  612. //先找到原账户的分销
  613. LambdaQueryWrapper<TProportion> query3 = Wrappers.lambdaQuery();
  614. query3.eq(TProportion::getAdminId, adminId);
  615. List<TProportion> list3 = proportionService.list(query3);
  616. if (list3.size() > 0) {
  617. TProportion adminProportion = list3.get(0);
  618. if (StringUtils.isEmpty(adminProportion.getClientId())) {
  619. TProportion equipmentProportion = new TProportion();
  620. equipmentProportion.setCreateDate(new Date());
  621. equipmentProportion.setModifyDate(new Date());
  622. equipmentProportion.setAdminId(adminId);
  623. equipmentProportion.setClientId(clientId);
  624. equipmentProportion.setEquipmentId(equipmentId);
  625. equipmentProportion.setAdminProportion(adminProportion.getAdminProportion());
  626. Integer type = adminProportion.getType();
  627. if (type != null) {
  628. switch (type) {
  629. case 1:
  630. equipmentProportion.setProportion(adminProportion.getAgencyProportion());
  631. equipmentProportion.setAgencyProportion(new BigDecimal("0.00"));
  632. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  633. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  634. equipmentProportion.setType(0);
  635. break;
  636. case 2:
  637. equipmentProportion.setProportion(adminProportion.getMerchantProportion());
  638. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  639. equipmentProportion.setAgencyId(adminProportion.getAgencyId());
  640. TAdmin byId = adminService.getById(adminProportion.getAgencyId());
  641. equipmentProportion.setAgencyName(byId.getUsername());
  642. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  643. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  644. equipmentProportion.setType(1);
  645. break;
  646. case 3:
  647. equipmentProportion.setProportion(adminProportion.getPersonageProportion());
  648. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  649. equipmentProportion.setAgencyId(adminProportion.getAgencyId());
  650. TAdmin byId1 = adminService.getById(adminProportion.getAgencyId());
  651. equipmentProportion.setAgencyName(byId1.getUsername());
  652. equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
  653. equipmentProportion.setMerchantId(adminProportion.getMerchantId());
  654. TAdmin byId2 = adminService.getById(adminProportion.getMerchantId());
  655. equipmentProportion.setMerchantName(byId2.getUsername());
  656. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  657. equipmentProportion.setType(2);
  658. break;
  659. }
  660. boolean save = proportionService.save(equipmentProportion);
  661. }
  662. }
  663. }
  664. }
  665. /**
  666. * 添加商品
  667. *
  668. * @param id
  669. * @param machineType
  670. * @param number
  671. */
  672. private void saveGoodsData(Long id, String machineType, Integer number, String equipmentType) {
  673. LambdaQueryWrapper<TGoodsData> wrapper = Wrappers.lambdaQuery();
  674. wrapper.eq(TGoodsData::getNumber, number);
  675. wrapper.eq(TGoodsData::getMachineType, machineType);
  676. if (!machineType.equals("0")) {
  677. wrapper.eq(TGoodsData::getEquipmentType, equipmentType);
  678. }
  679. TGoodsData goodsData = goodsDataService.getOne(wrapper);
  680. String goods = goodsData.getGoods();
  681. String[] str = goods.split(",");
  682. for (int i = 0; i < str.length; i++) {
  683. TProduct product = new TProduct();
  684. product.setCreateDate(new Date());
  685. product.setModifyDate(new Date());
  686. product.setEquipmentId(id);
  687. String[] split = str[i].split("-");
  688. product.setProductName(split[0]);
  689. product.setNo(split[1]);
  690. product.setRmbPrice(new BigDecimal(0.01));
  691. product.setCodePrice(new BigDecimal(0.01));
  692. productService.save(product);
  693. }
  694. }
  695. /**
  696. * 添加棉花糖产品
  697. *
  698. * @param id
  699. */
  700. private void saveProduct(Long id) {
  701. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  702. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
  703. for (int i = 0; i < str.length; i++) {
  704. TProduct product = new TProduct();
  705. product.setCreateDate(new Date());
  706. product.setModifyDate(new Date());
  707. product.setEquipmentId(id);
  708. String[] split = str[i].split("-");
  709. product.setProductName(split[0]);
  710. product.setNo(split[1]);
  711. product.setRmbPrice(new BigDecimal(0.01));
  712. product.setCodePrice(new BigDecimal(0.01));
  713. productService.save(product);
  714. }
  715. }
  716. private void saveProductMG280(Long id) {
  717. String[] str = {"水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
  718. for (int i = 0; i < str.length; i++) {
  719. TProduct product = new TProduct();
  720. product.setCreateDate(new Date());
  721. product.setModifyDate(new Date());
  722. product.setEquipmentId(id);
  723. String[] split = str[i].split("-");
  724. product.setProductName(split[0]);
  725. product.setNo(split[1]);
  726. product.setRmbPrice(new BigDecimal(0.01));
  727. product.setCodePrice(new BigDecimal(0.01));
  728. productService.save(product);
  729. }
  730. }
  731. private void saveProductMG1(Long id) {
  732. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  733. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  734. "精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24", "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28",
  735. "花样年华-A29", "心花怒放-A30"};
  736. for (int i = 0; i < str.length; i++) {
  737. TProduct product = new TProduct();
  738. product.setCreateDate(new Date());
  739. product.setModifyDate(new Date());
  740. product.setEquipmentId(id);
  741. String[] split = str[i].split("-");
  742. product.setProductName(split[0]);
  743. product.setNo(split[1]);
  744. product.setRmbPrice(new BigDecimal(0.01));
  745. product.setCodePrice(new BigDecimal(0.01));
  746. productService.save(product);
  747. }
  748. }
  749. private void saveProductMG12(Long id) {
  750. String[] str = {"精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24"
  751. , "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28", "花样年华-A29", "心花怒放-A30"};
  752. for (int i = 0; i < str.length; i++) {
  753. TProduct product = new TProduct();
  754. product.setEquipmentId(id);
  755. product.setCreateDate(new Date());
  756. product.setModifyDate(new Date());
  757. String[] split = str[i].split("-");
  758. product.setProductName(split[0]);
  759. product.setNo(split[1]);
  760. product.setRmbPrice(new BigDecimal(0.01));
  761. product.setCodePrice(new BigDecimal(0.01));
  762. productService.save(product);
  763. }
  764. }
  765. private void saveProductMG22(Long id) {
  766. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  767. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19", "蜂缠蝶恋-A22", "坠入星空-A25", "花飞蝶舞-A28"};
  768. for (int i = 0; i < str.length; i++) {
  769. TProduct product = new TProduct();
  770. product.setCreateDate(new Date());
  771. product.setModifyDate(new Date());
  772. product.setEquipmentId(id);
  773. String[] split = str[i].split("-");
  774. product.setProductName(split[0]);
  775. product.setNo(split[1]);
  776. product.setRmbPrice(new BigDecimal(0.01));
  777. product.setCodePrice(new BigDecimal(0.01));
  778. productService.save(product);
  779. }
  780. }
  781. private void saveProductMG26(Long id) {
  782. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  783. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19", "蜂缠蝶恋-A22", "坠入星空-A25", "花飞蝶舞-A28",
  784. "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
  785. for (int i = 0; i < str.length; i++) {
  786. TProduct product = new TProduct();
  787. product.setCreateDate(new Date());
  788. product.setModifyDate(new Date());
  789. product.setEquipmentId(id);
  790. String[] split = str[i].split("-");
  791. product.setProductName(split[0]);
  792. product.setNo(split[1]);
  793. product.setRmbPrice(new BigDecimal(0.01));
  794. product.setCodePrice(new BigDecimal(0.01));
  795. productService.save(product);
  796. }
  797. }
  798. private void saveProductMG42(Long id) {
  799. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  800. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  801. "精灵蝶梦-A19", "夏日倾城-A20", "百花齐放-A21", "蜂缠蝶恋-A22", "豆蔻年华-A23", "星空幻想-A24", "坠入星空-A25", "雪花飞舞-A26", "春暖花开-A27", "花飞蝶舞-A28",
  802. "花样年华-A29", "心花怒放-A30", "花好月圆-A37", "出水芙蓉-A38", "微光染晕-A39", "夏日莓莓-A40", "芳楚纷飞-A41", "晨夕光晕-A42", "坠入爱河-A43", "天马行空-A44",
  803. "灼灼其华-A45", "一帘幽梦-A46", "七月初夏-A47", "四月微风-A48"};
  804. for (int i = 0; i < str.length; i++) {
  805. TProduct product = new TProduct();
  806. product.setCreateDate(new Date());
  807. product.setModifyDate(new Date());
  808. product.setEquipmentId(id);
  809. String[] split = str[i].split("-");
  810. product.setProductName(split[0]);
  811. product.setNo(split[1]);
  812. product.setRmbPrice(new BigDecimal(0.01));
  813. product.setCodePrice(new BigDecimal(0.01));
  814. productService.save(product);
  815. }
  816. }
  817. /**
  818. * 添加爆米花产品
  819. *
  820. * @param id
  821. */
  822. private void saveProductP30(Long id) {
  823. String[] str = {"活力爆米花(正常糖)-B01", "活力爆米花(无糖)-B02", "活力爆米花(巧克力)-B03", "活力爆米花(焦糖)-B04", "活力爆米花(水蜜桃)-B05", "活力爆米花(蓝莓)-B06"};
  824. for (int i = 0; i < str.length; i++) {
  825. TProduct product = new TProduct();
  826. product.setCreateDate(new Date());
  827. product.setModifyDate(new Date());
  828. product.setEquipmentId(id);
  829. String[] split = str[i].split("-");
  830. product.setProductName(split[0]);
  831. product.setNo(split[1]);
  832. product.setRmbPrice(new BigDecimal(0.01));
  833. product.setCodePrice(new BigDecimal(0.01));
  834. productService.save(product);
  835. }
  836. }
  837. /**
  838. * 添加冰淇淋产品
  839. *
  840. * @param id
  841. */
  842. private void saveProductSI320(Long id) {
  843. LambdaQueryWrapper<TGoodsData> wrapper = Wrappers.lambdaQuery();
  844. wrapper.eq(TGoodsData::getNumber, 6);
  845. wrapper.eq(TGoodsData::getMachineType, "2");
  846. TGoodsData goodsData = goodsDataService.getOne(wrapper);
  847. String goods = goodsData.getGoods();
  848. String[] str = goods.split(",");
  849. for (int i = 0; i < str.length; i++) {
  850. TProduct product = new TProduct();
  851. product.setCreateDate(new Date());
  852. product.setModifyDate(new Date());
  853. product.setEquipmentId(id);
  854. String[] split = str[i].split("-");
  855. product.setProductName(split[0]);
  856. product.setNo(split[1]);
  857. product.setRmbPrice(new BigDecimal(0.01));
  858. product.setCodePrice(new BigDecimal(0.01));
  859. productService.save(product);
  860. }
  861. }
  862. /**
  863. * 获取指定日期所在月份开始的时间戳
  864. *
  865. * @param date 指定日期
  866. * @return
  867. */
  868. public static Long getMonthBegin(Date date) {
  869. Calendar c = Calendar.getInstance();
  870. c.setTime(date);
  871. //设置为10号,当前日期既为本月10号
  872. c.set(Calendar.DAY_OF_MONTH, 10);
  873. //将小时至0
  874. c.set(Calendar.HOUR_OF_DAY, 0);
  875. //将分钟至0
  876. c.set(Calendar.MINUTE, 0);
  877. //将秒至0
  878. c.set(Calendar.SECOND, 0);
  879. //将毫秒至0
  880. c.set(Calendar.MILLISECOND, 0);
  881. // 获取本月第一天的时间戳
  882. return c.getTimeInMillis();
  883. }
  884. public static Date nextMonthDate() {
  885. Calendar calendar = Calendar.getInstance();
  886. calendar.set(Calendar.DAY_OF_MONTH, 10);
  887. //将小时至0
  888. calendar.set(Calendar.HOUR_OF_DAY, 0);
  889. //将分钟至0
  890. calendar.set(Calendar.MINUTE, 0);
  891. //将秒至0
  892. calendar.set(Calendar.SECOND, 0);
  893. //将毫秒至0
  894. calendar.set(Calendar.MILLISECOND, 0);
  895. calendar.add(Calendar.MONTH, 1);
  896. return calendar.getTime();
  897. }
  898. /**
  899. * 改花型
  900. *
  901. * @param
  902. * @return
  903. */
  904. @RequestMapping(value = "/updateFlowers.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  905. @ResponseBody
  906. public String updateFlowers(String clientId, String number) {
  907. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  908. query.eq(TEquipment::getClientId, clientId);
  909. TEquipment equipment = equipmentService.getOne(query);
  910. if (equipment != null) {
  911. Long id = equipment.getId();
  912. //修改花型记录数目
  913. equipment.setFlowers(number);
  914. equipmentService.updateById(equipment);
  915. //修改设备描述表中的花型记录数目
  916. TEquipmentDesc equipmentDesc = equipmentDescService.getById(id);
  917. if (equipmentDesc != null) {
  918. equipmentDesc.setFlowers(number);
  919. equipmentDescService.updateById(equipmentDesc);
  920. } else {
  921. TEquipmentDesc equipmentDesc1 = new TEquipmentDesc();
  922. equipmentDesc1.setEquipmentId(id);
  923. equipmentDesc1.setFlowers(number);
  924. equipmentDescService.save(equipmentDesc1);
  925. }
  926. //删除旧花型
  927. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  928. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  929. List<TProduct> productList = productService.list(queryProduct);
  930. for (TProduct product : productList) {
  931. productService.removeById(product.getId());
  932. }
  933. // 机器类型
  934. String machineType = equipment.getMachineType();
  935. if (StringUtils.isEmpty(equipment.getMachineType())) {
  936. machineType = "0";
  937. }
  938. String equipmentType = equipment.getEquimentType();
  939. //创建花型
  940. saveGoodsData(id, machineType, Integer.parseInt(number), equipmentType);
  941. return "success";
  942. } else {
  943. return "error";
  944. }
  945. }
  946. /**
  947. * 设备类型 开机时上传
  948. *
  949. * @param clientId 个推
  950. * @return
  951. */
  952. @RequestMapping(value = "/equimentType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  953. @ResponseBody
  954. public String equimentType(String clientId, String equimentType) {
  955. if (!StringUtils.isEmpty(equimentType)) {
  956. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  957. query.eq(TEquipment::getClientId, clientId);
  958. TEquipment equipment = equipmentService.getOne(query);
  959. equipment.setEquimentType(equimentType);
  960. equipmentService.updateById(equipment);
  961. }
  962. return "success";
  963. }
  964. /**
  965. * 设备地址 开机时上传
  966. *
  967. * @param clientId 个推
  968. * @return
  969. */
  970. @RequestMapping(value = "/equimentArea.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  971. @ResponseBody
  972. public String equimentArea(String clientId, String longitude, String latitude, String fullName) {
  973. if (!StringUtils.isEmpty(longitude) && !StringUtils.isEmpty(latitude) && !StringUtils.isEmpty(fullName)) {
  974. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  975. query.eq(TEquipment::getClientId, clientId);
  976. TEquipment equipment = equipmentService.getOne(query);
  977. equipment.setLatitude(Double.valueOf(latitude));
  978. equipment.setLongitude(Double.valueOf(longitude));
  979. equipment.setFullName(fullName + "-");
  980. equipmentService.updateById(equipment);
  981. return "success";
  982. }
  983. return "error";
  984. }
  985. /**
  986. * 商品调价
  987. */
  988. @RequestMapping(value = "/updateProduct.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  989. @ResponseBody
  990. public String updateProduct(@RequestBody List<ProductVo> productVos) {
  991. for (ProductVo product : productVos) {
  992. String clientId = product.getClientId();
  993. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  994. query.eq(TEquipment::getClientId, clientId);
  995. TEquipment equipment = equipmentService.getOne(query);
  996. Long id = equipment.getId();
  997. if (StringUtils.isNotEmpty(product.getShowType())) {
  998. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  999. queryProduct.eq(TProduct::getEquipmentId, id);
  1000. queryProduct.eq(TProduct::getProductName, product.getProductName());
  1001. TProduct tProduct = productService.getOnly(queryProduct);
  1002. if (tProduct == null) {
  1003. LambdaQueryWrapper<TNameDictionary> wrapper = Wrappers.lambdaQuery();
  1004. wrapper.eq(TNameDictionary::getLanguage, "zh");
  1005. wrapper.eq(TNameDictionary::getName, product.getProductName());
  1006. TNameDictionary nameDictionary = nameDictionaryService.getOne(wrapper);
  1007. LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
  1008. queryWrapper.eq(TProduct::getEquipmentId, id);
  1009. queryWrapper.eq(TProduct::getNo, nameDictionary.getNo());
  1010. tProduct = productService.getOnly(queryWrapper);
  1011. }
  1012. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  1013. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  1014. tProduct.setShowType(product.getShowType());
  1015. tProduct.setSellStatus(product.getSellStatus());
  1016. productService.updateById(tProduct);
  1017. } else {
  1018. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1019. queryProduct.eq(TProduct::getEquipmentId, id);
  1020. queryProduct.eq(TProduct::getProductName, product.getProductName());
  1021. TProduct tProduct = productService.getOnly(queryProduct);
  1022. if (tProduct == null) {
  1023. LambdaQueryWrapper<TNameDictionary> wrapper = Wrappers.lambdaQuery();
  1024. wrapper.eq(TNameDictionary::getLanguage, "zh");
  1025. wrapper.eq(TNameDictionary::getName, product.getProductName());
  1026. TNameDictionary nameDictionary = nameDictionaryService.getOne(wrapper);
  1027. LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
  1028. queryWrapper.eq(TProduct::getEquipmentId, id);
  1029. queryWrapper.eq(TProduct::getNo, nameDictionary.getNo());
  1030. tProduct = productService.getOnly(queryWrapper);
  1031. }
  1032. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  1033. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  1034. tProduct.setSellStatus(product.getSellStatus());
  1035. productService.updateById(tProduct);
  1036. }
  1037. }
  1038. return "调价成功";
  1039. }
  1040. public Double tran(Double d) {
  1041. return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
  1042. }
  1043. public Double tran2(Double d) {
  1044. return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  1045. }
  1046. /**
  1047. * 密码修改
  1048. *
  1049. * @param clientId 设备个推Id
  1050. * @param pwdType 密码类型 1d代表修adminPwd,0代表guestPwd
  1051. * @return
  1052. * @Param pwd 密码内容
  1053. */
  1054. @RequestMapping(value = "/updatePwd.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1055. @ResponseBody
  1056. public String updatePwd(String clientId, String pwdType, String pwd) {
  1057. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1058. query.eq(TEquipment::getClientId, clientId);
  1059. TEquipment equipment = equipmentService.getOne(query);
  1060. if (equipment != null) {
  1061. if (!StringUtils.isEmpty(pwdType)) {
  1062. switch (pwdType) {
  1063. case "1":
  1064. equipment.setAdminPwd(pwd);
  1065. break;
  1066. case "0":
  1067. equipment.setGuestPwd(pwd);
  1068. break;
  1069. }
  1070. equipmentService.updateById(equipment);
  1071. return "更新密码成功";
  1072. }
  1073. }
  1074. return "更新密码失败";
  1075. }
  1076. /**
  1077. * 设备获取密码
  1078. */
  1079. @GetMapping(value = "/getPwd", produces = "text/html;charset=utf-8")
  1080. @ResponseBody
  1081. public String getPwd(String clientId) {
  1082. if (StringUtils.isEmpty(clientId)) {
  1083. return null;
  1084. }
  1085. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1086. query.eq(TEquipment::getClientId, clientId);
  1087. TEquipment equipment = equipmentService.getOne(query);
  1088. Map<String, String> map = new HashMap<>();
  1089. map.put("adminPwd", equipment.getAdminPwd());
  1090. map.put("guestPwd", equipment.getGuestPwd());
  1091. JSONObject jsonObject = new JSONObject();
  1092. jsonObject.put("code", 0);
  1093. jsonObject.put("data", JSONObject.toJSON(map).toString());
  1094. jsonObject.put("errmsg", "");
  1095. return jsonObject.toJSONString();
  1096. }
  1097. /**
  1098. * 修改支付方式
  1099. *
  1100. * @param clientId
  1101. * @param payType: 无需支付
  1102. * 线上支付
  1103. * 线下支付
  1104. * 线上/线下
  1105. * @return
  1106. */
  1107. @RequestMapping(value = "/updatePayType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1108. @ResponseBody
  1109. public String updatePayType(String clientId, String payType) {
  1110. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1111. query.eq(TEquipment::getClientId, clientId);
  1112. TEquipment equipment = equipmentService.getOne(query);
  1113. if (equipment == null) {
  1114. return "修改支付方式失败";
  1115. }
  1116. equipment.setPayType(0);
  1117. equipmentService.updateById(equipment);
  1118. return "修改成功";
  1119. }
  1120. /**
  1121. * 日志上传
  1122. */
  1123. @RequestMapping(value = "/sendLog.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1124. @ResponseBody
  1125. public String uploadFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception {
  1126. //构造一个带指定 Region 对象的配置类
  1127. Configuration cfg = new Configuration(Region.region2());
  1128. cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
  1129. UploadManager uploadManager = new UploadManager(cfg);
  1130. //默认不指定key的情况下,以文件内容的hash值作为文件名
  1131. String key = "log/" + fileName + ".txt";
  1132. try {
  1133. ServletInputStream input = request.getInputStream();
  1134. Auth auth = Auth.create(ConfigConsts.QINIU_CLOUD_ACCESS_KEY, ConfigConsts.QINIU_CLOUD_SECRET_KEY);
  1135. String upToken = auth.uploadToken(ConfigConsts.QINIU_CLOUD_BUCKET, key);
  1136. Response responseMap = uploadManager.put(input, key, upToken, null, null);
  1137. //解析上传成功的结果
  1138. DefaultPutRet putRet = new Gson().fromJson(responseMap.bodyString(), DefaultPutRet.class);
  1139. String result = "https://qiniuyun.sunzee.com.cn/" + key;
  1140. Configuration cfg0 = new Configuration(Region.region0());
  1141. int days = 7;
  1142. BucketManager bucketManager = new BucketManager(auth, cfg0);
  1143. bucketManager.deleteAfterDays(ConfigConsts.QINIU_CLOUD_BUCKET, key, days);
  1144. } catch (Exception ex) {
  1145. //响应信息 json字符串格式
  1146. Map<String, Object> responseMap = new HashMap<String, Object>();
  1147. responseMap.put("flag", false);
  1148. responseMap.put("errorMsg", ex.getMessage());
  1149. String jsonResponse = JSONObject.toJSONString(responseMap);
  1150. sendResponse(jsonResponse, response);
  1151. }
  1152. return "success";
  1153. }
  1154. /**
  1155. * 返回响应
  1156. *
  1157. * @throws Exception
  1158. */
  1159. private void sendResponse(String responseString, HttpServletResponse response) throws Exception {
  1160. response.setContentType("application/json;charset=UTF-8");
  1161. PrintWriter pw = null;
  1162. try {
  1163. pw = response.getWriter();
  1164. pw.write(responseString);
  1165. pw.flush();
  1166. } finally {
  1167. IOUtils.closeQuietly(pw);
  1168. }
  1169. }
  1170. /**
  1171. * 脱离系统
  1172. *
  1173. * @param clientId
  1174. * @return
  1175. */
  1176. @RequestMapping(value = "/separate.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1177. @ResponseBody
  1178. public String separate(String clientId) {
  1179. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1180. query.eq(TEquipment::getClientId, clientId);
  1181. TEquipment equipment = equipmentService.getOne(query);
  1182. if (equipment == null) {
  1183. return "该设备不存在";
  1184. }
  1185. equipmentService.sentMessage(clientId, PushUtils.buildJson("tuoji", "0").toString());
  1186. if ("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()))) {
  1187. return "脱离成功";
  1188. }
  1189. equipment.setClientId(equipment.getClientId() + "xxx");
  1190. equipmentService.updateById(equipment);
  1191. return "脱离成功";
  1192. }
  1193. /**
  1194. * 脱离系统
  1195. *
  1196. * @param clientId
  1197. * @return
  1198. */
  1199. @RequestMapping(value = "/updateClientId", method = RequestMethod.POST)
  1200. @ResponseBody
  1201. public String updateClientId(String clientId) {
  1202. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1203. query.eq(TEquipment::getClientId, clientId);
  1204. TEquipment equipment = equipmentService.getOne(query);
  1205. if (equipment == null) {
  1206. return "该设备不存在";
  1207. }
  1208. if ("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3, equipment.getClientId().length()))) {
  1209. return "脱离成功";
  1210. }
  1211. equipment.setClientId(equipment.getClientId() + "xxx");
  1212. equipment.setManagerId(null);
  1213. equipmentService.updateById(equipment);
  1214. return "脱离成功";
  1215. }
  1216. /**
  1217. * 修改设备联系人名称以及电话
  1218. */
  1219. @RequestMapping(value = "/updateContractPN.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1220. @ResponseBody
  1221. public String updateContractPN(String clientId, String contactName, String contactPhone) {
  1222. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1223. query.eq(TEquipment::getClientId, clientId);
  1224. TEquipment equipment = equipmentService.getOne(query);
  1225. if (equipment == null) {
  1226. return "该设备不存在";
  1227. }
  1228. equipment.setContactName(contactName);
  1229. equipment.setContactPhone(contactPhone);
  1230. equipmentService.updateById(equipment);
  1231. return "修改成功";
  1232. }
  1233. /**
  1234. * 设备上传公司电话
  1235. */
  1236. @RequestMapping(value = "/sentCompanyPhone.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1237. @ResponseBody
  1238. public String sentCompanyPhone(String clientId, String companyPhone) {
  1239. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1240. query.eq(TEquipment::getClientId, clientId);
  1241. TEquipment equipment = equipmentService.getOne(query);
  1242. if (equipment == null) {
  1243. return "该设备不存在";
  1244. }
  1245. equipment.setCompanyPhone(companyPhone);
  1246. equipmentService.updateById(equipment);
  1247. return "修改成功";
  1248. }
  1249. /**
  1250. * 获取二维码图片
  1251. */
  1252. @RequestMapping(value = "/getQrCodeImgUrl.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1253. @ResponseBody
  1254. public String getQrCodeImgUrl(String clientId) {
  1255. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1256. query.eq(TEquipment::getClientId, clientId);
  1257. TEquipment equipment = equipmentService.getOne(query);
  1258. if (equipment == null) {
  1259. return "404";
  1260. }
  1261. return "400";
  1262. }
  1263. /**
  1264. * 上传4G卡号
  1265. */
  1266. @RequestMapping(value = "/sentSimNo.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1267. @ResponseBody
  1268. public String sentSimNo(String clientId, String simNo) {
  1269. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1270. query.eq(TEquipment::getClientId, clientId);
  1271. TEquipment equipment = equipmentService.getOne(query);
  1272. if (equipment == null) {
  1273. return "该设备不存在";
  1274. }
  1275. equipment.setSimNo(simNo);
  1276. equipmentService.updateById(equipment);
  1277. return "修改成功";
  1278. }
  1279. /**
  1280. * 上传机器的apk版本
  1281. */
  1282. @RequestMapping(value = "/sendApkVersion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1283. @ResponseBody
  1284. public String sendApkVersion(String clientId, String apkVersion) {
  1285. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1286. query.eq(TEquipment::getClientId, clientId);
  1287. TEquipment equipment = equipmentService.getOne(query);
  1288. if (equipment == null) {
  1289. return "该设备不存在";
  1290. }
  1291. equipment.setApkVersion(apkVersion);
  1292. equipmentService.updateById(equipment);
  1293. return "success";
  1294. }
  1295. /**
  1296. * 上传机器的做糖状态
  1297. */
  1298. @RequestMapping(value = "/equipmentStatus.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1299. @ResponseBody
  1300. public String equipmentStatus(String clientId, String status) {
  1301. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1302. query.eq(TEquipment::getClientId, clientId);
  1303. TEquipment equipment = equipmentService.getOne(query);
  1304. if (equipment == null) {
  1305. return "该设备不存在";
  1306. }
  1307. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1308. //机器状态;0:空闲,1:在做糖;
  1309. equipmentDesc.setStatus(status);
  1310. equipmentDescService.updateById(equipmentDesc);
  1311. return "success";
  1312. }
  1313. /**
  1314. * 修改设备状态
  1315. *
  1316. * @param clientId
  1317. * @param eqeStatus 设备状态1开 0关
  1318. * @return
  1319. */
  1320. @RequestMapping(value = "/updateEqeStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1321. @ResponseBody
  1322. public String updateEqeStatus(String clientId, Integer eqeStatus) {
  1323. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1324. query.eq(TEquipment::getClientId, clientId);
  1325. TEquipment equipment = equipmentService.getOne(query);
  1326. if (equipment == null) {
  1327. return "该设备不存在";
  1328. }
  1329. if (eqeStatus != null) {
  1330. equipment.setEqeStatus(eqeStatus);
  1331. equipment.setModifyDate(new Date());
  1332. // if (eqeStatus == 0) {
  1333. // equipment.setCabinetTm("0");
  1334. // equipment.setCabinetHd("0");
  1335. // equipment.setFurnaceTm("0");
  1336. // equipment.setFurnaceSp("0");
  1337. // }
  1338. equipmentService.updateById(equipment);
  1339. }
  1340. return "修改成功";
  1341. }
  1342. /**
  1343. * 新修改设备状态
  1344. *
  1345. * @param clientId
  1346. * @param eqeStatus 设备状态1开 0关
  1347. * @return
  1348. */
  1349. @RequestMapping(value = "/updateEqeStatusNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1350. @ResponseBody
  1351. public String updateEqeStatusNew(String clientId, Integer eqeStatus, String netTime) {
  1352. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1353. query.eq(TEquipment::getClientId, clientId);
  1354. TEquipment equipment = equipmentService.getOne(query);
  1355. if (equipment == null) {
  1356. return "该设备不存在";
  1357. }
  1358. // 设备名称
  1359. String name = equipment.getName();
  1360. // 如果为空就拿设备编号后六位
  1361. if (StringUtils.isEmpty(name)) {
  1362. name = equipment.getClientId().substring(equipment.getClientId().length() - 6);
  1363. }
  1364. if (eqeStatus != null) {
  1365. equipment.setNetwork(netTime);
  1366. equipment.setEqeStatus(eqeStatus);
  1367. equipment.setModifyDate(new Date());
  1368. // 查询是否有绑定微信
  1369. LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
  1370. wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
  1371. TWechat wechat = wechatService.getOne(wechatQuery);
  1372. // 查询用户
  1373. TAdmin admin = adminService.getById(equipment.getAdminId());
  1374. // 如果有绑定微信
  1375. if (admin != null) {
  1376. // 查询是申泽还是七云的
  1377. String companyType = admin.getCompanyType();
  1378. // 查询用户是否开启设备上线提醒功能
  1379. String onOffNotice = admin.getOnOffNotice();
  1380. if (wechat != null && StringUtils.isNotEmpty(wechat.getOpenId()) && StringUtils.isNotEmpty(onOffNotice) && onOffNotice.equals("1")) {
  1381. // 微信发送设备上下线提醒消息
  1382. wechatService.sendOnOffMessage(wechat.getOpenId(), equipment.getClientId(), netTime, companyType, name, eqeStatus);
  1383. }
  1384. // 查询是否国外账号,国外就发送邮件
  1385. String ifForeign = admin.getIfForeign();
  1386. if (StringUtils.isNotEmpty(ifForeign) && ifForeign.equals("1") && onOffNotice.equals("1")) {
  1387. // 发送邮件提醒
  1388. String machineType = equipment.getMachineType();
  1389. if (StringUtils.isNotEmpty(machineType)) {
  1390. machineType = "0";
  1391. }
  1392. String messageReceiver = equipment.getMessageReceiver();
  1393. String timeZone = admin.getTimeZone();
  1394. // 发送设备设置的报警邮箱,没有设置就发送到账户邮箱
  1395. if (StringUtils.isNotEmpty(messageReceiver)) {
  1396. String[] split = messageReceiver.split(",");
  1397. for (String s : split) {
  1398. WechatSendUtil.sentEmail(s, name, timeZone, machineType, eqeStatus);
  1399. }
  1400. } else {
  1401. String email = admin.getEmail();
  1402. if (email != null) {
  1403. WechatSendUtil.sentEmail(admin.getEmail(), name, timeZone, machineType, eqeStatus);
  1404. }
  1405. }
  1406. }
  1407. }
  1408. equipmentService.updateById(equipment);
  1409. }
  1410. return "修改成功";
  1411. }
  1412. /**
  1413. * 修改设备锁定状态
  1414. *
  1415. * @param clientId
  1416. * @param block
  1417. * @return
  1418. */
  1419. @RequestMapping(value = "/updateBlock.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1420. @ResponseBody
  1421. public String updateBlock(String clientId, Boolean block) {
  1422. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1423. query.eq(TEquipment::getClientId, clientId);
  1424. TEquipment equipment = equipmentService.getOne(query);
  1425. if (equipment == null) {
  1426. return "该设备不存在";
  1427. }
  1428. equipment.setIsBlocked(block);
  1429. equipmentService.updateById(equipment);
  1430. return "修改成功";
  1431. }
  1432. /**
  1433. * 修改设备睡眠状态
  1434. *
  1435. * @param clientId
  1436. * @param is_sleep
  1437. * @return
  1438. */
  1439. @RequestMapping(value = "/updateSleep.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1440. @ResponseBody
  1441. public String updateSleep(String clientId, Boolean is_sleep) {
  1442. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1443. query.eq(TEquipment::getClientId, clientId);
  1444. TEquipment equipment = equipmentService.getOne(query);
  1445. if (equipment == null) {
  1446. return "该设备不存在";
  1447. }
  1448. if (is_sleep != null) {
  1449. equipment.setIsSleep(is_sleep);
  1450. equipmentService.updateById(equipment);
  1451. }
  1452. return "修改成功";
  1453. }
  1454. /**
  1455. * 修改设备生产棉花糖个数
  1456. *
  1457. * @param clientId
  1458. * @param productTotal
  1459. * @return
  1460. */
  1461. @RequestMapping(value = "/updateProductTotal.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1462. @ResponseBody
  1463. public String updateProductTotal(String clientId, Integer productTotal) {
  1464. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1465. query.eq(TEquipment::getClientId, clientId);
  1466. TEquipment equipment = equipmentService.getOne(query);
  1467. if (equipment == null) {
  1468. return "该设备不存在";
  1469. }
  1470. Integer total = equipment.getProductTotal();
  1471. if (total == null) {
  1472. total = 0;
  1473. }
  1474. equipment.setProductTotal(total + productTotal);
  1475. equipmentService.updateById(equipment);
  1476. return "修改成功";
  1477. }
  1478. /**
  1479. * 修改设备共同参数/进阶参数
  1480. *
  1481. * @param
  1482. * @return
  1483. */
  1484. // @PostMapping(value = "/updateParam/{code}/{clientId}", produces = "application/json;charset=UTF-8")
  1485. // @ResponseBody
  1486. // public JsonMessage updateParam(@PathVariable Integer code, @PathVariable String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  1487. // Equipment equipment = equipmentService.findByClientId(clientId);
  1488. // if (equipment == null) {
  1489. // return JsonMessage.error("设备不存在");
  1490. // }
  1491. // String param = JSONArray.toJSONString(commonParamVos);
  1492. // if (code == 0) {
  1493. // equipment.setCommonParameters(param);
  1494. // } else {
  1495. // equipment.setAdvancedParameters(param);
  1496. // }
  1497. // equipmentService.update(equipment);
  1498. // return JsonMessage.success("修改成功");
  1499. // }
  1500. /**
  1501. * 修改设备共同参数/进阶参数
  1502. * code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
  1503. *
  1504. * @param
  1505. * @return
  1506. */
  1507. @RequestMapping(value = "/updateParamNew", method = RequestMethod.POST)
  1508. @ResponseBody
  1509. public String updateParamNew(Integer code, String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  1510. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1511. query.eq(TEquipment::getClientId, clientId);
  1512. TEquipment equipment = equipmentService.getOne(query);
  1513. if (equipment == null) {
  1514. return "设备不存在";
  1515. }
  1516. if (commonParamVos.size() <= 0) {
  1517. return "参数为空";
  1518. }
  1519. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1520. queryParameters.eq(TParameters::getClientId, clientId);
  1521. queryParameters.eq(TParameters::getStatus, code);
  1522. queryParameters.eq(TParameters::getEquipmentId, equipment.getId());
  1523. List<TParameters> list = parametersService.list(queryParameters);
  1524. if (list.size() > 0) {
  1525. for (TParameters parameters : list) {
  1526. //删除旧的参数
  1527. parametersService.removeById(parameters.getId());
  1528. }
  1529. }
  1530. Date date = new Date();
  1531. for (CommonParamVo commonParamVo : commonParamVos) {
  1532. TParameters parameters = new TParameters();
  1533. parameters.setVal(commonParamVo.getVal());
  1534. parameters.setName(commonParamVo.getName());
  1535. parameters.setStatus(String.valueOf(code));
  1536. parameters.setClientId(clientId);
  1537. parameters.setEquipmentId(equipment.getId());
  1538. parameters.setCreateDate(date);
  1539. parameters.setModifyDate(date);
  1540. parametersService.save(parameters);
  1541. }
  1542. return "修改成功";
  1543. }
  1544. /**
  1545. * 修改单个设备共同参数/进阶参数
  1546. * code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
  1547. *
  1548. * @param
  1549. * @return
  1550. */
  1551. @PostMapping(value = "/updateAloneParam.htm", produces = "text/html;charset=utf-8")
  1552. @ResponseBody
  1553. public String updateAloneParam(String code, String clientId, String name, String val) {
  1554. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1555. query.eq(TEquipment::getClientId, clientId);
  1556. TEquipment equipment = equipmentService.getOne(query);
  1557. if (equipment == null) {
  1558. return "设备不存在";
  1559. }
  1560. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1561. queryParameters.eq(TParameters::getClientId, clientId);
  1562. queryParameters.eq(TParameters::getStatus, code);
  1563. queryParameters.eq(TParameters::getName, name);
  1564. queryParameters.eq(TParameters::getEquipmentId, equipment.getId());
  1565. List<TParameters> list1 = parametersService.list(queryParameters);
  1566. if (list1.size() > 0) {
  1567. TParameters parameters = list1.get(0);
  1568. parameters.setVal(val);
  1569. parameters.setModifyDate(new Date());
  1570. parametersService.updateById(parameters);
  1571. }
  1572. return "修改成功";
  1573. }
  1574. /**
  1575. * 获取机器列表
  1576. */
  1577. @RequestMapping(value = "/getEquipmentList.htm", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
  1578. @ResponseBody
  1579. public String getByAdminAndProduct(String adminId, String name) {
  1580. JSONObject jsonObject = new JSONObject();
  1581. if (StringUtils.isEmpty(adminId)) {
  1582. jsonObject.put("code", 1);
  1583. jsonObject.put("errmsg", "adminId为空");
  1584. return jsonObject.toJSONString();
  1585. }
  1586. if (StringUtils.isEmpty(name)) {
  1587. jsonObject.put("code", 1);
  1588. jsonObject.put("errmsg", "name为空");
  1589. return jsonObject.toJSONString();
  1590. }
  1591. TAdmin admin = adminService.getById(adminId);
  1592. if (!admin.getUsername().equals(name)) {
  1593. jsonObject.put("code", 1);
  1594. jsonObject.put("errmsg", "name与adminId不匹配");
  1595. return jsonObject.toJSONString();
  1596. }
  1597. List<EquipmentDTO> list = new ArrayList<>();
  1598. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1599. query.eq(TEquipment::getAdminId, Long.valueOf(adminId));
  1600. List<TEquipment> equipmentList = equipmentService.list(query);
  1601. for (TEquipment equipment : equipmentList) {
  1602. EquipmentDTO equipmentDTO = new EquipmentDTO();
  1603. equipmentDTO.setClientId(equipment.getClientId());
  1604. equipmentDTO.setSn(equipment.getSn());
  1605. equipmentDTO.setName(equipment.getName());
  1606. equipmentDTO.setLatitude(equipment.getLatitude());
  1607. equipmentDTO.setLongitude(equipment.getLongitude());
  1608. equipmentDTO.setFullName(equipment.getFullName());
  1609. equipmentDTO.setEqeStatus(equipment.getEqeStatus());
  1610. list.add(equipmentDTO);
  1611. }
  1612. jsonObject.put("code", 0);
  1613. jsonObject.put("rows", JsonUtils.toJson(list));
  1614. jsonObject.put("errmsg", "");
  1615. jsonObject.put("total", list.size());
  1616. return jsonObject.toJSONString();
  1617. }
  1618. /**
  1619. * 获取商品信息
  1620. */
  1621. @RequestMapping(value = "/getProductions.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1622. @ResponseBody
  1623. public String getProductions(String adminId, String clientId) {
  1624. JSONObject jsonObject = new JSONObject();
  1625. if (StringUtils.isEmpty(adminId)) {
  1626. jsonObject.put("code", 1);
  1627. jsonObject.put("errmsg", "adminId为空");
  1628. return jsonObject.toJSONString();
  1629. }
  1630. if (StringUtils.isEmpty(clientId)) {
  1631. jsonObject.put("code", 1);
  1632. jsonObject.put("errmsg", "clientId为空");
  1633. return jsonObject.toJSONString();
  1634. }
  1635. TAdmin admin = adminService.getById(Long.valueOf(adminId));
  1636. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1637. query.eq(TEquipment::getClientId, clientId);
  1638. TEquipment equipment = equipmentService.getOne(query);
  1639. if (!equipment.getAdminId().toString().equals(admin.getId().toString())) {
  1640. jsonObject.put("code", 1);
  1641. jsonObject.put("errmsg", "clientId与adminId不匹配");
  1642. return jsonObject.toJSONString();
  1643. }
  1644. List<String> list = new ArrayList<>();
  1645. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1646. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  1647. List<TProduct> products = productService.list(queryProduct);
  1648. for (TProduct product : products) {
  1649. list.add(product.getProductName());
  1650. }
  1651. jsonObject.put("code", 0);
  1652. jsonObject.put("productions", JsonUtils.toJson(list));
  1653. jsonObject.put("errmsg", "");
  1654. jsonObject.put("total", list.size());
  1655. return jsonObject.toJSONString();
  1656. }
  1657. /**
  1658. * 根据设备编号获取商品信息
  1659. */
  1660. @RequestMapping(value = "/getproducts", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1661. @ResponseBody
  1662. public String getproducts(String clientId) {
  1663. JSONObject jsonObject = new JSONObject();
  1664. if (StringUtils.isEmpty(clientId)) {
  1665. jsonObject.put("code", 1);
  1666. jsonObject.put("errmsg", "clientId为空");
  1667. return jsonObject.toJSONString();
  1668. }
  1669. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1670. query.eq(TEquipment::getClientId, clientId);
  1671. TEquipment equipment = equipmentService.getOne(query);
  1672. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1673. if (equipment == null) {
  1674. jsonObject.put("code", 1);
  1675. jsonObject.put("errmsg", "找不到设备");
  1676. return jsonObject.toJSONString();
  1677. }
  1678. queryProduct.eq(TProduct::getEquipmentId, equipment.getId());
  1679. List<TProduct> products = productService.list(queryProduct);
  1680. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1681. for (TProduct product : products) {
  1682. product.setCreateDate(null);
  1683. product.setModifyDate(null);
  1684. if (StringUtils.isNotEmpty(equipmentDesc.getLanguage()) && !equipmentDesc.getLanguage().equals("zh") && StringUtils.isEmpty(product.getName())) {
  1685. LambdaQueryWrapper<TNameDictionary> queryWrapper = new LambdaQueryWrapper<>();
  1686. queryWrapper.eq(TNameDictionary::getLanguage, "zh");
  1687. queryWrapper.eq(TNameDictionary::getNo, product.getNo());
  1688. TNameDictionary nameDictionary = nameDictionaryService.getOne(queryWrapper);
  1689. if (nameDictionary != null) {
  1690. product.setProductName(nameDictionary.getName());
  1691. }
  1692. }
  1693. }
  1694. JSONObject jsonObject1 = new JSONObject();
  1695. jsonObject1.put("code", 0);
  1696. jsonObject1.put("data", JSONObject.toJSON(products).toString());
  1697. jsonObject1.put("errmsg", "");
  1698. return JSONObject.toJSON(products).toString();
  1699. }
  1700. /**
  1701. * 是否启用物料监控功能
  1702. * 0:不启用,1:启用
  1703. *
  1704. * @param clientId 个推
  1705. * @return
  1706. */
  1707. @RequestMapping(value = "/updateMaterialStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  1708. @ResponseBody
  1709. public String updateMaterialUse(String clientId, String isMaterialUse) {
  1710. if (!StringUtils.isEmpty(clientId) && !StringUtils.isEmpty(isMaterialUse)) {
  1711. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1712. query.eq(TEquipment::getClientId, clientId);
  1713. TEquipment equipment = equipmentService.getOne(query);
  1714. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1715. equipmentDesc.setIsMaterialUse(isMaterialUse);
  1716. equipmentDescService.updateById(equipmentDesc);
  1717. // 改变参数表里的状态
  1718. LambdaQueryWrapper<TParameters> queryWrapper = Wrappers.lambdaQuery();
  1719. queryWrapper.eq(TParameters::getClientId, clientId);
  1720. queryWrapper.eq(TParameters::getName, "M502");
  1721. TParameters parameters = parametersService.getOne(queryWrapper);
  1722. if (Objects.nonNull(parameters)) {
  1723. parameters.setVal(isMaterialUse);
  1724. parametersService.updateById(parameters);
  1725. }
  1726. return "success";
  1727. }
  1728. return "error";
  1729. }
  1730. //修改优惠码状态
  1731. @RequestMapping(value = "/updateCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1732. @ResponseBody
  1733. public String CardPay(String code, String clientId) {
  1734. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1735. query.eq(TEquipment::getClientId, clientId);
  1736. TEquipment equipment = equipmentService.getOne(query);
  1737. LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
  1738. query1.eq(TPromoCode::getAdminId, equipment.getAdminId());
  1739. query1.eq(TPromoCode::getCode, code);
  1740. List<TPromoCode> list1 = promoCodeService.list(query1);
  1741. TPromoCode promoCode = list1.get(0);
  1742. promoCode.setIsUse("1");
  1743. promoCode.setUseBy(equipment.getName());
  1744. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1745. String time = sdf.format(new Date());
  1746. promoCode.setUseDate(time);
  1747. promoCodeService.updateById(promoCode);
  1748. return "success";
  1749. }
  1750. //验证优惠码
  1751. @RequestMapping(value = "/selectCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1752. @ResponseBody
  1753. public String selectCode(String code, String clientId) {
  1754. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1755. query.eq(TEquipment::getClientId, clientId);
  1756. TEquipment equipment = equipmentService.getOne(query);
  1757. //验证优惠码
  1758. LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
  1759. query1.eq(TPromoCode::getCode, code);
  1760. List<TPromoCode> codeList = promoCodeService.list(query1);
  1761. TPromoCode promoCode = new TPromoCode();
  1762. if (codeList.size() == 0) {
  1763. //不存在
  1764. return "1";
  1765. }
  1766. for (TPromoCode cod : codeList) {
  1767. if (!cod.getAdminId().equals("1")) {
  1768. String adminId = cod.getAdminId();
  1769. String adminId1 = String.valueOf(equipment.getAdminId());
  1770. if (adminId.equals(adminId1)) {
  1771. promoCode = cod;
  1772. }
  1773. } else {
  1774. promoCode = cod;
  1775. }
  1776. }
  1777. if (promoCode.getAdminId() == null) {
  1778. //不是本机
  1779. return "3";
  1780. }
  1781. Date lastUseDate = null;
  1782. if (promoCode != null) {
  1783. lastUseDate = promoCode.getLastUseDate();
  1784. }
  1785. if (lastUseDate != null && lastUseDate.getTime() < ((new Date()).getTime())) {
  1786. promoCode.setIsUse("2");
  1787. promoCodeService.updateById(promoCode);
  1788. //过期
  1789. return "4";
  1790. }
  1791. if (promoCode.getId() == null) {
  1792. //不存在
  1793. return "1";
  1794. }
  1795. if (promoCode.getIsUse().equals("1")) {
  1796. //被使用
  1797. return "2";
  1798. }
  1799. if (!promoCode.getAdminId().equals("1")) {
  1800. if (String.valueOf(equipment.getAdminId()).equals(promoCode.getAdminId())) {
  1801. } else {
  1802. //不是本机
  1803. return "3";
  1804. }
  1805. }
  1806. if (promoCode.getDiscount() == null) {
  1807. //旧优惠码
  1808. return "0";
  1809. }
  1810. if (promoCode.getDiscount() == 0) {
  1811. //0折
  1812. return "0";
  1813. }
  1814. return "success";
  1815. }
  1816. //修改机器的分销
  1817. @RequestMapping(value = "/updateProportion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  1818. @ResponseBody
  1819. public String updateProportion(String clientId) {
  1820. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1821. query.eq(TEquipment::getClientId, clientId);
  1822. TEquipment equipment = equipmentService.getOne(query);
  1823. if (equipment != null && equipment.getId() != null) {
  1824. TAdmin admin = adminService.getById(equipment.getAdminId());
  1825. String name = admin.getName();
  1826. //查询机器是否已经有设置分销
  1827. LambdaQueryWrapper<TProportion> query1 = Wrappers.lambdaQuery();
  1828. query1.eq(TProportion::getClientId, equipment.getClientId());
  1829. query1.eq(TProportion::getEquipmentId, equipment.getId());
  1830. List<TProportion> list1 = proportionService.list(query1);
  1831. if (list1.size() > 0) {
  1832. //已有
  1833. } else {
  1834. //没有,需要创建
  1835. //1,判断是否新机器
  1836. // Date createDate = equipment.getCreateDate();
  1837. // long time = createDate.getTime();
  1838. // DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1839. // String day= "2022-09-21 23:59:59";
  1840. // try {
  1841. // Date parse = simpleDateFormat.parse(day);
  1842. // if(time>parse.getTime()){
  1843. // return "新机器,不能已此方式生成分销!";
  1844. // }
  1845. // } catch (ParseException e) {
  1846. // e.printStackTrace();
  1847. // }
  1848. //先找到原账户的分销
  1849. LambdaQueryWrapper<TProportion> query2 = Wrappers.lambdaQuery();
  1850. query2.eq(TProportion::getAdminId, admin.getId());
  1851. List<TProportion> list2 = proportionService.list(query2);
  1852. if (list2.size() > 0) {
  1853. TProportion adminProportion = list2.get(0);
  1854. if (StringUtils.isEmpty(adminProportion.getClientId())) {
  1855. TProportion equipmentProportion = new TProportion();
  1856. equipmentProportion.setCreateDate(new Date());
  1857. equipmentProportion.setModifyDate(new Date());
  1858. equipmentProportion.setAdminId(admin.getId());
  1859. equipmentProportion.setClientId(equipment.getClientId());
  1860. equipmentProportion.setEquipmentId(equipment.getId());
  1861. equipmentProportion.setAdminProportion(adminProportion.getAdminProportion());
  1862. Integer type = adminProportion.getType();
  1863. switch (type) {
  1864. case 1:
  1865. equipmentProportion.setProportion(adminProportion.getAgencyProportion());
  1866. equipmentProportion.setAgencyProportion(new BigDecimal("0.00"));
  1867. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  1868. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1869. equipmentProportion.setType(0);
  1870. break;
  1871. case 2:
  1872. equipmentProportion.setProportion(adminProportion.getMerchantProportion());
  1873. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  1874. equipmentProportion.setAgencyId(admin.getAgencyId());
  1875. TAdmin byId = adminService.getById(admin.getAgencyId());
  1876. equipmentProportion.setAgencyName(byId.getUsername());
  1877. equipmentProportion.setMerchantProportion(new BigDecimal("0.00"));
  1878. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1879. equipmentProportion.setType(1);
  1880. break;
  1881. case 3:
  1882. equipmentProportion.setProportion(adminProportion.getPersonageProportion());
  1883. equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
  1884. equipmentProportion.setAgencyId(admin.getAgencyId());
  1885. TAdmin byId1 = adminService.getById(admin.getAgencyId());
  1886. equipmentProportion.setAgencyName(byId1.getUsername());
  1887. equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
  1888. equipmentProportion.setMerchantId(admin.getMerchantId());
  1889. TAdmin byId2 = adminService.getById(admin.getMerchantId());
  1890. equipmentProportion.setMerchantName(byId2.getUsername());
  1891. equipmentProportion.setPersonageProportion(new BigDecimal("0.00"));
  1892. equipmentProportion.setType(2);
  1893. break;
  1894. }
  1895. boolean save = proportionService.save(equipmentProportion);
  1896. }
  1897. } else {
  1898. return "原账户没有设置分销!";
  1899. }
  1900. }
  1901. }
  1902. return "success";
  1903. }
  1904. /**
  1905. * @param clientId
  1906. * @return
  1907. */
  1908. @GetMapping(value = "/getManagerId.htm")
  1909. @ResponseBody
  1910. public String getManagerId(String clientId) {
  1911. if (!StringUtils.isEmpty(clientId)) {
  1912. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1913. query.eq(TEquipment::getClientId, clientId);
  1914. List<TEquipment> list = equipmentService.list(query);
  1915. if (list.size() > 0) {
  1916. TEquipment equipment = list.get(0);
  1917. Long adminId = equipment.getAdminId();
  1918. if (adminId != null) {
  1919. String managerId = AdminUtils.encrypt(false, adminId);
  1920. if (StringUtils.isEmpty(equipment.getManagerId()) || !equipment.getManagerId().equals(managerId)) {
  1921. equipment.setManagerId(managerId);
  1922. equipmentService.updateById(equipment);
  1923. }
  1924. return managerId;
  1925. }
  1926. }
  1927. return "error";
  1928. }
  1929. return "error";
  1930. }
  1931. /**
  1932. * 修改优惠券开关状态
  1933. *
  1934. * @param clientId
  1935. * @return
  1936. */
  1937. @GetMapping(value = "/updateCouponStatus.htm")
  1938. @ResponseBody
  1939. public String updateCouponStatus(String clientId, String couponStatus) {
  1940. if (!StringUtils.isEmpty(clientId) && StringUtils.isNotEmpty(couponStatus)) {
  1941. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1942. query.eq(TEquipment::getClientId, clientId);
  1943. TEquipment equipment = equipmentService.getOne(query);
  1944. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1945. equipmentDesc.setCouponStatus(couponStatus);
  1946. equipmentDescService.updateById(equipmentDesc);
  1947. TAdmin admin = adminService.getById(equipment.getAdminId());
  1948. //同步数据到鲸准
  1949. if (admin.getId().toString().equals("372") || admin.getRelationAdminId().equals("372") || admin.getId().toString().equals("639") || admin.getId().toString().equals("238")) {
  1950. sendCouponStatus(clientId, equipment.getFullName(), equipment.getEqeStatus(), couponStatus);
  1951. }
  1952. return "success";
  1953. }
  1954. return "error";
  1955. }
  1956. private void sendCouponStatus(String clientId, String fullName, Integer eqeStatus, String couponStatus) {
  1957. String url = "http://47.106.13.109:3000/api/listenDeviceStatusChange";
  1958. Map<String, String> map = new HashMap<>();
  1959. map.put("clientId", clientId);
  1960. map.put("address", fullName);
  1961. map.put("status", String.valueOf(eqeStatus));
  1962. if (StringUtils.isEmpty(couponStatus)) {
  1963. map.put("wxStatus", "1");
  1964. } else {
  1965. map.put("wxStatus", couponStatus);
  1966. }
  1967. String data = JSON.toJSONString(map);
  1968. try {
  1969. String s = HttpClientSslUtils.doPost(url, data);
  1970. System.out.println("发送鲸准:" + s);
  1971. } catch (Exception e) {
  1972. e.printStackTrace();
  1973. }
  1974. }
  1975. /**
  1976. * @param clientId
  1977. * @return
  1978. */
  1979. @GetMapping(value = "/getYouHuiPrice.htm")
  1980. @ResponseBody
  1981. public String getYouHuiPrice(String clientId) {
  1982. LambdaQueryWrapper<TPrice> query = Wrappers.lambdaQuery();
  1983. query.eq(TPrice::getName, "优惠券");
  1984. List<TPrice> list = priceService.list(query);
  1985. if (list.size() > 0) {
  1986. TPrice tPrice = list.get(0);
  1987. Double price = tPrice.getPrice();
  1988. return new BigDecimal(price).setScale(0, RoundingMode.HALF_DOWN).toString();
  1989. } else {
  1990. return "5";
  1991. }
  1992. }
  1993. /**
  1994. * 修改商品名称
  1995. *
  1996. * @param clientId 设备个推Id
  1997. * @param
  1998. * @return
  1999. * @Param
  2000. */
  2001. @RequestMapping(value = "/updateProductName.htm", method = RequestMethod.POST)
  2002. @ResponseBody
  2003. public String updateProductName(String clientId, Long productId, String oldProductName, String newProductName) {
  2004. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2005. query.eq(TEquipment::getClientId, clientId);
  2006. List<TEquipment> list = equipmentService.list(query);
  2007. if (list.size() > 0) {
  2008. TEquipment equipment = list.get(0);
  2009. if (equipment != null && equipment.getId() != null) {
  2010. TProduct product = productService.getById(productId);
  2011. product.setModifyDate(new Date());
  2012. product.setName(oldProductName);
  2013. product.setProductName(newProductName);
  2014. productService.updateById(product);
  2015. return "修改成功success!";
  2016. }
  2017. }
  2018. return "更新失败error";
  2019. }
  2020. /**
  2021. * 上传机器状态之门的状态:
  2022. * type(类型,0:外门,1:内门),
  2023. * status(状态:0:关闭,1:开启)
  2024. *
  2025. * @param clientId
  2026. * @return status(状态:0:关闭,1:开启)
  2027. */
  2028. @GetMapping("/updateEquipmentStatus")
  2029. public ResponseModel<?> updateEquipmentStatus(String clientId, String type, String status) {
  2030. if (StringUtils.isEmpty(clientId) || StringUtils.isEmpty(type) || StringUtils.isEmpty(status)) {
  2031. return R.fail(ResponseCodesEnum.A0001, "adminId为空");
  2032. }
  2033. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2034. query.eq(TEquipment::getClientId, clientId);
  2035. TEquipment equipment = equipmentService.getOnly(query);
  2036. if (equipment != null && equipment.getId() != null) {
  2037. if (type.equals("0")) {
  2038. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2039. equipmentDesc.setOutDoor(status);
  2040. equipmentDescService.updateById(equipmentDesc);
  2041. return R.ok();
  2042. } else if (type.equals("1")) {
  2043. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2044. equipmentDesc.setInDoor(status);
  2045. equipmentDescService.updateById(equipmentDesc);
  2046. return R.ok();
  2047. }
  2048. }
  2049. return R.fail(ResponseCodesEnum.A0002);
  2050. }
  2051. /**
  2052. * 上传花型显示状态
  2053. *
  2054. * @param clientId 设备编号
  2055. * @param tProductBean 包含花型编号和状态
  2056. * @return
  2057. */
  2058. @RequestMapping(value = "/updateShowGoods", method = RequestMethod.POST)
  2059. @ResponseBody
  2060. public String updateShowGoods(String clientId, @RequestBody List<TProductBean> tProductBean) {
  2061. if (StringUtils.isEmpty(clientId) || tProductBean == null) {
  2062. return "参数为空";
  2063. }
  2064. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2065. query.eq(TEquipment::getClientId, clientId);
  2066. TEquipment equipment = equipmentService.getOnly(query);
  2067. if (equipment == null) {
  2068. return "找不到设备信息";
  2069. }
  2070. Long equipmentId = equipment.getId();
  2071. ArrayList<TProduct> tProducts = new ArrayList<>();
  2072. for (TProductBean productBean : tProductBean) {
  2073. String no = productBean.getNo();
  2074. String showType = productBean.getShowType();
  2075. LambdaQueryWrapper<TProduct> wrapper = new LambdaQueryWrapper<>();
  2076. wrapper.eq(TProduct::getEquipmentId, equipmentId);
  2077. wrapper.eq(TProduct::getNo, no);
  2078. TProduct product = productService.getOnly(wrapper);
  2079. product.setShowType(showType);
  2080. tProducts.add(product);
  2081. }
  2082. boolean res = productService.updateBatchById(tProducts);
  2083. if (!res) {
  2084. return "error";
  2085. }
  2086. return "success";
  2087. }
  2088. /**
  2089. * 上传DIY花型功能开关状态
  2090. *
  2091. * @param clientId:设备编号
  2092. * @param DIYFlowerStatus:开关状态, 0: 关闭, 1: 开启
  2093. * @return
  2094. */
  2095. @GetMapping(value = "/updateDIYFlowerStatus")
  2096. @ResponseBody
  2097. public String updateDIYFlowerStatus(String clientId, String DIYFlowerStatus) {
  2098. if (StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(DIYFlowerStatus)) {
  2099. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2100. query.eq(TEquipment::getClientId, clientId);
  2101. TEquipment equipment = equipmentService.getOne(query);
  2102. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2103. equipmentDesc.setDiyFlowerStatus(DIYFlowerStatus);
  2104. equipmentDescService.updateById(equipmentDesc);
  2105. // 如果为开启状态
  2106. if (DIYFlowerStatus.equals("1")) {
  2107. LambdaQueryWrapper<TDiyFlower> queryWrapper = Wrappers.lambdaQuery();
  2108. queryWrapper.eq(TDiyFlower::getEquipmentId, equipment.getId());
  2109. List<TDiyFlower> list = diyFlowerService.list(queryWrapper);
  2110. // 如何为空就添加新的花型形状和颜色
  2111. if (list.size() == 0) {
  2112. saveDIYProduct(equipment.getId());
  2113. }
  2114. }
  2115. return "success";
  2116. }
  2117. return "error";
  2118. }
  2119. /**
  2120. * 添加DIY花型产品
  2121. *
  2122. * @param id
  2123. */
  2124. private void saveDIYProduct(Long id) {
  2125. String[] str = {"圆五花-S01", "圆心-S02", "心-S03", "圆蝴蝶-S04", "圆四叶草-S05", "圆六花瓣-S06", "圆三叶草-A07", "圆三花瓣-S08", "蘑菇-S09",
  2126. "白糖-T01", "红糖-T02", "黄糖-T03", "蓝糖-T04"};
  2127. for (int i = 0; i < str.length; i++) {
  2128. TDiyFlower diyFlower = new TDiyFlower();
  2129. diyFlower.setCreateDate(new Date());
  2130. diyFlower.setModifyDate(new Date());
  2131. diyFlower.setEquipmentId(id);
  2132. String[] split = str[i].split("-");
  2133. diyFlower.setName(split[0]);
  2134. diyFlower.setNo(split[1]);
  2135. diyFlower.setShowType("1");
  2136. diyFlowerService.save(diyFlower);
  2137. }
  2138. }
  2139. /**
  2140. * 上传DIY花型形状/糖显示状态
  2141. *
  2142. * @param clientId 设备编号
  2143. * @param tProductBean 包含形状/糖的编号和状态
  2144. * @return
  2145. */
  2146. @RequestMapping(value = "/updateDIYFlowerShow", method = RequestMethod.POST)
  2147. @ResponseBody
  2148. public String updateDIYFlowerShow(String clientId, @RequestBody List<TProductBean> tProductBean) {
  2149. if (StringUtils.isEmpty(clientId) || tProductBean == null) {
  2150. return "参数为空";
  2151. }
  2152. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2153. query.eq(TEquipment::getClientId, clientId);
  2154. TEquipment equipment = equipmentService.getOnly(query);
  2155. if (equipment == null) {
  2156. return "找不到设备信息";
  2157. }
  2158. Long equipmentId = equipment.getId();
  2159. ArrayList<TDiyFlower> diyFlowers = new ArrayList<>();
  2160. for (TProductBean productBean : tProductBean) {
  2161. String no = productBean.getNo();
  2162. String showType = productBean.getShowType();
  2163. LambdaQueryWrapper<TDiyFlower> wrapper = new LambdaQueryWrapper<>();
  2164. wrapper.eq(TDiyFlower::getEquipmentId, equipmentId);
  2165. wrapper.eq(TDiyFlower::getNo, no);
  2166. TDiyFlower diyFlower = diyFlowerService.getOne(wrapper);
  2167. diyFlower.setShowType(showType);
  2168. diyFlowers.add(diyFlower);
  2169. }
  2170. boolean res = diyFlowerService.updateBatchById(diyFlowers);
  2171. if (!res) {
  2172. return "error";
  2173. }
  2174. return "success";
  2175. }
  2176. /**
  2177. * 花型数目 开机时上传
  2178. *
  2179. * @param clientId 个推
  2180. * @return
  2181. */
  2182. @RequestMapping(value = "/flowerNumber", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2183. @ResponseBody
  2184. public String flowerNumber(String clientId, String flowerNumber) {
  2185. if (!StringUtils.isEmpty(flowerNumber)) {
  2186. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2187. query.eq(TEquipment::getClientId, clientId);
  2188. TEquipment equipment = equipmentService.getOne(query);
  2189. equipment.setFlowers(flowerNumber);
  2190. equipmentService.updateById(equipment);
  2191. return "success";
  2192. }
  2193. return "fail";
  2194. }
  2195. /**
  2196. * 设备语言 开机时上传
  2197. *
  2198. * @param clientId 个推
  2199. * @return
  2200. */
  2201. @RequestMapping(value = "/upLoadLanguage", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2202. @ResponseBody
  2203. public String upLoadLanguage(String clientId, String language) {
  2204. if (!StringUtils.isEmpty(language)) {
  2205. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2206. query.eq(TEquipment::getClientId, clientId);
  2207. TEquipment equipment = equipmentService.getOne(query);
  2208. if (equipment == null) {
  2209. return "fail";
  2210. }
  2211. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2212. equipmentDesc.setLanguage(language);
  2213. equipmentDescService.updateById(equipmentDesc);
  2214. LambdaQueryWrapper<TProduct> wrapper = Wrappers.lambdaQuery();
  2215. wrapper.eq(TProduct::getEquipmentId, equipment.getId());
  2216. List<TProduct> products = productService.list(wrapper);
  2217. for (TProduct product : products) {
  2218. String no = product.getNo();
  2219. // 如果没改过名才更改
  2220. if (StringUtils.isEmpty(product.getName())) {
  2221. LambdaQueryWrapper<TNameDictionary> lambdaQueryWrapper = Wrappers.lambdaQuery();
  2222. lambdaQueryWrapper.eq(TNameDictionary::getLanguage, language);
  2223. lambdaQueryWrapper.eq(TNameDictionary::getNo, no);
  2224. TNameDictionary nameDictionary = nameDictionaryService.getOne(lambdaQueryWrapper);
  2225. if (nameDictionary != null) {
  2226. product.setModifyDate(new Date());
  2227. product.setProductName(nameDictionary.getName());
  2228. productService.updateById(product);
  2229. }
  2230. }
  2231. }
  2232. // if (equipmentDesc.getLanguage() == null || !(equipmentDesc.getLanguage().equals(language))) {
  2233. // }
  2234. return "success";
  2235. }
  2236. return "fail";
  2237. }
  2238. /**
  2239. * 获取DIY使用密码
  2240. *
  2241. * @return
  2242. */
  2243. @RequestMapping(value = "/getDIYPassword", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2244. @ResponseBody
  2245. public String getDIYPassword() {
  2246. TAdmin admin = adminService.getById(1L);
  2247. String diyPassword = admin.getDiyPassword();
  2248. return diyPassword;
  2249. }
  2250. @ApiOperation(value = "更新雪糕机工作模式")
  2251. @RequestMapping(value = "/upWorkingMode", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
  2252. @ResponseBody
  2253. public String upWorkingMode(String clientId, Integer workingMode) {
  2254. if (workingMode != null) {
  2255. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2256. query.eq(TEquipment::getClientId, clientId);
  2257. TEquipment equipment = equipmentService.getOne(query);
  2258. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2259. equipmentDesc.setWorkingMode(workingMode);
  2260. equipmentDescService.updateById(equipmentDesc);
  2261. return "success";
  2262. }
  2263. return "fail";
  2264. }
  2265. @ApiOperation(value = "修改清洗功能状态")
  2266. @GetMapping(value = "/updateCleanFunction", produces = "text/html;charset=utf-8")
  2267. public String updateCleanFunction(String clientId, Boolean cleanFunction) {
  2268. if (cleanFunction != null) {
  2269. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2270. query.eq(TEquipment::getClientId, clientId);
  2271. TEquipment equipment = equipmentService.getOne(query);
  2272. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  2273. equipmentDesc.setCleanFunction(false);
  2274. equipmentDescService.updateById(equipmentDesc);
  2275. return "success";
  2276. }
  2277. return "fail";
  2278. }
  2279. /**
  2280. * 商品调价
  2281. */
  2282. @RequestMapping(value = "/newUpdateProduct", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
  2283. @ResponseBody
  2284. public String newUpdateProduct(@RequestBody List<ProductVo> productVos) {
  2285. for (ProductVo product : productVos) {
  2286. String clientId = product.getClientId();
  2287. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2288. query.eq(TEquipment::getClientId, clientId);
  2289. TEquipment equipment = equipmentService.getOne(query);
  2290. Long id = equipment.getId();
  2291. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  2292. queryProduct.eq(TProduct::getEquipmentId, id);
  2293. queryProduct.eq(TProduct::getNo, product.getProductNo());
  2294. TProduct tProduct = productService.getOnly(queryProduct);
  2295. if (tProduct == null) {
  2296. return "找不到商品";
  2297. }
  2298. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  2299. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  2300. tProduct.setShowType(product.getShowType());
  2301. tProduct.setSellStatus(product.getSellStatus());
  2302. productService.updateById(tProduct);
  2303. }
  2304. return "调价成功";
  2305. }
  2306. /**
  2307. * 新修改商品名称
  2308. *
  2309. */
  2310. @RequestMapping(value = "/changeProductName", method = RequestMethod.POST)
  2311. @ResponseBody
  2312. public String changeProductName(@RequestBody MachineDTO machineDTO) {
  2313. String clientId = machineDTO.getClientId();
  2314. String no = machineDTO.getProductNo();
  2315. String name = machineDTO.getProductName();
  2316. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2317. query.eq(TEquipment::getClientId, machineDTO.getClientId());
  2318. TEquipment equipment = equipmentService.getOne(query);
  2319. if (equipment != null && equipment.getId() != null) {
  2320. LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
  2321. queryWrapper.eq(TProduct::getEquipmentId, equipment.getId());
  2322. queryWrapper.eq(TProduct::getNo, no);
  2323. TProduct product = productService.getOne(queryWrapper);
  2324. product.setModifyDate(new Date());
  2325. product.setName(product.getProductName());
  2326. product.setProductName(name);
  2327. productService.updateById(product);
  2328. return "success";
  2329. }
  2330. return "error";
  2331. }
  2332. @ApiOperation("上传远程退币状态")
  2333. @PostMapping("/uploadReturnCoinStatus")
  2334. public String uploadReturnCoinStatus(@RequestBody ReturnCoinVo returnCoinVo) {
  2335. Long id = returnCoinVo.getId();
  2336. ReturnCoinRecord returnCoinRecord = returnCoinRecordService.getById(id);
  2337. returnCoinRecord.setStatus(returnCoinVo.getStatus());
  2338. returnCoinRecord.setReason(returnCoinVo.getReason());
  2339. returnCoinRecordService.updateById(returnCoinRecord);
  2340. return "success";
  2341. }
  2342. @ApiOperation("上传支付方式状态")
  2343. @GetMapping(value = "/updatePaymentTypeStatus")
  2344. public String updatePaymentTypeStatus(String clientId, String paymentType) {
  2345. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  2346. query.eq(TEquipment::getClientId, clientId);
  2347. TEquipment equipment = equipmentService.getOne(query);
  2348. if (equipment != null && equipment.getId() != null) {
  2349. equipment.setPaymentType(paymentType);
  2350. equipmentService.updateById(equipment);
  2351. return "success";
  2352. }
  2353. return "error";
  2354. }
  2355. }